CustomizationType Enum
The customization type.
Example
ts
import * as bedrock from 'aws-cdk-lib/aws-bedrock';
import * as kms from 'aws-cdk-lib/aws-kms';
declare const outputBucket: s3.IBucket;
declare const trainingBucket: s3.IBucket;
declare const validationBucket: s3.IBucket;
declare const kmsKey: kms.IKey;
declare const vpc: ec2.IVpc;
const model = bedrock.FoundationModel.fromFoundationModelId(
this,
'Model',
bedrock.FoundationModelIdentifier.AMAZON_TITAN_TEXT_G1_EXPRESS_V1,
);
const task = new tasks.BedrockCreateModelCustomizationJob(this, 'CreateModelCustomizationJob', {
baseModel: model,
clientRequestToken: 'MyToken',
customizationType: tasks.CustomizationType.FINE_TUNING,
customModelKmsKey: kmsKey,
customModelName: 'MyCustomModel', // required
customModelTags: [{ key: 'key1', value: 'value1' }],
hyperParameters: {
batchSize: '10',
},
jobName: 'MyCustomizationJob', // required
jobTags: [{ key: 'key2', value: 'value2' }],
outputData: {
bucket: outputBucket, // required
path: 'output-data/',
},
trainingData: {
bucket: trainingBucket,
path: 'training-data/data.json',
}, // required
// If you don't provide validation data, you have to specify `Evaluation percentage` hyperparameter.
validationData: [
{
bucket: validationBucket,
path: 'validation-data/data.json',
},
],
vpcConfig: {
securityGroups: [new ec2.SecurityGroup(this, 'SecurityGroup', { vpc })],
subnets: vpc.privateSubnets,
},
});
python
import aws_cdk.aws_bedrock as bedrock
import aws_cdk.aws_kms as kms
# output_bucket: s3.IBucket
# training_bucket: s3.IBucket
# validation_bucket: s3.IBucket
# kms_key: kms.IKey
# vpc: ec2.IVpc
model = bedrock.FoundationModel.from_foundation_model_id(self, "Model", bedrock.FoundationModelIdentifier.AMAZON_TITAN_TEXT_G1_EXPRESS_V1)
task = tasks.BedrockCreateModelCustomizationJob(self, "CreateModelCustomizationJob",
base_model=model,
client_request_token="MyToken",
customization_type=tasks.CustomizationType.FINE_TUNING,
custom_model_kms_key=kms_key,
custom_model_name="MyCustomModel", # required
custom_model_tags=[tasks.CustomModelTag(key="key1", value="value1")],
hyper_parameters={
"batch_size": "10"
},
job_name="MyCustomizationJob", # required
job_tags=[tasks.CustomModelTag(key="key2", value="value2")],
output_data=tasks.OutputBucketConfiguration(
bucket=output_bucket, # required
path="output-data/"
),
training_data=tasks.TrainingBucketConfiguration(
bucket=training_bucket,
path="training-data/data.json"
), # required
# If you don't provide validation data, you have to specify `Evaluation percentage` hyperparameter.
validation_data=[tasks.ValidationBucketConfiguration(
bucket=validation_bucket,
path="validation-data/data.json"
)
],
vpc_config={
"security_groups": [ec2.SecurityGroup(self, "SecurityGroup", vpc=vpc)],
"subnets": vpc.private_subnets
}
)
java
import software.amazon.awscdk.services.bedrock.*;
import software.amazon.awscdk.services.kms.*;
IBucket outputBucket;
IBucket trainingBucket;
IBucket validationBucket;
IKey kmsKey;
IVpc vpc;
FoundationModel model = FoundationModel.fromFoundationModelId(this, "Model", FoundationModelIdentifier.AMAZON_TITAN_TEXT_G1_EXPRESS_V1);
BedrockCreateModelCustomizationJob task = BedrockCreateModelCustomizationJob.Builder.create(this, "CreateModelCustomizationJob")
.baseModel(model)
.clientRequestToken("MyToken")
.customizationType(CustomizationType.FINE_TUNING)
.customModelKmsKey(kmsKey)
.customModelName("MyCustomModel") // required
.customModelTags(List.of(CustomModelTag.builder().key("key1").value("value1").build()))
.hyperParameters(Map.of(
"batchSize", "10"))
.jobName("MyCustomizationJob") // required
.jobTags(List.of(CustomModelTag.builder().key("key2").value("value2").build()))
.outputData(OutputBucketConfiguration.builder()
.bucket(outputBucket) // required
.path("output-data/")
.build())
.trainingData(TrainingBucketConfiguration.builder()
.bucket(trainingBucket)
.path("training-data/data.json")
.build()) // required
// If you don't provide validation data, you have to specify `Evaluation percentage` hyperparameter.
.validationData(List.of(ValidationBucketConfiguration.builder()
.bucket(validationBucket)
.path("validation-data/data.json")
.build()))
.vpcConfig(Map.of(
"securityGroups", List.of(SecurityGroup.Builder.create(this, "SecurityGroup").vpc(vpc).build()),
"subnets", vpc.getPrivateSubnets()))
.build();
csharp
// Install: dotnet add package Amazon.CDK.Lib
using Amazon.CDK.AWS.Bedrock;
using Amazon.CDK.AWS.KMS;
IBucket outputBucket;
IBucket trainingBucket;
IBucket validationBucket;
IKey kmsKey;
IVpc vpc;
var model = FoundationModel.FromFoundationModelId(this, "Model", FoundationModelIdentifier.AMAZON_TITAN_TEXT_G1_EXPRESS_V1);
var task = new BedrockCreateModelCustomizationJob(this, "CreateModelCustomizationJob", new BedrockCreateModelCustomizationJobProps {
BaseModel = model,
ClientRequestToken = "MyToken",
CustomizationType = CustomizationType.FINE_TUNING,
CustomModelKmsKey = kmsKey,
CustomModelName = "MyCustomModel", // required
CustomModelTags = new [] { new CustomModelTag { Key = "key1", Value = "value1" } },
HyperParameters = new Dictionary<string, string> {
{ "batchSize", "10" }
},
JobName = "MyCustomizationJob", // required
JobTags = new [] { new CustomModelTag { Key = "key2", Value = "value2" } },
OutputData = new OutputBucketConfiguration {
Bucket = outputBucket, // required
Path = "output-data/"
},
TrainingData = new TrainingBucketConfiguration {
Bucket = trainingBucket,
Path = "training-data/data.json"
}, // required
// If you don't provide validation data, you have to specify `Evaluation percentage` hyperparameter.
ValidationData = new [] { new ValidationBucketConfiguration {
Bucket = validationBucket,
Path = "validation-data/data.json"
} },
VpcConfig = new Dictionary<string, ISecurityGroup[]> {
{ "securityGroups", new [] { new SecurityGroup(this, "SecurityGroup", new SecurityGroupProps { Vpc = vpc }) } },
{ "subnets", vpc.PrivateSubnets }
}
});
go
// Install: go get github.com/aws/aws-cdk-go/awscdk/v2
import "github.com/aws/aws-cdk-go/awscdk"
import kms "github.com/aws/aws-cdk-go/awscdk"
var outputBucket IBucket
var trainingBucket IBucket
var validationBucket IBucket
var kmsKey IKey
var vpc IVpc
model := bedrock.FoundationModel_FromFoundationModelId(this, jsii.String("Model"), bedrock.FoundationModelIdentifier_AMAZON_TITAN_TEXT_G1_EXPRESS_V1())
task := tasks.NewBedrockCreateModelCustomizationJob(this, jsii.String("CreateModelCustomizationJob"), &BedrockCreateModelCustomizationJobProps{
BaseModel: model,
ClientRequestToken: jsii.String("MyToken"),
CustomizationType: tasks.CustomizationType_FINE_TUNING,
CustomModelKmsKey: kmsKey,
CustomModelName: jsii.String("MyCustomModel"),
// required
CustomModelTags: []CustomModelTag{
&CustomModelTag{
Key: jsii.String("key1"),
Value: jsii.String("value1"),
},
},
HyperParameters: map[string]*string{
"batchSize": jsii.String("10"),
},
JobName: jsii.String("MyCustomizationJob"),
// required
JobTags: []CustomModelTag{
&CustomModelTag{
Key: jsii.String("key2"),
Value: jsii.String("value2"),
},
},
OutputData: &OutputBucketConfiguration{
Bucket: outputBucket,
// required
Path: jsii.String("output-data/"),
},
TrainingData: &TrainingBucketConfiguration{
Bucket: trainingBucket,
Path: jsii.String("training-data/data.json"),
},
// required
// If you don't provide validation data, you have to specify `Evaluation percentage` hyperparameter.
ValidationData: []ValidationBucketConfiguration{
&ValidationBucketConfiguration{
Bucket: validationBucket,
Path: jsii.String("validation-data/data.json"),
},
},
VpcConfig: map[string][]ISecurityGroup{
"securityGroups": []ISecurityGroup{
ec2.NewSecurityGroup(this, jsii.String("SecurityGroup"), &SecurityGroupProps{
"vpc": vpc,
}),
},
"subnets": vpc.privateSubnets,
},
})
Members
| Member | Description |
|---|---|
FINE_TUNING | Fine-tuning. |
CONTINUED_PRE_TRAINING | Continued pre-training. |
DISTILLATION | Distillation. |
Referenced by
BedrockCreateModelCustomizationJobProps.customizationTypecustomization_typecustomizationTypeCustomizationTypeCustomizationType