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

Más contenido relacionado

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

20180221 chainer on_colaboratory_at_gdcjp
20180221 chainer on_colaboratory_at_gdcjp20180221 chainer on_colaboratory_at_gdcjp
20180221 chainer on_colaboratory_at_gdcjpHirokuni Uchida
 
Spark streamingを使用したtwitter解析によるレコメンドサービス例
Spark streamingを使用したtwitter解析によるレコメンドサービス例Spark streamingを使用したtwitter解析によるレコメンドサービス例
Spark streamingを使用したtwitter解析によるレコメンドサービス例Junichi Noda
 
20180728 chainer on_colaboratory
20180728 chainer on_colaboratory20180728 chainer on_colaboratory
20180728 chainer on_colaboratoryKeisuke Umezawa
 
Ibis: すごい pandas ⼤規模データ分析もらっくらく #summerDS
Ibis: すごい pandas ⼤規模データ分析もらっくらく #summerDSIbis: すごい pandas ⼤規模データ分析もらっくらく #summerDS
Ibis: すごい pandas ⼤規模データ分析もらっくらく #summerDSCloudera Japan
 
PTLのお仕事とリリースパイプラインの裏側
PTLのお仕事とリリースパイプラインの裏側PTLのお仕事とリリースパイプラインの裏側
PTLのお仕事とリリースパイプラインの裏側masahito12
 
Vue Fes Japan Online 2022 スポンサーセッション
Vue Fes Japan Online 2022 スポンサーセッションVue Fes Japan Online 2022 スポンサーセッション
Vue Fes Japan Online 2022 スポンサーセッションKazuhiro Kobayashi
 
進化するChainer
進化するChainer進化するChainer
進化するChainerYuya Unno
 
Fun tech14-alibaba cloud api gateway-swagger
Fun tech14-alibaba cloud api gateway-swaggerFun tech14-alibaba cloud api gateway-swagger
Fun tech14-alibaba cloud api gateway-swaggerAnzaiKumiko
 
20190216 chainer handson_cource02
20190216 chainer handson_cource0220190216 chainer handson_cource02
20190216 chainer handson_cource02Keisuke Umezawa
 
