Runtime parameters for custom models¶
Availability information
Runtime parameters for custom models are off by default. Contact your DataRobot representative or administrator for information on enabling this feature.
Feature flag: Enable the Injection of Runtime Parameters for Custom Models
Now available as a public preview feature, you can add runtime parameters to a custom model through the model metadata, making your custom model code easier to reuse.
Define runtime parameters¶
To define runtime parameters, you can add the following runtimeParameterDefinitions
in model-metadata.yaml
:
Key | Value |
---|---|
fieldName |
The name of the runtime parameter. |
type |
The data type the runtime parameter contains:string or credential . |
defaultValue |
(Optional) The default string value for the runtime parameter (the credential type doesn't support default values). |
description |
(Optional) A descripton of the purpose or contents of the runtime parameter. |
Note
If you define a runtime parameter without specifying a defuaultValue
, the default value is None
.
name: runtime-parameter-example
type: inference
targetType: regression
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 runtime parameter with a default value.
- fieldName: runtime_parameter_for_credentials
type: credential
description: A runtime parameter containing a dictionary of credentials.
The credential
runtime parameter type supports any credentialType
value available in the DataRobot REST API. The credential information included depends on the credentialType
, as shown in the examples below:
Note
For more information on the supported credential types, see the API reference documentation for credentials.
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 |
Provide override values during local development¶
For local development with DRUM, you can specify a .yaml
file containing the values of the runtime parameters. The values defined here override the defaultValue
set in model-metadata.yaml
:
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
When using DRUM, the new --runtime-params-file
option specifies the file containing the runtime parameter values:
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
Import and use runtime parameters in custom code¶
To import and access runtime parameters, you can import the RuntimeParameters
module in your code in custom.py
:
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
View and edit runtime parameters in DataRobot¶
When you add a model-metadata.yaml
file with runtimeParameterDefinitions
to DataRobot while creating a custom model, the Runtime Parameters section appears on the Assemble tab for that custom model. After you build the environment and create a new version, you can click View and Edit to configure the parameters:
Note
Each change to a runtime parameter creates a new minor version of the custom model.
After you test a model with runtime parameters in the Custom Model Workshop, you can navigate to the Test > Runtime Parameters to view the model's parameters: