次の方法で共有


MLflow と Azure Machine Learning

適用対象:Azure CLI ml 拡張機能 v2 (現行)Python SDK azure-ai-ml v2 (現行)

この記事では、機械学習のライフサイクル全体を管理するオープンソース フレームワークである MLflow の機能について説明します。 MLflow では、一貫したツール セットを使用して、さまざまなプラットフォームでモデルのトレーニングとサービス提供を行います。 実験をローカルで実行するか、リモート コンピューティング ターゲット、仮想マシン、または Azure Machine Learning コンピューティング インスタンスで実行するかに関係なく、MLflow を使用します。

Azure Machine Learning ワークスペースは MLflow と互換性があるため、MLflow サーバーを使用するのと同じ方法で Azure Machine Learning ワークスペースを使用します。 この互換性には、次の利点があります。

  • Azure Machine Learning は MLflow サーバー インスタンスをホストしませんが、MLflow API を直接使用します。
  • Azure Machine Learning で実行されるかどうかにかかわらず、MLflow コードの追跡サーバーとして Azure Machine Learning ワークスペースを使用します。 追跡が行われるワークスペースを指し示す MLflow を構成するだけです。
  • 変更を加えずに、Azure Machine Learning で MLflow を使用するトレーニング ルーチンを実行します。

ヒント

Azure Machine Learning SDK v1 とは異なり、Azure Machine Learning v2 SDK にはログ機能は含まれていません。 MLflow ログを使用して、トレーニング ルーチンをクラウドに依存せず、移植性があり、Azure Machine Learning から独立した状態に保ちます。

追跡とは

ジョブを操作すると、Azure Machine Learning は、コード、環境、入力データや出力データなどの実験に関する情報を自動的に追跡します。 ただし、モデル、パラメーター、メトリックは各シナリオに固有であるため、モデル ビルダーは追跡を設定する必要があります。

保存された追跡メタデータは実験によって異なり、次のものが含まれます。

  • Code
  • OS バージョンや Python パッケージなどの環境の詳細
  • 入力データ
  • パラメーターの構成
  • モデル
  • 評価メトリック
  • 混同行列や重要度プロットなどの評価視覚化
  • 評価結果 (一部の評価予測を含む)

実験を追跡する利点

モデルのトレーニングを、Azure Machine Learning でジョブを使って行うか、ノートブックを使って対話形式で行うかに関係なく、実験の追跡は次のことに役立ちます。

  • すべての機械学習実験を 1 か所にまとめる。 次に、実験を検索してフィルター処理し、ドリルダウンして以前の実験に関する詳細を確認します。
  • 実験の比較、結果の分析、モデルトレーニングのデバッグを行います。
  • 実験を再現または再実行して結果を検証できます。
  • 他のチームメイトの作業内容を確認し、実験結果を共有し、プログラムで実験データにアクセスできるため、共同作業がより簡単になります。

MLflow を使用した追跡

Azure Machine Learning ワークスペースは MLflow と互換性があります。 この互換性は、トレーニング ルーチンを変更したり、クラウド固有の構文を追加したりすることなく、MLflow を使用してワークスペース内の実行、メトリック、パラメーター、成果物を追跡することを意味します。 MLflow を使って Azure Machine Learning ワークスペース内の実験と実行を追跡する方法については、「MLflow を使用して実験とモデルを追跡する」をご覧ください。

Azure Machine Learning は、MLflow の追跡機能を使って、実験のメトリックをログし、成果物を格納します。 Azure Machine Learning に接続すると、使用するワークスペースにすべての MLflow 追跡が表示されます。

ログを有効にして MLflow でリアルタイムの実行メトリックを監視する方法については、「MLflow を使ったメトリック、パラメーター、ファイルのログ」をご覧ください。 また、 MLflow を使用して実験と実行のクエリと比較を行います。

Azure Machine Learning の MLflow では、追跡を一元化する方法が提供されます。 ローカルまたは別のクラウドで作業している場合でも、MLflow を Azure Machine Learning ワークスペースに接続します。 Azure Machine Learning ワークスペースでは、トレーニングのメトリックとモデルを保存するための一元化された安全でスケーラブルな場所が用意されています。

Azure Machine Learning の MLflow を使用すると、次のことができます。

R での MLflow を使用した追跡

R での MLflow のサポートには、次の制限があります。

  • MLflow の追跡は、Azure Machine Learning ジョブでの実験のメトリック、パラメーター、モデルの追跡に限定されます。
  • R カーネルを使用する RStudio、Posit (旧称 RStudio Workbench)、または Jupyter Notebook での対話型トレーニングは、サポートされていません。
  • モデルの管理と登録は、サポートされていません。 モデルの登録と管理には、Azure Machine Learning CLI または Azure Machine Learning スタジオを使用してください。

