SlideShare a Scribd company logo
MLOpsを始めよう!
[LT版] MLflowで学ぶMLOpsことはじめ
園田憲一
日本オラクル株式会社
ソリューションアーキテクト本部
機械学習のワークフロー
Copyright © 2022, Oracle and/or its affiliates
2
①データの
収集
②データの
前処理
③学習・評価 ④デプロイ
• 整形されていない生
データ
• 企業内の様々なシス
テムで利用される
データストアに散在
するデータ
• データレイク、
RDB、オブジェクト
ストア、NoSQL、
Hadoopなど
• 生データから必要な
データ(特徴量)を抽出
し、機械学習に利用
できるように整形
• 整形されたデータを
統計処理にかけて予
測モデルを構築
• 予測モデルの精度を
評価し、目標の精度
を達成するまで繰り
返し学習する
• 構築した予測モデル
を本番環境にデプロ
イし、アプリケー
ションから利用でき
るようにする
各ワークフローの試行錯誤
Copyright © 2022, Oracle and/or its affiliates
3
①データの
収集
②データの
前処理
③学習・評価 ④デプロイ
前処理にあまりに
も工数がかかりす
ぎたので、データ
取り込みを見直し
作ったモデルの精
度が低かったので
ハイパーパラメー
タを見直し
作ったモデルの精
度が低かったので
特徴量を見直し
(データセットを作
り直し)
作ったモデルの精
度が低かったので
学習手法を見直し
モデルの予測精度
が落ちてきたので、
新しいデータセッ
トで学習し直し
試行錯誤の上、モデルの予測精度向上 時間と共に変わるデータのトレンド
思考錯誤の学習過程で生成されたデータを整理したい
Copyright © 2022, Oracle and/or its affiliates
4
メトリック
ハイパー
パラメータ
モデル
アーティファ
クト
データセット、
設定ファイル、
etc.
test.py
(version 1.0)
学習
どのデータセッ
トで実験したと
きの精度? この実験のハイ
パーパラメータ
は何だったか?
学習時に利用し
たファイル郡
は?
(データセット、
ソースコード)
以前実行した実
験と比較したい
が。。。
学習
学習
思考錯誤の学習過程で生成されたデータを整理したい
Copyright © 2022, Oracle and/or its affiliates
5
メトリック
ハイパー
パラメータ
モデル
アーティファ
クト
データセット、
設定ファイル、
etc.
test.py
(version 1.0)
学習
トラッキング
コード
データベースに記録
学習
学習
データベース
一度の実験で生成されたデータや利
用したファイルをワンセットに整理
整理して視覚化
ライブラリのバージョンや依存関係の問題を解消し、確実に学習、デプロイ
ができるようにしたい
Copyright © 2022, Oracle and/or its affiliates
6
Python
Library
ソースコード、デー
タファイル、etc.
ライブラリの依
存関係でエ
ラー。。。 ライブラリの
バージョン違い
でエラー。。。
必用なライブラ
リがインストー
ルされておらず
エラー。。。
実行
error
Python
Library
ソースコード、デー
タファイル、etc.
ライブラリのバージョンや依存関係の問題を解消し、確実に学習、デプロイ
ができるようにしたい
Copyright © 2022, Oracle and/or its affiliates
7
誰がどんな環境で実
行してもエラーなく
学習、デプロイ
ライブラリのバー
ジョンや依存関係を
キャプチャしてパッ
ケージ化
学習
✓ ソースコードの再利用
✓ 学習環境の可搬性
✓ 確実なデプロイ
✓ 異なる担当者の作業確実性
✓ ワークフローの標準化
Python
Library
ソースコード、デー
タファイル、etc.
conda
container
virtualenv
or
or
container
Successfully
Completed!!
モデルのライフサイクルを管理して
Copyright © 2022, Oracle and/or its affiliates
8
このモデルの
バージョン
は?
このモデルは
どのデータ
セットで実験
したのか?
このモデルは
どのソース
コードで実験
したのか?
このモデルは
いつリリース
したものか?
Staging Production Archived
ver1
ver2
ver3
ver1 ver1
ver2
test.py
(version 1.0)
Model 4
Model 1
Model 2
Model 3
deploy
deploy
update
update
update
学習
ライフサイクルが管理された状態
リリースス
テージとバー
ジョンを定義
し整理
各モデルの学
習詳細情報に
簡単にアクセ
ス
(例)mlflowのモデル管理イメージ
Copyright © 2022, Oracle and/or its affiliates
9
アーティファクト
として記録されて
いるモデル
モデルを登録
登録されたモデル
ステージ管理
バージョン管理
MLflow 構成例
Copyright © 2022, Oracle and/or its affiliates
10
学習環境
Object Storage
アーティファクト
ファイルの保存
Mlflow
Tracking Server
PostgreSQL
MySQL
SQLite
メトリック、パラメータ
その他メタデータの保存
MLコードにtracking serverを指定
set_tracking_uri('http://tracking_server_ip:/')
tracking serviceを起動
$ mlflow server --backend-store-uri mysql://user:pass@host:port/database_name
--default-artifact-root S3:/buket_name
--host tracking_server_ip
tracking service
http://tracking_server_ip
tracking
Web UIアクセス
S3もしくはS3互換APIで認証
AWS_ACCESS_KEY_ID = xxxxxxx
AWS_SECRET_ACCESS_KEY = xxxxxx
多数のユーザーのML開発環境を支えるMLOpsの統合共通基盤
Oracle Cloud InfrastructureでのMLOpsの構成例(mlflow版)
Copyright © 2022, Oracle and/or its affiliates
11
Object Storage
Data Science
MySQL Database
Service
Container Engine
For Kubernetes
Virtual Machine
Mlflow
Tracking Server
ML
学習環境
Tracking
各種ファイル、予
測モデルの保存
学習パラメータ
精度メトリックの保存
Deploy環境
• 学習を実行する度に、自動的
に各種情報(予測モデル、アー
ディファクト、メトリック、
パラメータ)をオブジェクト・
ストレージとDBに保存
• 整理された状態でWebUIから
閲覧
• 予測モデルのライフサイクルを一
元化されたモデルストアで管理
• モデルの整理、バージョニング、
リリース・フェーズの管理
• 学習時のライブラリの依存関係
をキャプチャしcondaもしくはコ
ンテナにパッケージ化
• モデル開発時とは異なる環境、
異なる人が再度学習する際の学
習環境の可搬性と学習の再現性
• 学習済みモデルのライブラリの
依存関係をキャプチャしcondaも
しくはコンテナにパッケージ化
• 学習済みモデルとデプロイ環境
の可搬性とデプロイの再現性
oracle-quickstartシリーズ(Terraformスクリプト)
https://github.com/oracle-quickstart/oci-mlflow
Ocha_MLflow_MLOps.pdf

