14:00:18 RRSAgent has joined #webmachinelearning 14:00:18 logging to https://www.w3.org/2020/05/28-webmachinelearning-irc 14:00:24 Zakim has joined #webmachinelearning 14:00:27 RRSAgent, make logs public 14:00:33 Meeting: WebML CG Teleconference – 28 May 2020 14:00:38 Chair: Anssi 14:00:42 Agenda: https://github.com/webmachinelearning/meetings/blob/master/telcons/2020-05-28-agenda.md 14:00:46 Scribe: Anssi 14:00:51 scribeNick: anssik 14:01:09 present+ Ningxin_Hu 14:01:20 Rama has joined #webmachinelearning 14:01:52 Rafael has joined #webmachinelearning 14:02:20 Present+ Anssi_Kostiainen 14:02:32 Present+ Ganesan_Ramalingam 14:02:41 Present+ Ping_Yu 14:02:50 Present+ Rafael_Cintron 14:03:01 Present+ Gabe_Esteven 14:03:07 gabe_intel has joined #webmachinelearning 14:03:14 RRSAgent, draft minutes v2 14:03:14 I have made the request to generate https://www.w3.org/2020/05/28-webmachinelearning-minutes.html anssik 14:03:23 hello! 14:03:53 Present+ Chai_Chaoweeraprasit 14:03:53 Chai has joined #webmachinelearning 14:06:23 TOPIC: Intersection between XLA & ONNX 14:07:11 anssik: deferring this topic since Paul is not attending today 14:07:22 TOPIC: ReLU and max WebNN API definitions 14:07:36 anssik: PR #62 merged 14:07:43 -> https://github.com/webmachinelearning/webnn/pull/62 Add relu and max (PR #62) 14:08:14 anssik: For the record, I'll defer my review to Chai and Rama when they're available to review, so consider my review optional 14:10:31 ningxin_hu: In this PR we have both high-level and low-level ops, ReLU is high-level and max is low level, created also a follow-up PR for LeakyReLU high-level op and min low level op 14:10:49 Self Intro: With W3C since 2013. Focus on accessibility. Developing ML model to simplify web text. Interested in AI bias. 14:10:56 TOPIC: LeakyReLU and min WebNN API definitions 14:11:04 anssik: Let's discuss the follow-up PR for leakyRelu and min: 14:11:22 https://github.com/webmachinelearning/webnn/pull/63 14:11:33 -> https://github.com/webmachinelearning/webnn/pull/63 Add leakyRelu and min (PR #63) 14:12:35 ningxin_hu: LeakyReLU is a variant of rectified linear function, this is a high-level op, links to its definition and how it decomposes into low level ops in the proposaö 14:12:45 s/proposaö/proposal 14:14:46 TOPIC: Variations of supported convolution type 14:15:05 anssik: Discuss two variants of the convolution operation we should consider: 14:15:05 14:15:05 ... - Grouped convolution 14:15:05 ... - Transposed convolution 14:15:10 -> https://github.com/webmachinelearning/webnn/issues/60 https://github.com/webmachinelearning/webnn/issues/60 More variations of supported convolution type needed (issue #60) 14:15:48 Chai: This proposal came from the fact we try to spec a set of first-wave model ops, one is MobileNet 14:16:05 ... at that time we decided to punt grouped conv, but turns out it is important 14:16:27 ... it is used largely, in 2-pass convolution in MobileNet 14:17:40 Chai: Tranposed convolution, used in autoencoder or models generating high resolution image 14:18:05 ... Also known as "backward" convolution 14:18:17 ... to compute convolution gradient during model training 14:18:51 s/it is/Grouped convolution 14:19:46 Chai: 1D and 3D are different enough to warrant its own operators i.e. conv1d and conv3d 14:20:15 Chai: submitted a PR https://github.com/webmachinelearning/webnn/pull/64 2D pooling and reduce ops 14:22:03 anssik: any comments or feedback? 14:22:09 [none heard] 14:22:56 please also review PR for pooling and reduction https://github.com/webmachinelearning/webnn/pull/64 14:23:05 ningxin_hu: for this issue, I know, as Chai mentioned, I raised open to support 1D and 3D convolution, but depending 1st-wave models we only require 2D conv that we already have 14:23:26 ... as an issue with MobileNet, cannot be supported by current Conv2D op 14:23:49 ... agreed to add grouped conv to existing conv2d to fix issue of MobileNet with respect to 1st-wave models 14:24:10 ... then can decide whether to support transpose in next steps 14:24:53 Chai: transpose used in AlexNet, less urgent, 3D should prob be a separate op, TF also has it as a separate op 14:25:00 ... Agree with Ningxin's proposal 14:25:21 ningxin_hu: if no objections, I can create a PR to add grouped conv support in existing op definition 14:25:45 does the group id makes it a generic conv op? 14:26:59 Ping: without the need to break them down into low-level primited 14:27:37 Chai: I think it makes sense to have grouped support in the same op, in transpose you'd need additional step before running conv 14:28:02 ... 1D and 3D do not necessarily change the definition of ops, but need to accept 5D tensors for 3D case, can be thought of as a separate op 14:28:28 ... feel like grouped conv is simple to implement 14:28:46 ping: my questions, should we make it more generic, w/o need to break it down into different dimentions 14:28:54 ... should the API be high level? 14:29:08 ... TF has multiple ops for that 14:29:21 ... there's a new proposal in TF to combine all into one 14:29:48 Chai: the concern of having a really big op some op unable to handle some cases 14:29:56 ... if there are too many features in one big op 14:30:20 ... I work on DirectML so no problems there, but other APIs may not be able to do all these variants 14:32:19 PROPOSED RESOLUTION: Add grouped convolution support to existing conv2d definition in WebNN API 14:33:23 Chai: agree with proposal 14:33:38 RESOLUTION: Add grouped convolution support to existing conv2d definition in WebNN API 14:33:54 TOPIC: Noise suppression use case 14:34:19 anssik: Belem submitted a PR: 14:34:24 -> https://github.com/webmachinelearning/webnn/pull/61 [use case] Noise Suppression (PR #61) 14:34:58 anssik: To recap, our work and specifically op priorities in WebNN API are informed by use cases we've solicited in this group. 14:35:18 ... the are documented in spec in prose and in a table that breaks them down by models 14:35:23 -> https://webmachinelearning.github.io/webnn/#usecases WebNN API use cases 14:35:28 -> https://github.com/webmachinelearning/webnn/blob/master/op_compatibility/first_wave_models.md WebNN API first-wave models derived from the use cases 14:36:17 anssik: As you're probably aware so-called intelligent collaboration use cases have increased in importance during this time when people work from home 14:36:36 ... We've committed to update the use cases to ensure they represent the demands of the users, and we think noise suppression is an important use case we should add to the WebNN API use cases: 14:36:52 anssik: it reads as follows: "A web-based video conferencing application records received audio streams, but usually the background noise is everywhere. The application leverages real-time noise suppression using Recurrent Neural Network such as [RNNoise] for suppressing background dynamic noise like baby cry or dog barking to improve audio experiences in video conferences." 14:37:00 anssik: any concerns in adding this use case for the WebNN API? 14:37:07 zkis has joined #webmachinelearning 14:37:58 I can take a look at the PR. The use case seems relevant. 14:38:19 Rafael: I'm fine adding noise suppression as a use case for the WebNN API 14:38:22 is noise cancellation supported at the OS level? 14:39:33 ping: does the web browser need this feature? 14:39:55 ... if the noise cancellation is done on OS level do we need to do this in the web? 14:40:14 Chai: depends on what the model does, some models need FFT to do separation of content and noise 14:40:43 .... if audio pipeline does that already, then fine, but if the model itself does transforms for performance reasons, then WebNN API needs to take care of that as well 14:41:03 Rafael: does adding this use case mean we need to add a bunch of new ops? 14:41:22 Chai: I suggest look at the proposed model rnnoise and go from these 14:41:59 ningxin_hu: one comment for noise cancellation usage, it is a long running task and it is very power sensitive, I know there's some hardware that helps with this usage, optimized for this use case 14:43:45 ... I can look into specialized hardware optimized for these use cases 14:44:23 PROPOSED RESOLUTION: Adopt the noise suppression use case, evaluate rnnoise model for required ops 14:45:07 RRSAgent, draft minutes v2 14:45:07 I have made the request to generate https://www.w3.org/2020/05/28-webmachinelearning-minutes.html anssik 14:45:29 RESOLUTION: Adopt the noise suppression use case, evaluate rnnoise model for required ops 14:46:05 TOPIC: Model Loader API 14:46:13 anssik: Last but not least, Jonathan will share with us the progress on the spec and prototype 14:46:22 -> https://github.com/webmachinelearning/model-loader GH repo 14:46:29 -> https://webmachinelearning.github.io/model-loader/ Spec strawman 14:46:57 Jonathan: We're interested and making progress, trying to figure out who at Google does the prototyping work 14:47:11 ... discussed with Chrome GPU and Android NN and ChromeOS teams 14:47:29 ... interest from developers in Google and 3rd party products to run the same ML models in native Android and web apps 14:47:50 ... Android apps developed with TF Lite 14:48:00 s/Lite/Lite models 14:48:20 ... ChromeOS team is interested in supporting TF Lite models (too?) 14:48:42 paul_mcdaniel_msft has joined #webmachinelearning 14:49:16 ... to get started, they're interested in Model Loader API, OK with the fact TF Lite model format won't be a "standard" model format, interested to contribute engineering resources for TF Lite Model Loader API PoC 14:49:34 Present+ Jonathan_Bingham 14:50:14 Jonathan: starting the coming weeks, we have an engineer from CrOS team working with GPU team to prototype Model Loader API as we have in the GH repo 14:50:26 ... any issues to be reported in the spec repo 14:51:06 ... we want to connect the effort with WebNN API, align in the longer term between the two APIs being worked on in this group 14:51:45 ... like to get conversation going, want to have engineers working on PoC come to this group to introduce the plan and connect with this group 14:52:14 ... the intention is not to proposed TF Lite as "the standard format", that's just for PoC purposes 14:52:31 ... open to explore how to make this support ONNX and other model formats 14:52:40 q+ 14:52:48 Present+ Paul_McDaniel 14:53:05 ack Rafael 14:53:28 Rafael: we at Microsoft, also have a plan to prototype Model Loader API 14:53:36 ... we should collaborate and join forces on this PoC exploration 14:53:41 ... also partner interest 14:54:01 q+ 14:54:08 ack ningxin_hu 14:54:20 ningxin_hu: very good plan! thanks for sharing 14:54:33 q+ 14:54:33 ... Jonathan mentioned long-term goal to align builder and loader APIs 14:54:49 ... there's some conversation how to align these re input and output, execution 14:55:06 ... if you're interested, we can open an issue to discuss this alignment in this group, in an open space 14:55:28 ack Chai 14:56:46 Chai: I agree this is a good effort, once we know what models we want to do PoC for, we should add them to the set of models WebNN supports 14:56:58 q+ 14:56:58 q? 14:57:02 ack ningxin_hu 14:57:12 https://github.com/webmachinelearning/webnn/blob/master/op_compatibility/first_wave_models.md 14:57:26 ningxin_hu: want to echo Chai's point, for first-wave models table we list the models in two formats, one in ONNX one in TF Lite 14:57:45 ... if Google prototypes Model Loader API please review this table 14:58:00 ... maybe we can define next-wave models 15:00:16 https://github.com/webmachinelearning/webnn/pull/52 15:01:02 TOPIC: Adjourn 15:01:06 RRSAgent, draft minutes v2 15:01:06 I have made the request to generate https://www.w3.org/2020/05/28-webmachinelearning-minutes.html anssik 15:01:56 Present+ John_Rockford 15:02:00 RRSAgent, draft minutes v2 15:02:00 I have made the request to generate https://www.w3.org/2020/05/28-webmachinelearning-minutes.html anssik