More Related Content
PDF
MLOps に基づく AI/ML 実運用最前線 ~画像、動画データにおける MLOps 事例のご紹介~(映像情報メディア学会2021年冬季大会企画セッショ... PPTX
PDF
入門 Kubeflow ~Kubernetesで機械学習をはじめるために~ (NTT Tech Conference #4 講演資料) PDF
PDF
Active Learning の基礎と最近の研究 PDF
PDF
makoto shing (stability ai) - image model fine-tuning - wandb_event_230525.pdf PPTX
[DL輪読会]Revisiting Deep Learning Models for Tabular Data (NeurIPS 2021) 表形式デー... What's hot
PDF
PDF
PDF
PDF
GiNZAで始める日本語依存構造解析 〜CaboCha, UDPipe, Stanford NLPとの比較〜 PDF
Dockerfile を書くためのベストプラクティス解説編 PDF
続・PFN のオンプレML基盤の取り組み / オンプレML基盤 on Kubernetes 〜PFN、ヤフー〜 #2 PDF
PDF
分散学習のあれこれ~データパラレルからモデルパラレルまで~ PDF
マルチテナント化で知っておきたいデータベースのこと PDF
PDF
PDF
MLflowによる機械学習モデルのライフサイクルの管理 PPTX
PDF
PDF
ChatGPT 人間のフィードバックから強化学習した対話AI PDF
最近のDeep Learning (NLP) 界隈におけるAttention事情 PDF
Apache Arrow - データ処理ツールの次世代プラットフォーム PDF
ゼロから始める自然言語処理 【FIT2016チュートリアル】 PDF
Hadoop/Spark で Amazon S3 を徹底的に使いこなすワザ (Hadoop / Spark Conference Japan 2019) PDF
Similar to MLflowで学ぶMLOpsことはじめ
PDF
PDF
PDF
MLOpsの概要と初学者が気をつけたほうが良いこと PDF
Getting started with MLOps PDF
PDF
2016-02-08 Spark MLlib Now and Beyond@Spark Conference Japan 2016 PPTX
LF AI & DataでのOSS活動と、それを富士社内で活用する話 - LF AI & Data Japan RUG Kick Off PDF
Machine learning CI/CD with OSS PDF
Deep Learning Implementations: pylearn2 and torch7 (JNNS 2015) PPTX
PDF
『Pythonによる ai・機械学習・深層学習アプリのつくり方』をGoogleColabで動く限り動かしてみた PDF
Kubeflowで何ができて何ができないのか #DEvFest18 PPT
machine learning & apache mahout PPTX
DataEngConf NYC’18 セッションサマリー #2 PDF
PDF
これから機械学習エンジニアとして戦っていくみなさんへ ~MLOps というマインドセットについて~ PPTX
【DL輪読会】大量API・ツールの扱いに特化したLLM PDF
[Oracle big data jam session #1] Apache Spark ことはじめ PDF
2015-11-17 きちんと知りたいApache Spark ~機械学習とさまざまな機能群 PDF
More from Kenichi Sonoda
PPTX
機械学習基盤として活用するAutonomous Database PPTX
[Oracle Code Night] Reinforcement Learning Demo Code PPTX
20210831 code night はじめての強化学習 PDF
20210531 ora jam_stackgan PDF
[Code night 20200531]machine learning for begginer generation of virtual rea... PDF
20210226[oracle code night] 機械学習入門:ディープラーニングの基礎から転移学習まで PDF
[Code night] natural language proccessing and machine learning PDF
20200812 Cbject Detection with OpenCV and CNN PDF
20200402 oracle cloud infrastructure data science PDF
Oracle cloud infrastructure shared file service comparison 20181019 ss PDF
Oci file storage service deep dive 20181001 ss PDF
Configureing analytics system with apache spark and object storage service of... PDF
Oci object storage deep dive 20190329 ss Recently uploaded
PDF
世界と日本の油圧制御ソレノイドバルブ市場分析:規模、成長率、企業ランキング2025 PDF
Teachablemachineを用いたハードルを超える際のフォーム識別AIの制作と結果 PPTX
Qlik TECH TALK セミナー:What's New In Qlik ~ 2025年10月リリース最新機能のご紹介 ~ PDF
舞台演出用光ファイバーコネクタ調査レポート:市場規模、シェア、産業分析データ、最新動向2025-2031 YH Research PDF
工業用NDTのX線検査装置の世界市場レポート:2031年には2017百万米ドルに達する見込み PDF
枚葉式洗浄装置の世界市場レポート:2031年には7213百万米ドルに達する見込み MLflowで学ぶMLOpsことはじめ
- 1.
- 2.
機械学習のワークフロー
• 整形されていない生
データ
• 企業内の様々なシス
テムで利用される
データストアに散在
するデータ
•データレイク、
RDB、オブジェクト
ストア、NoSQL、
Hadoopなど
• 生データから必要な
データ(特徴量)を抽
出し、機械学習に利
用できるように整形
• 整形されたデータを
統計処理にかけて予
測モデルを構築
• 予測モデルの精度を
評価し、目標の精度
を達成するまで繰り
返し学習する
• 構築した予測モデル
を本番環境にデプロ
イし、アプリケー
ションから利用でき
るようにする
2 Copyright © 2022, Oracle and/or its affiliates
RAW Data Prep Train & Evaluation Deploy
- 3.
MLflow概要
• 機械学習のワークフロー支援ツール
• Databrics社により開発
•OSSのライブラリとして提供
• pip install mlflow
• Managed PaaSとして同社からクラウドサービスと
してリリース
• 一般的なMLライブラリと併用
• 実験の試行錯誤の過程で生成される多数をセットで整
理、視覚化
• データセット
• アーティファクト
• 学習パラメータ
• 精度メトリックなど
• 学習環境、デプロイ環境のパッケージ化
• 各種ライブラリ、バージョン、依存関係を完全に
キャプチャ
• 環境の可搬性と処理実行の確実性
• シンプルな関数体形と容易な使い勝手
• 主要クラウドベンダーのMLサービスと連携可能
3 Copyright © 2022, Oracle and/or its affiliates
- 4.
MLflow モジュール概要
Copyright ©2022, Oracle and/or its affiliates
4
Mlflow Models
Mlflow Tracking
Mlflow Projects
Mlflow Registry
機械学習のコード実行時に、パラメータ、メトリックなどを
ロギングし、結果を整理、視覚化
機械学習のコードおよび学習環境を、再利用可能かつ再現可
能なフォーマットでパッケージ化
学習済みの予測モデルおよびデプロイ環境を、再利用可能か
つ再現可能なフォーマットでパッケージ化
予測モデルのライフサイクルを一元管理(リリース管理、
バージョニング)
- 5.
Mlflow アーキテクチャ
Copyright ©2022, Oracle and/or its affiliates
5
……...
……...
……...
MLソースコード
(Python/R)
app
container
conda
• 予測モデル
• アーティファクト
• 精度メトリック
• 学習パラメータ
• etc.
収集されたデータを
ベースに実験結果を
整理、視覚化
container
conda
予測結果
REST/CLI/Python
予測データ
収集されたデータを
ベースに学習環境を
パッケージ化
収集されたデータをベースに
デプロイ環境をパッケージ化
Staging Production Archived
モデルのバージョン、リ
リース状況を一元管理
コード実行時に各種データ
をデータベースに自動収集
Mlflow Tracking
Mlflow Registry
Mlflow Projects
Mlflow Models
Mlflow UI
- 6.
Mlflow Tracking
Copyright ©2022, Oracle and/or its affiliates
6
MLコードにTracking
コードを埋め込む方式
https://www.mlflow.org/docs/latest/tracking.html
MLのコード実行時に定義した情報をログとして記録、整理された状態でMlflow UIから確認
import sklearn
Import mlflow
・・・・・・・・・・・・・・・・・・・
・・・・・・・・・・・・・・・・・・・
(scikit-learnなどMLライブラリのコード)
・・・・・・・・・・・・・・・・・・・
・・・・・・・・・・・・・・・・・・・
# MlflowのRunの定義
with mlflow.start_run():
# 学習パラメータをロギング
mlflow.log_param()
# 予測モデルの精度情報をロギング
mlflow.log_metric()
#アーディファクトをロギング
mlflow.log_artifact()
#予測モデルのロギング
mlflow.sklearn.log_model()
Run #3
• 予測モデル
• アーティファクト
• メトリック
• 学習パラメータ
Run #2
• 予測モデル
• アーティファクト
• メトリック
• 学習パラメータ
Run #1
• 予測モデル
• アーティファクト
• メトリック
• 学習パラメータ
train.py
実行 python train.py
Mlflow UI
実行 python train.py
実行 python train.py
- 7.
デモのサンプルデータ
Copyright © 2022,Oracle and/or its affiliates
7
http://archive.ics.uci.edu/ml/machine-learning-databases/wine-quality/winequality-red.csv
データセット:ワインの成分データと品質を纏めたデータセット
デモシナリオ:ワインの成分データから品質(10段階評価)を予測
コード概要:ElasticNetを使った回帰分析
成分データ(説明変数) 品質(目的変数)
- 8.
Mlflow Projects
Copyright ©2022, Oracle and/or its affiliates
8
学習時のライブラリの依存関係をキャプチャしcondaもしくはコンテナにパッケージ化
モデル開発時とは異なる環境、異なる人が再度学習する際の学習環境の可搬性と学習の再現性
conda.yaml
データ
name: MLproject_demo
conda_env: conda.yaml
entry_points:
main:
parameters:
alpha: float
l1_ratio: {type: float, default: 0.1}
command: "python src.py --alpha {alpha} --l1-ratio {l1_ratio}"
ソースコード
(src.py)
MLproject
$ mlflow run <project directory>
conda
$ mlflow run <repository url>
channels:
- conda-forge
dependencies:
- python=3.9.7
- pip
- pip:
- mlflow
- scikit-learn==1.0.2
name: mlflow-env
conda仮想環境
の定義ファイル
MLflow Project
の定義ファイル
ライブラリのバージョン、依存関係
が完全にキャプチャされたconda仮
想環境で学習を確実に再現
Projects
mlflow run コマンドにより学習実行
conda
- 9.
Mlflow Projects
Copyright ©2022, Oracle and/or its affiliates
9
学習時のライブラリの依存関係をキャプチャしcondaもしくはコンテナにパッケージ化
モデル開発時とは異なる環境、異なる人が再度学習する際の学習環境の可搬性と学習の再現性
Dockerfile
データ
name: docker-example
docker_env:
image: mlflow-docker-example
entry_points:
main:
parameters:
alpha: float
l1_ratio: {type: float, default: 0.1}
command: "python src.py --alpha {alpha} --l1-ratio {l1_ratio}"
ソースコード
(src.py)
MLproject
$ docker build -t mlflow-docker-example -f Dockerfile .
FROM continuumio/miniconda3:4.10.3
RUN pip install mlflow>=1.0
&& pip install numpy==1.21.2
&& pip install scipy
&& pip install pandas==1.3.3
&& pip install scikit-learn==0.24.2
&& pip install cloudpickle
docker image
定義ファイル
MLflow Project
の定義ファイル
ライブラリのバージョン、依存関係が完全にキャ
プチャされたコンテナ環境で学習を確実に再現
$ mlflow run <project directory>
docker imageの作成
container
mlflow run コマンドでコンテナ起動、学習実行
Projects
- 10.
Mlflow Models
Copyright ©2022, Oracle and/or its affiliates
10
学習済みモデルのライブラリの依存関係をキャプチャしcondaもしくはコンテナにパッケージ化
学習済みモデルとデプロイ環境の可搬性とデプロイの再現性
データ
ソースコード
(src.py)
Mlflow
Tracking
log_model() conda.yaml
channels:
- conda-forge
dependencies:
- python=3.9.7
- pip
- pip:
- mlflow
- scikit-learn==1.0.2
name: mlflow-env
artifact_path: model
flavors:
python_function:
env: conda.yaml
・・・中略
sklearn:
pickled_model: model.pkl
sklearn_version: 0.19.1
model_uuid: 9b9c2659f233
・・・中略
MLmodel
$ mlflow models serve
$ mlflow models build-docker
予測モデルのRESTサービスをホス
トするconda環境を作成、起動
$ docker run
docker imageを作成
予測モデルのRESTサービス
をホストするコンテナを起動
container
model.pkl
requirements.txt
mlflow
cloudpickle==2.0.0
scikit-learn==0.19.1
Models
学習
実行
ファイル
生成
conda
application
予測結果
REST/CLI/Python
予測データ
application
予測結果
REST/CLI/Python
予測データ
- 11.
Mlflow Registry
Mlflow Registry
Copyright© 2022, Oracle and/or its affiliates
11
予測モデルのライフサイクルを一元化されたモデルストアで管理
モデルの整理、バージョニング、フェーズ指定(Staging/Production/Archived)
• 予測モデル
• アーティファクト
• 精度メトリック
• 学習パラメータ
• etc.
Mlflow データストア
Mlflow Tracking
Staging Production Archived
多数の予測モデルの一元管理
• バージョニング
• リリースステージ
Mlflow Models
本番環境へのデプロイ
本番リリース
トラッキング
- 12.
MLflow 構成例
Copyright ©2022, Oracle and/or its affiliates
12
学習環境
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
- 13.
Oracle Cloud Infrastructureのデザインパターン
Copyright© 2022, Oracle and/or its affiliates
13
oracle-quickstartシリーズ(Terraformスクリプト)
https://github.com/oracle-quickstart/oci-mlflow
Object Storage
Data Science
MySQL Database Service
Container Engine
For Kubernetes
Virtual Machine
Mlflow
Tracking Server
ML
学習環境
Tracking
Artifactの保存
学習パラメータ
精度メトリック
の保存
Deploy