Azure Machine Learning での R モデルを含む MLflow 追跡クライアントの使用例については、「Azure Machine Learning CLI (v2) を使用して R モデルをトレーニングする」を参照してください。

Java での MLflow を使用した追跡

Java での MLflow のサポートには、次の制限があります。

  • MLflow の追跡は、Azure Machine Learning ジョブでの実験のメトリックとパラメーターの追跡に限定されます。
  • 成果物とモデルを追跡することはできません。 キャプチャするモデルまたは成果物を保存するには、代わりに、ジョブ内の outputs フォルダーと mlflow.save_model メソッドを使ってください。

Azure Machine Learning 追跡サーバーで MLflow 追跡クライアントを使用する Java の例については、「azuremlflow-java 」を参照してください。

MLflow 追跡に関するノートブックの例

MLflow を使ったモデルの登録

Azure Machine Learning では、モデル管理用の MLflow がサポートされています。 MLflow クライアントに慣れている場合は、それを使用してモデルのライフサイクル全体を管理できます。 Azure Machine Learning で MLflow API を使用してモデルを管理する方法の詳細については、「MLflow を使用した Azure Machine Learning でのモデル レジストリの管理」を参照してください。

MLflow モデル登録に関するノートブックの例

MLflow を使用したモデル管理 では、レジストリでモデルを管理する方法を示します。

MLflow を使用したモデル デプロイ

改善されたエクスペリエンスを得るために、MLflow モデルを Azure Machine Learning にデプロイします。 Azure Machine Learning では、環境やスコアリング スクリプトを指定せずに、リアルタイム エンドポイントとバッチ エンドポイントの両方に MLflow モデルをデプロイできます。

MLflow SDK、Azure Machine Learning CLI、Azure Machine Learning SDK for Python、Azure Machine Learning スタジオはどれも、MLflow のモデル デプロイをサポートします。 リアルタイム推論とバッチ推論の両方で MLflow モデルを Azure Machine Learning にデプロイする方法の詳細については、「 MLflow モデルをデプロイするためのガイドライン」を参照してください。

MLflow モデル デプロイに関するノートブックの例

MLflow プロジェクトを使用したトレーニング (プレビュー)

警告

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 の実験とモデルを追跡する」を参照してください。

重要

現在、この機能はパブリック プレビュー段階にあります。 このプレビュー バージョンはサービス レベル アグリーメントなしで提供されており、運用環境のワークロードに使用することは推奨されません。 特定の機能はサポート対象ではなく、機能が制限されることがあります。

詳しくは、Microsoft Azure プレビューの追加使用条件に関するページをご覧ください。

MLflow プロジェクトを使用して Azure Machine Learning にトレーニング ジョブを送信します。 Azure Machine Learning 追跡を使用してジョブをローカルに送信するか、 Azure Machine Learning コンピューティングを使用してジョブをクラウドに移行します。

MLflow プロジェクトを使用するトレーニング ジョブを Azure Machine Learning ワークスペースに送信して、 Azure Machine Learning の MLflow プロジェクトを使用したトレーニング (プレビュー) で追跡する方法について説明します。

MLflow プロジェクトのノートブックの例

MLflow と Azure Machine Learning のクライアント ツール機能の比較

次の表に、MLflow SDK と Azure Machine Learning クライアント ツールで実行できる機械学習ライフサイクル操作を示します。

特徴量 MLflow SDK Azure Machine Learning CLI と SDK v2 Azure Machine Learning スタジオ
メトリック、パラメーター、モデルを追跡してログに記録する
メトリック、パラメーター、モデルを取得する 成果物とモデルのみをダウンロードできます。
トレーニング ジョブを送信します MLflow プロジェクト (プレビュー) を使用できます。
Azure Machine Learning データ資産を使用してトレーニング ジョブを送信する
機械学習パイプラインでトレーニング ジョブを送信する
実験と実行を管理する
MLflow モデルの管理 一部の操作はサポートされていません。1
MLflow 以外のモデルの管理
Azure Machine Learning で MLflow モデルをデプロイする (オンラインおよびバッチ) 現時点では、バッチ推論用の MLflow モデルをデプロイできません。2
Azure Machine Learning で MLflow 以外のモデルをデプロイ

1 詳細については、「MLflow を使用して Azure Machine Learning でモデル レジストリを管理する」を参照してください。

2 別の方法として、「Spark ジョブでの MLflow モデルのデプロイと実行」を参照してください。