🎉
MLflow と GitHub Actions の役割
MLflowとGitHub Actionsは、機械学習のCI/CDパイプラインを構築する際に一緒に使うことができるツールです。それぞれの役割と連携方法について詳しく解説します。
1. MLflow と GitHub Actions の役割
ツール | 主な役割 |
---|---|
MLflow | 機械学習モデルの管理・トラッキング・デプロイ |
GitHub Actions | CI/CD の自動化(コードテスト、ビルド、デプロイ) |
MLflowは 機械学習モデルのライフサイクルを管理 し、GitHub Actionsは 開発ワークフローを自動化 するため、それぞれ補完し合う形で利用できます。
2. MLflow + GitHub Actions の主なユースケース
(1) モデルの自動トレーニングと登録
- GitHubリポジトリにコードをPushしたら、GitHub Actionsがトレーニングを実行し、MLflowにモデルを登録。
✅ 実装例
jobs:
train_model:
runs-on: ubuntu-latest
steps:
- name: コードを取得
uses: actions/checkout@v4
- name: Python環境のセットアップ
uses: actions/setup-python@v4
with:
python-version: '3.9'
- name: 依存関係のインストール
run: pip install -r requirements.txt
- name: モデルをトレーニングし、MLflow に登録
run: python train.py
train.py
内でMLflowを使ってモデルを記録:
import mlflow
mlflow.log_param("learning_rate", 0.01)
mlflow.log_metric("accuracy", 0.95)
mlflow.sklearn.log_model(model, "model")
(2) モデルのバージョン管理
GitHub Actionsが新しいモデルのバージョンをMLflowにプッシュし、過去のモデルと比較して最適なものを選択。
✅ 実装例
- name: MLflowに新しいモデルを登録
run: mlflow models serve -m models:/my_model/latest -p 5001
(3) 自動デプロイ
- 新しいモデルがMLflowに登録されたら、GitHub Actionsがモデルを本番環境にデプロイ。
-
MLflow Model Registry でステージを管理(
Staging
→Production
に昇格)。
✅ 実装例
jobs:
deploy_model:
runs-on: ubuntu-latest
steps:
- name: MLflowから最新のモデルを取得
run: mlflow models download -m models:/my_model/latest -d ./latest_model
- name: Dockerコンテナでモデルをデプロイ
run: docker run -p 5001:5001 my_model:latest
3. MLflow + GitHub Actions の組み合わせで気をつけるポイント
✅ データの保存先:MLflowのデータ(モデル、メトリクス)をどこに保存するか決める(AWS S3
/ Azure Blob Storage
など)。
✅ Secrets管理:GitHub Actions で MLflow Tracking Server の API トークンを secrets
に保存する。
✅ モデルの品質チェック:GitHub Actionsで自動テストを行い、精度が低いモデルはデプロイしない。
4. まとめ
MLflowとGitHub Actionsは一緒に使うことで、機械学習のトレーニング、管理、デプロイの自動化が可能になります。特に、CI/CDパイプラインを構築する際に非常に有効な組み合わせです。
Discussion