【レポート】深層学習フレームワークChainerを活用したWebサービス事例 #AWSSummit

こんにちは。サービスグループの武田です。

2019年6月12日(水)から14日(金)の3日間、千葉県幕張メッセにてAWS Summit Tokyo 2019が開催されています。こちらで講演されたセッション「J1-01 深層学習フレームワークChainerを活用したWebサービス事例」を聴講しましたのでレポートします。

AWS Summitでは全セッションで撮影禁止ということですので、文字だけでお届けします。

概要

深層学習技術を活用したWebサービスの事例として、線画自動着色サービスPaintsChainerの概要とシステム構成をご紹介いたします。また、Preferred Networksが検討しているCreative分野の新しい技術紹介をします。

スピーカー

  • 株式会社Preferred Networks エンジニア
    • 福田 昌昭

(※敬称略)

レポート

  • 会社の事業分野
    • 交通システム
    • 産業ロボット
    • バイオヘルスケア
    • パーソナルロボット
    • 新規としてスポーツなど
  • アジェンダ
    • 深層学習の活用
      • Preffered Networksの事例
      • Chainerを活用したWebサービス事例
        • PaintsChainerシステム概要
        • Chainer Backend for Intel Architecture
    • 深層学習の導入に向けて
    • 様々なデバイスに展開

深層学習の活用

  • 深層学習とは
    • 多層のニューラルネットワーク
    • 画像認識分野で劇的に成果を挙げているが、そのほかでも成果を挙げている

Preffered Networksの事例

  • 交通システム(自動運転)
    • セグメンテーションという技術
    • 車載チップの上で、数百万画素、数十FPSが出るように高速化
  • 産業用ロボット(ピッキング)
    • 画像認識
    • 未知の物体でも0.2秒でピッキングポイントを推定
      • どこをピックすれば持ち上げられるか判定する
    • 人間が音声で指示を出し、ロボットがその音声を認識して指示された対象を特定してピックすることが可能
  • 産業システム(外観検査ソリューション)
    • 外観で傷がついているかを検査する
    • 小規模なデータセットでも識別できるようになってきている(100枚くらい)
  • 自動お片付けロボットシステム
    • CEATEC 2018で展示したシステム
    • ブースの中に200個くらいオブジェクトが散らばっているのを識別して特定の場所に片付ける
    • 実世界での混み合った状況でも動くようになってきた
  • バイオヘルスケア(統合的がん医療システム開発)
    • 人工知能を活用した統合的がん医療システム開発プロジェクト
    • 乳がん検査の精度向上に向けた取り込み事例
      • マンモグラフィだと80%の精度で、被験者にも負担が大きい
      • リキッドバイオプシーだと90%の精度で、被験者への負担は軽い(少量の血液から診断可能)
  • バイオヘルスケア
    • 脳腫瘍の検出に向けた取り組み事例
    • 入力画像に対して、悪い箇所などにアノテーションを付ける
    • 熟練した医者と同程度の精度を人工知能で出せている
  • クリエイティブ
    • PaintsChainer
      • 入力の絵に対して自動彩色をするサービス
    • Crypko
      • ニューラルネットワークによる高品質な画像生成
      • 無限通りのキャラクター生成が可能

また、認識、識別、分類以外のケースでも人工知能が使えるようになってきた。

  • アニメ「あした世界が終わるとしても」
    • ロボットみたいなキャラクターが出てきていてそのデザインや、人の動きの生成、群衆の動作などの技術提供をした

Chainerを活用したWebサービス事例

  • PaintsChainer
    • PaintsChainer -線画自動着色サービス-
    • 自動着色サービスで2016年1月リリース
    • 世界188ヵ国からアクセスがある
    • Chainerを活用した深層学習技術により、今までにない機能を提供
    • ヒントを与えると、リアルタイムに推定を行う

もともとは20%ルールの枠でエンジニアが作ったもので、それを公開してみたサービス。技術的な課題として次のようなものがあった。

  • GPUサーバーのコストが高い
    • 想定以上のアクセス
    • 当初はGPUが搭載された物理サーバーにグローバルIPを割り振って運用していた
  • 運用
    • 冗長化、オートスケールしたかったがGPUリソースのメトリクスが取りにくい
    • 安定性
      • 突然ストールしたりした
    • セキュリティ面でも努力が必要な構成
      • 簡単な攻撃でサービスが止まる

改善に向けて。

  • スケーラビリティ
    • 需要に合わせてスケールするように。ストレージも
  • セキュリティ
    • 簡単に落ちない
  • コスト
    • 初期投資は安く抑えたい

GPUは有用だが、CPUリソースの活用を検討。

  • Chainerはハードウェアアーキテクチャに応じて、バックエンドを柔軟に切り替えられる
    • MKL-DNNというライブラリがリリースされ、これを採用することでCPUリソースの活用を検討した
      • 一部の演算はこれで満たせるのでは?
    • Numpyの高速化にも使っており実績はあった
  • MKL-DNNを利用して一部処理をCythonを使ってポーティング
    • 実装コストはかかったが、CPU上で稼働できるようになった部分は一般的なAuto Scalingを適用できるようになり、運用コストが劇的に改善した
    • → ただし、この実装コストが新しい課題となった
      • 都度ポーティングする余裕がない
      • 外のGPU物理サーバーを一部の機能で利用
  • 現在はChainer Backend for Intel Architectureを導入
    • Chainer v4から公式の導入された
    • Cythonでのポーティングが不要になった
    • C5インスタンスで運用している。一部スポットインスタンスも併用

次のように課題解決できた。

  • コスト
    • 初期より70%以上のコスト削減を達成
  • 運用
    • サービス安定化、効率化
    • クラウド移行後は障害ゼロ
  • 今後に向けて
    • モデル管理として、Git LFSに特定の形式でパッケージしてあるモデルファイルをプロセス起動時に読み込ませている
    • デプロイは申し送りをして手作業感満載
      • イメージを作成して、TerraFormでデプロイ
      • モデルの管理とデプロイはスクリプト化されているが、ある程度知識がないとできない
    • SageMakerの導入
      • サービスで深層学習を活用する場合、ワークフローや学習モデルのバージョン管理が課題となった
      • マネージドサービスを活用して、モデルの管理と運用を行うことが現状のベストプラクティスだと考える

深層学習の導入に向けて

深層学習を様々な環境、デバイスへ展開

  • Menoh
    • ONNX形式のファイルを読み込んで動作させる、推論専用のライブラリ
      • ONNX形式:深層学習済みモデルを交換するためのデファクトフォーマット
    • 様々な言語から呼び出せるインタフェースを提供
    • Menohで学習モデルをインポートして活用
      • 様々なデバイス・環境で推論が実行できる
  • Chainer Compiler
    • ChainerXを活用した深層学習向けコンパイラ
    • 高速化、最適化、デプロイの簡便化・可搬性などを目指している

まとめ

  • 深層学習技術をサービスに適用
    • 2〜3年前と比較すると、明らかに環境が整ってきている
      • SageMakerのような機械学習を利用するためのフルマネージドサービスの登場、SageMaker x Chainerの事例も多くなっている
    • GPUインスタンスのコストも下がっている
    • 様々なデバイスで活用するための取り組みも進んでいる

深層学習を活用した新しいサービスで開発リリースして差別化を進めよう!

最後に

深層学習をどう活用しているかという、具体的な事例を交えたセッションでした。特にPaintsChainerは、普段ITやAIに興味がない方でも聞いたことのあるサービスだったのではないでしょうか。映像も流しながらの具体的な活用事例を聞くことができ楽しく聴講できました。