Skip to content

Commit 6a5e9fc

Browse files
author
AWS
committed
Amazon Bedrock Update: Adding support in Amazon Bedrock to customize models with reinforcement fine-tuning (RFT) and support for updating the existing Custom Model Deployments.
1 parent 588efbc commit 6a5e9fc

File tree

2 files changed

+215
-0
lines changed

2 files changed

+215
-0
lines changed
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
{
2+
"type": "feature",
3+
"category": "Amazon Bedrock",
4+
"contributor": "",
5+
"description": "Adding support in Amazon Bedrock to customize models with reinforcement fine-tuning (RFT) and support for updating the existing Custom Model Deployments."
6+
}

services/bedrock/src/main/resources/codegen-resources/service-2.json

Lines changed: 209 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1836,6 +1836,25 @@
18361836
"documentation":"<p>Updates an existing Automated Reasoning policy test. You can modify the content, query, expected result, and confidence threshold.</p>",
18371837
"idempotent":true
18381838
},
1839+
"UpdateCustomModelDeployment":{
1840+
"name":"UpdateCustomModelDeployment",
1841+
"http":{
1842+
"method":"PATCH",
1843+
"requestUri":"/model-customization/custom-model-deployments/{customModelDeploymentIdentifier}",
1844+
"responseCode":202
1845+
},
1846+
"input":{"shape":"UpdateCustomModelDeploymentRequest"},
1847+
"output":{"shape":"UpdateCustomModelDeploymentResponse"},
1848+
"errors":[
1849+
{"shape":"ResourceNotFoundException"},
1850+
{"shape":"AccessDeniedException"},
1851+
{"shape":"ValidationException"},
1852+
{"shape":"InternalServerException"},
1853+
{"shape":"ThrottlingException"}
1854+
],
1855+
"documentation":"<p> Updates a custom model deployment with a new custom model. This allows you to deploy updated models without creating new deployment endpoints. </p>",
1856+
"idempotent":true
1857+
},
18391858
"UpdateGuardrail":{
18401859
"name":"UpdateGuardrail",
18411860
"http":{
@@ -5189,6 +5208,32 @@
51895208
"type":"list",
51905209
"member":{"shape":"CustomModelDeploymentSummary"}
51915210
},
5211+
"CustomModelDeploymentUpdateDetails":{
5212+
"type":"structure",
5213+
"required":[
5214+
"modelArn",
5215+
"updateStatus"
5216+
],
5217+
"members":{
5218+
"modelArn":{
5219+
"shape":"ModelArn",
5220+
"documentation":"<p> ARN of the new custom model being deployed as part of the update. </p>"
5221+
},
5222+
"updateStatus":{
5223+
"shape":"CustomModelDeploymentUpdateStatus",
5224+
"documentation":"<p> Current status of the deployment update. </p>"
5225+
}
5226+
},
5227+
"documentation":"<p> Details about an update to a custom model deployment, including the new custom model resource ARN and current update status. </p>"
5228+
},
5229+
"CustomModelDeploymentUpdateStatus":{
5230+
"type":"string",
5231+
"enum":[
5232+
"Updating",
5233+
"UpdateCompleted",
5234+
"UpdateFailed"
5235+
]
5236+
},
51925237
"CustomModelName":{
51935238
"type":"string",
51945239
"max":63,
@@ -5268,6 +5313,10 @@
52685313
"distillationConfig":{
52695314
"shape":"DistillationConfig",
52705315
"documentation":"<p>The Distillation configuration for the custom model.</p>"
5316+
},
5317+
"rftConfig":{
5318+
"shape":"RFTConfig",
5319+
"documentation":"<p> Configuration settings for reinforcement fine-tuning (RFT) model customization, including grader configuration and hyperparameters. </p>"
52715320
}
52725321
},
52735322
"documentation":"<p>A model customization configuration</p>",
@@ -5279,6 +5328,7 @@
52795328
"FINE_TUNING",
52805329
"CONTINUED_PRE_TRAINING",
52815330
"DISTILLATION",
5331+
"REINFORCEMENT_FINE_TUNING",
52825332
"IMPORTED"
52835333
]
52845334
},
@@ -5630,6 +5680,12 @@
56305680
"NOT_AVAILABLE"
56315681
]
56325682
},
5683+
"EpochCount":{
5684+
"type":"integer",
5685+
"box":true,
5686+
"max":50,
5687+
"min":1
5688+
},
56335689
"ErrorMessage":{
56345690
"type":"string",
56355691
"max":2048,
@@ -6821,6 +6877,10 @@
68216877
"shape":"CustomModelDeploymentDescription",
68226878
"documentation":"<p>The description of the custom model deployment.</p>"
68236879
},
6880+
"updateDetails":{
6881+
"shape":"CustomModelDeploymentUpdateDetails",
6882+
"documentation":"<p> Details about any pending or completed updates to the custom model deployment, including the new model ARN and update status. </p>"
6883+
},
68246884
"failureMessage":{
68256885
"shape":"ErrorMessage",
68266886
"documentation":"<p>If the deployment status is <code>FAILED</code>, this field contains a message describing the failure reason.</p>"
@@ -7846,6 +7906,17 @@
78467906
}
78477907
}
78487908
},
7909+
"GraderConfig":{
7910+
"type":"structure",
7911+
"members":{
7912+
"lambdaGrader":{
7913+
"shape":"LambdaGraderConfig",
7914+
"documentation":"<p> Configuration for using an AWS Lambda function as the grader for evaluating model responses and provide reward signals in reinforcement fine-tuning. </p>"
7915+
}
7916+
},
7917+
"documentation":"<p> Configuration for the grader used in reinforcement fine-tuning to evaluate model responses and provide reward signals. </p>",
7918+
"union":true
7919+
},
78497920
"GuardrailArn":{
78507921
"type":"string",
78517922
"max":2048,
@@ -9563,6 +9634,23 @@
95639634
"max":100,
95649635
"min":1
95659636
},
9637+
"LambdaArn":{
9638+
"type":"string",
9639+
"max":512,
9640+
"min":1,
9641+
"pattern":"arn:(aws[a-zA-Z-]*)?:lambda:[a-z]{2}(-gov)?-[a-z]+-\\d{1}:\\d{12}:function:[a-zA-Z0-9-_\\.]+(:(\\$LATEST|[a-zA-Z0-9-_]+))?"
9642+
},
9643+
"LambdaGraderConfig":{
9644+
"type":"structure",
9645+
"required":["lambdaArn"],
9646+
"members":{
9647+
"lambdaArn":{
9648+
"shape":"LambdaArn",
9649+
"documentation":"<p> ARN of the AWS Lambda function that will evaluate model responses and return reward scores for RFT training. </p>"
9650+
}
9651+
},
9652+
"documentation":"<p> Configuration for using an AWS Lambda function to grade model responses during reinforcement fine-tuning training. </p>"
9653+
},
95669654
"LegalTerm":{
95679655
"type":"structure",
95689656
"members":{
@@ -11761,6 +11849,90 @@
1176111849
"max":1000,
1176211850
"min":1
1176311851
},
11852+
"RFTBatchSize":{
11853+
"type":"integer",
11854+
"box":true,
11855+
"max":512,
11856+
"min":16
11857+
},
11858+
"RFTConfig":{
11859+
"type":"structure",
11860+
"members":{
11861+
"graderConfig":{
11862+
"shape":"GraderConfig",
11863+
"documentation":"<p> Configuration for the grader that evaluates model responses and provides reward signals during RFT training. </p>"
11864+
},
11865+
"hyperParameters":{
11866+
"shape":"RFTHyperParameters",
11867+
"documentation":"<p> Hyperparameters that control the reinforcement fine-tuning training process, including learning rate, batch size, and epoch count. </p>"
11868+
}
11869+
},
11870+
"documentation":"<p> Configuration settings for reinforcement fine-tuning (RFT), including grader configuration and training hyperparameters. </p>"
11871+
},
11872+
"RFTEvalInterval":{
11873+
"type":"integer",
11874+
"box":true,
11875+
"max":100,
11876+
"min":1
11877+
},
11878+
"RFTHyperParameters":{
11879+
"type":"structure",
11880+
"members":{
11881+
"epochCount":{
11882+
"shape":"EpochCount",
11883+
"documentation":"<p> Number of training epochs to run during reinforcement fine-tuning. Higher values may improve performance but increase training time. </p>"
11884+
},
11885+
"batchSize":{
11886+
"shape":"RFTBatchSize",
11887+
"documentation":"<p> Number of training samples processed in each batch during reinforcement fine-tuning (RFT) training. Larger batches may improve training stability. </p>"
11888+
},
11889+
"learningRate":{
11890+
"shape":"RFTLearningRate",
11891+
"documentation":"<p> Learning rate for the reinforcement fine-tuning. Controls how quickly the model adapts to reward signals. </p>"
11892+
},
11893+
"maxPromptLength":{
11894+
"shape":"RFTMaxPromptLength",
11895+
"documentation":"<p> Maximum length of input prompts during RFT training, measured in tokens. Longer prompts allow more context but increase memory usage and training-time. </p>"
11896+
},
11897+
"trainingSamplePerPrompt":{
11898+
"shape":"RFTTrainingSamplePerPrompt",
11899+
"documentation":"<p> Number of response samples generated per prompt during RFT training. More samples provide better reward signal estimation. </p>"
11900+
},
11901+
"inferenceMaxTokens":{
11902+
"shape":"RFTInferenceMaxTokens",
11903+
"documentation":"<p> Maximum number of tokens the model can generate in response to each prompt during RFT training. </p>"
11904+
},
11905+
"reasoningEffort":{
11906+
"shape":"ReasoningEffort",
11907+
"documentation":"<p> Level of reasoning effort applied during RFT training. Higher values may improve response quality but increase training time. </p>"
11908+
},
11909+
"evalInterval":{
11910+
"shape":"RFTEvalInterval",
11911+
"documentation":"<p> Interval between evaluation runs during RFT training, measured in training steps. More frequent evaluation provides better monitoring. </p>"
11912+
}
11913+
},
11914+
"documentation":"<p> Hyperparameters for controlling the reinforcement fine-tuning training process, including learning settings and evaluation intervals. </p>"
11915+
},
11916+
"RFTInferenceMaxTokens":{
11917+
"type":"integer",
11918+
"box":true
11919+
},
11920+
"RFTLearningRate":{
11921+
"type":"float",
11922+
"box":true,
11923+
"max":0.001,
11924+
"min":0.0000001
11925+
},
11926+
"RFTMaxPromptLength":{
11927+
"type":"integer",
11928+
"box":true
11929+
},
11930+
"RFTTrainingSamplePerPrompt":{
11931+
"type":"integer",
11932+
"box":true,
11933+
"max":16,
11934+
"min":2
11935+
},
1176411936
"RagConfigs":{
1176511937
"type":"list",
1176611938
"member":{"shape":"RAGConfig"},
@@ -11820,6 +11992,14 @@
1182011992
"max":100,
1182111993
"min":1
1182211994
},
11995+
"ReasoningEffort":{
11996+
"type":"string",
11997+
"enum":[
11998+
"low",
11999+
"medium",
12000+
"high"
12001+
]
12002+
},
1182312003
"RegionAvailability":{
1182412004
"type":"string",
1182512005
"enum":[
@@ -12853,6 +13033,35 @@
1285313033
}
1285413034
}
1285513035
},
13036+
"UpdateCustomModelDeploymentRequest":{
13037+
"type":"structure",
13038+
"required":[
13039+
"modelArn",
13040+
"customModelDeploymentIdentifier"
13041+
],
13042+
"members":{
13043+
"modelArn":{
13044+
"shape":"CustomModelArn",
13045+
"documentation":"<p> ARN of the new custom model to deploy. This replaces the currently deployed model. </p>"
13046+
},
13047+
"customModelDeploymentIdentifier":{
13048+
"shape":"CustomModelDeploymentIdentifier",
13049+
"documentation":"<p> Identifier of the custom model deployment to update with the new custom model. </p>",
13050+
"location":"uri",
13051+
"locationName":"customModelDeploymentIdentifier"
13052+
}
13053+
}
13054+
},
13055+
"UpdateCustomModelDeploymentResponse":{
13056+
"type":"structure",
13057+
"required":["customModelDeploymentArn"],
13058+
"members":{
13059+
"customModelDeploymentArn":{
13060+
"shape":"CustomModelDeploymentArn",
13061+
"documentation":"<p> ARN of the custom model deployment being updated. </p>"
13062+
}
13063+
}
13064+
},
1285613065
"UpdateGuardrailRequest":{
1285713066
"type":"structure",
1285813067
"required":[

0 commit comments

Comments
 (0)