建立和管理 Amazon Nova 模型的微調任務 - Amazon Bedrock

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

建立和管理 Amazon Nova 模型的微調任務

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

先決條件

  • 建立具有所需許可的 IAM 服務角色。如需完整的安全性和許可資訊,包括 RFT 特定許可,請參閱 Amazon Nova 模型的存取和安全性

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

建立 RFT 任務

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

Console

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

  1. 開啟 Amazon Bedrock 主控台,並在調校下導覽至自訂模型

  2. 選擇建立,然後選擇建立強化微調任務

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

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

  5. 訓練資料區段中,選擇您的資料來源。從存放在 Amazon S3 中的可用調用日誌中選取,或選取訓練資料集檔案的 Amazon S3 位置,或直接從您的裝置上傳檔案。

    注意

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

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

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

      注意

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

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

    如需詳細資訊,請參閱設定 Amazon Nova 模型的獎勵函數

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

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

  9. 角色組態區段中,從下拉式清單中選擇現有角色,或輸入要建立之服務角色的名稱。

  10. (選用) 在其他組態區段中,指向 Amazon S3 儲存貯體、KMS 加密設定,以及任務和模型標籤來設定驗證資料。

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

API

傳送 CreateModelCustomizationJob 請求,並將 customizationType設定為 REINFORCEMENT_FINE_TUNING

必要欄位:roleArnbaseModelIdentifiercustomModelNamejobNametrainingDataConfigoutputDataConfigrftConfig

請求範例:

{ "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 訓練任務

Amazon Bedrock 會在 RFT 訓練期間,使用視覺化圖形和指標提供即時監控。這些指標可協助您了解模型是否正確收斂,以及獎勵函數是否有效引導學習程序。

任務狀態追蹤

您可以透過 Amazon Bedrock 主控台中的驗證和訓練階段來監控 RFT 任務狀態。

完成指標:

  • 當訓練成功完成時,任務狀態會變更為已完成

  • 自訂模型 ARN 可用於部署

  • 訓練指標達到收斂閾值

即時訓練指標

Amazon Bedrock 在 RFT 訓練期間提供即時監控,並顯示訓練和驗證指標的視覺化圖形。

核心訓練指標

  • 訓練損失 - 測量模型從訓練資料中學習的程度

  • 訓練獎勵統計資料 - 顯示獎勵函數指派的獎勵分數

  • 獎勵利潤 - 測量良好和不良回應獎勵之間的差異

  • 訓練和驗證集的準確性 - 顯示訓練和保留資料的模型效能

詳細指標類別

  • 獎勵指標critic/rewards/meancritic/rewards/maxcritic/rewards/min(獎勵分佈) 和 val-score/rewards/mean@1(驗證獎勵)

  • 模型行為actor/entropy(政策變化;較高等於更探索性)

  • 訓練運作狀態 – actor/pg_loss(政策梯度損失)、 actor/pg_clipfrac(剪輯更新的頻率) 和 actor/grad_norm(梯度大小)

  • 回應特性prompt_length/meanprompt_length/maxprompt_length/min(輸入字符統計資料)response_length/mean、、response_length/maxresponse_length/min(輸出字符統計資料) 和 response/aborted_ratio(不完整的產生率;0 等於所有完成)

  • 效能perf/throughput(訓練輸送量)、 perf/time_per_step(每個訓練步驟的時間) 和 timing_per_token_ms/*(每個金鑰的處理時間)

  • 資源用量perf/max_memory_allocated_gbperf/max_memory_reserved_gb(GPU 記憶體) 和 perf/cpu_memory_used_gb(CPU 記憶體)

訓練進度視覺化

主控台會顯示互動式圖形,隨著 RFT 任務的進行而即時更新。這些視覺化效果可協助您:

  • 追蹤收斂以獲得最佳效能

  • 及早識別潛在的訓練問題

  • 確定最佳停止點

  • 比較不同 epoch 的效能

設定推論

任務完成後,部署 RFT 模型以進行隨需推論,或使用佈建輸送量以獲得一致的效能。如需設定推論,請參閱 為自訂模型設定推論

遊樂場中使用測試來評估和比較回應與基礎模型。如需評估您已完成的 RFT 模型,請參閱 評估您的 RFT 模型