カスタムモデルランタイムパラメーターを定義¶
モデルメタデータを介してカスタムモデルにランタイムパラメーターを追加することで、カスタムモデルのコードを再利用しやすくします。 ランタイムパラメーターを定義するには、model-metadata.yaml
に以下の runtimeParameterDefinitions
を追加します。
キー | 説明 |
---|---|
fieldName |
ランタイムパラメーターの名前を定義します。 |
type |
ランタイムパラメーターに含まれるデータ型(string 、boolean 、numeric 、credential 、deployment )を定義します。 |
defaultValue |
(オプション)ランタイムパラメーターのデフォルト文字列値(credentialタイプはデフォルト値をサポートしません) |
minValue |
(オプション)numeric ランタイムパラメーターには、ランタイムパラメーターで使用可能な最小数値を設定します。 |
maxValue |
(オプション)numeric ランタイムパラメーターには、ランタイムパラメーターで使用可能な最大数値を設定します。 |
credentialType |
(オプション)credential ランタイムパラメーターの場合、パラメーターに含める資格情報のタイプを設定します。 |
allowEmpty |
(オプション)ランタイムパラメーターに空のフィールドポリシーを設定します。
|
description |
(オプション)ランタイムパラメーターの目的または内容の説明 |
デフォルト値
defaultValue
を指定せずにランタイムパラメーターを定義した場合、デフォルト値はNone
です。
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.
接続されたデプロイ
deployment
ランタイムパラメーターを定義するとき、デプロイIDをdefaultValue
またはUIから指定できます。 このデプロイIDは接続されたデプロイなど、さまざまな目的で使用できます。
ランタイムパラメーターによる資格情報の提供¶
credential
ランタイムパラメータータイプは、DataRobot REST APIで使用可能な任意のcredentialType
値をサポートします。 以下の例に示すように、含まれる資格情報はcredentialType
に依存します。
備考
サポートされている資格情報タイプの詳細については、 資格情報のAPIリファレンスドキュメントを参照してください。
Credential Type | Example |
---|---|
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