ARTICLE

MLOps CI/CDパイプライン構築 — GitHub Actions×MLflow×Docker実装ガイド【2026年版】

2026/4/9

MLOpsのCI/CDパイプラインをGitHub Actions×MLflowで構築する実装手順を解説

ML

MLOps CI/CDパイプライン構築 — GitHub Actions×MLflow×Docker実装ガイド【2026年版】

ARTICLE株式会社renue
renue

株式会社renue

2026/4/9 公開

AI導入・DXの悩みをプロに相談してみませんか?

AIやDXに関する悩みがありましたら、お気軽にrenueの無料相談をご利用ください。 renueのAI支援実績、コンサルティングの方針や進め方をご紹介します。

MLOpsにおけるCI/CDパイプラインの役割

ソフトウェア開発のCI/CDが「コードの品質と配信速度」を担保するように、MLOpsのCI/CDは「モデルの品質と本番反映速度」を担保します。しかし機械学習特有の複雑さ — データの変動、学習の再現性、モデルサイズの大きさ — により、従来のDevOps手法をそのまま適用できません。

本記事では、GitHub Actions + MLflow + Dockerを軸に、実務で使えるMLOps CI/CDパイプラインの構築手順を解説します。

MLOps CI/CDの3つの柱: CI・CT・CD

CI(Continuous Integration)— コードとデータの検証

コード変更がプッシュされるたびに、リンティング・ユニットテスト・データスキーマ検証を自動実行します。データの分布変化(ドリフト)を検知するバリデーションもこのフェーズに含まれます。

CT(Continuous Training)— モデルの自動再学習

新しいデータが蓄積された際、またはスケジュールに従い、学習パイプラインを自動実行します。MLflowにパラメータ・メトリクス・アーティファクトを記録し、過去の実験と比較可能にします。

CD(Continuous Deployment)— モデルの本番配信

MLflowのModel Registryで「Staging→Production」にプロモートされたモデルを検知し、新しいDockerイメージをビルドしてサービングエンドポイントに配信します。

GitHub Actionsによるワークフロー設計

GitHub Actionsは、コードプッシュやPRマージをトリガーとしてCI/CTパイプラインを自動起動できます。MLOps固有のポイントは以下の通りです。

  • ワークフロートリガー: pushイベントに加え、schedule(cron)で定期再学習を設定
  • セルフホストランナー: GPU学習が必要な場合、GPU付きのセルフホストランナーを利用
  • シークレット管理: APIキー・クラウド認証情報はGitHub Encrypted Secretsに格納
  • アーティファクト管理: 学習済みモデルはMLflow Artifact StoreまたはS3/GCSに保存(Actionsのアーティファクトはサイズ制限があるため非推奨)

MLflow連携の実装ポイント

実験追跡(Tracking)

学習スクリプト内でmlflow.log_params()mlflow.log_metrics()を呼び出し、全実験をMLflow Tracking Serverに記録します。CI/CDパイプラインからも同じTracking URIを参照することで、手動実験と自動実験のメトリクスを統一管理できます。

Model Registry

学習完了後、モデルをMLflow Model Registryに登録します。新バージョンはまず「Staging」ステージに配置され、評価テストを通過した場合のみ「Production」にプロモートされます。このゲートキーピングにより、品質の低いモデルが本番に到達するリスクを排除します。

モデルサービング

Productionステージのモデルを動的に取得し、Dockerイメージをビルドしてデプロイする方式が一般的です。mlflow models serveコマンドでREST APIサーバーを起動するか、カスタムFastAPIサーバーでラップします。

データバリデーションの自動化

本番データの品質劣化はモデル精度低下の主因です。CI段階で以下を自動検証します。

  • スキーマ検証: カラム名・データ型・NULL許容の一致を確認
  • 分布検証: KL divergence / PSI(Population Stability Index)で学習データとの乖離を検出
  • 異常値検出: IQR法やz-scoreで統計的外れ値をフラグ付け

Great Expectations等のツールを使えば、これらのルールをコードで定義し、パイプラインに組み込めます。

モデルモニタリングとフィードバックループ

デプロイ後も継続的なモニタリングが必要です。追跡すべきメトリクスは3カテゴリに分けられます。

  • 推論パフォーマンス: レイテンシ、スループット、エラーレート
  • モデル品質: 精度、F1スコア、AUC(ラベル付きフィードバックがある場合)
  • データドリフト: 入力特徴量の分布変化を検知し、再学習トリガーとする

Grafana + Prometheus構成が最も汎用的で、Evidently AIやWhyLabsなどのML特化モニタリングツールとの併用も有効です。

実装時の落とし穴と対策

  1. 再現性の担保: ランダムシードの固定だけでは不十分。Dockerイメージで環境を固定し、データのバージョンもDVC等で管理する
  2. 学習時間とCI/CDの整合: 学習に数時間かかる場合、CIのタイムアウトを超過する。非同期ジョブ(AWS Batch等)に委譲し、完了をポーリングする設計にする
  3. モデルサイズとレジストリ: 数GBのモデルをGit管理するのは非現実的。MLflow Artifact Store + クラウドストレージで管理し、参照のみをコードに持つ
  4. A/Bテストとカナリアデプロイ: いきなり100%切り替えではなく、トラフィックの10%で新モデルを検証してから全量切り替え

まとめ

MLOps CI/CDパイプラインは「コード品質」「データ品質」「モデル品質」の3つを同時に保証する仕組みです。GitHub Actionsで自動トリガーを設定し、MLflowで実験・モデルを一元管理し、Dockerで環境を固定する — この3要素を組み合わせることで、再現性と配信速度を両立できます。

関連記事

よくある質問(FAQ)

Q. GitHub ActionsとJenkinsのどちらがMLOps CI/CDに適していますか?

A. クラウドネイティブで小〜中規模ならGitHub Actionsが手軽です。オンプレミスGPUクラスタがある大規模組織ではJenkinsの方が柔軟です。

Q. モデルの再学習頻度はどう決めるべきですか?

A. データドリフトの速度に依存します。ECのレコメンドなら日次、製造業の異常検知なら月次が目安です。まずは週次で始め、モニタリング結果に応じて調整します。

Q. CT(Continuous Training)とCDは同じワークフローに入れるべきですか?

A. 分離を推奨します。CTは学習完了→Model Registryへの登録まで、CDはRegistry上のステージ変更をトリガーとする別ワークフローにすることで、障害分離と監査性が向上します。

Q. パイプラインの失敗通知はどうすべきですか?

A. GitHub Actionsのステータス通知をSlack連携し、失敗時にチャンネルへアラートを飛ばすのが一般的です。加えてMLflowのメトリクス異常も監視対象にします。

Q. セキュリティ上の注意点は?

A. 学習データへのアクセス権限を最小化し、モデルアーティファクトの暗号化、推論APIの認証・レートリミットを設定します。特にLLMの場合、プロンプトインジェクション対策も必要です。

AI導入・DXの悩みをプロに相談してみませんか?

AIやDXに関する悩みがありましたら、お気軽にrenueの無料相談をご利用ください。 renueのAI支援実績、コンサルティングの方針や進め方をご紹介します。

関連記事

AI導入・DXの悩みをプロに相談してみませんか?

AIやDXに関する悩みがありましたら、お気軽にrenueの無料相談をご利用ください。 renueのAI支援実績、コンサルティングの方針や進め方をご紹介します。

AI・DXの最新情報をお届け

renueの実践ノウハウ・最新記事・イベント情報を週1〜2通配信