News
Meetup
YouTube
Blog
書き起こし
2019/05/23 に公開
2204 views
このエピソードについて
@potato4d が @spring_raining にフロントエンドにおける Deep Learning の利用について聞いてみました。
ゲスト紹介
@spring_raining
UIT室 フロントエンドエンジニア
修士で Deep Learning の研究
未踏プロジェクトの一環
で
DeepGlyph
開発中
クライアントにおける DNN の活用
モバイルだと割とすでに普及期の印象
Firebase ML Kit など、クラウドとハイブリッドなものもよくある
Web でも段々実装が進んでいる
DNN Library for Web
Tensorflow.js
https://www.tensorflow.org/js
言わずとしれた有名ライブラリの JavaScript 版
Tensorflow との相互運用性が魅力
brain.js
https://github.com/BrainJS/brain.js
クライアントサイドでも学習が可能なライブラリ
他が学習済みデータモデルからの推論が中心であるため差別化できる点となる
WebDNN
https://github.com/mil-tokyo/webdnn
国産の DNN ライブラリ
対応フォーマットが多い点が魅力(@spring_raining の場合は PyTorch を使っていたため採用)
ONNX.js
https://github.com/microsoft/onnxjs
Microsoft 産
新しい DNN 用の規格の ONNX に対応
まだ実用的ではなさそう
これからについて
すでに DNN ライブラリは出揃った上で淘汰がなされてきたような状態
Tensorflow vs 他の構図が崩せるかに期待
ライブラリの仕組み
DNN は行列計算の処理が支配的となる
行列計算においては WebGL が有利であり、頻繁に使われる
座標計算などのため行列の計算を効率的に処理できる GPU に任せる
wasm とかもある?
ライブラリによっては WebGL が使えない場合の fallback に wasm がある場合も
WebGL → WebGPU → wasm の順に出力するライブラリもある
Web における DNN 活用の実例
画像認識はやっぱり多い
モバイルデバイスだとカメラなどを通した機能がやはり多い
OCR や比較系の認識など……
Web で探してみると、特性上カメラの利用が少ないためユニークなものもある
http://khroma.co/
https://deepglyph.app/
実運用での懸念点
例えば Web フォントをクライアントサイドで生成する場合……
学習モデルだけで 700MB
より詳細な最適化が必要
生成速度はそれなり
秒間数文字ペースで生成可能
今週のフロントエンドトピック
https://github.com/features/package-registry
https://note.mu/treby/n/n5d1afdd2137d
https://ngjapan.connpass.com/event/131180/
Refs
BGM&SE
魔王魂/騒音のない世界/OtoLogic
1.0x
1.3x
1.5x