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 Learning プラグイン azureml-mlflow をインストールします。

    pip install mlflow azureml-mlflow
    

    ヒント

    SQL ストレージ、サーバー、UI、またはデータ サイエンスの依存関係のない軽量 MLflow パッケージであるパッケージ mlflow-skinny を使用できます。 主に追跡機能とログ機能を必要とし、デプロイを含む MLflow の全機能はインポートしないユーザーには、mlflow-skinny が推奨されます。

  • Azure Machine Learning ワークスペース。 「機械学習リソースの作成に関するチュートリアル」に従って作成できます。

  • リモート追跡 (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 プロジェクトを送信して追跡する方法を示します。

  1. ワークスペースのメトリックと重要な成果物を追跡するために、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
    
  2. ローカル実行を送信し、パラメーター 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 プロジェクトを送信する方法を示します。

  1. バックエンド構成オブジェクトを作成します。今回の場合は、COMPUTE を示します。 このパラメーターは、プロジェクトの実行に使用するリモート コンピューティング クラスターの名前を参照します。 COMPUTE が存在する場合、プロジェクトは、指定されたコンピューティングに Azure Machine Learning ジョブとして自動的に送信されます。

    backend_config.json

    {
        "COMPUTE": "cpu-cluster"
    }
    
    
  2. ワークスペースのメトリックと重要な成果物を追跡するために、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
    
  3. ローカル実行を送信し、パラメーター 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 で実行とメトリックを表示します。

リソースをクリーンアップする

ログに記録されたメトリックと成果物をワークスペースで使用する予定がない場合、現時点では、それらを個別に削除する機能は提供されていません。 代わりに、ストレージ アカウントとワークスペースを含むリソース グループを削除すれば、課金は発生しません。

  1. Azure Portal で、左端にある [リソース グループ] を選択します。

    Image showing how to delete an Azure resource group.

  2. 作成したリソース グループを一覧から選択します。

  3. [リソース グループの削除] を選択します。

  4. リソース グループ名を入力します。 次に、 [削除] を選択します。

サンプルの Notebook

Azure Machine Learning ノートブックでの MLflow は、この記事で提示した概念を示し、さらに詳しく説明します。

Note

mlflow を使用したコミュニティ主導の例のリポジトリについては、 https://github.com/Azure/azureml-examples を参照してください。

次のステップ