14:41:54 RRSAgent has joined #webmachinelearning 14:41:58 logging to https://www.w3.org/2026/08/13-webmachinelearning-irc 14:41:58 RRSAgent, make logs Public 14:41:59 please title this meeting ("meeting: ..."), anssik 14:42:00 Meeting: WebML WG Teleconference – 13 August 2026 14:42:06 Chair: Anssi 14:42:11 Agenda: https://github.com/webmachinelearning/meetings/blob/main/telcons/2026-08-13-wg-agenda.md 14:42:16 Scribe: Anssi 14:42:21 scribeNick: anssik 14:42:45 Present+ Anssi_Kostiainen 14:42:50 RRSAgent, draft minutes 14:42:51 I have made the request to generate https://www.w3.org/2026/08/13-webmachinelearning-minutes.html anssik 14:58:11 dwayner has joined #webmachinelearning 14:58:26 Present+ Dwayne_Robinson 14:59:36 Present+ Markus_Tavenrath 14:59:39 Mike_Wyrzykowski has joined #webmachinelearning 14:59:49 Present+ Mike_Wyrzykowski 15:00:36 Present+ Ningxin_Hu 15:00:59 Present+ Mikhail_Klimenko 15:01:28 Present+ Julien_Bataille 15:01:47 ningxin has joined #webmachinelearning 15:01:50 mtavenrath has joined #webmachinelearning 15:02:08 Julien has joined #webmachinelearning 15:03:04 Anssi: welcome back after the summer break, I hope you had a chance to recharge and enjoy some time off 15:03:07 ... and welcome to the new participants joining us since our last meeting in June: 15:03:22 ... Ruoxi Ran and Philippe Le Hegaret from W3C 15:03:31 ... Ruoxi joins as the new W3C Staff Contact, replacing Dom who took the interim CEO role 15:03:36 ... Lingyan Zhao from Microsoft 15:03:40 ... Amit Varia from Google 15:03:49 ... Matt Kubej from Shopify 15:03:57 ... Stephan Morris from See Me Please, an accessibility company 15:04:01 ... welcome all! 15:04:41 Topic: Announcements 15:04:46 Subtopic: TPAC 2026 F2F 15:05:02 Anssi: WebML WG F2F confirmed for Monday 26 Oct 2026, in Dublin Ireland 15:05:18 ... first day of the TPAC 2026 week 26-30 Oct 15:05:24 -> TPAC 2026 site https://www.w3.org/news-events/tpac/2026/ 15:05:39 Anssi: a few logistics things to handle, please register for TPAC 2026 and book your travel and accommodation as soon as you can 15:05:45 ... register latest by 01 October 2026: 15:05:50 -> TPAC 2026 registration https://www.w3.org/register/tpac2026 15:06:07 Anssi: I recommend booking the hotel as soon as possible, as Dublin is a popular destination and hotels fill up quickly, discount rate provided at the meeting hotel: 15:06:13 -> TPAC 2026 accommodation https://www.w3.org/news-events/tpac/2026/venue/#meeting-venue-and-accommodation 15:06:29 Anssi: our F2F Agenda is a GH issue to allow the community chime in more easily with suggestions, this is considered a living agenda and will be updated as we get closer to the meeting date 15:06:34 -> F2F agenda https://github.com/webmachinelearning/meetings/issues/39 15:06:34 https://github.com/webmachinelearning/meetings/issues/39 -> Issue 39 WebML WG/CG F2F Agenda - TPAC 2026 (Dublin, Ireland) (by anssiko) 15:07:04 mklimenko has joined #webmachinelearning 15:07:05 Anssi: the expectation is we use the F2F to have both discussions on the short-term issues as well as long-term directions 15:07:09 ... participants can propose to share demos and implementation updates in a live setting 15:07:20 ... we will have meeting participants from across the W3C community, so this is a great opportunity to share your work with wider audience 15:07:28 Anssi: the Community Group meets on Tuesday, 27 October 2026, right after the Working Group meeting 15:07:37 ... I encourage all participants to attend both days to get the full picture of the WebML community 15:07:40 Anssi: questions, comments? 15:08:09 Subtopic: New charter proposal review 15:08:17 Anssi: on our June 18 meeting I shared the new charter proposal for this Working Group and called for review 15:08:29 -> Charter diff https://github.com/w3c/charter-drafts/pull/829/changes 15:08:30 https://github.com/w3c/charter-drafts/pull/829 -> PR 829 [wg/webmachinelearning] Adds WebMCP in scope (by plehegar) 15:08:36 Anssi: this proposal adds WebMCP as a new WebML WG deliverable, graduating from WebML CG incubation 15:08:50 ... WebML WG and WebML CG work closely together, and this charter update prepared by W3C Team reflects that relationship 15:09:15 ... as for the WebMCP progress 15:09:33 ... WebML CG has initiated horizontal group review for WebMCP, starting with the Technical Architecture, Security and Privacy groups, great collaborations ongoing on that front 15:09:52 ... WebML CG has also been actively engaging with the developer community and has received encouraging feedback from developers 15:10:13 ... Chrome Origin Trial is ongoing and adoption in the industry is growing based on data shared with the group 15:10:38 ... if anyone has further input on the charter proposal at this point, I encourage you to share it to ensure W3C Team can consider your feedback 15:10:40 q+ 15:10:48 Present+ Reilly_Grant 15:10:49 ack reillyg 15:11:07 Mike_Wyrzykowski has joined #Webmachinelearning 15:11:39 Mike_Wyrzykowski has joined #webmachinelearning 15:11:41 Reilly: given my experience in the CG, when we add WebMCP as a deliverable, we should schedule a separate meeting for WebMCP given it is highly active work 15:11:49 q+ 15:12:03 Anssi: we will consider that 15:12:07 ack Mike_Wyrzykowski 15:13:10 MikeW: I wanted to note that from Apple's side we have an opposing WebKit position 15:13:20 Anssi: noted 15:13:20 q? 15:13:22 [no further feedback or comments recorded] 15:14:55 RESOLUTION: WebML WG has reviewed the charter proposal and approves the direction. WebKit position duly noted. 15:15:31 DwayneR has joined #webmachinelearning 15:15:36 Anssi: thank you for your support in advancing this important deliverable 15:15:40 ... it is my pleasure to shepherd this work 15:15:46 Topic: Web Neural Network API 15:15:50 gb, this is webmachinelearning/webnn 15:15:50 anssik, OK. 15:16:01 Subtopic: Dynamic shapes 15:16:09 Anssi: issue #883 and PR #945 15:16:10 https://github.com/webmachinelearning/webnn/pull/945 -> PR 945 Add dynamic shape explainer (by miaobin) 15:16:10 https://github.com/webmachinelearning/webnn/issues/883 -> Issue 883 Support flexible input sizes (by huningxin) [feature request] [operator specific] 15:16:29 ... this important feature enables graph dimensions to remain unresolved during compilation 15:16:34 ... and instead derive the concrete values from input tensors at dispatch time 15:16:47 ... this feature is required by many transformer decoders, vision encoders, generative image models 15:17:06 ... the lack of this feature means frameworks have had to implement workarounds that incur significant performance penalty, degrading user experience 15:17:18 ... Bin and Wangming have contributed an explainer and Bin has produced an implementation of this feature to inform the design 15:17:31 ... Honry also developed ORT WebNN backend support for this feature for end-to-end testing 15:17:43 ... I asked the group to review the explainer 15:17:48 ... it is a well-written document with many details 15:18:11 ... next, Ningxin will share the implementation experience and introduce the key contributions of the explainer 15:18:17 ... I'd expect we'd then want to have a discussion on the open questions documented in the explainer: 15:18:21 -> Open Questions https://github.com/miaobin/webnn/blob/dynamic-shape-explainer/dynamic-shape-explainer.md#fine-grained-shape-queries 15:18:55 Ningxin: Bin and Wanming presented a few slides, I will present them 15:19:05 [Ningxin presents slides] 15:19:49 Ningxin: problem statement is MLOperand static shape constraint 15:21:10 ... goals to allow a single compiler MLGraph, model dimension as static sizes, defer shape validation to dispatch, allow frameworks learn concrete shapes 15:22:02 ... as for non-goals, we do not resolve shapes from input tensor data, we do not redefine operator semantics 15:23:32 [sample code shared for before and after with variable sequence length] 15:25:15 Ningxin: proposed WebIDL changes MLDimension, MLInputOperandDescriptor 15:26:30 ... input dimensions representations: static size, named dynamic dimension, unnamed dynamic dimension, unranked operands 15:27:11 ... computeShapes() API to perform early shape inference and folding without executing the graph 15:27:32 ... if the framework knowns the output tensor shape, this is an optional API to use 15:28:50 ... static vs. dynamic output shape example code demonstrates the computeShapes() usage 15:29:52 ... new operators introduced to fulfill the key use cases: shape(), squeeze(), unsqueeze(), reshapeTo2d(), and dynamic variants for existing shape-related ops 15:30:42 q+ 15:30:48 ... reshape() vs. reshapeDynamic(), the latter is a dynamic mirror of its static counterpart to reduce implementation complexity 15:30:52 q- 15:31:20 [WebIDL comparison diff] 15:31:27 q+ to ask about reshapeDynamic and restricting to only dynamic dimensions. 15:32:20 Ningxin: deferred validation at build time only check for the most basic errors, e.g. data type mismatch 15:32:35 ... vs. shape inference & validation at dispatch time 15:33:08 ... where runtime propagates concrete shapes over the whole graph and validates constraints 15:35:37 Ningxin: future consideration include bounded (min/maxSize) dimensions and fine-grained shape queries via rank() and dimension() 15:36:48 ... implementation status, Chromium POC with ORT backend, ORT WebNN EP POC, 56 real-world models from Transformers.js top model list validated 15:37:28 ... backend mapping discussed in the explainer, ORT, LiteRT and Core ML, welcoming contributions 15:37:29 q? 15:37:33 ack reillyg 15:37:33 reillyg, you wanted to ask about reshapeDynamic and restricting to only dynamic dimensions. 15:38:21 Reilly: a question on reshapeDynamic, it takes MLOperand that I assume is a tensor used as a shape, I think that makes sense, wondering if we want to restrict the dimension updates to only dimensions that are in fact dynamic 15:38:42 Ningxin: validation happens at dispatch time, input tensor specified by the user 15:38:59 ... validation of all shapes would be straight-forward, similarly to how we do that at build time 15:39:46 ... some operators are used to compute the shape, new dynamic shape comes from dynamic one, followed by some arithmetic operator to add a value to size, then shape() can produce a tensor containing the shape information 15:39:49 DwayneR has joined #webmachinelearning 15:40:25 ... when that shape comes to reshapeDynamic, at that time, we can do validation with all concrete values 15:40:37 ... dynamic dimensions would be specified by the user 15:40:39 q? 15:41:40 Reilly: about implementablity, sometimes this may require CPU fallback for graph segments that may change 15:42:28 Ningxin: we still hold WebNN validation at dispatch time to know it is safe, what you mentioned is up to the inference engine, some engines may offload back to the CPU 15:43:20 Reilly: I guess my questions is, we can do some validation ahead of time, can also do validation for specific shape, in reshapeDynamic variant we can't do validation of a specific shape because that is determined midway 15:43:40 Ningxin: we do shape compute at WebNN level before we pass to inference engine 15:43:41 q? 15:44:17 q+ 15:44:27 ack mtavenrath 15:44:55 MarkusT: thank you Ningxin & team for this work, I will implement this in RustNN to provide more implementation experience 15:45:48 Ningxin: we want to get the feedback from this group and implementability on LiteRT and Core ML at this stage 15:46:26 ... when the explainer is approved with the group, could we start landing the implementation in smaller bits then? 15:46:40 Reilly: yes, want to make sure se consider all possible security issues 15:47:24 Subtopic: WebGPU interop: buffering and device selection 15:47:32 Anssi: PR #942 15:47:33 https://github.com/webmachinelearning/webnn/pull/942 -> PR 942 Add initial WebNN-WebGPU Interop specification (by bbernhar) 15:47:49 Anssi: I believe Bryan is on a well-deserved vacation 15:47:53 ... we'll defer this topic for later 15:48:04 Subtopic: Low-precision floating-point data types 15:48:08 Anssi: issue #930 and PR #938 15:48:09 https://github.com/webmachinelearning/webnn/pull/938 -> PR 938 Add low-precision floating point data types explainer (by mklimenko-nv) 15:48:09 https://github.com/webmachinelearning/webnn/issues/930 -> Issue 930 RFE: Add support for more floating point low-precision ML data types (`bfloat16`, `fp8`, `nvfp4`) (by mtavenrath) [opset] [feature request] [Agenda+] 15:48:30 ... we've received new survey results to inform new data type selection since last discussion, table in Dwayne's comment updated: 15:48:33 -> https://github.com/webmachinelearning/webnn/issues/930#issuecomment-4410036511 15:48:34 https://github.com/webmachinelearning/webnn/issues/930 -> Issue 930 RFE: Add support for more floating point low-precision ML data types (`bfloat16`, `fp8`, `nvfp4`) (by mtavenrath) [opset] [feature request] [Agenda+] 15:48:54 Anssi: looking at the survey results, the group has a clearer view into low-precision data types to be supported in WebNN 15:48:59 ... based on these results, Mikhail from NVIDIA has contributed a Low Precision Data Types Explainer, ready for review in PR #938 15:49:02 -> Low Precision Data Types Explainer (preview) https://github.com/mklimenko-nv/webnn/blob/low-precision-fp/low-precision-data-types-explainer.md 15:49:43 Mikhail: we see low-precision data types important for WebNN 15:50:17 ... this explainer proposes: 15:50:41 ... - new WebNN data types for MLOperandDataType: bfloat16 and float8 (a shorthand for float8e4m3) 15:50:51 ... - a new scale descriptor for quantization, enum MLQuantizationScheme { "affine", "symmetric-float", "blockwise-float" } via MLQuantizationOptions.scheme 15:51:03 ... other proposed changes include: 15:51:16 ... - updates to the tensor limits table for allowed data types for different operands 15:51:22 ... - a simplified buffer validation mechanism for low-precision floating-point data types 15:51:37 Anssi: Dwayne has already provided review comments, and I encourage the other group participants to review and provide feedback on this important feature 15:51:38 q? 15:51:48 Anssi: any other comments or questions on this topic? 15:52:18 q? 15:53:12 Reilly: I have no concerns with this feature 15:53:37 MarkusT: block quantization, people have been asking for this, but not all backends support this, is this something the group cares for? 15:53:50 Reilly: how much we allow pre-quantization before building the graph 15:54:20 ... we could support a lot of input formats, dequantizing them before passing, but this changes performance and memory characteristics of the model 15:54:44 ... quantized before, backends would need to quantize or dequantize on their own? 15:55:46 Reilly: two approaches, either fully quantized, or effectively do loop transformation, moving quantization inside the loop in the kernel, as a memory bandwidth performance optimization 15:56:26 ... tradeoff of having WebNN implementation dequantize inputs that are in formats not supported by underlying framework, we're not getting the performance or memory benefit 15:57:19 MarkusT: if we accept that dequantization could happens this way, we could support more data types 15:58:35 Reilly: no strong opinion on this topic 15:59:04 MarkusT: do ORT and LiteRT support block quantization is the question 15:59:25 ... we're careful to propose a very limited set of data types 16:00:44 RRSAgent, draft minutes 16:00:46 I have made the request to generate https://www.w3.org/2026/08/13-webmachinelearning-minutes.html anssik 16:08:13 s/presented/produced 16:08:47 s/compiler MLGraph/compiled MLGraph 16:14:40 s/sure se/sure to 16:15:55 s/cares for/cares about 16:17:23 RRSAgent, draft minutes 16:17:25 I have made the request to generate https://www.w3.org/2026/08/13-webmachinelearning-minutes.html anssik 18:03:10 Zakim has left #webmachinelearning