次の方法で共有


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 プロジェクト を使用すると、他のデータ サイエンティスト (または自動ツール) がコードを実行できるようにコードを整理して記述できます。 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 の追跡とログ記録の機能を主に必要とするユーザーに推奨されます。

  • 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 プロジェクトを追跡する

この例では、MLflow プロジェクトを送信し、Azure Machine Learning を追跡する方法を示します。

  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
    

    Azure Machine Learning ジョブは常に環境のコンテキストで実行されるため、パラメーター env_manager は無視されます。

    Azure Machine Learning Studio で実行とメトリックを表示します。

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

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

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

    Azure リソース グループを削除する方法を示す画像。

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

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

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

ノートブックの例

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

mlflow を使用した例のコミュニティ主導のリポジトリは、 https://github.com/Azure/azureml-examplesにあります。

次のステップ