Skip to content
Latchkey

MLflowとは?オープンソースのMLライフサイクルプラットフォームを解説

MLflowは、機械学習のライフサイクル - 実験トラッキング、再現可能なrun、モデルのパッケージング、model registry - を管理するオープンソースプラットフォームです。

MLflowは、最も広く採用されているMLOpsツールの1つです。モジュール式で、実験トラッキングだけを使うことも、モデルのパッケージングとregistryも使うこともできます。フレームワークに依存せずオープンソースであるため、ほぼあらゆるMLスタックに適合し、CI/CDときれいに統合します。

MLflowとは何か

MLflowは、MLライフサイクルを管理するためのオープンソースプラットフォームです。主なコンポーネントは、Tracking(runごとにパラメータ、メトリクス、artifactを記録)、Models(標準的なパッケージング形式)、Model Registry(バージョン管理とステージ)、Projects(再現可能なrunの定義)です。

MLflow Tracking

Trackingコンポーネントは、各runをそのパラメータ、メトリクス、artifactとともに記録し、比較のためにUIで閲覧できます。学習コードでの数回のloggingの呼び出しが、その場限りのrunを保存され比較可能な実験に変えます。

Modelsとregistry

MLflow Modelsは、多くの環境でサーブできる標準形式で学習済みモデルをパッケージングします。Model Registryはそれらのモデルをバージョン管理し、StagingやProductionのようなステージを追跡し、学習とdeployの間の受け渡しポイントを提供します。

CI/CDでのMLflow

CIの学習jobがrunを記録し、評価の成功がモデルを登録するため、最良のバージョンが常にdeployのpipelineで利用可能になります。

Logging and registering with MLflow in CI
import mlflow
with mlflow.start_run():
    mlflow.log_metric("auc", auc)
    mlflow.sklearn.log_model(model, "model",
        registered_model_name="fraud-model")

Latchkeyノート

MLflowはPythonで実行され、モデルのartifactをトラッキングサーバーやobject storeにアップロードします。Latchkeyでは、Python環境と学習データをcacheすることで各runが高速化し、auto-retryがartifactをMLflowのバックエンドに記録する際の一時的な失敗をカバーします。

重要なポイント

  • MLflowは、MLの作業を追跡、パッケージング、登録、再現するためのオープンソースプラットフォームである。
  • そのコンポーネント - Tracking、Models、Registry、Projects - は一緒にも独立しても使える。
  • CIでは、MLflowが各学習runを記録し、勝利したモデルをdeployのpipeline用に登録する。

関連ガイド