08:57:24 RRSAgent has joined #webmachinelearning 08:57:24 logging to https://www.w3.org/2018/10/24-webmachinelearning-irc 08:57:29 Guru has joined #webmachinelearning 08:57:31 Zakim has joined #webmachinelearning 08:57:32 RRSAgent, make logs public 08:57:37 Meeting: Machine Learning for the Web breakout at TPAC 2018 08:58:12 RRSAgent, draft minutes v2 08:58:12 I have made the request to generate https://www.w3.org/2018/10/24-webmachinelearning-minutes.html anssik 08:58:13 ningxinhu has joined #webmachinelearning 08:58:21 Present+ NingxinHu 08:58:39 RRSAgent, make logs public 08:59:45 fabien_gandon has joined #webmachinelearning 09:00:00 myles_ has joined #webmachinelearning 09:00:03 present+ Fabien Gandon 09:00:14 johnchen has joined #webmachinelearning 09:00:17 kajimoto_ has joined #webmachinelearning 09:00:23 Present+ myles_ 09:00:29 Present+ Anssi_Kostiainen 09:00:36 -> https://www.w3.org/community/webmachinelearning/ Machine Learning for the Web Community Group 09:00:40 Present+ kajimoto 09:00:54 -> https://webmachinelearning.github.io/charter/ Machine Learning for the Web Community Group Charter 09:01:38 tidoust has joined #webmachinelearning 09:01:50 Present+ Francois_Daoust 09:01:57 scribenick: tidoust 09:02:23 halo has joined #webmachinelearning 09:02:24 anssik has changed the topic to: https://www.w3.org/wiki/TPAC/2018/SessionIdeas#Machine_Learning_for_the_Web 09:03:11 Kangz has joined #webmachinelearning 09:03:17 Chair: Anssi 09:03:19 Hi, this is Corentin Wallez 09:03:22 RRSAgent, draft minutes v2 09:03:22 I have made the request to generate https://www.w3.org/2018/10/24-webmachinelearning-minutes.html anssik 09:03:38 Huangweichai has joined #webmachinelearning 09:03:38 Yanni has joined #webmachinelearning 09:03:53 Agenda: https://www.w3.org/wiki/TPAC/2018/SessionIdeas#Machine_Learning_for_the_Web 09:03:55 hirata has joined #webmachinelearning 09:04:19 sangchul has joined #webmachinelearning 09:04:33 Barbara_Intel has joined #webmachinelearning 09:04:41 dom has joined #webmachinelearning 09:04:57 huangweichai_ has joined #webmachinelearning 09:05:16 Topic: Introduction 09:05:28 sangwhan has joined #webmachinelearning 09:06:11 iank_ has joined #webmachinelearning 09:06:27 anssik: Welcome to the Machine Learning for the Web breakout session at TPAC! I'll be giving a quick background on this idea. 09:06:36 ktoumura has joined #webmachinelearning 09:06:42 Lin has joined #webmachinelearning 09:06:47 zolkis has joined #webmachinelearning 09:06:51 Youngsun has joined #webmachinelearning 09:07:04 ... We proposed and created a Community Group a few weeks ago. Before that, we did some incubation in the Web Platform Incubator Community Group (WICG) 09:07:04 present+ Zoltan_Kis 09:07:06 jungkees has joined #webmachinelearning 09:07:08 present +Kunihiko_Toumura 09:07:08 hyojin has joined #webmachinelearning 09:07:11 ... This helped set the scope of the work. 09:07:29 Present+ Dominique_Hazael-Massieux 09:07:40 ... Basically, the work is scoped to neural networks. Low-level API that can be implemented accross platforms to do client-side inference. 09:07:48 RRSAgent, draft minutes 09:07:48 I have made the request to generate https://www.w3.org/2018/10/24-webmachinelearning-minutes.html dom 09:07:50 ... Why do we want to do that? 09:08:28 MichaelGordon has joined #webmachinelearning 09:08:29 ... Getting closer to the platforms improves performance. For object recognition and immersive computation, that's crucial. 09:08:47 ... But there are also many computation needs that you need to do on the client. 09:08:53 GeunHyung has joined #webmachinelearning 09:09:00 ... I would like to start with a demo. 09:09:03 Present+ MichaelGordon 09:09:14 yang_gu has joined #webmachinelearning 09:09:47 https://huningxin.github.io/webml-examples/ 09:09:54 present+ 09:10:08 ... The demo works on your Web browsers right now because we're using a polyfill built on top of WebGL, and later WebGPU. 09:10:26 ningxinhu: [going through demo] 09:10:36 Yaohua_Wu has joined #webmachinelearning 09:10:39 Guru has joined #webmachinelearning 09:10:49 ... Model gets downloaded first. In this case, cached through Service Worker. 09:11:20 ... The demo uses Koko(sp?) that can recognize about 100 objects. 09:11:27 jmann has joined #webmachinelearning 09:11:31 ... s/Koko(sp?)/Coco/ 09:11:38 Present+ Jatinder Mann 09:12:16 ... The WebML propotype uses Chromium. Two polyfill implementations: WebAssembly and WebGL. 09:12:42 ... WebAssembly is much slower, because WebAssembly lacks SIMD features that allow to parallelize computation. 09:12:54 sangchul_ has joined #webmachinelearning 09:13:17 ... WebGL2 is faster. WebML is the fatest. 09:13:34 anssik: The prototype is quite convincing in terms of performance gains with WebML. 09:13:49 ... We have a F2F meeting of the CG this Friday afternoon. 09:13:59 ... We'd like to hear from your use cases to start with. 09:14:30 ... The primary user of the current API is authors of frameworks, e.g. TensorFlow.js 09:14:54 Topic: Overview of API 09:15:14 lin has joined #webmachinelearning 09:15:34 ningxinhu: The scope is that we want to do Edge AI computing. 09:15:40 present+ Sangchul_Ahn 09:15:44 present+ 09:15:46 ... [showing presentation slides] 09:16:00 ... Sentiment anaylsis, etc. 09:16:25 q+ to suggest better naming, ask about rationale of the "whitelisted" layers, choice of integer constants over string enums, choice of procedural programming practices for model definition, output layer being re-used being somewhat non-idiomatic javascript, and more 09:16:29 RRSAgent, draft minutes v2 09:16:29 I have made the request to generate https://www.w3.org/2018/10/24-webmachinelearning-minutes.html anssik 09:16:44 ... JS Machine Learning frameworks such as TensorFlow.js, Keras.js, OpenCV.js provide the capabilities to do the inference on the client. 09:17:00 ... The models you've trained can be reused in different frameworks. 09:17:45 ... Some advantages to edge AI: latency, availability, privacy, and also cost as processing is delegated to the client. Users use their computation capabilities. 09:18:29 ... Gain of performance is also on the power consumption side. Current JS-based solutions consume a lot of power, especially on mobile devices. 09:18:59 ... We prepared some benchmark to compare performances. 09:19:39 ... I will not go into much details about the data, but the takeaway is that the gap between a Web-based and native solution is huge. 09:20:18 ... Even comparing a solution that uses WebGPU and a WebML approach, there's still a 4 times gain. 09:21:28 ... Looking at existing solutions today, CPU Deep Learning (DL) optimizations are not exposed to applications. That's crucial, in particular on mobile devices. 09:21:49 ... Also dedicated DL hardware accelerators. 09:22:24 ?1: Some use cases where deep learning is not the right approach. Why don't you try to support other kinds of algorithms? 09:23:09 ... Use case around high-res images 09:23:44 ningxinhu: My understanding is that DL needs low-res images, because training models would not work too well with high-res images. 09:24:09 anssik: We wanted to be practical with the scope. Minimal approach of what would enable use cases fast. 09:24:14 sangchul_ has joined #webmachinelearning 09:24:47 Yanni has joined #webmachinelearning 09:24:52 ?1: There are use cases where you don't have all of the data to train the models, and Web developers will run into the issue. 09:25:33 s/KoKo(sp?)/COCO/ 09:25:35 lin has joined #webmachinelearning 09:25:53 ningxinhu: Web developers won't have much data to train models, that's your concern? 09:25:57 ?1: Yes 09:26:34 ningxinhu: Web developers will be able to reuse other trained models and re-train them with additional data. 09:27:10 ... Here, our focus is how to tackle the performance issue for the Web. With that, the Web developer can leverage existing trained models. 09:27:26 anssik: It should be made clear that training is considered out of scope of this work. 09:27:29 q? 09:28:45 ningxinhu: Our proposing Web Neural Network (WebNN) is meant to leverage existing hardware infrastructure. The OS should ship their own Machine Learning API, abstracted away by WebNN. 09:29:29 ... WebNN provides low-level interfaces to these APIs to support different models, e.g. ONNX models, TensorFlow models, etc. 09:30:47 ... Positioning the API on the Web. A Usage API uses a built-in model, easy to ingrate. Maps to different platform primitives, such as NLP, Skills, MLKit. 09:31:27 ... The Model-level API (WebML) would map to CoreML, WinML, TensorFlow Lite, etc. 09:31:50 Huangweichai has joined #webmachinelearning 09:32:04 ... WebNN is the acceleration API, close to hardware optimization. Maps to BNNS, MPS, DirectML, Android NN. 09:32:15 Yanni has joined #webmachinelearning 09:32:16 ... WebNN is our current focus. 09:32:53 anssik: Right, the low-level WebNN proposal is the goal of the incubation in the Community Group. We're hoping this will lead to the standardization of the other higher-level APIs in the future. 09:33:17 Alex: WebNN is JS functions to manipulate models, is that correct? 09:33:29 ningxinhu: We can review the exact design afterwards. 09:34:36 anssik: You can refer to the following scope statement 09:34:37 -> https://webmachinelearning.github.io/charter/ Machine Learning for the Web Community Group Charter 09:34:37 https://webmachinelearning.github.io/charter/ 09:35:32 ningxinhu: On the top of this, WebML (not a good name), if you have interfaces for models, it will ease reuse of models. But that API can be built as a polyfill on top of the WebNN API in the near future. 09:36:12 ?2: [performance figures question] 09:36:32 ningxinhu: WebNN is within 10-20% of pure native performances. 09:36:58 [POC = proof of concept] 09:37:11 ... We want to use a Proof of Concept as starting point and explore cross-platform capability. 09:37:45 ... The polyfill API is modeled from Android NNAPI. 09:38:34 ... You need to manipulate models, with operations and operands. Also, you need a compilation stage to initialize the hardware. 09:38:56 ... Last the execution stage where you process inputs according to the models and make inferance to produce outputs. 09:40:01 ... We're using a promise-based API, so when your promise is resolved, you have the answer. 09:40:26 anssik: If people want to see more demos, they can haz them! 09:41:29 ningxinhu: We started with a polyfill with WebAssembly and WebGL backends. Compute shaders. 09:42:44 ... and then developed a Chromium prototype, starting with MPS/BNNS API for MacOS, NN API for Android, cross-platform hardware agnostic. 09:42:56 q? 09:42:58 ... WebNN can leverage CPUs, GPUs and accelerators. 09:43:36 GeunHyung has joined #webmachinelearning 09:44:14 Myles: Wondering about numbers. What happens that explains the 24x times gap between CoreML (CPU) and WebAssembly implementations. 09:44:56 ningxinhu: Some missing threading and SIMD features explain the difference. The gap should be reduced once features are in. 09:45:34 Iank: The number is a bit unfair for WASM, because these features are incoming. 09:46:04 Myles: Let's pretend these features are used. How far down would that gap become? 09:46:28 ningxinhu: We'd probably go down to 4x. 09:47:00 sangwhan: Comparison should go with TensorFlow. Nested loops to do convolution would be hard to achieve. 09:47:28 Deepti: A lot of feedback about WASM SIMD is that we may not be covering the right set of instructions. 09:47:45 ningxinhu: Multiple add. 09:47:51 ack sangwhan 09:47:51 sangwhan, you wanted to suggest better naming, ask about rationale of the "whitelisted" layers, choice of integer constants over string enums, choice of procedural programming 09:47:54 ... practices for model definition, output layer being re-used being somewhat non-idiomatic javascript, and more 09:48:10 lin has joined #webmachinelearning 09:48:54 sangwhan: Question about the serialization of models, saw that in scope in the draft charter. 09:49:08 [draft charter shown] 09:49:41 sangwhan: To make interoperability less plainful, it would be good to include that in the scope. 09:50:33 ... Worried about the bytes in the array buffer. 09:50:37 anssik: I think you might want to open an issue on the GitHub repo 09:50:55 zolkis has joined #webmachinelearning 09:50:58 Corentin: There's a standard in the Khronos group for that. 09:51:21 https://www.khronos.org/nnef 09:51:25 sangwhan: Right, I just want to clarify what's in scope. Doesn't matter if it reuses an existing spec. 09:52:41 Yanni has joined #webmachinelearning 09:52:41 ningxinhu: WebNN is very low-level API. Main target is JS frameworks. They can add their logic to deal with such issues. 09:52:50 sangwhan: Not entirely convinced, but OK. 09:53:29 anssik: Feel free to influence the scope on GitHub. The draft charter is a starting point. We want to get your input. Not an easy task to land on a scope that seems to work for people. 09:53:42 q- 09:54:06 Topic: Machine Learning for the Web Community Group 09:54:13 -> https://github.com/webmachinelearning/meetings/blob/master/2018-10-26-lyon/README.md Machine Learning for the Web Community Group F2F at TPAC 2018 09:54:18 anssik: First face-to-face on Friday 09:54:53 ... 2 hour meeting. [going through agenda] 09:55:44 ... We'd like to start not with the proposed solution, but with use cases and requirements. Got some good contributions from Tomoyuki here for instance. 09:56:25 ... Then we'll go into more details on the proposal. If people have other proposals in mind, you're welcome to submit them for consideration. 09:56:42 ... I look forward to having a productive session. See you all on Friday! 09:57:11 RRSAgent, draft minutes v2 09:57:11 I have made the request to generate https://www.w3.org/2018/10/24-webmachinelearning-minutes.html tidoust 09:57:33 RRSAgent, draft minutes v2 09:57:33 I have made the request to generate https://www.w3.org/2018/10/24-webmachinelearning-minutes.html anssik 09:57:53 lin_ has joined #webmachinelearning 11:03:47 dom has joined #webmachinelearning 11:04:37 dom has left #webmachinelearning 11:06:56 tomoyuki has joined #webmachinelearning 11:07:20 tidoust has joined #webmachinelearning 11:09:12 tidoust has left #webmachinelearning 11:18:56 sangchul has joined #webmachinelearning 11:27:26 zolkis has joined #webmachinelearning 12:01:13 sangchul has joined #webmachinelearning 12:02:29 Zakim has left #webmachinelearning 12:04:27 tomoyuki has joined #webmachinelearning 12:07:09 sangchul has joined #webmachinelearning 12:07:41 takio has joined #webmachinelearning 12:13:45 takio has left #webmachinelearning 12:58:13 sangchul has joined #webmachinelearning 13:16:45 sangchul has joined #webmachinelearning 13:28:48 tomoyuki has joined #webmachinelearning 13:34:46 sangchul has joined #webmachinelearning 14:16:21 sangchul has joined #webmachinelearning 14:56:13 zolkis has joined #webmachinelearning 16:16:45 zolkis has joined #webmachinelearning 19:32:28 zolkis has joined #webmachinelearning