13:56:54 RRSAgent has joined #webmachinelearning 13:56:54 logging to https://www.w3.org/2020/09/03-webmachinelearning-irc 13:57:00 Zakim has joined #webmachinelearning 13:57:04 RRSAgent, make logs public 13:57:08 Meeting: WebML CG Teleconference – 3 September 2020 13:57:19 Chair: Anssi 13:57:19 Agenda: https://github.com/webmachinelearning/meetings/blob/master/telcons/2020-09-03-agenda.md 13:57:23 Scribe: Anssi 13:57:28 scribeNick: anssik 13:57:37 Present+ Anssi_Kostiainen 13:59:43 Rama has joined #webmachinelearning 14:00:14 Present+ Rafael_Cintron 14:00:19 Present+ Ningxin_Hu 14:00:27 Present+ Ganesan_Ramalingam 14:00:54 RafaelCintron has joined #webmachinelearning 14:01:02 ningxin_hu has joined #webmachinelearning 14:01:41 Present+ Chai_Chaoweeraprasit 14:02:13 TOPIC: Workshop presentations and GH discussions 14:02:21 anssik: Workshop presentations are actively being discussed on GitHub. CG participants feedback has been appreciated, further engagement welcome. 14:02:34 -> https://www.w3.org/2020/06/machine-learning-workshop/presentations.html Workshop presentations 14:02:42 -> https://github.com/w3c/machine-learning-workshop/issues Workshop GH discussions 14:03:30 TOPIC: WebNN polyfill and samples 14:03:50 anssik: Discuss review feedback and suggestions for the foundational implementation 14:03:58 -> https://github.com/webmachinelearning/webnn-polyfill/pull/1 Add the foundation implementation (PR #1) 14:04:01 Chai has joined #webmachinelearning 14:05:19 ningxin_hu: thanks for the review comments 14:06:11 ... during the last two week we've been addressing the feedback and have done improvements per Ping's suggestions from TF.js API usage, for example 14:06:34 ... WebNN is a graph builder so need some clarifications how to map WebNN graph to TF operators 14:06:52 jonathan_ has joined #webmachinelearning 14:06:58 ... some bug fixing to be done in that area, another improvement is documentation, added are JS docs for the public API of the polyfill 14:07:10 paul_mcdaniel_msft has joined #webmachinelearning 14:07:15 ... it is lightweight since we have spec in place, rather than duplicate spec text 14:07:21 Present+ Paul_McDaniel 14:07:45 ningxin_hu: polyfill tracks the spec closely, so JS docs complement the spec, not duplicate 14:07:59 ... also unit tests based on Mocha were added 14:08:28 ... it would be good if Chai could review the unit tests, they are not perfect, but directional guidance welcome 14:08:48 Ping_Yu has joined #webmachinelearning 14:08:56 ... Anssi suggested hosting JS docs and unit tests via GH so those are added 14:09:01 Present+ Ping_Yu 14:09:33 q? 14:10:15 ningxin_hu: Ping had a question re API design itself, so we agreed to open a design issue for the spec instead of polyfill issue, any API design issues should be discussed in the spec repo 14:11:08 ... I will keep the first polyfill PR aligned with the current spec, so the proposal is to discuss any changes in WebNN spec repo first and then follow up with polyfill change that keeps up with the spec 14:12:30 anssik: are the mocha tests automatically or manually generated? 14:12:40 ningxin_hu: manually created 14:13:01 anssik: interested in figuring out if we can reuse mocha tests for w-p-t tests 14:15:55 ningxin_hu: worth opening issue about w-p-t testing plan 14:16:12 It would be good to unified the op correctness test at the platform level. 14:17:47 Ping_Yu: so my comment is for the op correctness, would be good to unify, polyfill is just one implementation, going forward there will be multiple native browser implementations that need to be tested 14:18:17 https://web-platform-tests.org/ 14:19:33 anssik: Discuss and review LeNet sample for handwritten digit recognition using WebNN 14:19:38 -> https://github.com/webmachinelearning/webnn-samples/pull/1 Add LeNet example (PR #1) 14:20:58 ningxin_hu: I acknowledge this example had a UI issue on narrow screens, will fix that 14:21:38 ... in this sample, I display the compilation time for the graph, also execution time (inference time actually) 14:22:03 ... this example can show the difference in performance if we run it on a native implementation 14:23:53 sorry, I have not had a chance to check it out 14:24:30 sorry, have also not had a chance to review LeNet on my end either. 14:24:32 one related question, what is the plan for benchmark? 14:25:40 Ping_Yu: in the long run it'd be good to have a benchmark for all the implementations 14:26:33 q+ 14:26:45 ningxin_hu: I'm only aware of framework-specific benchmarks 14:26:47 ack Chai 14:27:07 Chai: I think the benchmark is a good idea when the API becomes more stable 14:27:27 ... normally conformance and benchmark are done when you have a release, so you can test against a stable base 14:28:48 we shall look into mlperf standard for mobile or NNAPI benchmark 14:28:52 ... most trustworthy benchmarks are done by 3rd parties 14:28:57 https://mlperf.org/ is a common one 14:30:49 There is a team in google working on mlperf, I can chat with them on possible web mlperf 14:31:29 i'll take a look at lenet sample. took some time off last week. still catching up. 14:32:07 TOPIC: GRU and corresponding ops 14:32:40 anssik: Fill the operator gaps to support noise suppression first-wave models 14:33:00 ... Adding GRU and GRUcell operators to support GRU recurrent network. Defining a cell operator in addition to the network operator for added customization flexibility e.g. to support stacked cell recurrent network, etc. 14:33:06 Review PR: https://github.com/webmachinelearning/webnn/pull/83 14:33:13 Proposal to close noise suppression issue with PR #83: 14:33:18 https://github.com/webmachinelearning/webnn/issues/66 14:33:47 anssik: are we fine to close issue #66 now that PR #83? 14:33:52 Chai: will take a look 14:34:43 looks great ! 14:34:50 TOPIC: First-wave models and ops delta with WebNN API definition 14:35:01 anssik: Review the delta between the first-wave models ops and WebNN API surface: 14:35:09 [ ] clamp 14:35:09 [ ] globalAveragePool - Lowering to reducewindow, add and div? 14:35:09 [x] gru 14:35:09 [x] sigmoid 14:35:10 [ ] split - Lowering to slice? 14:35:10 [x] squeeze 14:35:40 anssik: Discuss which ops to add to the spec definition considering e.g. major platform support and performance implications. 14:35:46 q+ 14:35:51 ack Chai 14:36:04 Chai: globalAveragePool already supported 14:36:11 ... split is new 14:36:20 ... clamp need to be defined 14:36:48 ... with this delta, I'd like to ask again, how do we think about adding new ops before closing on 1st wave models and what's the criteria to add new ops? 14:38:11 anssik: my though is to work from use cases, to models, toward ops 14:38:11 https://github.com/webmachinelearning/webnn/blob/master/op_compatibility/first_wave_models.md 14:38:20 ... should review our use cases that they're still good 14:38:44 Chai: frameworks have model zoos that could be used as inspiration 14:39:07 ... 1st wave ops set is around 50, which is about half way, the remaining ops being fillers 14:39:15 ... so the questions is how to cut the first release 14:39:51 just FYI .. ONNX model zoo is here: https://github.com/onnx/models 14:41:30 Is there a guideline on what criteria the committee follows to determine what ops get to be added to the spec 14:41:51 RafaelCintron: no strong opinion regarding release scoping 14:41:56 again just FYI . tf.js model zoo is here (i think): https://www.tensorflow.org/js/models 14:42:14 paul_mcdaniel_msft: similarly, no strong opinion on release scoping 14:50:22 I have some comments 14:50:34 ack Ping_Yu 14:51:17 Ping_Yu: release without proper tests, people cannot be sure of conformance 14:51:29 q+ 14:51:54 +1 to having test suites and conformance 14:52:15 +1 14:52:19 +1 14:52:19 agreed. i would really like to have a test suite AND some reference implementations (backends) so that we know this really is viable before we publish our v1 api draft 14:52:23 anssik: we should aim to have a test suite for the opset we are about to release 14:52:28 this is why we also starting polyfill, samples and unit tests 14:53:36 q+ 14:53:48 ack Chai 14:53:49 q? 14:54:41 Chai: from execution point of view, maybe good to say we're opening a proposal for adding new ops for 1st wave, but define a timebox and process for adding new ops 14:56:34 q+ 14:57:24 q+ 14:58:20 PROPOSED RESOLUTION: Define criteria for adding new ops to the spec 14:58:48 PROPOSED RESOLUTION: Define criteria for adding support for new models 14:59:23 RESOLUTION: Define criteria for adding support for new models 14:59:27 q? 14:59:37 ack RafaelCintron 14:59:39 I would suggest define criteria for use case first instead of model 14:59:53 RafaelCintron: want to say, maybe soonish we should request TAG review 15:00:10 PROPOSED RESOLUTION: Request TAG feedback for WebNN API 15:00:15 (thinking out loud) it's almost like: step1 - the first wave of models identified. step2: tests and samples and polyfils for wave1. step3: Proof-of-concept implementations for wave1; backend (DirectML) and frontends (onnx.js / tf.js) to make sure our api holds for implementation. step4: publish our findings . 15:00:59 RESOLUTION: Request TAG feedback for WebNN API 15:01:20 ack? 15:01:23 q? 15:01:26 ack Ping_Yu 15:02:01 Ping_Yu: if our releases are MVP style, then people can start implementation, propose we minimize the models we include 15:02:25 ... also minimize the ops involved, so people can try out sooner, rather than expand the scope 15:02:42 ... another comment is, instead of focusing on models, focus on use cases 15:02:52 ... models come and go, there may be new architectures in the future 15:03:44 q+ 15:03:51 ack Chai 15:04:55 Chai: aiming for MVP is a good idea, but we need to also balance the appearance of the first draft of the API, since if the functionality is too minimal impact is not there, this is delicate balance, how to define a reasonable set of models, ops, so that it covers sufficient set of use cases 15:05:11 ... while allow implementers to start implementation early 15:05:27 ... I assume MVP here means the coverage we can successfully implement 15:06:09 ... the first milestone for WebNN, we're already past that, since we've worked on the API for over a year now, we should set the bar higher 15:06:14 My comment is on the first wave of models level not API level 15:07:16 we derive op set from the models 15:07:19 i like use cases -> model architectures -> ops. 15:07:24 q? 15:09:05 TOPIC: Adjourn 15:09:17 RRSAgent, draft minutes v2 15:09:17 I have made the request to generate https://www.w3.org/2020/09/03-webmachinelearning-minutes.html anssik 15:10:32 RRSAgent, make logs public 15:14:22 s/TAG feedback/TAG review/ 15:14:25 RRSAgent, draft minutes v2 15:14:25 I have made the request to generate https://www.w3.org/2020/09/03-webmachinelearning-minutes.html anssik 17:29:42 Zakim has left #webmachinelearning