04:56:11 RRSAgent has joined #webmachinelearning 04:56:11 logging to https://www.w3.org/2022/03/09-webmachinelearning-irc 04:56:14 RRSAgent, make logs Public 04:56:14 please title this meeting ("meeting: ..."), anssik 04:56:16 Meeting: WebML CG Teleconference – 9 Mar 2022 04:56:21 Chair: Anssi 04:56:31 Agenda: https://github.com/webmachinelearning/meetings/blob/master/telcons/2022-03-09-cg-agenda.md 04:56:31 Scribe: Anssi 04:56:36 scribeNick: anssik 04:56:41 scribe+ Jonathan 04:56:47 Present+ Anssi_Kostiainen 04:56:54 RRSAgent, draft minutes 04:56:54 I have made the request to generate https://www.w3.org/2022/03/09-webmachinelearning-minutes.html anssik 05:00:17 Jonathan_Bingham has joined #webmachinelearning 05:00:27 Present+ Andrew_Moylan 05:00:39 Present+ Jonathan_Bingham 05:00:41 honglin has joined #webmachinelearning 05:00:45 Present+ Honglin_Yu 05:01:01 Present+ Joe_Bowser 05:01:17 Present+ Jim_Pollock 05:02:06 Andrew_Moylan has joined #webmachinelearning 05:02:17 qjw has joined #webmachinelearning 05:03:03 Present+ Shafron 05:03:07 Present+ Qjw 05:03:27 Present+ Tom_Shafron 05:03:30 jim_pollock has joined #webmachinelearning 05:04:07 RRSAgent, draft minutes 05:04:07 I have made the request to generate https://www.w3.org/2022/03/09-webmachinelearning-minutes.html anssik 05:04:53 Present+ Sami_Kyostila 05:05:10 anssik: does the agenda look good? 05:05:16 Sami has joined #webmachinelearning 05:05:21 Topic: Model Loader API 05:05:22 ... [silence means yes ;-)] 05:05:28 -> How to scribe https://github.com/webmachinelearning/meetings/blob/main/scribe-howto.md 05:05:35 Subtopic: Versioning 05:06:11 -> https://www.w3.org/2022/01/12-webmachinelearning-minutes.html#t02 minutes https://www.w3.org/2022/01/12-webmachinelearning-minutes.html 05:06:20 anssi: how to version the API for supported ops and formats was an open question from last time 05:06:55 honglin: we may need to support different versions of the backend 05:07:05 ... currently we're thinking of the version of TF Lite for the prototype 05:07:28 ... we're concerned about, in the future, if there are powerful new ops, but it has to be disabled, the version may not be enough 05:07:52 ... it may not be possible to fully support the backend, but it will need to be standardized for the clients 05:08:09 anssi: can you open a new github issue for this for async feedback? 05:08:21 ... not all of the stakeholders are here today 05:08:46 ... any rough sketch of a proposal? 05:09:09 ... it's briefly mentioned in the Explainer 05:09:16 q+ 05:09:24 ack Jonathan_Bingham 05:09:40 Jonathan_Bingham: I think this topic is related to another agenda item, question on model formats 05:10:05 ... in this prototype implementation TFLite flatbuf is the format and TF Runner an impl detail, the API abstracts over this backend 05:10:18 ... perhaps the most natural way to do version is in terms of model format 05:10:29 ... then question on op set a particular model supports, is that enough? 05:11:07 q? 05:11:09 anssi: agree, let's connect the topics in the github issue 05:11:22 Subtopic: Streaming inputs 05:12:02 honglin: this is also beyond the current state. for some APIs like translation or speech to text, the output might not be ready immediately 05:12:24 ... for speech recognition, you keep sending input. when the model thinks it's a complete sentence, it will give outputs 05:12:35 ... there may need to be a callback to the model, rather than the current interface 05:12:54 ... for now, we're not considering it. an API extension may be required 05:13:00 q? 05:13:05 q+ 05:13:12 ack qjw 05:13:36 jiewei: how is the speech recognition model implemented under the hood? 05:13:52 ... maybe the event should be handled by javascript rather than the model loader 05:14:30 RRSAgent, draft minutes 05:14:30 I have made the request to generate https://www.w3.org/2022/03/09-webmachinelearning-minutes.html anssik 05:14:34 honglin: that might be inefficient. for speech recognition in ChromeOS, the result is sent from the model spontaneously. it's not a TF Lite model in this example. but in the future TF Lite could support it. 05:14:48 ... maybe provide 2 functions: data feeding, and result accepting 05:14:57 ... the model will call it actively, by itself 05:15:00 scribe+ Jonathan_Bingham 05:15:29 sami: it will be good to have concrete models to look at. it's not a blocker currently 05:15:57 (or was that Jiewei again?) 05:16:41 q? 05:16:50 anssi: let's gather feedback in github again, outside of this call 05:17:03 Subtopic: Model format 05:17:30 anssi: my perspective: thanks to Honglin and others' work, we're at the prototyping phase 05:17:45 ... my expectation is the implementation experience will help inform the standard model format discussion 05:18:12 "The Model Loader API needs a standard format supported across browsers and devices for broad interoperability." 05:18:14 ... adoption of the model loader spec as a working group deliverable, or official standard, is conditional to agreeing on a standard format 05:18:18 -> WebML WG Charter: Tentative Deliverables https://www.w3.org/2021/04/web-machine-learning-charter.html#tentative 05:18:38 q+ 05:19:01 ... TF Lite format is the choice for experimentation. that's great. we have to start somewhere. 05:19:28 ... let's discuss the next steps to move toward a standard format. 05:19:33 q? 05:19:55 ... what is the canonical reference for the TF Lite format used in the prototype? 05:20:11 q? 05:20:13 ... is there a spec, or is the implementation the de facto description? 05:20:24 ack Jonathan_Bingham 05:20:45 Jonathan_Bingham: can provide link to TFLite flat buffer format as a reference 05:20:56 ... that can probably contribute toward a standard 05:21:17 ... I raised my hand for queue because I think Raphael from Msft would be a great person to summarize position from their side 05:21:50 ... the developers needs a single format to work against and be confident it works across all devices and browser, developer ergonomics issue 05:21:59 ... we at Google think the same 05:22:26 ... then how we move forward from this prototype to something that could work for the wider community, a good topic, would love for Ningxin and Msft folks to chime in on this topi 05:22:30 s/topi/topic 05:22:57 ... proposal, let's look at Ningxin's tests for WebNN, he has looked at a few formats and tried to get them run on top of WebNN 05:23:16 ... can we find a common intersection, starting point would be to explore what exists now 05:24:12 ... I'm not suggesting Model Loader understands all those format, but that we can translate those formats into a format that Model Loader understands 05:24:45 anssi: that's a pragmatic approach. i agree it's about developer ergonomics. 05:24:52 ... licensing and other concerns we can figure out. 05:25:06 ... the purpose of standards is to have interoperability. 05:25:47 ... probably we'll never get to a world where there is one format only. we'll need tools to work between formats. 05:26:20 ... as with the previous topics, let's document in a github issue and get input from Ningxin and others. 05:26:47 ... we can follow up with Rafael and Ningxin 05:27:07 jonathan: i'll file the github issue 05:27:33 q? 05:27:34 anssi: there's mention in the Explainer, but it will be easier to get discussion in an Issue 05:28:30 q? 05:28:54 Subtopic: Support for non-IETF 754 floating point types 05:29:01 https://github.com/tensorflow/tensorflow/blob/master/tensorflow/lite/schema/schema.fbs 05:29:14 -> Open question: support for non-IETF 754 float point types #23 https://github.com/webmachinelearning/model-loader/issues/23 05:30:14 jiewei: neither webnn nor model loader explains how to support it in their API 05:30:25 ... what's the plan? 05:30:29 -> WebNN API: Support for non-IETF 754 float point types #252 https://github.com/webmachinelearning/webnn/issues/252 05:31:07 -> Web & ML workshop discussion: Support for Float16 in JS & WASM environments https://github.com/w3c/machine-learning-workshop/issues/64 05:31:43 anssi: there was an earlier question for bfloat 16, which is mostly used for training accelerators 05:31:51 ... it's non standard currently and some concerns were raised 05:32:24 ... is this type also for training? does it improve inference performance too? 05:32:30 jiewei: that's an experiment we can do 05:32:42 ... i'm pretty sure it's not just for training, though it does improve training speed 05:33:04 ... it applies to inference, with dedicated accelerators. the speedup would be kind of the same. 05:33:18 ... it's worth experimenting whether the speedup is user-perceptible 05:33:50 anssi: how big of an effort would it be to generate and share this data? 05:34:03 jiewei: we might be able to do experiments with nvidia graphics cards 05:34:22 honglin: float16 can be easily supported, since the model loader accepts binary buffers 05:34:50 ... we want to have an idea of how webnn would support it, and then we can make it consistent with model loader 05:35:22 anssi: jiewei pointed out that the discussion is different depending on the API 05:35:32 ... for web nn, the discussion is how to use the types when building the graph 05:35:47 ... for model loader, it's about how to use the types during IO 05:35:58 honglin: in model loader, execution is internal. correct. 05:36:26 jiewei: if we want to interoperate between model loader and webnn, how do we pass the types between the two? 05:36:41 ... do we convert to a common format? or use a standard struct? 05:37:06 anssi: you proposed earlier that this could happen transparently, and auto-convert based on the accelerator. not sure if you'd get the performance benefit 05:37:25 jiewei: this applies to webnn; model loader can internally auto-convert 05:37:44 ... for webnn, the non-standard format would be for just part of the graph 05:38:06 anssi: you had another proposal about the API specifying acceptable quantization levels 05:38:42 jiewei: i can give an example of the improvement. if we quantize images with fp16, the power consumption can be reduced by 50% with performance the same 05:39:05 ... none of the APIs provide a way for developers to specify that 05:39:26 ... for some accelerators, it may provide a speedup. depends on the chips we're executing on. 05:39:37 anssi: what's the state of the prototype with respect to these types? 05:39:49 jiewei: it doesn't provide this option 05:40:21 anssi: we can validate the expected performance improvement, and that would motivate people on webnn to find a solution. 05:40:59 ... you can use the existing issues, and share data in the issue 05:41:15 ... i can. nudge the issue in the Working Group to get reactions 05:41:18 q? 05:42:21 Jonathan_Bingham: ChromeOS run on lower end devices where low power consumption is important, we probably don't have specific apps that are blocked on these types 05:43:29 anssik: would the extra types pose a privacy risk? 05:43:47 ... eg, distinguish between Apple's neural engine vs nvidia gpu 05:44:46 ... the first priority is to share data that the types would improve performance. the web gpu group is discussing similar things. 05:45:23 RRSAgent, draft minutes 05:45:23 I have made the request to generate https://www.w3.org/2022/03/09-webmachinelearning-minutes.html anssik 05:45:54 Subtopic: WebNN API status update 05:46:05 honglin: what's the current state of webnn? our sydney team can't join the working group meeting 05:46:16 anssik: i'll share links. 05:46:56 -> Intent to Prototype: Web Neural Network API (WebNN) https://groups.google.com/a/chromium.org/g/blink-dev/c/PD6TDMDS9mg/m/N3MrigMyCAAJ 05:47:19 -> WebNN implementation in Chromium https://docs.google.com/document/d/1KDVuz38fx3SpLVdE8FzCCqASjFfOBXcJWj124jP7ZZ4/edit 05:47:52 ... the group has been focused on candidate recommendation spec. it's basically the feature complete state. 05:48:00 the target is to achieve it this year. 05:48:13 -> WebNN API spec Candidate Recommendation readiness tracker https://github.com/webmachinelearning/webnn/issues/240 05:49:46 -> issues with a "cr" label https://github.com/webmachinelearning/webnn/labels/cr 05:51:05 ... other requirements to get to cr: we need a cross-browser test suite with web platform test (wpt), which chromium runs in continuous integration 05:51:25 ... the test suite confirms that the implementation conforms to the spec. 05:51:36 ... that's a major deliverable 05:51:53 ... the group has also started work on a pure javascript implementation without 3rd party dependencies 05:52:04 -> Add WebNN baseline implementation for first-wave ops #1 https://github.com/webmachinelearning/webnn-baseline/pull/1 05:52:28 -> WebNN-native https://github.com/webmachinelearning/webnn-native/ 05:52:30 ... another project is webnn native 05:53:03 ... if you're familiar with webgpu implementations, it's like the webnn version of dawn 05:53:28 ... there's parallel work on scoping, polishing the implementation, wider review 05:53:56 honglin: because we're going to submit some CLs in a couple weeks, and we share some data structs with webnn, we may need to collaborate in the directory structure in blink 05:54:14 ... that's why i was asking about the status of webnn, because we want to coordinate 05:54:37 ... if they're going to submit later, we may just go ahead first 05:54:54 anssik: the aim is to have something behind a flag this year 05:55:26 ... that means it can still change 05:56:00 Jonathan_Bingham: are you going to start with a developer trial or go straight to an origin trial? 05:56:15 anssik: developer trial comes before the origin trial in the chromium launch process 05:56:35 ... we'll start with that, with a feature flag 05:56:57 ... the origin trial is for real production use with less tech-savvy developers 05:57:26 ... origin trials are not supposed to enable a feature for all users; if too many are using it, the trial will be disabled 05:57:37 ... developer trial is the goal for this eyar 05:58:22 RRSAgent, draft minutes 05:58:22 I have made the request to generate https://www.w3.org/2022/03/09-webmachinelearning-minutes.html anssik 05:59:12 Jonathan_Bingham: for model loader, dev trial is also the goal, starting very limited, with Chrome OS support only 05:59:29 ... for a wider dev trial, we'll want to get help from Chrome or TensorFlow 05:59:35 ... likely it will be late this year at the earliest 05:59:51 honglin: the chrome OS team has worked on the handwriting API before and has experience 06:00:15 anssik: our first origin trial for new sensor APIs was one of the first by non-Google people 06:00:23 ... this isn't our first attempt 06:00:58 q? 06:01:21 anssik: huge thanks Jonathan for scribing! 06:03:20 RRSAgent, draft minutes 06:03:20 I have made the request to generate https://www.w3.org/2022/03/09-webmachinelearning-minutes.html anssik 06:04:00 s/Subtopic: WebNN API status update/Topic: WebNN API status update 06:04:07 RRSAgent, draft minutes 06:04:08 I have made the request to generate https://www.w3.org/2022/03/09-webmachinelearning-minutes.html anssik 06:32:55 dom has joined #webmachinelearning 07:15:33 i/Topic: Model Loader API/scribe+ Jonathan_Bingham 07:15:39 RRSAgent, draft minutes 07:15:39 I have made the request to generate https://www.w3.org/2022/03/09-webmachinelearning-minutes.html dom 07:16:49 s| https://github.com/tensorflow/tensorflow/blob/master/tensorflow/lite/schema/schema.fbs|| 07:17:05 i|Subtopic: Support for non-IETF 754 floating point types|-> TFLite FlatBuffers format https://github.com/tensorflow/tensorflow/blob/master/tensorflow/lite/schema/schema.fbs 07:17:07 RRSAgent, draft minutes 07:17:07 I have made the request to generate https://www.w3.org/2022/03/09-webmachinelearning-minutes.html dom 07:17:34 s|https://github.com/tensorflow/tensorflow/blob/master/tensorflow/lite/schema/schema.fbs|| 07:17:35 RRSAgent, draft minutes 07:17:35 I have made the request to generate https://www.w3.org/2022/03/09-webmachinelearning-minutes.html dom 08:39:54 dom has joined #webmachinelearning 11:02:02 dom has joined #webmachinelearning 11:34:56 dom has joined #webmachinelearning 11:48:27 Zakim has left #webmachinelearning 12:56:16 dom has joined #webmachinelearning 13:19:14 zkis has joined #webmachinelearning 13:33:29 AramZS has joined #webmachinelearning