Re Reference AI

インフラ

MLflowとは

機械学習の実験管理・モデル管理・デプロイをフレームワーク非依存で扱うオープンソースプラットフォーム

再現性学習

ひとことで言うと

AIモデルの実験結果や学習の記録を管理するための、オープンソースのツール。

概要

MLflowとは、機械学習モデルのライフサイクル全体を管理するためのオープンソースプラットフォーム。 実験のパラメータ・メトリクス・成果物を記録するTracking、実行環境を再現可能な形でパッケージ化するProjects、モデルを標準化された形式で保存・提供するModels、モデルのバージョンや承認状態を管理するModel Registryの4つのコンポーネントから構成される。 特定のMLライブラリやクラウドに依存せず、PyTorch・scikit-learn等の主要フレームワークと連携できる点が特徴。

背景

機械学習開発では、実験ごとの記録が残らず再現困難になったり、開発環境と本番環境でモデルの扱い方が異なりデプロイ作業を煩雑にしたりする課題があった。 MLflowは、実験管理からデプロイまでのライフサイクルを一貫したツールで扱えるよう開発された。

歴史

2018年6月: DatabricksがMLflowを公開。 以降OSSとして開発が継続され、主要なMLフレームワーク・クラウドサービスとの連携が拡張されている。

アーキテクチャ

Tracking(実験のパラメータ・メトリクス・成果物の記録)、Projects(再現可能な実行環境の定義)、Models(フレームワークを問わない標準形式でのモデル保存・提供)、Model Registry(モデルのバージョン管理・ステージ管理)の4コンポーネントから構成される。

ワークフロー

mlflow.start_run()で実験の記録を開始し、ハイパーパラメータやメトリクスをログに記録する。 学習済みモデルをMLflow Modelsの標準形式で保存し、Model Registryへバージョンやステージとともに登録する。 登録済みモデルをデプロイして推論に利用する。

コード例

MLflowで実験を記録する

import mlflow

with mlflow.start_run():
    mlflow.log_param("learning_rate", 0.01)
    mlflow.log_metric("accuracy", 0.92)
    mlflow.sklearn.log_model(model, "model")

利点

  • 特定のMLライブラリやクラウドに依存せず、幅広いフレームワークと連携できる
  • 実験のパラメータ・メトリクスを一元管理でき、モデル開発の再現性を確保しやすい
  • オープンソースかつ無料で利用でき、主要なクラウドサービスのマネージド版も提供されている

欠点

  • 大規模チームでの運用には、トラッキングサーバーやアーティファクトストアの構築・管理が別途必要になる
  • 深層学習特有の大規模分散学習の管理機能は、専用ツールと比べて手薄な部分がある
  • LLM特有のプロンプトやRAGパイプラインの評価機能は、後発のLLMOps専用ツールと比べて発展途上の部分がある

比較

  • LLMOpsMLflowはMLOps全般で使われる実験管理・モデル管理ツールであり、LLMOpsの一部としてプロンプトやLLMの評価管理に活用されることもある

関連用語

LLMOpsWeights & Biases

よくある質問

MLflowとWeights & Biases(wandb)はどう違う?

どちらも実験管理を担うツールだが、MLflowはオープンソースでセルフホストしやすい点が特徴。 wandbはSaaS型で可視化機能が充実している点が特徴とされ、チームの運用形態に応じて選ばれる。

参考文献

関連Zenn記事