MLflow と Azure Machine Learning

適用対象:Azure CLI ml extension v2 (現行)Python SDK azure-ai-ml v2 (現行)

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

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

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

ヒント

Azure Machine Learning SDK v1 とは異なり、Azure Machine Learning v2 SDK にはログ機能がありません。 MLflow ログを使用して、トレーニング ルーチンがクラウドに依存せず、移植可能で、Azure Machine Learning に依存しないようにすることができます。

MLflow を使用した追跡

Azure Machine Learning は、MLflow の追跡機能を使って、実験のメトリックをログし、成果物を格納します。 Azure Machine Learning に接続されていると、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 のモデル デプロイをサポートします。 リアルタイムとバッチ両方の推論での Azure Machine Learning への MLflow モデルのデプロイについて詳しくは、「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 コンピューティングを介してジョブをクラウドに移行することもできます。

追跡に Azure Machine Learning ワークスペースを使用する MLflow プロジェクトでトレーニング ジョブを送信する方法については、「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 Studio
メトリック、パラメーター、モデルを追跡してログに記録する
メトリック、パラメーター、モデルを取得する 成果物とモデルのみをダウンロードできます。
トレーニング ジョブを送信します 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 モデルのデプロイと実行」を参照してください。