外部モデル用のカスタムモデルプロキシ¶
本機能の提供について:セルフマネージドのみ
外部モデル用のカスタムモデルプロキシは、セルフマネージドAIプラットフォームでのみ利用可能で、デフォルトではオフになっています。 この機能を有効にする方法については、DataRobotの担当者または管理者にお問い合わせください。
機能フラグ:プロキシモデルを有効にする
プレビュー版の機能です。外部でホストされているモデルのプロキシとして、カスタムモデルを作成できます。 プロキシモデルを作成するには、次の操作を行います。
-
(オプション)モデルメタデータ(
model-metadata.yaml
)を介してカスタムモデルに ランタイムパラメーターを追加します。 -
カスタムモデルファイル(
custom.py
)を使用して、カスタムモデルにプロキシコードを追加します。 -
カスタムモデルワークショップでプロキシモデルを作成します。
プロキシコードを追加¶
外部モデル用のプロキシとして作成するカスタムモデルでは、custom.py
ファイルにプロキシモデルと外部でホストされたモデルを接続するためのカスタムコードを含める必要があります。このコードがプロキシコードです。 カスタムモデルコードの記述の詳細については、 カスタムモデル構築のドキュメントを参照してください。
custom.py
ファイル内のプロキシコードは、次のことを行う必要があります。
-
必要なモジュールと、オプションで ランタイムパラメーターを
model-metadata.yaml
からインポートします。 -
HTTPS接続または外部モデルで必要とされるネットワークプロトコルを介して、カスタムモデルを外部モデルに接続します。
-
予測をリクエストし、必要に応じて予測データを変換します。
プロキシコードの再利用を簡素化するために、model-metadata.yaml
ファイルのモデルメタデータによって ランタイムパラメーターを追加できます。
name: runtime-parameter-example
type: inference
targetType: regression
runtimeParameterDefinitions:
- fieldName: endpoint
type: string
description: The name of the endpoint.
- fieldName: API_KEY
type: credential
description: The HTTP basic credential containing the endpoint's API key in the password field (the username field is ignored).
モデルメタデータでランタイムパラメーターを定義した場合、それらをcustom.py
ファイルにインポートしてプロキシコードで使用できます。 これらのパラメーターをインポートした後、それらをプロキシコードの変数に割り当てることができます。 これにより、外部モデルに接続して予測データを取得する予測リクエストを作成できます。 次の例では、custom.py
ファイルの基本構造の概要を説明します。
# Import modules required to make a prediction request.
import json
import ssl
import urllib.request
import pandas as pd
# Import SimpleNamespace to create an object to store runtime parameter variables.
from types import SimpleNamespace
# Import RuntimeParameters to use the runtime parameters set in the model metadata.
from datarobot_drum import RuntimeParameters
# Override the default load_model hook to read the runtime parameters.
def load_model(code_dir):
# Assign runtime parameters to variables.
api_key = RuntimeParameters.get("API_KEY")["password"]
endpoint = RuntimeParameters.get("endpoint")
# Create scoring endpoint URL.
url = f"https://{endpoint}.example.com/score"
# Return an object containing the variables necessary to make a prediction request.
return SimpleNamespace(**locals())
# Write proxy code to request and convert scoring data from the external model.
def score(data, model, **kwargs):
# Call make_remote_prediction_request.
# Convert prediction data as necessary.
def make_remote_prediction_request(payload, url, api_key):
# Connect to the scoring endpoint URL.
# Request predictions from the external model.
プロキシモデルの作成¶
外部モデルのプロキシとしてカスタムモデルを作成するには、新しいプロキシモデルをカスタムモデルワークショップに追加します。 プロキシモデルには、外部モデルに接続するために作成したプロキシコードが含まれており、DataRobotの外部インフラストラクチャで実行されているモデルで コンプライアンスドキュメント、 チャレンジャー分析、 カスタムモデルテストなどの機能を使用できます。
カスタムモデルワークショップを介してプロキシモデルを追加するには:
-
モデルレジストリ > カスタムモデルワークショップをクリックします。
-
モデルタブで、+新しいモデルを追加をクリックします。
-
カスタム推論モデルを追加ダイアログボックスで、プロキシを選択してから、モデル情報を追加します。
フィールド 説明 モデル名 カスタムモデルに名前を付けます。 ターゲットタイプ/ターゲット名 ターゲットタイプ(二値分類、連続値、多クラス分類、異常検知、または非構造化)を選択して、ターゲット特徴量の名前を入力します。 正のクラスのラベル/負のクラスのラベル これらのフィールドは、二値分類モデルに対してのみ表示されます。 正のクラスのラベルとして使用する値と負のクラスのラベルとして使用する値を指定します。
多クラス分類モデルの場合、これらのフィールドは、.csv
または.txt
の形式でターゲットクラスを入力またはアップロードするフィールドで置き換えられます。 -
オプションフィールドを表示をクリックし、必要に応じて、予測しきい値、モデルの構築に使用したコーディング言語、および説明を入力します。
-
フィールドに入力したら、カスタムモデルを追加をクリックします。
-
アセンブルタブの右側のモデル環境で、右側の基本環境ドロップダウンメニューをクリックして環境を選択し、モデル環境を選択します。 モデル環境は、カスタムモデルのテストとデプロイに使用されます。
備考
基本環境プルダウンメニューにはドロップインモデル環境(存在する場合)と、作成可能なカスタム環境が含まれています。
-
左側のモデルでファイルをドラッグアンドドロップするか参照して、プロキシモデルのコンテンツを追加します。 または、リモート統合リポジトリを選択します。
ローカルファイルを参照をクリックすると、ローカルフォルダーを追加するオプションが表示されます。 ローカルフォルダーは、モデル自体ではなく、モデルに必要な依存ファイルおよび追加のアセット用です。 モデルファイルがフォルダーに含まれている場合でも、ファイルがルートレベルに存在しない限り、DataRobotからモデルファイルにアクセスすることはできません。 ルートにあるファイルは、フォルダー内の依存関係を指定することができます。
備考
また、モデル要件と
start_server.sh
ファイルをモデルのフォルダーにアップロードする必要があります(モデルと ドロップイン環境を組み合わせる場合を除く)。 -
アセンブルタブで、リソース設定の横にある編集アイコン()をクリックして、プロキシモデルに必要なネットワークアクセスをアクティブ化します。
-
モデルメタデータでランタイムパラメーターを提供する場合、環境を構築し、新しいバージョンを作成すると、ランタイムパラメーターのアセンブルタブでパラメーターを設定できます。
-
最後に、 カスタムモデルを登録して、 コンプライアンスドキュメントの生成に使用できるプロキシモデルを作成できます。 その後、プロキシモデルをデプロイして、外部モデルで チャレンジャー分析を設定し、 カスタムモデルテストを実行できます。