Azure Machine Learning で MLflow プロジェクトを使用してトレーニングする (プレビュー)
この記事では、追跡に Azure Machine Learning ワークスペースを使用する MLflow プロジェクトでトレーニング ジョブを送信する方法について説明します。 ジョブを提出し、Azure Machine Learning では追跡のみを行うか、Azure Machine Learning コンピューティング上で完全に実行できるよう、クラウドに実行を移行することができます。
警告
Azure Machine Learning での MLproject
ファイル (MLflow プロジェクト) のサポートは、2026 年 9 月に完全に廃止される予定です。 MLflow は引き続き完全にサポートされており、Azure Machine Learning で機械学習ワークロードを追跡するために推奨される方法です。
MLflow を引き続きお使いになる場合は、Azure CLI または Azure Machine Learning SDK for Python (v2) のいずれかを使用して、MLproject
ファイルから Azure Machine Learning ジョブに移行することをお勧めします。 Azure Machine Learning ジョブの詳細については、「MLflow を使用して ML の実験とモデルを追跡する」を参照してください。
MLflow Projects を使用すると、他のデータ サイエンティスト (または自動化ツール) が実行できるようにするために、自分のコードの整理および記述を行うことができます。 Azure Machine Learning で MLflow プロジェクトを使用すると、ワークスペースでのトレーニングの実行を追跡および管理することができます。
重要
現在、この機能はパブリック プレビュー段階にあります。 このプレビュー バージョンはサービス レベル アグリーメントなしで提供されており、運用環境のワークロードに使用することは推奨されません。 特定の機能はサポート対象ではなく、機能が制限されることがあります。
詳しくは、Microsoft Azure プレビューの追加使用条件に関するページをご覧ください。
MLflow と Azure Machine Learning の統合の詳細について、ご確認ください。
前提条件
MLflow SDK
mlflow
パッケージと MLflow 用の Azure Machine Learningazureml-mlflow
プラグインを次のようにインストールします。pip install mlflow azureml-mlflow
ヒント
SQL ストレージ、サーバー、UI、またはデータ サイエンスの依存関係のない軽量 MLflow パッケージであるパッケージ
mlflow-skinny
を使用できます。 このパッケージは、デプロイを含む一連の機能をインポートせずに、MLflow の追跡とログ記録の機能を主に必要とするユーザーに推奨されます。Azure Machine Learning ワークスペースを作成します。 ワークスペースを作成するには、「開始する必要があるリソースを作成する」を参照してください。 ワークスペース内で MLflow 操作を実行するために必要なアクセス許可を確認します。
リモート追跡 (つまり、Azure Machine Learning の外部で実行されている実験の追跡) を実行する場合は、Azure Machine Learning ワークスペースの追跡 URI を指すように MLflow を構成します。 MLflow をワークスペースに接続する方法の詳細については、「Azure Machine Learning 用に MLflow を構成する」を参照してください。
MLflow プロジェクトのバックエンドとして Azure Machine Learning を使用するには、
azureml-core
パッケージが必要です。pip install azureml-core
ワークスペースに接続する
Azure Machine Learning の外部で作業している場合は、Azure Machine Learning ワークスペースの追跡 URI を指す MLflow を構成する必要があります。 手順については、Azure Machine Learning 用に MLflow を構成する方法に関するページを参照してください。
Azure Machine Learning ワークスペースで MLflow プロジェクトを追跡する
この例では、Azure Machine Learning を使用して MLflow プロジェクトを送信して追跡する方法を示します。
ワークスペースのメトリックと重要な成果物を追跡するために、
azureml-mlflow
パッケージを pip 依存関係として環境構成ファイルに追加します。conda.yaml
name: mlflow-example channels: - defaults dependencies: - numpy>=1.14.3 - pandas>=1.0.0 - scikit-learn - pip: - mlflow - azureml-mlflow
ローカル実行を送信し、パラメーター
backend = "azureml"
を設定していることを確認します。これにより、ワークスペースでの自動追跡、モデルのキャプチャ、ログ ファイル、スナップショット、および出力されたエラーのサポートが追加されます。 この例では、実行しようとしている MLflow プロジェクトが、現在のフォルダー (uri="."
) に含まれていると仮定します。mlflow run . --experiment-name --backend azureml --env-manager=local -P alpha=0.3
Azure Machine Learning Studio で実行とメトリックを表示します。
Azure Machine Learning ジョブで MLflow プロジェクトをトレーニングする
この例では、Azure Machine Learning コンピューティングで実行されているジョブとして MLflow プロジェクトを送信する方法を示します。
バックエンド構成オブジェクトを作成します。今回の場合は、
COMPUTE
を示します。 このパラメーターは、プロジェクトの実行に使用するリモート コンピューティング クラスターの名前を参照します。COMPUTE
が存在する場合、プロジェクトは、指定されたコンピューティングに Azure Machine Learning ジョブとして自動的に送信されます。backend_config.json
{ "COMPUTE": "cpu-cluster" }
ワークスペースのメトリックと重要な成果物を追跡するために、
azureml-mlflow
パッケージを pip 依存関係として環境構成ファイルに追加します。conda.yaml
name: mlflow-example channels: - defaults dependencies: - numpy>=1.14.3 - pandas>=1.0.0 - scikit-learn - pip: - mlflow - azureml-mlflow
ローカル実行を送信し、パラメーター
backend = "azureml"
を設定していることを確認します。これにより、ワークスペースでの自動追跡、モデルのキャプチャ、ログ ファイル、スナップショット、および出力されたエラーのサポートが追加されます。 この例では、実行しようとしている MLflow プロジェクトが、現在のフォルダー (uri="."
) に含まれていると仮定します。mlflow run . --backend azureml --backend-config backend_config.json -P alpha=0.3
Note
Azure Machine Learning ジョブは常に環境のコンテキストで実行されるため、パラメーター
env_manager
は無視されます。Azure Machine Learning Studio で実行とメトリックを表示します。
リソースをクリーンアップする
ログに記録されたメトリックと成果物をワークスペースで使用する予定がない場合、現時点では、それらを個別に削除する機能は提供されていません。 代わりに、ストレージ アカウントとワークスペースを含むリソース グループを削除すれば、課金は発生しません。
Azure Portal で、左端にある [リソース グループ] を選択します。
作成したリソース グループを一覧から選択します。
[リソース グループの削除] を選択します。
リソース グループ名を入力します。 次に、 [削除] を選択します。
サンプルの Notebook
Azure Machine Learning ノートブックでの MLflow は、この記事で提示した概念を示し、さらに詳しく説明します。
Note
mlflow を使用したコミュニティ主導の例のリポジトリについては、 https://github.com/Azure/azureml-examples を参照してください。