建立強化微調任務 - Amazon Bedrock

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

建立強化微調任務

您可以使用 Amazon Bedrock 主控台或 API 建立強化微調任務。RFT 任務可能需要數小時的時間,取決於訓練資料的大小、epoch 數量,以及獎勵函數的複雜性。

先決條件

  • 建立 IAM 服務角色以存取您要存放 RFT 訓練資料和輸出成品的 Amazon S3 儲存貯體。您可以使用 AWS 管理主控台或手動自動建立此角色。如需 RFT 特定許可,請參閱 強化微調存取和安全性

  • (選用) 加密輸入和輸出資料、RFT 任務或對自訂模型提出的推論請求。如需詳細資訊,請參閱加密自訂模型

建立 RFT 任務

選擇您偏好方法的索引標籤,然後遵循下列步驟:

Console

若要在 主控台中提交 RFT 任務,請執行下列步驟:

  1. 登入 AWS 管理主控台,並在 https://console.aws.amazon.com/bedrock:// 開啟 Amazon Bedrock 主控台。

  2. 從左側導覽窗格中,選擇調校下的自訂模型

  3. 在模型表格中,選擇建立。然後,選擇建立強化微調任務

  4. 模型詳細資訊區段中,選擇 Amazon Nova 2 Lite 作為基礎模型。

  5. 自訂詳細資訊區段中,輸入自訂名稱。

  6. 訓練資料區段中,選擇您的資料來源:

    • 使用存放的調用日誌 - 從存放在 Amazon S3 中的可用調用日誌中選取

    • 上傳新資料集 - 選取訓練資料集檔案的 Amazon S3 位置,或直接從您的裝置上傳檔案

    注意

    您的訓練資料集應該是 OpenAI 聊天完成資料格式。如果您以 Amazon Bedrock 調用或轉換格式提供調用日誌,Amazon Bedrock 會自動將其轉換為聊天完成格式。

  7. 獎勵函數區段中,設定您的獎勵機制:

    • 模型作為判斷 (RLAIF) - 選取 Bedrock 託管基礎模型作為判斷並設定評估指示。將此用於主觀任務,例如內容管制。

      注意

      主控台的 Model as judge 選項會在訓練期間自動將您的組態轉換為 Lambda 函數。

    • 自訂程式碼 (RLVR) - 使用透過 Lambda 函數執行的 Python 程式碼建立自訂獎勵函數。將此用於程式碼產生等目標任務。

    如需詳細資訊,請參閱設定獎勵函數

  8. (選用) 在超參數區段中,調整訓練參數或使用預設值。

  9. 輸出資料區段中,輸入 Bedrock 應儲存任務輸出的 Amazon S3 位置。

  10. 角色組態區段中,選取:

    • 選擇現有角色 - 從下拉式清單中選取

    • 建立角色 - 輸入服務角色的名稱

  11. (選用) 在其他組態區段中,設定:

    • 指向 Amazon S3 儲存貯體來驗證資料

    • KMS 加密設定

    • 任務和模型標籤

  12. 選擇建立強化微調任務以開始任務。

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 任務遵循此自動化工作流程:

  1. 回應產生 - 演員模型會從訓練提示產生回應

  2. 獎勵運算 - 獎勵函數評估提示-回應對

  3. 演員模型訓練 - 模型使用 GRPO 從得分配對中學習

在訓練期間,您可以使用即時圖形來監控進度,並搭配訓練和驗證指標,例如損失、獎勵、獎勵利潤和準確性。一旦成功,就會使用自訂模型 ARN 建立 RFT 模型。

設定推論

任務完成後,只要按一下即可部署產生的 RFT 模型,以進行隨需推論。對於需要一致效能的任務關鍵工作負載,您也可以使用佈建輸送量。推論設定完成後,請在遊樂場中使用測試,以互動方式評估和比較回應side-by-side與基礎模型。

如需監控 RFT 任務進度,請參閱 監控 RFT 訓練任務

如需評估您已完成的 RFT 模型,請參閱 評估您的 RFT 模型