カスタムモデルランタイムパラメーターを定義¶
モデルメタデータを介してカスタムモデルにランタイムパラメーターを追加することで、カスタムモデルのコードを再利用しやすくします。 ランタイムパラメーターを定義するには、model-metadata.yaml
に以下の runtimeParameterDefinitions
を追加します。
キー | 説明 |
---|---|
fieldName |
ランタイムパラメーターの名前を定義します。 |
type |
ランタイムパラメーターに含まれるデータ型(string 、boolean 、numeric 、credential 、deployment )を定義します。 |
defaultValue |
(オプション)ランタイムパラメーターのデフォルト文字列値(credentialタイプはデフォルト値をサポートしません) defaultValue を指定せずにランタイムパラメーターを定義した場合、デフォルト値はNone です。 |
minValue |
(オプション)numeric ランタイムパラメーターには、ランタイムパラメーターで使用可能な最小数値を設定します。 |
maxValue |
(オプション)numeric ランタイムパラメーターには、ランタイムパラメーターで使用可能な最大数値を設定します。 |
credentialType |
(オプション)credential ランタイムパラメーターの場合、パラメーターに含める資格情報のタイプを設定します。 |
allowEmpty |
(オプション)ランタイムパラメーターに空のフィールドポリシーを設定します。
|
description |
(オプション)ランタイムパラメーターの目的または内容の説明を入力します。 |
DataRobotで予約されたランタイムパラメーター¶
DataRobotでは、カスタムモデルの設定用に、以下のランタイムパラメーターが予約されています。
ランタイムパラメーター | タイプ | 説明 |
---|---|---|
CUSTOM_MODEL_WORKERS |
数値 | 各レプリカは、設定された数の同時プロセスを処理できます。 このオプションは、主に生成AIのユースケースで、プロセスセーフなカスタムモデルを対象としています。(プロセス安全モデルに関する詳細は、以下の注釈を参照してください)。 レプリカごとに許可する適切な同時プロセス数を決定するには、カスタムモデルでリクエスト数とレスポンス時間の中央値を監視します。 カスタムモデルでのレスポンス時間の中央値は、LLMでのレスポンス時間の中央値に近い必要があります。 カスタムモデルのレスポンス時間がLLMのレスポンス時間を超えた場合、同時プロセスの数を増やすのをやめ、代わりにレプリカの数を増やしてください。 デフォルト値: 1 最大値: 40 |
カスタムモデルプロセスの安全性
CUSTOM_MODEL_WORKERS
を有効にして設定する場合は、モデルがプロセスセーフであることを確認してください。これにより、複数の独立したプロセスが、競合を引き起こすことなく、共有リソースと安全にやり取りできるようになります。 この設定は、リソース効率を向上させるためにカスタムモデルで一般的に使用するためのものではありません。 この方法でCPUリソースを利用するメリットがあるのは、I/Oバウンドタスクを持つプロセスセーフなカスタムモデル(プロキシモデルなど)だけです。
カスタムモデルのメタデータを定義する¶
model-metadata.yaml
でruntimeParameterDefinitions
を定義する前に、ターゲットタイプに必要なカスタムモデルメタデータを定義します。
name: binary-example
targetType: binary
type: inference
inferenceModel:
targetName: target
positiveClassLabel: "1"
negativeClassLabel: "0"
name: regression-example
targetType: regression
type: inference
name: textgeneration-example
targetType: textgeneration
type: inference
name: anomaly-example
targetType: anomaly
type: inference
name: unstructured-example
targetType: unstructured
type: inference
name: multiclass-example
targetType: multiclass
type: inference
次に、モデル情報の下にruntimeParameterDefinitions
を指定できます。
name: runtime-parameter-example
targetType: regression
type: inference
runtimeParameterDefinitions:
- fieldName: my_first_runtime_parameter
type: string
description: My first runtime parameter.
- fieldName: runtime_parameter_with_default_value
type: string
defaultValue: Default
description: A string-type runtime parameter with a default value.
- fieldName: runtime_parameter_boolean
type: boolean
defaultValue: true
description: A boolean-type runtime parameter with a default value of true.
- fieldName: runtime_parameter_numeric
type: numeric
defaultValue: 0
minValue: -100
maxValue: 100
description: A boolean-type runtime parameter with a default value of 0, a minimum value of -100, and a maximum value of 100.
- fieldName: runtime_parameter_for_credentials
type: credential
credentialType: basic
allowEmpty: false
description: A runtime parameter containing a dictionary of credentials; credentials must be provided before registering the custom model.
- fieldName: runtime_parameter_for_connected_deployment
type: deployment
description: A runtime parameter defined to accept the deployment ID of another deployment to connect to the deployed custom model.
ランタイムパラメーターによる資格情報の提供¶
credential
ランタイムパラメータータイプは、DataRobot REST APIで使用可能な任意のcredentialType
値をサポートします。 以下の例に示すように、含まれる資格情報はcredentialType
に依存します。
資格情報のタイプ
サポートされている資格情報タイプの詳細については、 資格情報のAPIリファレンスドキュメントを参照してください。
資格情報タイプ | 例 |
---|---|
basic |
basic: credentialType: basic description: string name: string password: string user: string |
azure |
azure: credentialType: azure description: string name: string azureConnectionString: string |
gcp |
gcp: credentialType: gcp description: string name: string gcpKey: string |
s3 |
s3: credentialType: s3 description: string name: string awsAccessKeyId: string awsSecretAccessKey: string awsSessionToken: string |
api_token |
api_token: credentialType: api_token apiToken: string name: string |
ローカル開発中にオーバーライド値を指定する¶
DRUMを使用したローカル開発では、ランタイムパラメーターの値を含む.yaml
ファイルを指定できます。 ここで定義された値は、model-metadata.yaml
でのdefaultValue
セットをオーバーライドします。
my_first_runtime_parameter: Hello, world.
runtime_parameter_with_default_value: Override the default value.
runtime_parameter_for_credentials:
credentialType: basic
name: credentials
password: password1
user: user1
DRUMを使用する場合、--runtime-params-file
オプションはランタイムパラメーター値を含むファイルを指定します。
drum score --runtime-params-file .runtime-parameters.yaml --code-dir model_templates/python3_sklearn --target-type regression --input tests/testdata/juniors_3_year_stats_regression.csv
カスタムコードでのランタイムパラメーターのインポートと使用¶
ランタイムパラメーターをインポートしてアクセスするには、custom.py
でコードにRuntimeParameters
モジュールをインポートします。
from datarobot_drum import RuntimeParameters
def mask(value, visible=3):
return value[:visible] + ("*" * len(value[visible:]))
def transform(data, model):
print("Loading the following Runtime Parameters:")
parameter1 = RuntimeParameters.get("my_first_runtime_parameter")
parameter2 = RuntimeParameters.get("runtime_parameter_with_default_value")
print(f"\tParameter 1: {parameter1}")
print(f"\tParameter 2: {parameter2}")
credentials = RuntimeParameters.get("runtime_parameter_for_credentials")
if credentials is not None:
credential_type = credentials.pop("credentialType")
print(
f"\tCredentials (type={credential_type}): "
+ str({k: mask(v) for k, v in credentials.items()})
)
else:
print("No credential data set")
return data