Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Chainerを使ってプロダクション環境上で推論するには

1,753 views

Published on

ChainerからPyTorchへのマイグレーション方法について話します。また、今後Chainerをプロダクションで使うときのベストプラクティスを紹介します。

Published in: Technology
  • Be the first to comment

Chainerを使ってプロダクション環境上で推論するには

  1. 1. Chainerを使ってプロダクション環境上で 推論するには ML@Loft #9 Preferred Networks / Chainer Evangelist Keisuke Umezawa
  2. 2. 自己紹介 2 • 梅澤 慶介 • Engineering Manager @mercari • Chainer Evangelist @Preferred Networks • Twitter:@kumezawa_ • GitHub:@keisuke-umezawa
  3. 3. Agenda 1. Chainer/CuPyの紹介 2. プロダクション環境上の推論 3
  4. 4. Agenda 1. Chainer/CuPyの紹介 2. プロダクション環境上の推論 4
  5. 5. Chainerの開発終了の発表 5 https://preferred.jp/ja/news/pr20191205/
  6. 6. Chainerの開発中止 ● 12/5にChainerの開発終了を発表 ● Chainerファミリー(ChainerCV, Chainer Chemistry, ChainerUI, ChainerRL)も終了 ● CuPyは引き続き開発を継続 6 https://chainer.org/announcement/2019/12/05/released-v7-ja.html
  7. 7. Agenda 1. Chainer → PyTorchへのマイグレーション 2. プロダクション環境上の推論 7
  8. 8. Chainer → PyTorchへのマイグレーション
  9. 9. PFNによるChainerからPyTorch移行のサポート 9 ● 移行サポートドキュメント ○ https://chainer.github.io/migration-guide/ ● 移行サポートライブラリ ○ chainer-pytorch-migration (cpm): https://github.com/chainer/chainer-pytorch-migration
  10. 10. Chainer と PyTorchの モジュールの対応関係 10 ● Optimizerまでの役割は、 PyTorchが対応している ● Updater・Trainerの役割は、 Igniteが対応している
  11. 11. 移行手順 11 ● 以下の手順で移行することをおすすめします 1. 訓練用スクリプト(optimizer / updater / evaluator ...) ● このとき、cpm.LinkAsTorchModelでモデルをPyTorch用に変換する必要がある 1. Dataset / preprocessing 2. モデル定義
  12. 12. 移行例 12 ● Qiitaに実際に移行した記事を書いてみましたので参照下さい https://qiita.com/keisuke-umezawa/items/35baf525794ee89875e1
  13. 13. プロダクション環境上の推論
  14. 14. Chainerをプロダクションで使うときの選択肢 14 1. Chainer形式でモデルを保存し、Chainerで推論する 2. ONNX形式でモデルを保存し、ONNX Runtime等で推論する 3. ...
  15. 15. ONNX とは 15 • Open Neural Network Exchangeの略で、Deep Learningモデ ルを表現するための共通フォーマット • 共通フォーマットでモデルの保存・読み込みができるので、 異なるフレームワーク・ライブラリで実行可能になる Python C# C/C++
  16. 16. 今後どちらで実装するべきか 16 1. Chainer形式でモデルを保存し、Chainerで推論する 2. ONNX形式でモデルを保存し、ONNX Runtime等で推論する 3. ...
  17. 17. ONNX形式を採用するpros/cons 17 • pros • 推論速度が速い • python以外の言語でも実行できる • モデルを変更しても、実装を変更する必要がない • フレームワークを変更しても、実装を変更する必要がない • cons • 別途onnx runtime等のライブラリを使う必要がある
  18. 18. 詳しい資料 18 • onnx-chainer • https://docs.chainer.org/en/stable/onnx_chainer/introduction/index.html #installation • Qiita記事:機械学習モデルのServingとONNX Runtime Serverについて • https://qiita.com/lain21/items/4d68ee30b7fd497453d4

×