入門 Kubeflow ~Kubernetesで機械学習をはじめるために~ (NTT Tech Conference #4 講演資料)
入門 Kubeflow ~Kubernetesで機械学習をはじめるために~ (NTT Tech Conference #4 講演資料)入門 Kubeflow ~Kubernetesで機械学習をはじめるために~ (NTT Tech Conference #4 講演資料)
入門 Kubeflow ~Kubernetesで機械学習をはじめるために~ (NTT Tech Conference #4 講演資料)NTT DATA Technology & Innovation
 
Azure MediaServices 最新情報160924
Azure MediaServices 最新情報160924Azure MediaServices 最新情報160924
Azure MediaServices 最新情報160924Takanori Tsuruta
 
Kubernetes、Flannel、CNIでWindows Container Clusterオーケストレーション
Kubernetes、Flannel、CNIでWindows Container ClusterオーケストレーションKubernetes、Flannel、CNIでWindows Container Clusterオーケストレーション
Kubernetes、Flannel、CNIでWindows Container ClusterオーケストレーションTakashi Kanai
 
2015 10 24_spark_osc15tk
2015 10 24_spark_osc15tk2015 10 24_spark_osc15tk
2015 10 24_spark_osc15tkJunichi Noda
 
xDev2010 早い安い新しい「Fast IT」を使いこなせ! クラウドを楽しめるエンジニアの条件
xDev2010 早い安い新しい「Fast IT」を使いこなせ! クラウドを楽しめるエンジニアの条件xDev2010 早い安い新しい「Fast IT」を使いこなせ! クラウドを楽しめるエンジニアの条件
xDev2010 早い安い新しい「Fast IT」を使いこなせ! クラウドを楽しめるエンジニアの条件Yusuke Suzuki
 
Prometheus monitoring from outside of Kubernetes
 〜どうして我々はKubernetes上のPromet...
Prometheus monitoring from outside of Kubernetes
 〜どうして我々はKubernetes上のPromet...Prometheus monitoring from outside of Kubernetes
 〜どうして我々はKubernetes上のPromet...
Prometheus monitoring from outside of Kubernetes
 〜どうして我々はKubernetes上のPromet...whywaita
 
研究室のSVNをGitに移行した話
研究室のSVNをGitに移行した話研究室のSVNをGitに移行した話
研究室のSVNをGitに移行した話nemumu
 
会社にGitHub Enterpriseを導入してみた話
会社にGitHub Enterpriseを導入してみた話会社にGitHub Enterpriseを導入してみた話
会社にGitHub Enterpriseを導入してみた話Shuji Yamada
 
2019年 これからの人向け 超速習!流体解析ツールボックスOpenFOAM
2019年 これからの人向け 超速習!流体解析ツールボックスOpenFOAM2019年 これからの人向け 超速習!流体解析ツールボックスOpenFOAM
2019年 これからの人向け 超速習!流体解析ツールボックスOpenFOAMmmer547
 
高速!Clojure Web 開発入門
高速!Clojure Web 開発入門高速!Clojure Web 開発入門
高速!Clojure Web 開発入門Kazuki Tsutsumi
 
MuleアプリケーションのCI/CD
MuleアプリケーションのCI/CDMuleアプリケーションのCI/CD
MuleアプリケーションのCI/CDMuleSoft Meetup Tokyo
 

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

20180221 chainer on_colaboratory_at_gdcjp
20180221 chainer on_colaboratory_at_gdcjp20180221 chainer on_colaboratory_at_gdcjp
20180221 chainer on_colaboratory_at_gdcjp
 
Spark streamingを使用したtwitter解析によるレコメンドサービス例
Spark streamingを使用したtwitter解析によるレコメンドサービス例Spark streamingを使用したtwitter解析によるレコメンドサービス例
Spark streamingを使用したtwitter解析によるレコメンドサービス例
 
20180728 chainer on_colaboratory
20180728 chainer on_colaboratory20180728 chainer on_colaboratory
20180728 chainer on_colaboratory
 
Ibis: すごい pandas ⼤規模データ分析もらっくらく #summerDS
Ibis: すごい pandas ⼤規模データ分析もらっくらく #summerDSIbis: すごい pandas ⼤規模データ分析もらっくらく #summerDS
Ibis: すごい pandas ⼤規模データ分析もらっくらく #summerDS
 
PTLのお仕事とリリースパイプラインの裏側
PTLのお仕事とリリースパイプラインの裏側PTLのお仕事とリリースパイプラインの裏側
PTLのお仕事とリリースパイプラインの裏側
 
Vue Fes Japan Online 2022 スポンサーセッション
Vue Fes Japan Online 2022 スポンサーセッションVue Fes Japan Online 2022 スポンサーセッション
Vue Fes Japan Online 2022 スポンサーセッション
 
進化するChainer
進化するChainer進化するChainer
進化するChainer
 
Fun tech14-alibaba cloud api gateway-swagger
Fun tech14-alibaba cloud api gateway-swaggerFun tech14-alibaba cloud api gateway-swagger
Fun tech14-alibaba cloud api gateway-swagger
 
20190216 chainer handson_cource02
20190216 chainer handson_cource0220190216 chainer handson_cource02
20190216 chainer handson_cource02
 
入門 Kubeflow ~Kubernetesで機械学習をはじめるために~ (NTT Tech Conference #4 講演資料)
入門 Kubeflow ~Kubernetesで機械学習をはじめるために~ (NTT Tech Conference #4 講演資料)入門 Kubeflow ~Kubernetesで機械学習をはじめるために~ (NTT Tech Conference #4 講演資料)
入門 Kubeflow ~Kubernetesで機械学習をはじめるために~ (NTT Tech Conference #4 講演資料)
 
Azure MediaServices 最新情報160924
Azure MediaServices 最新情報160924Azure MediaServices 最新情報160924
Azure MediaServices 最新情報160924
 
Kubernetes、Flannel、CNIでWindows Container Clusterオーケストレーション
Kubernetes、Flannel、CNIでWindows Container ClusterオーケストレーションKubernetes、Flannel、CNIでWindows Container Clusterオーケストレーション
Kubernetes、Flannel、CNIでWindows Container Clusterオーケストレーション
 
2015 10 24_spark_osc15tk
2015 10 24_spark_osc15tk2015 10 24_spark_osc15tk
2015 10 24_spark_osc15tk
 
xDev2010 早い安い新しい「Fast IT」を使いこなせ! クラウドを楽しめるエンジニアの条件
xDev2010 早い安い新しい「Fast IT」を使いこなせ! クラウドを楽しめるエンジニアの条件xDev2010 早い安い新しい「Fast IT」を使いこなせ! クラウドを楽しめるエンジニアの条件
xDev2010 早い安い新しい「Fast IT」を使いこなせ! クラウドを楽しめるエンジニアの条件
 
Prometheus monitoring from outside of Kubernetes
 〜どうして我々はKubernetes上のPromet...
Prometheus monitoring from outside of Kubernetes
 〜どうして我々はKubernetes上のPromet...Prometheus monitoring from outside of Kubernetes
 〜どうして我々はKubernetes上のPromet...
Prometheus monitoring from outside of Kubernetes
 〜どうして我々はKubernetes上のPromet...
 
研究室のSVNをGitに移行した話
研究室のSVNをGitに移行した話研究室のSVNをGitに移行した話
研究室のSVNをGitに移行した話
 
会社にGitHub Enterpriseを導入してみた話
会社にGitHub Enterpriseを導入してみた話会社にGitHub Enterpriseを導入してみた話
会社にGitHub Enterpriseを導入してみた話
 
2019年 これからの人向け 超速習!流体解析ツールボックスOpenFOAM
2019年 これからの人向け 超速習!流体解析ツールボックスOpenFOAM2019年 これからの人向け 超速習!流体解析ツールボックスOpenFOAM
2019年 これからの人向け 超速習!流体解析ツールボックスOpenFOAM
 
高速!Clojure Web 開発入門
高速!Clojure Web 開発入門高速!Clojure Web 開発入門
高速!Clojure Web 開発入門
 
MuleアプリケーションのCI/CD
MuleアプリケーションのCI/CDMuleアプリケーションのCI/CD
MuleアプリケーションのCI/CD
 

Más de Keisuke Umezawa

C2CマーケットプレイスでのMLの応用
C2CマーケットプレイスでのMLの応用C2CマーケットプレイスでのMLの応用
C2CマーケットプレイスでのMLの応用Keisuke Umezawa
 
20190125 Minecraftで深層強化学習 ハンズオン
20190125 Minecraftで深層強化学習 ハンズオン20190125 Minecraftで深層強化学習 ハンズオン
20190125 Minecraftで深層強化学習 ハンズオンKeisuke Umezawa
 
20181215 Chainer User Group 「chug」のご紹介
20181215 Chainer User Group 「chug」のご紹介20181215 Chainer User Group 「chug」のご紹介
20181215 Chainer User Group 「chug」のご紹介Keisuke Umezawa
 
20181214 Minecraftで深層強化学習 ハンズオン
20181214 Minecraftで深層強化学習 ハンズオン 20181214 Minecraftで深層強化学習 ハンズオン
20181214 Minecraftで深層強化学習 ハンズオン Keisuke Umezawa
 
20181201 chainer handson_cource01
20181201 chainer handson_cource0120181201 chainer handson_cource01
20181201 chainer handson_cource01Keisuke Umezawa
 
20180727 Deep Learningの未来と
Chainerの貢献
20180727 Deep Learningの未来と
Chainerの貢献20180727 Deep Learningの未来と
Chainerの貢献
20180727 Deep Learningの未来と
Chainerの貢献Keisuke Umezawa
 
大企業 vs ベンチャー
大企業 vs ベンチャー大企業 vs ベンチャー
大企業 vs ベンチャーKeisuke Umezawa
 
Chainer User Group 「chug」
Chainer User Group 「chug」 Chainer User Group 「chug」
Chainer User Group 「chug」 Keisuke Umezawa
 
Start to Contribute to Chainer!
Start to Contribute to Chainer!Start to Contribute to Chainer!
Start to Contribute to Chainer!Keisuke Umezawa
 
プログラミング言語として考えたTensor flow
プログラミング言語として考えたTensor flowプログラミング言語として考えたTensor flow
プログラミング言語として考えたTensor flowKeisuke Umezawa
 
Neural Models for Information Retrieval
Neural Models for Information RetrievalNeural Models for Information Retrieval
Neural Models for Information RetrievalKeisuke Umezawa
 
2017-05-30_deepleaning-and-chainer
2017-05-30_deepleaning-and-chainer2017-05-30_deepleaning-and-chainer
2017-05-30_deepleaning-and-chainerKeisuke Umezawa
 

Más de Keisuke Umezawa (13)

C2CマーケットプレイスでのMLの応用
C2CマーケットプレイスでのMLの応用C2CマーケットプレイスでのMLの応用
C2CマーケットプレイスでのMLの応用
 
20190125 Minecraftで深層強化学習 ハンズオン
20190125 Minecraftで深層強化学習 ハンズオン20190125 Minecraftで深層強化学習 ハンズオン
20190125 Minecraftで深層強化学習 ハンズオン
 
20181215 Chainer User Group 「chug」のご紹介
20181215 Chainer User Group 「chug」のご紹介20181215 Chainer User Group 「chug」のご紹介
20181215 Chainer User Group 「chug」のご紹介
 
20181214 Minecraftで深層強化学習 ハンズオン
20181214 Minecraftで深層強化学習 ハンズオン 20181214 Minecraftで深層強化学習 ハンズオン
20181214 Minecraftで深層強化学習 ハンズオン
 
20181201 chainer handson_cource01
20181201 chainer handson_cource0120181201 chainer handson_cource01
20181201 chainer handson_cource01
 
20180727 Deep Learningの未来と
Chainerの貢献
20180727 Deep Learningの未来と
Chainerの貢献20180727 Deep Learningの未来と
Chainerの貢献
20180727 Deep Learningの未来と
Chainerの貢献
 
大企業 vs ベンチャー
大企業 vs ベンチャー大企業 vs ベンチャー
大企業 vs ベンチャー
 
Chainer User Group 「chug」
Chainer User Group 「chug」 Chainer User Group 「chug」
Chainer User Group 「chug」
 
Start to Contribute to Chainer!
Start to Contribute to Chainer!Start to Contribute to Chainer!
Start to Contribute to Chainer!
 
プログラミング言語として考えたTensor flow
プログラミング言語として考えたTensor flowプログラミング言語として考えたTensor flow
プログラミング言語として考えたTensor flow
 
Rustを支える技術
Rustを支える技術Rustを支える技術
Rustを支える技術
 
Neural Models for Information Retrieval
Neural Models for Information RetrievalNeural Models for Information Retrieval
Neural Models for Information Retrieval
 
2017-05-30_deepleaning-and-chainer
2017-05-30_deepleaning-and-chainer2017-05-30_deepleaning-and-chainer
2017-05-30_deepleaning-and-chainer
 

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