カスタムモデルのポータブル予測サーバー¶
本機能の提供について
ポータブル予測サーバーは、DatRobot MLOpsでのみ利用可能なプレミアム機能です。 この機能を有効にする方法については、DataRobotの担当者または管理者にお問い合わせください。
カスタムモデルのポータブル予測サーバー(PPS)は、カスタムモデルを外部予測環境にデプロイするためのソリューションです。 PPSは、メインのインストール環境に接続せずに構築および実行できます。 PPSは、デプロイされたカスタムモデル、カスタム環境、および監視エージェントを含むダウンロード可能なバンドルとして利用できます。 起動すると、カスタムモデルPPSインストールは、DataRobot REST APIを使用して予測を提供します。
カスタムモデルPPSバンドルのダウンロードと設定¶
カスタムモデルPPSバンドルは、デプロイインベントリ内に外部予測環境があることを示すタグが付けられたカスタムモデルがある場合に提供されます。
備考
続行する前に、DataRobotはPPS向けのLinuxベースの予測環境をサポートしていることに留意してください。 他のUnixベースの予測環境を使用できますが、検定済みで公式にサポートされているのはLinuxベースのシステムのみです。
使用するカスタムモデルを選択し、デプロイの予測 > ポータブル 予測タブに移動して、ポータブル予測パッケージをダウンロードを選択します。
または、コンテンツを1つのバンドルでダウンロードする代わりに、カスタムモデル、カスタム環境、または監視エージェントを個別のコンポーネントとしてダウンロードすることもできます。
.zipファイルをダウンロードした後、解凍コマンドを使用してローカルに抽出します。
unzip <cm_pps_installer_*>.zip
次に、インストールスクリプト(バンドルから解凍)にアクセスして、監視エージェントをサポートするカスタムモデルPPSを構築します。 このためには、手順2で表示されたコマンドを実行します。
監視エージェントのDockerイメージのインストールをスキップする機能など、その他の構築オプションについては、次を実行します。
bash ./cm_pps_installer.sh --help
構築がエラーなしで合格すると、ローカルのDockerレジストリに2つの新しいDockerイメージが追加されます。
-
cm_pps_XYZ
はカスタムモデルとカスタム環境を組み合わせたイメージです。 -
datarobot/mlops-tracking-agent
は監視エージェントのDockerイメージであり、予測統計をDataRobotに報告するために使用されます。
PPSを使用した予測の実施¶
カスタムモデルPPSの使用を開始できるよう、DataRobotにはバンドル内に2つのDocker構成設定の例が用意されています。
-
docker-compose-fs.yml
:モデルコンテナと監視エージェントコンテナの間でファイルシステムベースのスプーラーを使用します。 単一モデルに推奨されます。 -
docker-compose-rabbit.yml
:モデルコンテナと監視エージェントコンテナの間でRabbitMQベースのスプーラーを使用します。 この設定を使用して、単一の監視エージェントインスタンスで複数のモデルを実行できます。
Docker Composeのサンプルファイルに依存関係を含める
提供されているDocker Composeファイルを使用するには、datarobot-mlops
パッケージ(必要に応じて依存関係を追加)をモデルのrequirements.txt
ファイルに追加します。
使用する設定を選択したら、Docker構成ファイルを編集して、対応するフィールドにデプロイIDとAPIキーを含めます。
ランタイムパラメーターファイルを定義するには、使用しているDocker Compose設定ファイルの例を変更して、以下にハイライトされている2行のコメントを外します。
volumes:
- shared-volume:/opt/mlops_spool
# - <path_to_runtime_params_file_on_host>:/opt/runtime.yaml
environment:
ADDRESS: "0.0.0.0:6788"
MODEL_ID: "{{ model_id }}"
DEPLOYMENT_ID: "< provide deployment id to report to >"
RUNTIME_PARAMS_FILE: "/opt/runtime.yaml"
# RUNTIME_PARAMS_FILE: "/opt/runtime.yaml"
volumes
の下の行のコメントを外すときは、<path_to_runtime_params_on_host>
プレースホルダーを適切なパスに置き換えます。 environment
の下の行は、DRUMベースの環境変数のセクションで説明されているDRUM環境変数です。 Docker Composeの設定例を使用しない場合は、これらの行を設定ファイルに追加してください。 どちらのシナリオでも、ランタイムパラメーターファイルが存在し、ファイルへのパスが正しいことを確認します。
Docker Composeファイルが適切に設定されたら、予測サーバーを起動します。
-
ファイルシステムベースのスプーラーを使用する単一モデルの場合、次のコマンドを実行します。
docker compose -f docker-compose-fs.yml up
-
単一の監視エージェントインスタンスを持つ複数モデルの場合は、RabbitMQベースのスプーラーを使用します。
docker compose -f docker-compose-rabbit.yml up
PPSが実行している場合、Dockerイメージは3つのHTTPエンドポイントを公開します。
POST /predictions
は、所定のデータセットをスコアリングします。GET /info
は、ロードされたモデルに関する情報を返します。GET /ping
は、技術スタックが起動していることを確認します。
備考
予測ルートは、コンマ区切り(CSV)スコアリングデータセットのみをサポートしています。 最大ペイロードサイズは、50MBです。
以下は、予測リクエストとJSON応答の例を示しています。
curl -X POST http://localhost:6788/predictions/ \
-H "Content-Type: text/csv" \
--data-binary @path/to/scoring.csv
{
"data": [{
"prediction": 23.03329917456927,
"predictionValues": [{
"label": "MEDV",
"value": 23.03329917456927
}],
"rowId": 0
},
{
"prediction": 33.01475956455371,
"predictionValues": [{
"label": "MEDV",
"value": 33.01475956455371
}],
"rowId": 1
},
]
}
MLOps環境特徴量¶
次の表に、PPSを使用するすべてのカスタムモデルでサポートされているMLOpsサービス環境特徴量を示します。 使用する実行環境に基づいて、これらの設定を調整することをお勧めします。
特徴量 | 説明 | デフォルト |
---|---|---|
MLOPS_SERVICE_URL |
実行中のDataRobotアプリケーションのアドレス。 | 自動生成された値 |
MLOPS_API_TOKEN |
DataRobot APIキー。 | 未定義。指定する必要があります。 |
MLOPS_SPOOLER_TYPE |
カスタムモデルおよび監視エージェントで使用されるスプーラーのタイプ。 | 自動生成された値 |
MLOPS_FILESYSTEM_DIRECTORY |
モニタリングエージェントのファイルシステムスプーラー設定。 | 自動生成された値 |
MLOPS_RABBITMQ_QUEUE_URL |
モニタリングエージェントのRabbitMQスプーラー設定。 | 自動生成された値 |
MLOPS_RABBITMQ_QUEUE_NAME |
モニタリングエージェントのRabbitMQスプーラー設定。 | 自動生成された値 |
START_DELAY |
監視エージェントを開始する前に遅延をトリガーします。 | 自動生成された値 |
DRUMベースの環境特徴量¶
次の表に、DRUMベースのカスタム環境でサポートされている環境特徴量を示します。
特徴量 | 説明 | デフォルト |
---|---|---|
ADDRESS |
予測サーバーの開始アドレス。 | 0.0.0.0:6788 |
MODEL_ID |
デプロイされたモデルのID(監視に必要)。 | 自動生成された値 |
DEPLOYMENT_ID |
デプロイのID。 | 未定義。指定する必要があります。 |
MONITOR |
MLOpsの監視を有効にするフラグ。 | True。 空の値を指定するか、この特徴量を削除して監視を無効にします。 |
MONITOR_SETTINGS |
監視エージェントスプーラーの設定。 | 自動生成された値 |
RUNTIME_PARAMS_FILE |
ランタイムパラメーターの値を含む.yaml ファイルのパスと名前。 |
未定義。指定する必要があります。 |
ランタイムパラメーターファイルへのパスを指定する
RUNTIME_PARAMS_FILE
を定義するには、使用しているDocker Compose設定ファイルの例を変更し、volumes
とenvironment
で必要なパスのコメントを外します。 Docker Composeの設定例を使用しない場合は、これらの行を設定ファイルに追加してください。 どちらのシナリオでも、ランタイムパラメーターファイルが存在し、ファイルへのパスが正しいことを確認します。
RabbitMQサービスの環境特徴量¶
特徴量 | 説明 | デフォルト |
---|---|---|
RABBITMQ_DEFAULT_USER |
デフォルトのRabbitMQユーザー。 | 自動生成された値 |
RABBITMQ_DEFAULT_PASS |
デフォルトのRabbitMQパスワード。 | 自動生成された値 |