14:55:29 RRSAgent has joined #webmachinelearning 14:55:33 logging to https://www.w3.org/2025/01/16-webmachinelearning-irc 14:55:33 Meeting: WebML WG Teleconference – 16 January 2025 14:55:33 RRSAgent, make logs Public 14:55:34 please title this meeting ("meeting: ..."), anssik 14:55:35 Chair: Anssi 14:55:40 Agenda: https://github.com/webmachinelearning/meetings/blob/main/telcons/2025-01-16-wg-agenda.md 14:55:44 Scribe: Anssi 14:55:48 scribeNick: anssik 14:56:05 Present+ Anssi_Kostiainen 14:56:15 Present+ Etienne_Noel 14:57:30 Present+ Zoltan_Kis 14:57:56 zkis has joined #webmachinelearning 14:58:06 Present+ Rafael_Cintron 15:00:04 Mike_W has joined #webmachinelearning 15:00:46 Present+ Dwayne_Robinson 15:00:51 Present+ Mike_Wyrzykowski 15:00:55 dwayner has joined #webmachinelearning 15:01:01 ningxin has joined #webmachinelearning 15:01:06 RRSAgent, draft minutes 15:01:07 I have made the request to generate https://www.w3.org/2025/01/16-webmachinelearning-minutes.html anssik 15:01:50 Present+ Joshua_Bell 15:02:14 Present+ Michael_McCool 15:02:22 jsbell has joined #webmachinelearning 15:02:28 Present+ Sungpil_Shin 15:02:41 Present+ Ningxin_Hu 15:03:00 anssik: Welcome to the future, err, 2025! 15:03:32 ... and welcome to our new participants Michal Grabowski and Michał Pierzchała from CallStack, a software engineering consultancy 15:03:33 thelounge has joined #webmachinelearning 15:03:53 ... your feedback as an ISV is very important at this stage of development 15:04:11 Present+ Natasha 15:04:21 Topic: WebML Working Group Charter 2025-2027 draft out 15:04:25 gb, this is w3c/machine-learning-charter 15:04:25 anssik, OK. 15:04:31 RafaelCintron has joined #webmachinelearning 15:04:42 anssik: thank you for your review and suggestions 15:04:47 ... all suggestions have been integrated into the draft 15:04:51 -> [DRAFT] WG Charter 2025-2027 https://w3c.github.io/machine-learning-charter/charter 15:05:05 anssik: HTML diff helps review delta to the current charter, also see the commits for more context 15:05:13 -> HTML diff https://services.w3.org/htmldiff?doc1=https%3A%2F%2Fwww.w3.org%2F2023%2F04%2Fweb-machine-learning-charter.html&doc2=https%3A%2F%2Fw3c.github.io%2Fmachine-learning-charter%2Fcharter.html 15:05:17 -> commits https://github.com/w3c/machine-learning-charter/commits/main/ 15:05:31 anssik: two open issues are deferred from this WG charter update cycle 15:05:35 spshin has joined #webmachinelearning 15:05:49 ... - new incubations #36 will be consideration in a future after adequately incubated, possibly mid-cycle 15:05:50 https://github.com/w3c/machine-learning-charter/issues/36 -> Issue 36 Task-based APIs and Prompt API (by anssiko) [deferred] 15:06:07 ... - on-device training #27 did not receive any feedback that'd suggest we should bring this feature in scope for the WG 15:06:09 https://github.com/w3c/machine-learning-charter/issues/27 -> Issue 27 On-device training (by anssiko) [deferred] 15:06:14 -> WG Charter open issues https://github.com/w3c/machine-learning-charter/issues 15:06:22 anssik: an advance notice has been sent to the W3C Advisory Committee and all W3C group chairs to give a heads up 15:06:26 -> Advance notice: Advance notice: Work in progress on Web Machine Learning Working Group Charter https://lists.w3.org/Archives/Member/w3c-ac-members/2025JanMar/0007.html 15:06:42 anssik: we expect to initiate the formal W3C AC review in February 2025 15:07:20 q? 15:07:32 Topic: Device selection abstractions 15:07:41 gb, this is webmachinelearning/webnn 15:07:42 anssik, OK. 15:08:22 anssik: Zoltan has composed an explainer (thanks!) that summarized the group's prior discussions and proposes a "Minimum Viable Solution" to be used as the basis for spec changes 15:08:27 ... PR #784 15:08:28 https://github.com/webmachinelearning/webnn/pull/784 -> Pull Request 784 Add device selection explainer (by zolkis) 15:08:45 -> Minimum Viable Solution https://github.com/webmachinelearning/webnn/blob/f45266fb1223988894b0ccad7701c41aa753c5f1/device-selection-explainer.md#minimum-viable-solution 15:09:44 anssik: this explainer is ready to merge 15:10:05 ... any concern in merging the explainer now? 15:10:12 https://github.com/webmachinelearning/webnn/blob/acf8b514b82f65972eaa144bbab2f6e84029b7f7/device-selection-explainer.md#minimum-viable-solution 15:10:39 anssik: the next step is to translate the following changes into a spec PR: 15:10:47 ... - Remove MLDeviceType as explicit context option. 15:11:01 ... - Update MLContext so that it becomes device agnostic, or default/generic context. Allow supporting multiple devices with one context. 15:11:19 ... - Add algorithmic steps or notes to implementations on how to map power preference to devices. 15:11:38 LGTM! 15:12:27 Zoltan: one question is will we ever reveal what devices are bound to the context, also want to assess Mike's proposal (3rd in the in the explainer) 15:12:38 anssik: the rest of the changes need some more discussion and land in a separate PR 15:12:50 ... thank you Zoltan for advancing with this important feature! 15:12:58 q? 15:13:11 +1 to merge 15:13:41 q? 15:14:02 Topic: WebNN Operator Update Wave 3 15:14:22 anssik: Dwayne has worked on a spec patch for the Wave3 op set in a branch, much thanks! 15:14:38 ... this is many lines of code to translate into pseudo code algorithms and explicitly specify each step in spec language 15:14:42 ... WDYT Dwayne, what works best for you? 15:14:51 McCool has joined #webmachinelearning 15:15:14 Dwayne: I'd like to add examples still, I don't think we need to split the PR, this is incremental, so not so much new concepts expect the quantization ones 15:15:38 https://github.com/webmachinelearning/webnn/pull/805 15:15:39 https://github.com/webmachinelearning/webnn/pull/805 -> Pull Request 805 Opset wave3 (by fdwr) 15:15:42 Josh: binary and logical ops could go in a smaller PR 15:16:37 https://github.com/webmachinelearning/webnn/pull/805 15:17:37 anssik: on the implementation front, I believe the Wave3 op set implementation in Chromium is now complete after notEqual operator landed this week 15:17:42 -> https://chromium-review.googlesource.com/c/chromium/src/+/6086505 15:17:47 Dwayne: correct 15:18:26 q? 15:19:02 Josh: interested looking at the PR 15:19:18 I'll take a look 15:19:32 q? 15:20:48 Topic: Updated coding conventions and style tweaks 15:20:55 anssik: issue #783 and PR #797 15:20:55 https://github.com/webmachinelearning/webnn/pull/797 -> Pull Request 797 Editorial: Various style and wording tweaks (by inexorabletash) 15:20:56 https://github.com/webmachinelearning/webnn/issues/783 -> Issue 783 Proposed style/wording tweaks (by inexorabletash) [editorial] 15:21:13 ... as our spec grows in size and complexity, it is important we have coding conventions in place and well maintained 15:21:34 anssik: this makes editing the spec a nicer experience, and also helps us onboarding new contributors 15:21:44 ... Josh put up a PR that updates coding conventions as well as the lint tool 15:21:59 ... the PR also applies these to the spec to make it more concise, linkable, less error prone to edit 15:22:05 ... thank you Josh! 15:22:32 ... it is important to build on existing infrastructure and write the spec in terms of WebIDL, Infra, HTML reusing established conventions 15:22:40 ... PR #797 welcomes review 15:23:18 Josh: all editorial, every change is because I noticed something that can be improved, the PR chains all these changes I spotted 15:23:47 ... some discussion these from Ningxin what style convention to use for shapes, I wanted more discussion on this 15:25:03 q? 15:25:14 Dwayne: I'll review this 15:25:32 Topic: Create new objects with a Realm 15:25:38 anssik: issue #793 15:25:38 https://github.com/webmachinelearning/webnn/issues/793 -> Issue 793 Create new objects with a Realm (by a-sully) [conventions] 15:25:48 ... the realm concept represents a global environment in which a script is run 15:25:52 -> HTML spec > Realms and their counterparts https://html.spec.whatwg.org/multipage/webappapis.html#realms-and-their-counterparts 15:26:04 anssik: we want to apply realm concept in this spec consistently and properly 15:26:18 ... Josh flagged one area in the spec we can improve on: 15:26:23 ... when creating a new object from "in parallel" steps we need to specify the realm 15:27:01 Josh: any time there are steps running in another timeline or "in parallel" and JS object is created and explicit realm must be specified, not all web specs do this yet 15:27:24 ... unclear if we need to do this in more places, as a homework will get in touch with experts in this area 15:27:43 ... for "in parallel" need to capture the realm and pass to the algorithm 15:28:05 q? 15:28:54 Josh: the impact of getting wrong real is minor, pretty important if dealing with x-window communication though, no huge stress for WebNN 15:29:10 q? 15:29:40 Topic: Define equality for non-trivial data type 15:29:44 anssik: issue #792 15:29:44 https://github.com/webmachinelearning/webnn/issues/792 -> Issue 792 Define equality for non-trivial data types (by a-sully) [conventions] 15:29:51 ... continuing the theme, comparing equality, two cases: 15:30:03 ... - MLOperandDescriptor dictionaries, these are ordered maps 15:30:11 ... - lists e.g. « "a", "b", "c" », there's 100+ of these 15:30:21 ... Infra spec does not define equality for maps or lists 15:31:04 ... should we define general map and list equality and upstream to Infra? 15:31:24 Josh: probably define by ourselves and them open upstream bugs 15:31:27 q? 15:31:55 s/ them open / then open 15:31:56 q? 15:32:28 Topic: Disallow operations on scalar tensors that are no-ops 15:32:32 anssik: issue #794 15:32:32 https://github.com/webmachinelearning/webnn/issues/794 -> Issue 794 Disallow operations on scalar tensors that are no-ops (by reillyeon) [operator specific] 15:32:54 ... Reilly explains there are a number of operators, such as transpose() and reshape() 15:33:07 ... also there are operators like gather() which expect indices but a scalar doesn't have indices 15:33:18 ... initial proposal to disallow these cases due to added complexity to implementations 15:33:30 ... in a follow up discussion, it was clarified reshape is not actually no-op since it changes the shape 15:33:53 ... the refined proposal seems to be "go through each case where we allow a rank of N and clarify whether 0 is a valid value of N" 15:34:40 Dwayne: I thought the next step is to look at the ops and see what makes sense, in a math sense it makes sense to include scalars, but with implementation difficulty need to find a balance 15:34:53 ... reshape does work with scalars 15:35:08 ... next step is to make a list of ops and see which can support scalars and which don't 15:35:50 Josh: we are persuaded by arguments that frameworks will handle these 15:35:52 q? 15:36:06 q? 15:36:33 q? 15:36:58 Topic: Specify destroy() methods and behavior around context loss and error reporting 15:37:08 anssik: issue #477 and PR #744 15:37:08 https://github.com/webmachinelearning/webnn/pull/744 -> MERGED Pull Request 744 Specify destroy() methods and behavior around context loss and error reporting (by inexorabletash) 15:37:08 https://github.com/webmachinelearning/webnn/issues/477 -> CLOSED Issue 477 API lacks handling for async ML device errors on the context (by bbernhar) [bug] [question] 15:37:22 ... this issue resolved itself and PR landed before the meeting, thank you Josh, Bryan, Mingming, Reilly, Dwayne, Ningxin! 15:37:39 ... with this PR, MLContext gains a destroy() method and a lost promise attribute. MLGraph similarly gains a destroy() attribute. 15:37:49 ... modifies also "has built" tests on MLGraphBuilder methods to be a "can built" test 15:38:07 ... Josh what should the group know about this change, what were the most tricky bits? 15:38:10 q? 15:38:35 Josh: subtleties, initially when crafting the PR tried to carefully follow the implementation 15:38:59 ... there's some divergence in the spec text and implementation, possible edge cases that'd benefit from tests 15:39:30 ... secondly, to make things easier on the spec side, it is written using "run this and abort if" 15:40:13 ... Chromium implementation has frontend and backend objects with a connections, if connection breaks frontend runs some behavior because not all implementation may use a similar impl architecture 15:40:27 ... feedback from other implementers would be very useful 15:40:28 q? 15:41:12 q? 15:41:35 Topic: Allow NaN and infinite values for float attributes 15:41:42 anssik: issue #800 15:41:43 https://github.com/webmachinelearning/webnn/issues/800 -> Issue 800 Allow NaN and infinite values for float attributes (by lisa0314) [bug] [question] 15:41:58 anssik: a case where the implementation and spec disagreed: 15:42:15 "The current blink IDL uses float alpha while spec defines as double alpha. I suppose both have issues and it should be defined as unrestricted double which supports both infinite and NaN." 15:42:33 anssik: per issue discussion there are no strong use cases to allow Infinite and NaN values for float parameters still in spec 15:42:43 ... Dwayne posted a snippet of IDL for these dictionaries in the issue 15:42:49 ... the proposal by Dwayne is to not change the spec and Ningxin agrees 15:42:56 ... Ningxin opened a Chromium issues to align the implementation with the spec: 15:43:00 -> https://issues.chromium.org/issues/386611711 15:43:09 anssik: can we close this issue? 15:43:17 +1 to close 15:43:22 q? 15:43:41 also +1 to close (and always happy to revisit) 15:43:44 +1 to close 15:44:15 Topic: Incubations 15:44:41 Subtopic: Dedicated CG meetings and WG-CG collaboration work mode 15:45:10 anssik: I'd like to complement the bi-weekly WG meetings with dedicated meetings for the Community Group (CG) incubations i.e. task-specific APIs and Prompt API (aka built-in AI APIs) 15:45:14 -> CG incubations https://webmachinelearning.github.io/incubations/ 15:45:46 anssik: this would allow participants to joint one or both, based on their preferences and schedules 15:46:17 ... I'd suggest the WebML CG to meet regularly (bi-weekly, monthly?) and hold F2F meetings together with the WebML WG to efficiently pool resources 15:46:37 ... since we're a community split across geos, it'd be beneficial to have this CG meeting at a time that works for the most active CG participants 15:47:15 ... I've asked Etienne from Google to help facilitate the CG meetings and provide updates on key issues to the WG to ensure the entire community stays abreast of incubation progress, even if you can't join the dedicated CG meetings, you'll stay informed 15:47:43 ... per CG charter, a public summary or minutes will be provided 15:47:53 ... for async collaboration with the CG, we continue as usual, GH repos are open to contributions 15:48:32 ... Etienne, what meeting times would work for Googlers involved with this work? 15:48:57 Etienne: a few folks in Tokyo, EST, PST 15:50:14 ... twice a month might be good cadence in the beginning 15:50:48 q+ 15:50:51 ack RafaelCintron 15:51:31 RafaelCintron: I'm a bit biased, because I'd be joining both, I'm OK with two meeting series 15:52:56 Etienne: Tuesday morning PST is not working for me 15:54:50 MikeM: propose 9-12 EST timeslots 15:58:23 RRSAgent, draft minutes 15:58:24 I have made the request to generate https://www.w3.org/2025/01/16-webmachinelearning-minutes.html anssik 16:00:28 s/in the in the/in the 16:01:47 s/expect the/except the 16:04:00 s/discussion these from/discussion with 16:04:59 s/and explicit realm/an explicit realm 16:05:38 s/wrong real/wrong realm 16:06:33 s/openupstream/open upstream 16:08:33 s/connections/connection 16:08:59 s/because not/but not 16:11:01 Present+ Natasha_Gaitonde 16:11:15 RRSAgent, draft minutes 16:11:16 I have made the request to generate https://www.w3.org/2025/01/16-webmachinelearning-minutes.html anssik