More Related Content

Similar to Ocha_MLflow_MLOps.pdf

非エンジニアのSQL活用が加速させる事業成長
非エンジニアのSQL活用が加速させる事業成長非エンジニアのSQL活用が加速させる事業成長
非エンジニアのSQL活用が加速させる事業成長
Keiko Inagaki
 
超高速な機械学習を Oracle Database で実現!
超高速な機械学習を Oracle Database で実現!超高速な機械学習を Oracle Database で実現!
超高速な機械学習を Oracle Database で実現!
オラクルエンジニア通信
 
Big Data も Oracle SQL で参照できるって知ってました?
Big Data も Oracle SQL で参照できるって知ってました?Big Data も Oracle SQL で参照できるって知ってました?
Big Data も Oracle SQL で参照できるって知ってました?
美佳子 清水
 
Oracle Database 12c Release 1 PSR 12.1.0.2 のご紹介
Oracle Database 12c Release 1 PSR 12.1.0.2 のご紹介Oracle Database 12c Release 1 PSR 12.1.0.2 のご紹介
Oracle Database 12c Release 1 PSR 12.1.0.2 のご紹介
オラクルエンジニア通信
 
Synapse lakedatabase
Synapse lakedatabaseSynapse lakedatabase
Synapse lakedatabase
Ryoma Nagata
 
WebDB Forum 2012 基調講演資料
WebDB Forum 2012 基調講演資料WebDB Forum 2012 基調講演資料
WebDB Forum 2012 基調講演資料Recruit Technologies
 
ビッグデータ&データマネジメント展
ビッグデータ&データマネジメント展ビッグデータ&データマネジメント展
ビッグデータ&データマネジメント展
Recruit Technologies
 
