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で利用可能になります。
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用に登録する。