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
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 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]
-> Machine Learning for the Web Community Group
09:00:40 [kajimoto_]
Present+ kajimoto
09:00:54 [anssik]
-> 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:
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 anssik
09:03:38 [Huangweichai]
Huangweichai has joined #webmachinelearning
09:03:38 [Yanni]
Yanni has joined #webmachinelearning
09:03:53 [tidoust]
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 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]
09:09:54 [sangwhan]
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]
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 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]
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]
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]
-> Machine Learning for the Web Community Group Charter
09:34:37 [dom]
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]
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]
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]
09:54:06 [tidoust]
Topic: Machine Learning for the Web Community Group
09:54:13 [anssik]
-> 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 tidoust
09:57:33 [anssik]
RRSAgent, draft minutes v2
09:57:33 [RRSAgent]
I have made the request to generate 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