Skip to content
v2.276.0

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 ​

MemberDescription
FINE_TUNINGFine-tuning.
CONTINUED_PRE_TRAININGContinued pre-training.
DISTILLATIONDistillation.

Referenced by ​