CreateModelCustomizationJob
Creates a fine-tuning job to customize a base model.
You specify the base foundation model and the location of the training data. After the model-customization job completes successfully, your custom model resource will be ready to use. Amazon Bedrock returns validation loss metrics and output generations after the job completes.
For information on the format of training and validation data, see Prepare the datasets.
Model-customization jobs are asynchronous and the completion time depends on the base model and the training/validation data size.
To monitor a job, use the GetModelCustomizationJob
operation to retrieve the job status.
For more information, see Custom models in the Amazon Bedrock User Guide.
Request Syntax
POST /model-customization-jobs HTTP/1.1
Content-type: application/json
{
"baseModelIdentifier": "string
",
"clientRequestToken": "string
",
"customizationType": "string
",
"customModelKmsKeyId": "string
",
"customModelName": "string
",
"customModelTags": [
{
"key": "string
",
"value": "string
"
}
],
"hyperParameters": {
"string
" : "string
"
},
"jobName": "string
",
"jobTags": [
{
"key": "string
",
"value": "string
"
}
],
"outputDataConfig": {
"s3Uri": "string
"
},
"roleArn": "string
",
"trainingDataConfig": {
"s3Uri": "string
"
},
"validationDataConfig": {
"validators": [
{
"s3Uri": "string
"
}
]
},
"vpcConfig": {
"securityGroupIds": [ "string
" ],
"subnetIds": [ "string
" ]
}
}
URI Request Parameters
The request does not use any URI parameters.
Request Body
The request accepts the following data in JSON format.
- baseModelIdentifier
-
Name of the base model.
Type: String
Length Constraints: Minimum length of 1. Maximum length of 2048.
Pattern:
^(arn:aws(-[^:]+)?:bedrock:[a-z0-9-]{1,20}:(([0-9]{12}:custom-model/([a-z0-9-]{1,63}[.]{1}[a-z0-9-]{1,63}([.]?[a-z0-9-]{1,63})([:][a-z0-9-]{1,63}){0,2})/[a-z0-9]{12})|(:foundation-model/[a-z0-9-]{1,63}[.]{1}[a-z0-9-]{1,63}([:][a-z0-9-]{1,63}){0,2})))|([a-z0-9-]{1,63}[.]{1}[a-z0-9-]{1,63}([.]?[a-z0-9-]{1,63})([:][a-z0-9-]{1,63}){0,2})|(([0-9a-zA-Z][_-]?)+)$
Required: Yes
- clientRequestToken
-
A unique, case-sensitive identifier to ensure that the API request completes no more than one time. If this token matches a previous request, Amazon Bedrock ignores the request, but does not return an error. For more information, see Ensuring idempotency.
Type: String
Length Constraints: Minimum length of 1. Maximum length of 256.
Pattern:
^[a-zA-Z0-9](-*[a-zA-Z0-9])*$
Required: No
- customizationType
-
The customization type.
Type: String
Valid Values:
FINE_TUNING | CONTINUED_PRE_TRAINING
Required: No
- customModelKmsKeyId
-
The custom model is encrypted at rest using this key.
Type: String
Length Constraints: Minimum length of 1. Maximum length of 2048.
Pattern:
^(arn:aws(-[^:]+)?:kms:[a-zA-Z0-9-]*:[0-9]{12}:((key/[a-zA-Z0-9-]{36})|(alias/[a-zA-Z0-9-_/]+)))|([a-zA-Z0-9-]{36})|(alias/[a-zA-Z0-9-_/]+)$
Required: No
- customModelName
-
A name for the resulting custom model.
Type: String
Length Constraints: Minimum length of 1. Maximum length of 63.
Pattern:
^([0-9a-zA-Z][_-]?){1,63}$
Required: Yes
- customModelTags
-
Tags to attach to the resulting custom model.
Type: Array of Tag objects
Array Members: Minimum number of 0 items. Maximum number of 200 items.
Required: No
- hyperParameters
-
Parameters related to tuning the model. For details on the format for different models, see Custom model hyperparameters.
Type: String to string map
Required: Yes
- jobName
-
A name for the fine-tuning job.
Type: String
Length Constraints: Minimum length of 1. Maximum length of 63.
Pattern:
^[a-zA-Z0-9](-*[a-zA-Z0-9\+\-\.])*$
Required: Yes
- jobTags
-
Tags to attach to the job.
Type: Array of Tag objects
Array Members: Minimum number of 0 items. Maximum number of 200 items.
Required: No
- outputDataConfig
-
S3 location for the output data.
Type: OutputDataConfig object
Required: Yes
- roleArn
-
The Amazon Resource Name (ARN) of an IAM service role that Amazon Bedrock can assume to perform tasks on your behalf. For example, during model training, Amazon Bedrock needs your permission to read input data from an S3 bucket, write model artifacts to an S3 bucket. To pass this role to Amazon Bedrock, the caller of this API must have the
iam:PassRole
permission.Type: String
Length Constraints: Minimum length of 0. Maximum length of 2048.
Pattern:
^arn:aws(-[^:]+)?:iam::([0-9]{12})?:role/.+$
Required: Yes
- trainingDataConfig
-
Information about the training dataset.
Type: TrainingDataConfig object
Required: Yes
- validationDataConfig
-
Information about the validation dataset.
Type: ValidationDataConfig object
Required: No
- vpcConfig
-
The configuration of the Virtual Private Cloud (VPC) that contains the resources that you're using for this job. For more information, see Protect your model customization jobs using a VPC.
Type: VpcConfig object
Required: No
Response Syntax
HTTP/1.1 201
Content-type: application/json
{
"jobArn": "string"
}
Response Elements
If the action is successful, the service sends back an HTTP 201 response.
The following data is returned in JSON format by the service.
- jobArn
-
Amazon Resource Name (ARN) of the fine tuning job
Type: String
Length Constraints: Minimum length of 0. Maximum length of 1011.
Pattern:
^arn:aws(-[^:]+)?:bedrock:[a-z0-9-]{1,20}:[0-9]{12}:model-customization-job/[a-z0-9-]{1,63}[.]{1}[a-z0-9-]{1,63}([a-z0-9-]{1,63}[.]){0,2}[a-z0-9-]{1,63}([:][a-z0-9-]{1,63}){0,2}/[a-z0-9]{12}$
Errors
For information about the errors that are common to all actions, see Common Errors.
- AccessDeniedException
-
The request is denied because of missing access permissions.
HTTP Status Code: 403
- ConflictException
-
Error occurred because of a conflict while performing an operation.
HTTP Status Code: 400
- InternalServerException
-
An internal server error occurred. Retry your request.
HTTP Status Code: 500
- ResourceNotFoundException
-
The specified resource Amazon Resource Name (ARN) was not found. Check the Amazon Resource Name (ARN) and try your request again.
HTTP Status Code: 404
- ServiceQuotaExceededException
-
The number of requests exceeds the service quota. Resubmit your request later.
HTTP Status Code: 400
- ThrottlingException
-
The number of requests exceeds the limit. Resubmit your request later.
HTTP Status Code: 429
- TooManyTagsException
-
The request contains more tags than can be associated with a resource (50 tags per resource). The maximum number of tags includes both existing tags and those included in your current request.
HTTP Status Code: 400
- ValidationException
-
Input validation failed. Check your request parameters and retry the request.
HTTP Status Code: 400
See Also
For more information about using this API in one of the language-specific AWS SDKs, see the following: