UIT INSIDE

LINE UIT室の開発者による「最新のフロントエンド」をキャッチアップできる Podcast

  • 0. オープニング
    00:00
  • 1. クライアントにおける DNN 活用
    00:41
  • 2. DNN Library for Web
    02:10
  • 3. Crowi の技術スタックについて
    06:00
  • 4. DNN ライブラリの仕組み
    10:15
  • 5. Web における DNN 活用の実例
    12:42
  • 6. 実運用での懸念点
    17:38
  • クロージング
    19:20

ep.14 フロントエンドでの Deep Learning 事情を聞いてみた

2019/05/23
1263 views
HANATANI Takuma緑豆はるさめ

@potato4d が @spring_raining にフロントエンドにおける Deep Learning の利用について聞いてみました。

ゲスト紹介

クライアントにおける DNN の活用

  • モバイルだと割とすでに普及期の印象
    • Firebase ML Kit など、クラウドとハイブリッドなものもよくある
  • Web でも段々実装が進んでいる

DNN Library for Web

  • Tensorflow.js
  • brain.js
    • https://github.com/BrainJS/brain.js
    • クライアントサイドでも学習が可能なライブラリ
      • 他が学習済みデータモデルからの推論が中心であるため差別化できる点となる
  • WebDNN
    • https://github.com/mil-tokyo/webdnn
    • 国産の DNN ライブラリ
    • 対応フォーマットが多い点が魅力(@spring_raining の場合は PyTorch を使っていたため採用)
  • ONNX.js
  • これからについて
    • すでに DNN ライブラリは出揃った上で淘汰がなされてきたような状態
    • Tensorflow vs 他の構図が崩せるかに期待

ライブラリの仕組み

  • DNN は行列計算の処理が支配的となる
    • 行列計算においては WebGL が有利であり、頻繁に使われる
    • 座標計算などのため行列の計算を効率的に処理できる GPU に任せる
  • wasm とかもある?
    • ライブラリによっては WebGL が使えない場合の fallback に wasm がある場合も
    • WebGL → WebGPU → wasm の順に出力するライブラリもある

Web における DNN 活用の実例

  • 画像認識はやっぱり多い
    • モバイルデバイスだとカメラなどを通した機能がやはり多い
    • OCR や比較系の認識など……
  • Web で探してみると、特性上カメラの利用が少ないためユニークなものもある

実運用での懸念点

  • 例えば Web フォントをクライアントサイドで生成する場合……
    • 学習モデルだけで 700MB
      • より詳細な最適化が必要
    • 生成速度はそれなり
      • 秒間数文字ペースで生成可能

今週のフロントエンドトピック