【de:code 2020】 アマダの Azure への取り組みと DevOPS・MLOPS 環境の構築と運用
【de:code 2020】 アマダの Azure への取り組みと DevOPS・MLOPS 環境の構築と運用【de:code 2020】 アマダの Azure への取り組みと DevOPS・MLOPS 環境の構築と運用
【de:code 2020】 アマダの Azure への取り組みと DevOPS・MLOPS 環境の構築と運用
日本マイクロソフト株式会社
 
データ仮想化を活用したデータ分析のフローと分析モデル作成の自動化のご紹介
データ仮想化を活用したデータ分析のフローと分析モデル作成の自動化のご紹介データ仮想化を活用したデータ分析のフローと分析モデル作成の自動化のご紹介
データ仮想化を活用したデータ分析のフローと分析モデル作成の自動化のご紹介
Denodo
 
Microsoft Azureのビッグデータ基盤とAIテクノロジーを活用しよう
Microsoft Azureのビッグデータ基盤とAIテクノロジーを活用しようMicrosoft Azureのビッグデータ基盤とAIテクノロジーを活用しよう
Microsoft Azureのビッグデータ基盤とAIテクノロジーを活用しよう
Hideo Takagi
 
[INSIGHT OUT 2011] b21 ひとつのデータベース技術では生き残れない part2 no sql, hadoop
[INSIGHT OUT 2011] b21 ひとつのデータベース技術では生き残れない part2 no sql, hadoop[INSIGHT OUT 2011] b21 ひとつのデータベース技術では生き残れない part2 no sql, hadoop
[INSIGHT OUT 2011] b21 ひとつのデータベース技術では生き残れない part2 no sql, hadoopInsight Technology, Inc.
 
経済学のための実践的データ分析 4.SQL ことはじめ
経済学のための実践的データ分析 4.SQL ことはじめ経済学のための実践的データ分析 4.SQL ことはじめ
経済学のための実践的データ分析 4.SQL ことはじめ
Yasushi Hara
 
Oracle設計
Oracle設計Oracle設計
Oracle設計
Kouta Shiobara
 
【ウェブ セミナー】AI / アナリティクスを支えるビッグデータ基盤 Azure Data Lake [概要編]
【ウェブ セミナー】AI / アナリティクスを支えるビッグデータ基盤 Azure Data Lake [概要編]【ウェブ セミナー】AI / アナリティクスを支えるビッグデータ基盤 Azure Data Lake [概要編]
【ウェブ セミナー】AI / アナリティクスを支えるビッグデータ基盤 Azure Data Lake [概要編]
Hideo Takagi
 
広告ログの解析システム
広告ログの解析システム広告ログの解析システム
広告ログの解析システム
Katsuhiro Takata
 
アジャイルにモデリングは必要か
アジャイルにモデリングは必要かアジャイルにモデリングは必要か
アジャイルにモデリングは必要か
Hiromasa Oka
 
しばちょう先生が語る!オラクルデータベースの進化の歴史と最新技術動向#1
しばちょう先生が語る!オラクルデータベースの進化の歴史と最新技術動向#1しばちょう先生が語る!オラクルデータベースの進化の歴史と最新技術動向#1
しばちょう先生が語る!オラクルデータベースの進化の歴史と最新技術動向#1
オラクルエンジニア通信
 
巨大なサービスと膨大なデータを支えるプラットフォーム

巨大なサービスと膨大なデータを支えるプラットフォーム
巨大なサービスと膨大なデータを支えるプラットフォーム

巨大なサービスと膨大なデータを支えるプラットフォーム

Tetsutaro Watanabe
 
新しいソフトウェアエンジニアリングのためのパターンランゲージに向けて
新しいソフトウェアエンジニアリングのためのパターンランゲージに向けて新しいソフトウェアエンジニアリングのためのパターンランゲージに向けて
新しいソフトウェアエンジニアリングのためのパターンランゲージに向けて
Hironori Washizaki
 
GraphQLはどんな時に使うか
GraphQLはどんな時に使うかGraphQLはどんな時に使うか
GraphQLはどんな時に使うか
Yutaka Tachibana
 

Similar to Ocha_MLflow_MLOps.pdf (20)

非エンジニアのSQL活用が加速させる事業成長
非エンジニアのSQL活用が加速させる事業成長非エンジニアのSQL活用が加速させる事業成長
非エンジニアのSQL活用が加速させる事業成長
 
超高速な機械学習を Oracle Database で実現!
超高速な機械学習を Oracle Database で実現!超高速な機械学習を Oracle Database で実現!
超高速な機械学習を Oracle Database で実現!
 
