14. – Продающие системы для интернет-магазинов;
– Прогнозы поведения клиентов;
– Оптимизация производства;
– Анализ показателей из IoT, умного дома;
– Анализ данных как сервис;
– ...
Это может решать конкретную бизнес задачу
15. – Предугадывание действий;
– Помощь пользователю;
– Оценка действий пользователя.
Это может улучшить пользовательский опыт
16. Это может помочь другим вступить
в изучение машинного обучения
https://playground.tensorflow.org
20. WebGL problems:
– Недоступно с некоторыми Intel Built-in graphics, и видеокартами из blacklist-а;
– Трудность разработки под WebGL (особенно 1.0);
– IO Overhead.
23. – Портируемость:
- создан как compilation target;
- может быть запущен на любой архитектуре x64/x86/arm;
– Возможность ручного менеджмента памяти (никаких
проседаний FPS из-за GC);
– Теоретически большая производительность чем у
аналогичного JS кода;
Что дает нам WebAssembly
25. Что WebAssembly даст нам в будущем
– Threads issue#1073
– SharedArrayBuffer - отключен из-за Meltdown и Spectre (что
исключает производительную многопоточность на время для
WASM и JS).
– SIMD issue#1075
– Bulk memory operations issue#1114
27. У нас есть Machine Learning
У нас есть WebAssembly
И что нам делать?
28. Проект позволяет портировать готовые ML модели в веб.
Портирование с:
– Keras;
– PyTorch;
– TensorFlow;
–...
Backend-ы:
– WebAssembly;
– asm.js;
– WebGL;
– WebGPU (Safari with MacOS, iOS);
– JavaScript.
Готовые решения: WebDNN
https://mil-tokyo.github.io/webdnn
33. Популярная OpenSource библиотека, скомпилированная
в WebAssembly с помощью emscripten.
Выигрыш: Портирована большая, готовая, протестированная
кодовая база подготовки данных и выполнения модели
Готовые решения: OpenCV.js
34. Можем ли мы обучить нейронную сеть?
1m 54s 8.373s
https://ai.danruta.co.uk/webassembly (jsNet)
13.7x Faster
vs
41. – JS код и так занимал не больше 2-4ms;
– Вызовы WebAssembly-функций на данный момент
накладывают небольшой overhead;
– Передача данных в память WebAssembly instance-a также
внесла свою долю;
– Среднее отклонение fps стало меньше за счет уменьшения
работы для GC.
Почему так
43. Machine Learning — необходимо развивать инструментарий
WebAssembly
– не серебряная пуля для машинного обучения
– не имеет полного набора выигрышных фич для улучшения
производительности
– требует експериментов
Итог
44. Спасибо за внимание
Экспериментируйте с машинным обучением, с WebAssembly и
делайте наш мир лучше.
И конечно же, задавайте вопросы.
Михаил Зачепило
mihailzachepilo@gmail.compentatonica.co