Skip to content

アプリケーション内で をクリックすると、お使いのDataRobotバージョンに関する全プラットフォームドキュメントにアクセスできます。

DataRobotのMLflow連携

本機能の提供について

DataRobotでのMLflowとの連携はプレビュー機能です。 この機能を有効にする方法については、DataRobotの担当者または管理者にお問い合わせください。

DataRobotのMLflow連携により、MLflowからモデルをエクスポートしてDataRobot モデルレジストリにインポートし、MLflowモデルのトレーニングパラメーター、指標、タグ、アーティファクトから キー値を作成します。

MLflow連携の前提条件

DataRobotのMLflow連携には、以下が必要です。

  • Python >= 3.9
  • DataRobot >= 9.0

この統合ライブラリは、プレビュー版のAPIエンドポイントを使用します。APIトークンに関連付けられたDataRobotユーザーは、DataRobotのモデルパッケージに対してオーナーまたはユーザーの権限を持っている必要があります。

DataRobotのMLflow連携をインストールする

datarobot-mlfow連携はpipでインストールできます。

pipを使用したインストール
pip install datarobot-mlflow 

Azureで連携を実行している場合は、次のコマンドを使用します。

pipを使用したインストール(Azureで連携)
pip install "datarobot-mlflow[azure]" 

コマンドラインオプションの設定

drflow_cliでは、次のコマンドライン操作を使用できます。

オプション 説明
--mlflow-url MLflow追跡URLを定義します。(例:
  • ローカルMLflow:"file:///Users/me/mlflow/examples/mlruns"
  • Azure Databricks MLflow:"azureml://region.api.azureml.ms/mlflow/v1.0/subscriptions/subscription-id/resourceGroups/resource-group-name/providers/Microsoft.MachineLearningServices/workspaces/azure-ml-workspace-name"
--mlflow-model MLflowモデル名を定義します("cost-model"など)。
--mlflow-model-version MLflowモデルバージョンを定義します("2"など)。
--dr-url DataRobotインスタンスのメインURLを提供します(https://app.datarobot.comなど)。
--dr-model キー値アップロードでの登録済みモデルのIDを定義します(64227b4bf82db411c90c3209など)。
--prefix DataRobotにインポートされたすべてのキー値の名前の前に追加する文字列を指定します。 デフォルト値は空です。
--debug Pythonログレベルをlogging.DEBUGに設定します。 デフォルトのレベルはlogging.WARNINGです。
--verbose 以下のプロセス中に情報を標準出力に出力します。
  • MLflowからモデルを取得:モデル情報を出力します。
  • DataRobotでモデルデータを設定:DataRobotに追加された各キー値を出力します。
--with-artifacts MLflowモデルアーティファクトを/tmp/modelにダウンロードします。
--service-provider-type validate-authのサービスプロバイダーを定義します。 AzureのDatabricks MLflowでサポートされている値はazure-databricksです。
--auth-type validate-authの認証タイプを定義します。 Azureサービスプリンシパルでサポートされている値はazure-service-principalです。
--action DataRobotでMLflow連携を実行する操作を定義します。

--actionオプションでは、次のコマンドライン操作を使用できます。

アクション 説明
sync パラメーター、タグ、指標、アーティファクトを、MLflowモデルからキー値としてDataRobotモデルパッケージにインポートします。 このアクションには--mlflow-url--mlflow-model--mlflow-model-version--dr-urlおよび--dr-modelが必要です。
list-mlflow-keys MLflowモデルのパラメーター、タグ、指標、アーティファクトを一覧表示します。 このアクションには--mlflow-url--mlflow-modelおよび--mlflow-model-versionが必要です。
validate-auth トラブルシューティングのために、Azure ADサービスプリンシパルの資格情報を検証します。 このアクションには--auth-type--service-provider-typeが必要です。

環境変数の設定

上記のコマンドラインオプションに加えて、ユースケースに必要な環境変数も指定する必要があります。

環境変数 説明
MLOPS_API_TOKEN DataRobot APIキー(DataRobot 開発者ツールにあります)。
AZURE_TENANT_ID Azure PortalにあるAzure Databricks MLflowインスタンスのAzureテナントID。
AZURE_CLIENT_ID Azure PortalにあるAzure Databricks MLflowインスタンスのAzureクライアントID。
AZURE_CLIENT_SECRET Azure PortalにあるAzure Databricks MLflowインスタンスのAzureクライアントシークレット。

exportを使用して、ユースケースに必要な情報をこれらの環境変数に定義できます。

export MLOPS_API_TOKEN="<dr-api-key>"
export AZURE_TENANT_ID="<tenant-id>"
export AZURE_CLIENT_ID="<client-id>"
export AZURE_CLIENT_SECRET="<secret>" 

同期アクションを実行して、MLflowからDataRobotにモデルをインポートする

上で定義したコマンドラインオプションとアクションを使用して、MLflowからMLflowモデル情報をエクスポートし、DataRobotのモデルレジストリにインポートできます。

MLflowからのインポート
DR_MODEL_ID="<MODEL_PACKAGE_ID>"

env PYTHONPATH=./ \
python datarobot_mlflow/drflow_cli.py \
  --mlflow-url http://localhost:8080 \
  --mlflow-model cost-model  \
  --mlflow-model-version 2 \
  --dr-model $DR_MODEL_ID \
  --dr-url https://app.datarobot.com \
  --with-artifacts \
  --verbose \
  --action sync 

このコマンドが正常に実行されると、登録されているモデルバージョンのキー値タブにMLflow情報が表示されます。

さらに、キー値タブのアクティビティログでは、キー値作成イベントのレコードを表示できます。

Azure ADサービスプリンシパルの資格情報のトラブルシューティング

トラブルシューティングのためにAzure ADサービスプリンシパルの資格情報を検証するには、以下のコマンドライン例を利用できます。

Azure ADサービスプリンシパルの資格情報を検証する
export MLOPS_API_TOKEN="n/a"  # not used for Azure auth check, but the environment variable must be present

env PYTHONPATH=./ \
python datarobot_mlflow/drflow_cli.py \
  --verbose \
  --auth-type azure-service-principal \
  --service-provider-type azure-databricks \
  --action validate-auth 

必要な環境変数を設定していない場合、このコマンドで次の出力を生成する必要があります。

出力例:環境変数がない
Required environment variable is not defined: AZURE_TENANT_ID
Required environment variable is not defined: AZURE_CLIENT_ID
Required environment variable is not defined: AZURE_CLIENT_SECRET
Azure AD Service Principal credentials are not valid; check environment variables 

このエラーが表示された場合は、必要なAzure ADサービスプリンシパルの資格情報を環境変数として指定します。

Azure ADサービスプリンシパルの資格情報を指定する
export AZURE_TENANT_ID="<tenant-id>"
export AZURE_CLIENT_ID="<client-id>"
export AZURE_CLIENT_SECRET="<secret>" 

Azure ADサービスプリンシパルの資格情報の環境変数が定義されると、以下の出力が表示されます。

出力例:認証成功
Azure AD Service Principal credentials are valid for obtaining access token 

更新しました 2024年10月2日