14:47:38 RRSAgent has joined #webmachinelearning 14:47:43 logging to https://www.w3.org/2026/02/12-webmachinelearning-irc 14:47:43 RRSAgent, make logs Public 14:47:44 please title this meeting ("meeting: ..."), anssik 14:47:44 Meeting: WebML WG Teleconference – 12 February 2026 14:47:48 Chair: Anssi 14:47:53 Agenda: https://github.com/webmachinelearning/meetings/blob/main/telcons/2026-02-12-wg-agenda.md 14:48:01 Scribe: Anssi 14:48:12 scribeNick: anssik 14:48:22 Present+ Anssi_Kostiainen 14:48:32 RRSAgent, draft minutes 14:48:33 I have made the request to generate https://www.w3.org/2026/02/12-webmachinelearning-minutes.html anssik 14:58:49 Present+ Dwayne_Robinson 15:00:06 DwayneR has joined #webmachinelearning 15:00:15 Present+ Markus_Tavenrath 15:00:44 Present+ Jonathan_Ding 15:00:56 Regrets+ Tarek_Ziade 15:02:11 Present+ Rafael_Cintron 15:02:46 Present+ Reilly_Grant 15:03:18 mtavenrath has joined #webmachinelearning 15:03:27 handellm has joined #webmachinelearning 15:03:35 RafaelCintron has joined #webmachinelearning 15:03:56 Present+ Markus_Handell 15:04:35 Present+ Christian_Liebel 15:05:03 Topic: Incubations 15:05:15 Subtopic: Dynamic AI Offloading Protocol 15:05:20 gb, this is webmachinelearning/daop 15:05:20 anssik, OK. 15:05:36 Anssi: at our last meeting we resolved to create an explainer for Dynamic AI Offloading Protocol (DAOP) and initiate prototyping 15:05:52 -> https://www.w3.org/2026/01/15-webmachinelearning-minutes.html#89af 15:06:00 ningxin has joined #webmachinelearning 15:06:00 ... thank you to MarkusH for providing feedback from Google Meet product perspective 15:06:15 Anssi: today, Jonathan will briefly present the explainer and prototype that he has put together (thanks!) 15:06:27 ... you'll find the content that is presented by Jonathan from PR #1 15:06:28 https://github.com/webmachinelearning/daop/pull/1 -> Pull Request 1 Add DAOP explainer and estimateQoS() illustration with background blur demo (by jonathanding) 15:06:38 -> Explainer (PR review) https://github.com/webmachinelearning/daop/blob/feature-initial-content/README.md 15:06:47 -> Explainer (PR preview) https://github.com/webmachinelearning/daop/blob/feature-initial-content/README.md 15:06:54 -> Reference implementation for illustration purposes (PR preview) https://github.com/webmachinelearning/daop/tree/feature-initial-content/daop-illustration 15:07:07 Anssi: after the presentation and demo, questions and comments are welcome 15:07:12 ... and after the meeting, more detailed review feedback is welcome via PR #1 15:07:35 Ehsan has joined #webmachinelearning 15:07:49 Anssi: Jonathan, to start, please introduce the explainer 15:08:48 Jonathan: this proposal extends the WebNN API 15:09:37 ... DAOP proposal uses a model centric estimation, can be done at initialization time or dynamically during runtime 15:10:12 ... the proposed estimateQoS() API extends the WebNN API 15:11:14 ... this API uses performance tiers: "excellent", "good", "fair", "moderate", "slow", "very-slow", "poor" 15:11:42 ... we propose a core API for performance negotiation 15:11:53 ... to maximize the benefits of DAOP, the underlying WebNN specification should support a weightless build mode 15:12:01 ... we propose that WebNN builders be extended to allow: 15:12:14 ... - weightless constants 15:12:18 ... - lazy / explicit binding 15:13:12 ... instead of performance tier, the local inference engine can respond whether it can meet the givenv performance requirement using the proposed meetsRequirement() API 15:13:19 Present+ Ningxin_Hu 15:13:25 Present+ Ehsan_Toreini 15:14:20 Jonathan: for prototyping, we polyfilled WebNN and provided a demo 15:14:45 [Jonathan sharing DAOP demo] 15:16:35 Jonathan: background blur demo uses lazy binding for performance benefit and avoids fingerprinting by using performance tiers 15:17:09 ... micro-benchmarks can be re-run in the background also 15:18:03 ... the explainer welcomes your comments and feedback in PR #1 15:18:03 https://github.com/webmachinelearning/daop/pull/1 -> Pull Request 1 Add DAOP explainer and estimateQoS() illustration with background blur demo (by jonathanding) 15:18:29 ... we chose the group's preferred approach, and rejected the alternative design 15:18:32 q? 15:19:46 q+ 15:19:50 ack RafaelCintron 15:20:28 Rafael: if the implementation runs the benchmark locally, why browses are better qualified to run the benchmark? 15:21:47 Jonathan: browser has knowledge of the underlying platform and its capabilities, so can provide a better offline estimation, also to estimate the QoS holds over a longer period of time 15:22:45 Rafael: thanks, that clarifies the question, sometimes the browser indeed knows better on which devices certain ops run 15:23:14 Jonathan: we can provide a library abstraction on top of the proposed QoS estimation API 15:23:43 ... the ultimate goal is to solve this problem for both web and native 15:23:47 q+ 15:24:55 Rafael: the guarantee of QoS works for games, but the web browser may be more complex as it has a number of tabs doing other tasks whose performance profile may change over time 15:24:56 q? 15:26:14 ... a learning from the Prompt API estimation was we don't want to run the user's machine to the ground when the API is called 15:27:16 ... I think estimation sometimes is the best we can do, it can just be challenging and how to maintain it over time 15:27:18 q? 15:27:31 ack mtavenrath 15:27:59 MarkusT: for estimating ops themselves may be problematic due to fusion that can happen 15:28:06 q+ to mention compatibility detection. 15:28:25 handellm has joined #webmachinelearning 15:28:42 ... there may be background operations that impact the estimation 15:29:26 ... I'd be considered if performance metrics measured by the frameworks would be shared across websites to avoid super cookie-style mechanism 15:29:37 q? 15:30:14 ... generally I see this is useful as a library 15:30:50 Jonathan: eventually we need native support to understand fusion, caching etc. optimizations only native knows about 15:30:52 q? 15:31:07 ack reillyg 15:31:07 reillyg, you wanted to mention compatibility detection. 15:31:44 Reilly: I think agree with MarkusT that this is probably not dangerous from fingerprinting perspective 15:33:00 ... for compatibility detection of models, developers could try to build models of different shapes, the challenge in that is the requirement to download all the models, but with weightless graph shape can do initial testing, interested to see what opportunities that provides 15:33:01 q? 15:33:50 q? 15:34:10 One could build a performance database and use WebGL to query the GPU string... 15:34:17 Subtopic: Last Week in Community Group 15:34:21 gb, this is webmachinelearning/webmcp 15:34:22 anssik, OK. 15:34:27 -> https://github.com/webmachinelearning/meetings/blob/main/telcons/2026-02-05-cg-agenda.md 15:34:31 -> https://www.w3.org/2026/02/05-webmachinelearning-minutes.html 15:34:38 Anssi: the group established the WebMCP spec draft and landed the initial WebIDL in PR #75 15:34:38 https://github.com/webmachinelearning/webmcp/pull/75 -> MERGED Pull Request 75 Add WebIDL and descriptions to spec draft (by bwalderman) 15:34:42 -> WebMCP latest draft https://webmachinelearning.github.io/webmcp/ 15:35:05 Anssi: the group initiated work on WebMCP accessibility consideration, the group believes there's a great potential to improve accessibility with this tech, new a11y experts joined to contribute to this effort 15:35:12 gb, this is webmachinelearning/translation-api 15:35:12 anssik, OK. 15:35:29 Anssi: for Translator and Language Detector APIs, there's been an active debase on input formats in Mozilla's standards position repo, see spec issue #60 15:35:29 https://github.com/webmachinelearning/translation-api/issues/60 -> Issue 60 Input formats for translation and language detection (by tomayac) 15:35:35 gb, this is webmachinelearning/prompt-api 15:35:36 anssik, OK. 15:35:45 Anssi: for Prompt API, we discussed how to address the TAG review feedback 15:35:56 q? 15:36:03 Topic: Web Neural Network API 15:36:07 gb, this is webmachinelearning/webnn 15:36:07 anssik, OK. 15:36:12 Subtopic: Origin Trial launch 15:36:23 Anssi: I want to take a moment to celebrate WebNN Origin Trial launch on Chrome and Edge 146 15:36:32 ... WebNN Origin Trial journey started in Chrome Beta on 11 Feb and hits Stable on 10 Mar 15:36:45 ... and for Edge, Beta on 19 Feb and Stable on 12 Mar 15:37:00 ... this significant implementation milestone follows hot on the heels of the WebNN API spec CRS milestone 22 Jan 2026 15:37:04 ... congrats to the group for this major achievement! 15:37:18 ... in concert with OT, the group also launched WebNN Docs, a vendor-neutral resource that assists early adopters on their OT journey 15:37:25 -> WebNN Docs: Origin Trials Registration 15:37:25 https://webnn.io/en/learn/get-started/ot_registration 15:37:33 -> WebNN Docs: Tutorials https://webnn.io/en/learn/tutorials 15:37:42 Anssi: huge thanks to Belem for kicking off this docs resource! 15:37:50 ... the entire webnn.io docs site is a community resource and you can contribute via GitHub: 15:37:54 -> https://github.com/webmachinelearning/webnn-docs 15:38:06 Anssi: any other OT resources to bring to the group's attention? 15:38:28 q+ 15:38:28 q? 15:38:35 ack ningxin 15:39:31 Ningxin: I wanted to share that webnn-samples already added OT token so feel free to use the samples without the flag 15:40:04 https://aks.ms/webnn 15:40:08 Rafael: I did the same for Edge 15:40:12 https://aka.ms/webnn 15:40:42 Subtopic: Power preferences and the fallback concept 15:40:47 Anssi: issue #911 15:40:47 https://github.com/webmachinelearning/webnn/issues/911 -> Issue 911 accelerated should be prior to powerPreference for device selection (by mingmingtasd) [device selection] 15:40:51 Anssi: two things: 15:41:10 Anssi: first, I'd like to see if we can agree on the proposed spec change to expand powerPreference enum with a new value "fallback" (prior "no-acceleration") 15:41:22 ... as discussed last time, "fallback" as a name would be more future-proof and conceptually aligned with WebGPU, thanks MikeW for the suggestion 15:41:29 ... I feel this naming consideration is more than just bikeshedding 15:41:44 q? 15:42:08 ... second, I'd like to understand if we need any spec language changes to help clarify that these hints are non-normative 15:42:25 ... we already avoid using any RFC 2119 MUSTs and SHOULDs in MLContextOptions spec section 15:42:29 -> https://www.w3.org/TR/webnn/#api-mlcontextoptions 15:42:40 Anssi: perhaps we could add a green Note box to highlight this fact 15:43:27 Rafael: in both WebGPU/GL power preferences are hints 15:43:49 https://browserleaks.com/webgl and https://browserleaks.com/webgpu 15:44:52 https://gpuweb.github.io/gpuweb/#dom-gpurequestadapteroptions-powerpreference 15:45:22 Anssi: it seems we agree "fallback" is a good name for a new powerPreference and these hints are non-normative, and maybe we want to lift some language from WebGPU/GL for WebNN 15:45:57 q+ 15:45:59 q? 15:46:00 ack reillyg 15:46:24 Reilly: I think we're at the stage where PR with a specific proposal would be a reasonable next step 15:47:09 q? 15:47:22 Subtopic: Dynamic dimensions 15:47:26 Anssi: issue #883 15:47:27 https://github.com/webmachinelearning/webnn/issues/883 -> Issue 883 Support flexible input sizes (by huningxin) [feature request] [operator specific] [Agenda+] 15:47:53 Anssi: I'd like to review the latest MLDynamicDimension proposal and discuss any new information from prototyping 15:48:18 ... Ningxin and Bin verified that the latest Chromium prototype of this feature is able to run TinyLlama 1.1B model with dynamic input size 15:48:43 ... TinyLlama 1.1B is optimized for use on devices with restricted memory budget and computational capabilities and enables use cases such as real-time machine translation 15:48:48 -> https://www.w3.org/TR/webnn/#usecase-translation 15:48:56 Anssi: this bigger model is thus well-suited to demonstrate the MLDynamicDimension feature 15:49:14 Anssi: prototyping experience suggested two additional IDL changes, change type of expand.newShape and reshape.newShape from unsigned long to MLDimension 15:50:39 Ningxin: we can full chat demo with this feature, in my comments I gave an example how the developer can build this model with dynamic input and set the concrete dimensions for the input at different stages, prefill stage per sequence length, and in the decoding loop increase the total sequence length during the loop while still using the same model 15:51:16 ... at last TPAC we shared static shape limitation, where the developers has to use two separate models, for prefill and decode, this increases memory footprint and inference time 15:51:28 ... now with dynamic shape support we can use just one model 15:51:58 ... for reshape and expand we observed changes are required: 15:52:05 ```diff 15:52:05 - MLOperand expand(MLOperand input, sequence newShape, optional MLOperatorOptions options = {}); 15:52:05 + MLOperand expand(MLOperand input, sequence newShape, optional MLOperatorOptions options = {}); 15:52:06 15:52:06 - MLOperand reshape(MLOperand input, sequence newShape, optional MLOperatorOptions options = {}); 15:52:06 + MLOperand reshape(MLOperand input, sequence newShape, optional MLOperatorOptions options = {}); 15:52:07 ``` 15:53:07 Ningxin: in the prototype we can expand known dynamic dimension, we introduced known dynamic dimension that is defined by builder.input 15:54:11 ... you can reshape or expand a shape with dynamic dimensions without introducing a new concept 15:54:25 s/```diff// 15:55:07 Ningxin: we believe we can also support Qwen and other LLMs with this proposed change 15:55:29 ... Tarek's comments in rustnn are very helpful 15:55:29 q? 15:55:53 Ningxin: to conclude, by using one model for both prefill and decode stages, the session creation time and memory footprint are reduced significantly 15:56:50 Anssi: Tarek is implementing and Markus is reviewing the the dynamic shape feature in rustnn, you can follow the plan and implementation progress 15:56:56 -> https://github.com/rustnn/rustnn/issues/15 15:56:57 https://github.com/rustnn/rustnn/issues/15 -> Issue 15 Support flexible input sizes (by tarekziade) 15:57:01 -> https://github.com/rustnn/rustnn/pull/16 15:57:01 https://github.com/rustnn/rustnn/pull/16 -> Pull Request 16 Add dynamic Dimension support (flexible input shapes) (by tarekziade) 15:57:10 MarkusT: I will convey Tarek's feedback 15:57:45 ... in summary the changes seemed to go well for rustnn 15:58:55 q? 15:59:15 q+ 15:59:18 ack reillyg 15:59:56 Reilly: I support the group advancing to a spec PR for this feature 16:00:44 q+ 16:01:07 Markus: for the API change, do we support both the versions, reshape and expand? 16:01:08 q+ 16:01:11 ack ningxin 16:01:49 Ningxin: the current proposal is a union, the IDL changes but supports both static and dynamic use cases can run all the static samples 16:02:42 +1 16:02:48 +1 16:02:48 +1 16:02:49 RESOLUTION: Create a spec PR for MLDynamicDimension to support models that may require flexible input sizes, supports both static and dynamic use cases. 16:03:11 Topic: Next WG Teleconference 12 March 2026 16:03:20 Anssi: given many group participants are celebrating the Spring Festival, I will skip over the 26 Feb WG teleconference 16:03:26 ... the next WG teleconference will be 12 March 2026 16:03:46 ... I want to wish everyone who is celebrating Spring Festival very relaxing vacation 16:03:58 ... for 2026 the animal is Horse representing energy, speed, freedom, and success 16:04:14 ... I like this as it reflects this group and its timely launch of WebNN OT in 2026 16:04:23 ... we will be back with even more energy and speed after this mini-break! 16:04:24 q? 16:04:27 thanks Anssi! 16:05:04 RRSAgent, draft minutes 16:05:05 I have made the request to generate https://www.w3.org/2026/02/12-webmachinelearning-minutes.html anssik 16:06:06 RRSAgent, draft minutes 16:06:07 I have made the request to generate https://www.w3.org/2026/02/12-webmachinelearning-minutes.html anssik 16:08:19 s/```// 16:08:21 RRSAgent, draft minutes 16:08:22 I have made the request to generate https://www.w3.org/2026/02/12-webmachinelearning-minutes.html anssik 16:19:20 s|-> Explainer (PR review) https://github.com/webmachinelearning/daop/blob/feature-initial-content/README.md|| 16:19:22 RRSAgent, draft minutes 16:19:23 I have made the request to generate https://www.w3.org/2026/02/12-webmachinelearning-minutes.html anssik 16:22:04 s/givenv/given 16:22:38 s/browses/browsers 16:23:11 s/to estimate the QoS holds/can estimate the QoS that holds 16:24:22 s/be considered/be concerned 16:25:01 s/I think agree/I agree 16:27:32 s|https://aks.ms/webnn|| 16:35:11 s/we can full/we can implement full 16:39:13 RRSAgent, draft minutes 16:39:14 I have made the request to generate https://www.w3.org/2026/02/12-webmachinelearning-minutes.html anssik 17:48:49 gb has joined #webmachinelearning 18:26:37 Zakim has left #webmachinelearning