IRC log of webmachinelearning on 2018-10-24
Timestamps are in UTC.
- 08:57:24 [RRSAgent]
- RRSAgent has joined #webmachinelearning
- 08:57:24 [RRSAgent]
- logging to https://www.w3.org/2018/10/24-webmachinelearning-irc
- 08:57:29 [Guru]
- Guru has joined #webmachinelearning
- 08:57:31 [Zakim]
- Zakim has joined #webmachinelearning
- 08:57:32 [anssik]
- RRSAgent, make logs public
- 08:57:37 [anssik]
- Meeting: Machine Learning for the Web breakout at TPAC 2018
- 08:58:12 [anssik]
- RRSAgent, draft minutes v2
- 08:58:12 [RRSAgent]
- I have made the request to generate https://www.w3.org/2018/10/24-webmachinelearning-minutes.html anssik
- 08:58:13 [ningxinhu]
- ningxinhu has joined #webmachinelearning
- 08:58:21 [ningxinhu]
- Present+ NingxinHu
- 08:58:39 [anssik]
- RRSAgent, make logs public
- 08:59:45 [fabien_gandon]
- fabien_gandon has joined #webmachinelearning
- 09:00:00 [myles_]
- myles_ has joined #webmachinelearning
- 09:00:03 [fabien_gandon]
- present+ Fabien Gandon
- 09:00:14 [johnchen]
- johnchen has joined #webmachinelearning
- 09:00:17 [kajimoto_]
- kajimoto_ has joined #webmachinelearning
- 09:00:23 [myles_]
- Present+ myles_
- 09:00:29 [anssik]
- Present+ Anssi_Kostiainen
- 09:00:36 [anssik]
- -> https://www.w3.org/community/webmachinelearning/ Machine Learning for the Web Community Group
- 09:00:40 [kajimoto_]
- Present+ kajimoto
- 09:00:54 [anssik]
- -> https://webmachinelearning.github.io/charter/ Machine Learning for the Web Community Group Charter
- 09:01:38 [tidoust]
- tidoust has joined #webmachinelearning
- 09:01:50 [tidoust]
- Present+ Francois_Daoust
- 09:01:57 [tidoust]
- scribenick: tidoust
- 09:02:23 [halo]
- halo has joined #webmachinelearning
- 09:02:24 [anssik]
- anssik has changed the topic to: https://www.w3.org/wiki/TPAC/2018/SessionIdeas#Machine_Learning_for_the_Web
- 09:03:11 [Kangz]
- Kangz has joined #webmachinelearning
- 09:03:17 [anssik]
- Chair: Anssi
- 09:03:19 [Kangz]
- Hi, this is Corentin Wallez
- 09:03:22 [anssik]
- RRSAgent, draft minutes v2
- 09:03:22 [RRSAgent]
- I have made the request to generate https://www.w3.org/2018/10/24-webmachinelearning-minutes.html anssik
- 09:03:38 [Huangweichai]
- Huangweichai has joined #webmachinelearning
- 09:03:38 [Yanni]
- Yanni has joined #webmachinelearning
- 09:03:53 [tidoust]
- Agenda: https://www.w3.org/wiki/TPAC/2018/SessionIdeas#Machine_Learning_for_the_Web
- 09:03:55 [hirata]
- hirata has joined #webmachinelearning
- 09:04:19 [sangchul]
- sangchul has joined #webmachinelearning
- 09:04:33 [Barbara_Intel]
- Barbara_Intel has joined #webmachinelearning
- 09:04:41 [dom]
- dom has joined #webmachinelearning
- 09:04:57 [huangweichai_]
- huangweichai_ has joined #webmachinelearning
- 09:05:16 [tidoust]
- Topic: Introduction
- 09:05:28 [sangwhan]
- sangwhan has joined #webmachinelearning
- 09:06:11 [iank_]
- iank_ has joined #webmachinelearning
- 09:06:27 [tidoust]
- 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]
- ktoumura has joined #webmachinelearning
- 09:06:42 [Lin]
- Lin has joined #webmachinelearning
- 09:06:47 [zolkis]
- zolkis has joined #webmachinelearning
- 09:06:51 [Youngsun]
- Youngsun has joined #webmachinelearning
- 09:07:04 [tidoust]
- ... 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 [zolkis]
- present+ Zoltan_Kis
- 09:07:06 [jungkees]
- jungkees has joined #webmachinelearning
- 09:07:08 [ktoumura]
- present +Kunihiko_Toumura
- 09:07:08 [hyojin]
- hyojin has joined #webmachinelearning
- 09:07:11 [tidoust]
- ... This helped set the scope of the work.
- 09:07:29 [dom]
- Present+ Dominique_Hazael-Massieux
- 09:07:40 [tidoust]
- ... 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 [dom]
- RRSAgent, draft minutes
- 09:07:48 [RRSAgent]
- I have made the request to generate https://www.w3.org/2018/10/24-webmachinelearning-minutes.html dom
- 09:07:50 [tidoust]
- ... Why do we want to do that?
- 09:08:28 [MichaelGordon]
- MichaelGordon has joined #webmachinelearning
- 09:08:29 [tidoust]
- ... Getting closer to the platforms improves performance. For object recognition and immersive computation, that's crucial.
- 09:08:47 [tidoust]
- ... But there are also many computation needs that you need to do on the client.
- 09:08:53 [GeunHyung]
- GeunHyung has joined #webmachinelearning
- 09:09:00 [tidoust]
- ... I would like to start with a demo.
- 09:09:03 [MichaelGordon]
- Present+ MichaelGordon
- 09:09:14 [yang_gu]
- yang_gu has joined #webmachinelearning
- 09:09:47 [ningxinhu]
- https://huningxin.github.io/webml-examples/
- 09:09:54 [sangwhan]
- present+
- 09:10:08 [tidoust]
- ... 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 [tidoust]
- ningxinhu: [going through demo]
- 09:10:36 [Yaohua_Wu]
- Yaohua_Wu has joined #webmachinelearning
- 09:10:39 [Guru]
- Guru has joined #webmachinelearning
- 09:10:49 [tidoust]
- ... Model gets downloaded first. In this case, cached through Service Worker.
- 09:11:20 [tidoust]
- ... The demo uses Koko(sp?) that can recognize about 100 objects.
- 09:11:27 [jmann]
- jmann has joined #webmachinelearning
- 09:11:31 [tidoust]
- ... s/Koko(sp?)/Coco/
- 09:11:38 [jmann]
- Present+ Jatinder Mann
- 09:12:16 [tidoust]
- ... The WebML propotype uses Chromium. Two polyfill implementations: WebAssembly and WebGL.
- 09:12:42 [tidoust]
- ... WebAssembly is much slower, because WebAssembly lacks SIMD features that allow to parallelize computation.
- 09:12:54 [sangchul_]
- sangchul_ has joined #webmachinelearning
- 09:13:17 [tidoust]
- ... WebGL2 is faster. WebML is the fatest.
- 09:13:34 [tidoust]
- anssik: The prototype is quite convincing in terms of performance gains with WebML.
- 09:13:49 [tidoust]
- ... We have a F2F meeting of the CG this Friday afternoon.
- 09:13:59 [tidoust]
- ... We'd like to hear from your use cases to start with.
- 09:14:30 [tidoust]
- ... The primary user of the current API is authors of frameworks, e.g. TensorFlow.js
- 09:14:54 [tidoust]
- Topic: Overview of API
- 09:15:14 [lin]
- lin has joined #webmachinelearning
- 09:15:34 [tidoust]
- ningxinhu: The scope is that we want to do Edge AI computing.
- 09:15:40 [sangchul_]
- present+ Sangchul_Ahn
- 09:15:44 [lin]
- present+
- 09:15:46 [tidoust]
- ... [showing presentation slides]
- 09:16:00 [tidoust]
- ... Sentiment anaylsis, etc.
- 09:16:25 [sangwhan]
- 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 [anssik]
- RRSAgent, draft minutes v2
- 09:16:29 [RRSAgent]
- I have made the request to generate https://www.w3.org/2018/10/24-webmachinelearning-minutes.html anssik
- 09:16:44 [tidoust]
- ... 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 [tidoust]
- ... The models you've trained can be reused in different frameworks.
- 09:17:45 [tidoust]
- ... 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 [tidoust]
- ... 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 [tidoust]
- ... We prepared some benchmark to compare performances.
- 09:19:39 [tidoust]
- ... 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 [tidoust]
- ... Even comparing a solution that uses WebGPU and a WebML approach, there's still a 4 times gain.
- 09:21:28 [tidoust]
- ... 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 [tidoust]
- ... Also dedicated DL hardware accelerators.
- 09:22:24 [tidoust]
- ?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 [tidoust]
- ... Use case around high-res images
- 09:23:44 [tidoust]
- 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 [tidoust]
- anssik: We wanted to be practical with the scope. Minimal approach of what would enable use cases fast.
- 09:24:14 [sangchul_]
- sangchul_ has joined #webmachinelearning
- 09:24:47 [Yanni]
- Yanni has joined #webmachinelearning
- 09:24:52 [tidoust]
- ?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 [tomoyuki]
- s/KoKo(sp?)/COCO/
- 09:25:35 [lin]
- lin has joined #webmachinelearning
- 09:25:53 [tidoust]
- ningxinhu: Web developers won't have much data to train models, that's your concern?
- 09:25:57 [tidoust]
- ?1: Yes
- 09:26:34 [tidoust]
- ningxinhu: Web developers will be able to reuse other trained models and re-train them with additional data.
- 09:27:10 [tidoust]
- ... 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 [tidoust]
- anssik: It should be made clear that training is considered out of scope of this work.
- 09:27:29 [dom]
- q?
- 09:28:45 [tidoust]
- 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 [tidoust]
- ... WebNN provides low-level interfaces to these APIs to support different models, e.g. ONNX models, TensorFlow models, etc.
- 09:30:47 [tidoust]
- ... 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 [tidoust]
- ... The Model-level API (WebML) would map to CoreML, WinML, TensorFlow Lite, etc.
- 09:31:50 [Huangweichai]
- Huangweichai has joined #webmachinelearning
- 09:32:04 [tidoust]
- ... WebNN is the acceleration API, close to hardware optimization. Maps to BNNS, MPS, DirectML, Android NN.
- 09:32:15 [Yanni]
- Yanni has joined #webmachinelearning
- 09:32:16 [tidoust]
- ... WebNN is our current focus.
- 09:32:53 [tidoust]
- 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 [tidoust]
- Alex: WebNN is JS functions to manipulate models, is that correct?
- 09:33:29 [tidoust]
- ningxinhu: We can review the exact design afterwards.
- 09:34:36 [tidoust]
- anssik: You can refer to the following scope statement
- 09:34:37 [anssik]
- -> https://webmachinelearning.github.io/charter/ Machine Learning for the Web Community Group Charter
- 09:34:37 [dom]
- https://webmachinelearning.github.io/charter/
- 09:35:32 [tidoust]
- 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 [tidoust]
- ?2: [performance figures question]
- 09:36:32 [tidoust]
- ningxinhu: WebNN is within 10-20% of pure native performances.
- 09:36:58 [anssik]
- [POC = proof of concept]
- 09:37:11 [tidoust]
- ... We want to use a Proof of Concept as starting point and explore cross-platform capability.
- 09:37:45 [tidoust]
- ... The polyfill API is modeled from Android NNAPI.
- 09:38:34 [tidoust]
- ... You need to manipulate models, with operations and operands. Also, you need a compilation stage to initialize the hardware.
- 09:38:56 [tidoust]
- ... Last the execution stage where you process inputs according to the models and make inferance to produce outputs.
- 09:40:01 [tidoust]
- ... We're using a promise-based API, so when your promise is resolved, you have the answer.
- 09:40:26 [tidoust]
- anssik: If people want to see more demos, they can haz them!
- 09:41:29 [tidoust]
- ningxinhu: We started with a polyfill with WebAssembly and WebGL backends. Compute shaders.
- 09:42:44 [tidoust]
- ... and then developed a Chromium prototype, starting with MPS/BNNS API for MacOS, NN API for Android, cross-platform hardware agnostic.
- 09:42:56 [dom]
- q?
- 09:42:58 [tidoust]
- ... WebNN can leverage CPUs, GPUs and accelerators.
- 09:43:36 [GeunHyung]
- GeunHyung has joined #webmachinelearning
- 09:44:14 [tidoust]
- Myles: Wondering about numbers. What happens that explains the 24x times gap between CoreML (CPU) and WebAssembly implementations.
- 09:44:56 [tidoust]
- ningxinhu: Some missing threading and SIMD features explain the difference. The gap should be reduced once features are in.
- 09:45:34 [tidoust]
- Iank: The number is a bit unfair for WASM, because these features are incoming.
- 09:46:04 [tidoust]
- Myles: Let's pretend these features are used. How far down would that gap become?
- 09:46:28 [tidoust]
- ningxinhu: We'd probably go down to 4x.
- 09:47:00 [tidoust]
- sangwhan: Comparison should go with TensorFlow. Nested loops to do convolution would be hard to achieve.
- 09:47:28 [tidoust]
- Deepti: A lot of feedback about WASM SIMD is that we may not be covering the right set of instructions.
- 09:47:45 [tidoust]
- ningxinhu: Multiple add.
- 09:47:51 [dom]
- ack sangwhan
- 09:47:51 [Zakim]
- 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 [Zakim]
- ... practices for model definition, output layer being re-used being somewhat non-idiomatic javascript, and more
- 09:48:10 [lin]
- lin has joined #webmachinelearning
- 09:48:54 [tidoust]
- sangwhan: Question about the serialization of models, saw that in scope in the draft charter.
- 09:49:08 [tidoust]
- [draft charter shown]
- 09:49:41 [tidoust]
- sangwhan: To make interoperability less plainful, it would be good to include that in the scope.
- 09:50:33 [tidoust]
- ... Worried about the bytes in the array buffer.
- 09:50:37 [tidoust]
- anssik: I think you might want to open an issue on the GitHub repo
- 09:50:55 [zolkis]
- zolkis has joined #webmachinelearning
- 09:50:58 [tidoust]
- Corentin: There's a standard in the Khronos group for that.
- 09:51:21 [Kangz]
- https://www.khronos.org/nnef
- 09:51:25 [tidoust]
- sangwhan: Right, I just want to clarify what's in scope. Doesn't matter if it reuses an existing spec.
- 09:52:41 [Yanni]
- Yanni has joined #webmachinelearning
- 09:52:41 [tidoust]
- 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 [tidoust]
- sangwhan: Not entirely convinced, but OK.
- 09:53:29 [tidoust]
- 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 [sangwhan]
- q-
- 09:54:06 [tidoust]
- Topic: Machine Learning for the Web Community Group
- 09:54:13 [anssik]
- -> 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 [tidoust]
- anssik: First face-to-face on Friday
- 09:54:53 [tidoust]
- ... 2 hour meeting. [going through agenda]
- 09:55:44 [tidoust]
- ... 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 [tidoust]
- ... 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 [tidoust]
- ... I look forward to having a productive session. See you all on Friday!
- 09:57:11 [tidoust]
- RRSAgent, draft minutes v2
- 09:57:11 [RRSAgent]
- I have made the request to generate https://www.w3.org/2018/10/24-webmachinelearning-minutes.html tidoust
- 09:57:33 [anssik]
- RRSAgent, draft minutes v2
- 09:57:33 [RRSAgent]
- I have made the request to generate https://www.w3.org/2018/10/24-webmachinelearning-minutes.html anssik
- 09:57:53 [lin_]
- lin_ has joined #webmachinelearning
- 11:03:47 [dom]
- dom has joined #webmachinelearning
- 11:04:37 [dom]
- dom has left #webmachinelearning
- 11:06:56 [tomoyuki]
- tomoyuki has joined #webmachinelearning
- 11:07:20 [tidoust]
- tidoust has joined #webmachinelearning
- 11:09:12 [tidoust]
- tidoust has left #webmachinelearning
- 11:18:56 [sangchul]
- sangchul has joined #webmachinelearning
- 11:27:26 [zolkis]
- zolkis has joined #webmachinelearning
- 12:01:13 [sangchul]
- sangchul has joined #webmachinelearning
- 12:02:29 [Zakim]
- Zakim has left #webmachinelearning
- 12:04:27 [tomoyuki]
- tomoyuki has joined #webmachinelearning
- 12:07:09 [sangchul]
- sangchul has joined #webmachinelearning
- 12:07:41 [takio]
- takio has joined #webmachinelearning
- 12:13:45 [takio]
- takio has left #webmachinelearning
- 12:58:13 [sangchul]
- sangchul has joined #webmachinelearning
- 13:16:45 [sangchul]
- sangchul has joined #webmachinelearning
- 13:28:48 [tomoyuki]
- tomoyuki has joined #webmachinelearning
- 13:34:46 [sangchul]
- sangchul has joined #webmachinelearning
- 14:16:21 [sangchul]
- sangchul has joined #webmachinelearning
- 14:56:13 [zolkis]
- zolkis has joined #webmachinelearning
- 16:16:45 [zolkis]
- zolkis has joined #webmachinelearning
- 19:32:28 [zolkis]
- zolkis has joined #webmachinelearning