カスタムモデルのポータブル予測サーバー¶
カスタムモデルのポータブル予測サーバー(PPS)は、カスタムモデルを外部予測環境にデプロイするためのソリューションです。PPSは、メインのインストール環境に接続せずに構築および実行できます。PPSは、デプロイされたカスタムモデル、カスタム環境、およびMLOpsエージェントを含むダウンロード可能なバンドルとして利用できます。起動すると、カスタムモデルPPSインストールは、DataRobot REST APIを使用して予測を提供します。
カスタムモデルPPSバンドルのダウンロードと設定¶
カスタムモデルPPSバンドルは、デプロイインベントリ内に外部予測環境があることを示すタグが付けられたカスタムモデルがある場合に提供されます。
備考
続行する前に、DataRobotはPPS向けのLinuxベースの予測環境をサポートしていることに留意してください。他のUnixベースの予測環境を使用できますが、検定済みで公式にサポートされているのはLinuxベースのシステムのみです。
使用するカスタムモデルを選択し、デプロイの予測 > ポータブル 予測タブに移動して、ポータブル予測パッケージをダウンロードを選択します。
または、コンテンツを1つのバンドルでダウンロードする代わりに、カスタムモデル、カスタム環境、またはMLOpsエージェントを個別のコンポーネントとしてダウンロードすることもできます。
.zipファイルをダウンロードした後、解凍コマンドを使用してローカルに抽出します。
unzip <cm_pps_installer_*>.zip
次に、インストールスクリプト(バンドルから解凍)にアクセスして、MLOpsエージェントをサポートするカスタムモデルPPSを構築します。このためには、手順2で表示されたコマンドを実行します。
MLOpsエージェントのDockerイメージのインストールをスキップする機能など、その他の構築オプションについては、次を実行します。
bash ./cm_pps_installer.sh --help
構築がエラーなしで合格すると、ローカルのDockerレジストリに2つの新しいDockerイメージが追加されます。
-
cm_pps_XYZ
はカスタムモデルとカスタム環境を組み合わせたイメージです。 -
datarobot/mlops-tracking-agent
はMLOpsエージェントのDockerイメージであり、予測統計をDataRobotに報告するために使用されます。
PPSを使用した予測の実施¶
カスタムモデルPPSの使用を開始できるよう、DataRobotにはバンドル内に2つのDocker構成設定の例が用意されています。
-
docker-compose-fs.yml
:モデルコンテナとMLOpsエージェントコンテナの間でファイルシステムベースのスプーラーを使用します。単一モデルに推奨されます。 -
docker-compose-rabbit.yml
:モデルコンテナとMLOpsエージェントコンテナの間でRabbitMQベースのスプーラーを使用します。この設定を使用して、単一のMLOpsエージェントインスタンスで複数のモデルを実行できます。
使用する設定を選択したら、Docker構成ファイルを編集して、対応するフィールドにデプロイIDとAPIキーを含めます。
設定が完了したら、予測サーバーを起動します。
-
ファイルシステムベースのスプーラーを使用する単一モデルの場合、次のコマンドを実行します。
docker-compose -f docker-compose-fs.yml up
-
単一のMLOpsエージェントインスタンスを持つ複数モデルの場合は、RabbitMQベースのスプーラーを使用します。
docker-compose -f docker-compose-rabbit.yml up
PPSが実行している場合、Dockerイメージは3つのHTTPエンドポイントを公開します。
POST /predictions
は、所定のデータセットをスコアリングします。GET /info
は、ロードされたモデルに関する情報を返します。GET /ping
は、技術スタックが起動していることを確認します。
備考
予測ルートは、スコアリングデータセットとしてカンマ区切りのCSVおよびJSONレコードのみサポートしています。最大ペイロードサイズは50 MBです。
以下に、サンプルの予測リクエストを示します。
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エージェントで使用されるスプーラーのタイプ。 | 自動生成された値 |
MLOPS_FILESYSTEM_DIRECTORY |
MLOpsエージェントのファイルシステムスプーラー設定。 | 自動生成された値 |
MLOPS_RABBITMQ_QUEUE_URL |
MLOpsエージェントのRabbitMQスプーラー設定。 | 自動生成された値 |
MLOPS_RABBITMQ_QUEUE_NAME |
MLOpsエージェントのRabbitMQスプーラー設定。 | 自動生成された値 |
START_DELAY |
MLOpsエージェントを開始する前に遅延をトリガーします。 | 自動生成された値 |
DRUMベースの環境変数¶
次の表に、DRUMベースのカスタム環境でサポートされている環境変数を示します。
特徴量 | 説明 | デフォルト |
---|---|---|
ADDRESS |
予測サーバーの開始アドレス。 | 0.0.0.0:6788 |
MODEL_ID |
デプロイされたモデルのID(監視に必要)。 | 自動生成された値 |
DEPLOYMENT_ID |
デプロイのID。 | 未定義。指定する必要があります。 |
MONITOR |
MLOpsの監視を有効にするフラグ。 | True。空の値を指定するか、この特徴量を削除して監視を無効にします。 |
MONITOR_SETTINGS |
MLOpsエージェントスプーラーの設定。 | 自動生成された値 |
RabbitMQサービスの環境変数¶
特徴量 | 説明 | デフォルト |
---|---|---|
RABBITMQ_DEFAULT_USER |
デフォルトのRabbitMQユーザー。 | 自動生成された値 |
RABBITMQ_DEFAULT_PASS |
デフォルトのRabbitMQパスワード。 | 自動生成された値 |