Big Data も Oracle SQL で参照できるって知ってました?
Big Data も Oracle SQL で参照できるって知ってました?Big Data も Oracle SQL で参照できるって知ってました?
Big Data も Oracle SQL で参照できるって知ってました?
 
Oracle Database 12c Release 1 PSR 12.1.0.2 のご紹介
Oracle Database 12c Release 1 PSR 12.1.0.2 のご紹介Oracle Database 12c Release 1 PSR 12.1.0.2 のご紹介
Oracle Database 12c Release 1 PSR 12.1.0.2 のご紹介
 
Synapse lakedatabase
Synapse lakedatabaseSynapse lakedatabase
Synapse lakedatabase
 
WebDB Forum 2012 基調講演資料
WebDB Forum 2012 基調講演資料WebDB Forum 2012 基調講演資料
WebDB Forum 2012 基調講演資料
 
ビッグデータ&データマネジメント展
ビッグデータ&データマネジメント展ビッグデータ&データマネジメント展
ビッグデータ&データマネジメント展
 
【de:code 2020】 アマダの Azure への取り組みと DevOPS・MLOPS 環境の構築と運用
【de:code 2020】 アマダの Azure への取り組みと DevOPS・MLOPS 環境の構築と運用【de:code 2020】 アマダの Azure への取り組みと DevOPS・MLOPS 環境の構築と運用
【de:code 2020】 アマダの Azure への取り組みと DevOPS・MLOPS 環境の構築と運用
 
データ仮想化を活用したデータ分析のフローと分析モデル作成の自動化のご紹介
データ仮想化を活用したデータ分析のフローと分析モデル作成の自動化のご紹介データ仮想化を活用したデータ分析のフローと分析モデル作成の自動化のご紹介
データ仮想化を活用したデータ分析のフローと分析モデル作成の自動化のご紹介
 
Microsoft Azureのビッグデータ基盤とAIテクノロジーを活用しよう
Microsoft Azureのビッグデータ基盤とAIテクノロジーを活用しようMicrosoft Azureのビッグデータ基盤とAIテクノロジーを活用しよう
Microsoft Azureのビッグデータ基盤とAIテクノロジーを活用しよう
 
[INSIGHT OUT 2011] b21 ひとつのデータベース技術では生き残れない part2 no sql, hadoop
[INSIGHT OUT 2011] b21 ひとつのデータベース技術では生き残れない part2 no sql, hadoop[INSIGHT OUT 2011] b21 ひとつのデータベース技術では生き残れない part2 no sql, hadoop
[INSIGHT OUT 2011] b21 ひとつのデータベース技術では生き残れない part2 no sql, hadoop
 
経済学のための実践的データ分析 4.SQL ことはじめ
経済学のための実践的データ分析 4.SQL ことはじめ経済学のための実践的データ分析 4.SQL ことはじめ
経済学のための実践的データ分析 4.SQL ことはじめ
 
Oracle設計
Oracle設計Oracle設計
Oracle設計
 
【ウェブ セミナー】AI / アナリティクスを支えるビッグデータ基盤 Azure Data Lake [概要編]
【ウェブ セミナー】AI / アナリティクスを支えるビッグデータ基盤 Azure Data Lake [概要編]【ウェブ セミナー】AI / アナリティクスを支えるビッグデータ基盤 Azure Data Lake [概要編]
【ウェブ セミナー】AI / アナリティクスを支えるビッグデータ基盤 Azure Data Lake [概要編]
 
広告ログの解析システム
広告ログの解析システム広告ログの解析システム
広告ログの解析システム
 
アジャイルにモデリングは必要か
アジャイルにモデリングは必要かアジャイルにモデリングは必要か
アジャイルにモデリングは必要か
 
しばちょう先生が語る!オラクルデータベースの進化の歴史と最新技術動向#1
しばちょう先生が語る!オラクルデータベースの進化の歴史と最新技術動向#1しばちょう先生が語る!オラクルデータベースの進化の歴史と最新技術動向#1
しばちょう先生が語る!オラクルデータベースの進化の歴史と最新技術動向#1
 
巨大なサービスと膨大なデータを支えるプラットフォーム

巨大なサービスと膨大なデータを支えるプラットフォーム
巨大なサービスと膨大なデータを支えるプラットフォーム

