本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
建立強化微調任務
您可以使用 Amazon Bedrock 主控台或 API 建立強化微調任務。RFT 任務可能需要數小時的時間,取決於訓練資料的大小、epoch 數量,以及獎勵函數的複雜性。
先決條件
建立 RFT 任務
選擇您偏好方法的索引標籤,然後遵循下列步驟:
- Console
-
若要在 主控台中提交 RFT 任務,請執行下列步驟:
-
登入 AWS 管理主控台,並在 https://console.aws.amazon.com/bedrock:// 開啟 Amazon Bedrock 主控台。
-
從左側導覽窗格中,選擇調校下的自訂模型。
-
在模型表格中,選擇建立。然後,選擇建立強化微調任務。
-
在模型詳細資訊區段中,選擇 Amazon Nova 2 Lite 作為基礎模型。
-
在自訂詳細資訊區段中,輸入自訂名稱。
-
在訓練資料區段中,選擇您的資料來源:
您的訓練資料集應該是 OpenAI 聊天完成資料格式。如果您以 Amazon Bedrock 調用或轉換格式提供調用日誌,Amazon Bedrock 會自動將其轉換為聊天完成格式。
-
在獎勵函數區段中,設定您的獎勵機制:
如需詳細資訊,請參閱設定獎勵函數。
-
(選用) 在超參數區段中,調整訓練參數或使用預設值。
-
在輸出資料區段中,輸入 Bedrock 應儲存任務輸出的 Amazon S3 位置。
-
在角色組態區段中,選取:
-
選擇現有角色 - 從下拉式清單中選取
-
建立角色 - 輸入服務角色的名稱
-
(選用) 在其他組態區段中,設定:
-
指向 Amazon S3 儲存貯體來驗證資料
-
KMS 加密設定
-
任務和模型標籤
-
選擇建立強化微調任務以開始任務。
- API
-
傳送 CreateModelCustomizationJob 請求,並將 customizationType設定為 REINFORCEMENT_FINE_TUNING。您必須提供下列欄位:
必要欄位:
-
roleArn - 具有 RFT 許可的服務角色 ARN
-
baseModelIdentifier - 要自訂的基礎模型的模型 ID 或 ARN
-
customModelName - 新自訂模型的名稱
-
jobName - 訓練任務的名稱
-
customizationType:設定為 REINFORCEMENT_FINE_TUNING
-
trainingDataConfig - 訓練資料集或調用日誌組態的 Amazon S3 URI
-
outputDataConfig - 用於寫入輸出資料的 Amazon S3 URI
-
rftConfig - 獎勵函數組態 (RLVR 或 RLAIF) 和超參數組態
請求範例:
{
"roleArn": "arn:aws:iam::123456789012:role/BedrockRFTRole",
"baseModelIdentifier": "amazon.nova-2.0",
"customModelName": "my-rft-model",
"jobName": "my-rft-job",
"customizationType": "REINFORCEMENT_FINE_TUNING",
"trainingDataConfig": {
"s3Uri": "s3://my-bucket/training-data.jsonl"
},
"customizationConfig": {
"rftConfig" : {
"graderConfig": {
"lambdaGrader": {
"lambdaArn": "arn:aws:lambda:us-east-1:123456789012:function:function-name"
}
},
"hyperParameters": {
"batchSize": 64,
"epochCount": 2,
"evalInterval": 10,
"inferenceMaxTokens": 8192,
"learningRate": 0.00001,
"maxPromptLength": 4096,
"reasoningEffort": "high",
"trainingSamplePerPrompt": 4
}
}
},
"outputDataConfig": {
"s3Uri": "s3://my-bucket/rft-output/"
}
}
Python API 範例請求:
import boto3
bedrock = boto3.client(service_name='bedrock')
# Set parameters
customizationType = "REINFORCEMENT_FINE_TUNING"
baseModelIdentifier = "arn:aws:bedrock:us-east-1::foundation-model/amazon.nova-2-lite-v1:0:256k"
roleArn = "${your-customization-role-arn}"
jobName = "MyFineTuningJob"
customModelName = "MyCustomModel"
customizationConfig = {
'rftConfig' : {
'graderConfig': {
'lambdaGrader': {
'lambdaArn': 'arn:aws:lambda:us-east-1:123456789012:function:function-name'
}
},
'hyperParameters': {
'batchSize': 64,
'epochCount': 2,
'evalInterval': 10,
'inferenceMaxTokens': 8192,
'learningRate':0.00001,
'maxPromptLength': 4096,
'reasoningEffort': 'high',
'trainingSamplePerPrompt':4
}
}
}
trainingDataConfig = {"s3Uri": "s3://${training-bucket}/myInputData/train.jsonl"}
outputDataConfig = {"s3Uri": "s3://${output-bucket}/myOutputData"}
# Create job
response_ft = bedrock.create_model_customization_job(
jobName=jobName,
customModelName=customModelName,
roleArn=roleArn,
baseModelIdentifier=baseModelIdentifier,
customizationConfig=customizationConfig,
trainingDataConfig=trainingDataConfig,
outputDataConfig=outputDataConfig,
customizationType=customizationType
)
jobArn = response_ft['jobArn']
RFT 任務工作流程
RFT 任務遵循此自動化工作流程:
-
回應產生 - 演員模型會從訓練提示產生回應
-
獎勵運算 - 獎勵函數評估提示-回應對
-
演員模型訓練 - 模型使用 GRPO 從得分配對中學習
在訓練期間,您可以使用即時圖形來監控進度,並搭配訓練和驗證指標,例如損失、獎勵、獎勵利潤和準確性。一旦成功,就會使用自訂模型 ARN 建立 RFT 模型。
設定推論
任務完成後,只要按一下即可部署產生的 RFT 模型,以進行隨需推論。對於需要一致效能的任務關鍵工作負載,您也可以使用佈建輸送量。推論設定完成後,請在遊樂場中使用測試,以互動方式評估和比較回應side-by-side與基礎模型。
如需監控 RFT 任務進度,請參閱 監控 RFT 訓練任務。
如需評估您已完成的 RFT 模型,請參閱 評估您的 RFT 模型。