MLflow は、実験の追跡、再現可能な実行へのコードのパッケージ化、モデルの共有とデプロイなど、機械学習開発を合理化するプラットフォームです。 MLflow は、現在 ML コードを実行している場所 (ノートブック、スタンドアロン アプリケーション、クラウドなど) に関係なく、既存の機械学習アプリケーションまたはライブラリ (TensorFlow、PyTorch、XGBoost など) で使用できる一連の軽量 API を提供します。 MLflow の現在のコンポーネントは次のとおりです。
MLflow Tracking: 機械学習実験のパラメーター、コード、結果をログに記録し、インタラクティブな UI を使用して比較するための API。
MLflow プロジェクト: Conda と Docker を使用して再現可能な実行のためのコード パッケージ化形式。これにより、ML コードを他のユーザーと共有できます。
MLflow モデル: 同じモデル (任意の ML ライブラリから) を Docker、Apache Spark、Azure ML、AWS SageMaker などのプラットフォームでのバッチおよびリアルタイム スコアリングに簡単にデプロイできるモデル パッケージ化形式とツール。
MLflow モデル レジストリ: MLflow モデルのライフサイクル全体を共同で管理するための、集中化されたモデル ストア、一連の API、および UI。
パッケージ
PyPI | |
コンダフォージ | |
クラン | |
メイブン・セントラル |
ジョブステータス
pip install mlflow
経由で PyPI から MLflow をインストールします
MLflow では、 conda
プロジェクト機能のPATH
上にある必要があります。
MLflow マスターの夜間のスナップショットもここから入手できます。
pip install mlflow-skinny
経由で PyPI から MLflow の下位依存関係サブセットをインストールします。 必要なシナリオごとに追加の依存関係を追加できます。たとえば、 pip install mlflow-skinny pandas numpy
mlflow.pyfunc.log_model のサポートが可能になります。
MLflow の公式ドキュメントは、https://mlflow.org/docs/latest/index.html にあります。
現在の MLflow ロードマップは https://github.com/mlflow/mlflow/milestone/3 で入手できます。私たちは、 help wanted
ラベルを使用して、すべてのロードマップ項目への貢献を求めています。詳細については、「貢献」セクションを参照してください。
MLflow の使用法に関するヘルプや質問 (「X を行うにはどうすればよいですか?」など) については、ドキュメントまたはスタック オーバーフローを参照してください。
バグを報告したり、ドキュメントの問題を提出したり、機能リクエストを送信したりするには、GitHub の問題を開いてください。
リリースの発表やその他のディスカッションについては、メーリング リスト ([email protected]) に登録するか、Slack に参加してください。
examples
のプログラムでは、MLflow Tracking API を使用します。たとえば、次を実行します。
Python の例/クイックスタート/mlflow_tracking.py
このプログラムは MLflow Tracking API を使用し、追跡データを./mlruns
に記録します。これは追跡 UI で表示できます。
MLflow Tracking UI には、http://localhost:5000 の./mlruns
に記録された実行が表示されます。以下から始めてください:
mlflow ui
注: MLflow のクローン内からmlflow ui
実行することはお勧めできません。実行すると、開発 UI がソースから実行されます。 --backend-store-uri
オプションでバックエンド ストアを指定し、別の作業ディレクトリから UI を実行することをお勧めします。あるいは、コントリビューター ガイドで開発 UI を実行する手順を参照してください。
mlflow run
コマンドを使用すると、MLproject ファイルにパッケージ化されたプロジェクトをローカル パスまたは Git URI から実行できます。
mlflow 実行例/sklearn_elasticnet_wine -P alpha=0.4 mlflow 実行 https://github.com/mlflow/mlflow-example.git -P alpha=0.4
MLproject ファイルを含むサンプル プロジェクトについては、 examples/sklearn_elasticnet_wine
参照してください。
モデルの管理を説明するために、 mlflow.sklearn
パッケージは、scikit-learn モデルを MLflow アーティファクトとしてログに記録し、それらを再度ロードして提供できます。トレーニング アプリケーションの例はexamples/sklearn_logistic_regression/train.py
にあり、次のように実行できます。
$ python 例/sklearn_logistic_regression/train.py スコア: 0.666 モデルは実行 <run-id> で保存されました $ mlflow モデルは --model-uri を実行します:/<run-id>/model $curl -d '{"dataframe_split": {"columns":[0],"index":[0,1],"data":[[1],[-1]]}}' -H 'コンテンツ-タイプ: application/json' localhost:5000/invocations
注:モデルの提供に MLflow Skinny ( pip install mlflow-skinny
) を使用する場合、MLflow サーバーが機能するには、追加の必須依存関係 (つまり、 flask
) をインストールする必要があります。
公式の MLflow Docker イメージは、GitHub Container Registry (https://ghcr.io/mlflow/mlflow) で入手できます。
エクスポート CR_PAT=YOUR_TOKENecho $CR_PAT | docker login ghcr.io -u USERNAME --password-stdin# 最新バージョンをプルdocker pull ghcr.io/mlflow/mlflow# 2.2.1 をプルdocker pull ghcr.io/mlflow/mlflow:v2.2.1
MLflow への貢献を喜んで歓迎します。 MLflow ロードマップの項目への貢献も募集しています。 MLflow への貢献について詳しくは、貢献ガイドをご覧ください。
MLflow は現在、何百人もの非常に才能のあるコミュニティ メンバーからの多大な貢献により、次のコア メンバーによって維持されています。
ベン・ウィルソン
コーリー・ズマー
ダニエル・ロック
ガブリエル・フー
川村治孝
セレナ・ルアン
シュー・ウェイチェン
渡辺有紀
平田十夢