巨大なサービスと膨大なデータを支えるプラットフォーム

 
新しいソフトウェアエンジニアリングのためのパターンランゲージに向けて
新しいソフトウェアエンジニアリングのためのパターンランゲージに向けて新しいソフトウェアエンジニアリングのためのパターンランゲージに向けて
新しいソフトウェアエンジニアリングのためのパターンランゲージに向けて
 
GraphQLはどんな時に使うか
GraphQLはどんな時に使うかGraphQLはどんな時に使うか
GraphQLはどんな時に使うか
 

More from Kenichi Sonoda

[Oracle Code Night] Reinforcement Learning Demo Code
[Oracle Code Night] Reinforcement Learning Demo Code[Oracle Code Night] Reinforcement Learning Demo Code
[Oracle Code Night] Reinforcement Learning Demo Code
Kenichi Sonoda
 
20210831 code night はじめての強化学習
20210831 code night  はじめての強化学習20210831 code night  はじめての強化学習
20210831 code night はじめての強化学習
Kenichi Sonoda
 
20210531 ora jam_stackgan
20210531 ora jam_stackgan20210531 ora jam_stackgan
20210531 ora jam_stackgan
Kenichi Sonoda
 
[Code night 20200531]machine learning for begginer generation of virtual rea...
[Code night 20200531]machine learning for begginer  generation of virtual rea...[Code night 20200531]machine learning for begginer  generation of virtual rea...
[Code night 20200531]machine learning for begginer generation of virtual rea...
Kenichi Sonoda
 
20210226[oracle code night] 機械学習入門:ディープラーニングの基礎から転移学習まで
20210226[oracle code night] 機械学習入門:ディープラーニングの基礎から転移学習まで20210226[oracle code night] 機械学習入門:ディープラーニングの基礎から転移学習まで
20210226[oracle code night] 機械学習入門:ディープラーニングの基礎から転移学習まで
Kenichi Sonoda
 
[Code night] natural language proccessing and machine learning
[Code night] natural language proccessing and machine learning[Code night] natural language proccessing and machine learning
[Code night] natural language proccessing and machine learning
Kenichi Sonoda
 
20200812 Cbject Detection with OpenCV and CNN
20200812 Cbject Detection with OpenCV and CNN20200812 Cbject Detection with OpenCV and CNN
20200812 Cbject Detection with OpenCV and CNN
Kenichi Sonoda
 
20200402 oracle cloud infrastructure data science
20200402 oracle cloud infrastructure data science20200402 oracle cloud infrastructure data science
20200402 oracle cloud infrastructure data science
Kenichi Sonoda
 
[Oracle big data jam session #1] Apache Spark ことはじめ
[Oracle big data jam session #1] Apache Spark ことはじめ[Oracle big data jam session #1] Apache Spark ことはじめ
[Oracle big data jam session #1] Apache Spark ことはじめ
Kenichi Sonoda
 
Oracle cloud infrastructure shared file service comparison 20181019 ss
Oracle cloud infrastructure shared file service comparison 20181019 ssOracle cloud infrastructure shared file service comparison 20181019 ss
Oracle cloud infrastructure shared file service comparison 20181019 ss
Kenichi Sonoda
 
Oci file storage service deep dive 20181001 ss
Oci file storage service deep dive 20181001 ssOci file storage service deep dive 20181001 ss
Oci file storage service deep dive 20181001 ss
Kenichi Sonoda
 
Configureing analytics system with apache spark and object storage service of...
Configureing analytics system with apache spark and object storage service of...Configureing analytics system with apache spark and object storage service of...
Configureing analytics system with apache spark and object storage service of...
Kenichi Sonoda
 
Oci object storage deep dive 20190329 ss
Oci object storage deep dive 20190329 ssOci object storage deep dive 20190329 ss
Oci object storage deep dive 20190329 ss
Kenichi Sonoda
 

More from Kenichi Sonoda (13)

[Oracle Code Night] Reinforcement Learning Demo Code
[Oracle Code Night] Reinforcement Learning Demo Code[Oracle Code Night] Reinforcement Learning Demo Code
[Oracle Code Night] Reinforcement Learning Demo Code
 
20210831 code night はじめての強化学習
20210831 code night  はじめての強化学習20210831 code night  はじめての強化学習
20210831 code night はじめての強化学習
 
20210531 ora jam_stackgan
20210531 ora jam_stackgan20210531 ora jam_stackgan
20210531 ora jam_stackgan
 
[Code night 20200531]machine learning for begginer generation of virtual rea...
[Code night 20200531]machine learning for begginer  generation of virtual rea...[Code night 20200531]machine learning for begginer  generation of virtual rea...
[Code night 20200531]machine learning for begginer generation of virtual rea...
 
20210226[oracle code night] 機械学習入門:ディープラーニングの基礎から転移学習まで
20210226[oracle code night] 機械学習入門:ディープラーニングの基礎から転移学習まで20210226[oracle code night] 機械学習入門:ディープラーニングの基礎から転移学習まで
20210226[oracle code night] 機械学習入門:ディープラーニングの基礎から転移学習まで
 
[Code night] natural language proccessing and machine learning
[Code night] natural language proccessing and machine learning[Code night] natural language proccessing and machine learning
[Code night] natural language proccessing and machine learning
 
20200812 Cbject Detection with OpenCV and CNN
20200812 Cbject Detection with OpenCV and CNN20200812 Cbject Detection with OpenCV and CNN
20200812 Cbject Detection with OpenCV and CNN
 
20200402 oracle cloud infrastructure data science
20200402 oracle cloud infrastructure data science20200402 oracle cloud infrastructure data science
20200402 oracle cloud infrastructure data science
 
[Oracle big data jam session #1] Apache Spark ことはじめ
[Oracle big data jam session #1] Apache Spark ことはじめ[Oracle big data jam session #1] Apache Spark ことはじめ
[Oracle big data jam session #1] Apache Spark ことはじめ
 
Oracle cloud infrastructure shared file service comparison 20181019 ss
Oracle cloud infrastructure shared file service comparison 20181019 ssOracle cloud infrastructure shared file service comparison 20181019 ss
Oracle cloud infrastructure shared file service comparison 20181019 ss
 
Oci file storage service deep dive 20181001 ss
Oci file storage service deep dive 20181001 ssOci file storage service deep dive 20181001 ss
Oci file storage service deep dive 20181001 ss
 
Configureing analytics system with apache spark and object storage service of...
Configureing analytics system with apache spark and object storage service of...Configureing analytics system with apache spark and object storage service of...
Configureing analytics system with apache spark and object storage service of...
 
Oci object storage deep dive 20190329 ss
Oci object storage deep dive 20190329 ssOci object storage deep dive 20190329 ss
Oci object storage deep dive 20190329 ss
 

Ocha_MLflow_MLOps.pdf

  • 2. 機械学習のワークフロー Copyright © 2022, Oracle and/or its affiliates 2 ①データの 収集 ②データの 前処理 ③学習・評価 ④デプロイ • 整形されていない生 データ • 企業内の様々なシス テムで利用される データストアに散在 するデータ • データレイク、 RDB、オブジェクト ストア、NoSQL、 Hadoopなど • 生データから必要な データ(特徴量)を抽出 し、機械学習に利用 できるように整形 • 整形されたデータを 統計処理にかけて予 測モデルを構築 • 予測モデルの精度を 評価し、目標の精度 を達成するまで繰り 返し学習する • 構築した予測モデル を本番環境にデプロ イし、アプリケー ションから利用でき るようにする
  • 3. 各ワークフローの試行錯誤 Copyright © 2022, Oracle and/or its affiliates 3 ①データの 収集 ②データの 前処理 ③学習・評価 ④デプロイ 前処理にあまりに も工数がかかりす ぎたので、データ 取り込みを見直し 作ったモデルの精 度が低かったので ハイパーパラメー タを見直し 作ったモデルの精 度が低かったので 特徴量を見直し (データセットを作 り直し) 作ったモデルの精 度が低かったので 学習手法を見直し モデルの予測精度 が落ちてきたので、 新しいデータセッ トで学習し直し 試行錯誤の上、モデルの予測精度向上 時間と共に変わるデータのトレンド
  • 4. 思考錯誤の学習過程で生成されたデータを整理したい Copyright © 2022, Oracle and/or its affiliates 4 メトリック ハイパー パラメータ モデル アーティファ クト データセット、 設定ファイル、 etc. test.py (version 1.0) 学習 どのデータセッ トで実験したと きの精度? この実験のハイ パーパラメータ は何だったか? 学習時に利用し たファイル郡 は? (データセット、 ソースコード) 以前実行した実 験と比較したい が。。。 学習 学習
  • 5. 思考錯誤の学習過程で生成されたデータを整理したい Copyright © 2022, Oracle and/or its affiliates 5 メトリック ハイパー パラメータ モデル アーティファ クト データセット、 設定ファイル、 etc. test.py (version 1.0) 学習 トラッキング コード データベースに記録 学習 学習 データベース 一度の実験で生成されたデータや利 用したファイルをワンセットに整理 整理して視覚化
  • 6. ライブラリのバージョンや依存関係の問題を解消し、確実に学習、デプロイ ができるようにしたい Copyright © 2022, Oracle and/or its affiliates 6 Python Library ソースコード、デー タファイル、etc. ライブラリの依 存関係でエ ラー。。。 ライブラリの バージョン違い でエラー。。。 必用なライブラ リがインストー ルされておらず エラー。。。 実行 error Python Library ソースコード、デー タファイル、etc.
  • 7. ライブラリのバージョンや依存関係の問題を解消し、確実に学習、デプロイ ができるようにしたい Copyright © 2022, Oracle and/or its affiliates 7 誰がどんな環境で実 行してもエラーなく 学習、デプロイ ライブラリのバー ジョンや依存関係を キャプチャしてパッ ケージ化 学習 ✓ ソースコードの再利用 ✓ 学習環境の可搬性 ✓ 確実なデプロイ ✓ 異なる担当者の作業確実性 ✓ ワークフローの標準化 Python Library ソースコード、デー タファイル、etc. conda container virtualenv or or container Successfully Completed!!
  • 8. モデルのライフサイクルを管理して Copyright © 2022, Oracle and/or its affiliates 8 このモデルの バージョン は? このモデルは どのデータ セットで実験 したのか? このモデルは どのソース コードで実験 したのか? このモデルは いつリリース したものか? Staging Production Archived ver1 ver2 ver3 ver1 ver1 ver2 test.py (version 1.0) Model 4 Model 1 Model 2 Model 3 deploy deploy update update update 学習 ライフサイクルが管理された状態 リリースス テージとバー ジョンを定義 し整理 各モデルの学 習詳細情報に 簡単にアクセ ス
  • 9. (例)mlflowのモデル管理イメージ Copyright © 2022, Oracle and/or its affiliates 9 アーティファクト として記録されて いるモデル モデルを登録 登録されたモデル ステージ管理 バージョン管理
  • 10. MLflow 構成例 Copyright © 2022, Oracle and/or its affiliates 10 学習環境 Object Storage アーティファクト ファイルの保存 Mlflow Tracking Server PostgreSQL MySQL SQLite メトリック、パラメータ その他メタデータの保存 MLコードにtracking serverを指定 set_tracking_uri('http://tracking_server_ip:/') tracking serviceを起動 $ mlflow server --backend-store-uri mysql://user:pass@host:port/database_name --default-artifact-root S3:/buket_name --host tracking_server_ip tracking service http://tracking_server_ip tracking Web UIアクセス S3もしくはS3互換APIで認証 AWS_ACCESS_KEY_ID = xxxxxxx AWS_SECRET_ACCESS_KEY = xxxxxx 多数のユーザーのML開発環境を支えるMLOpsの統合共通基盤
  • 11. Oracle Cloud InfrastructureでのMLOpsの構成例(mlflow版) Copyright © 2022, Oracle and/or its affiliates 11 Object Storage Data Science MySQL Database Service Container Engine For Kubernetes Virtual Machine Mlflow Tracking Server ML 学習環境 Tracking 各種ファイル、予 測モデルの保存 学習パラメータ 精度メトリックの保存 Deploy環境 • 学習を実行する度に、自動的 に各種情報(予測モデル、アー ディファクト、メトリック、 パラメータ)をオブジェクト・ ストレージとDBに保存 • 整理された状態でWebUIから 閲覧 • 予測モデルのライフサイクルを一 元化されたモデルストアで管理 • モデルの整理、バージョニング、 リリース・フェーズの管理 • 学習時のライブラリの依存関係 をキャプチャしcondaもしくはコ ンテナにパッケージ化 • モデル開発時とは異なる環境、 異なる人が再度学習する際の学 習環境の可搬性と学習の再現性 • 学習済みモデルのライブラリの 依存関係をキャプチャしcondaも しくはコンテナにパッケージ化 • 学習済みモデルとデプロイ環境 の可搬性とデプロイの再現性 oracle-quickstartシリーズ(Terraformスクリプト) https://github.com/oracle-quickstart/oci-mlflow