View a markdown version of this page

使用 Amazon Nova 模型強化微調 (RFT) - Amazon Nova

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

使用 Amazon Nova 模型強化微調 (RFT)

概觀

什麼是 RFT?

強化微調 (RFT) 透過訓練意見回饋訊號來改善模型效能,這些訊號是可測量的分數或獎勵,指出模型的效能,而不是確切的正確答案。與從輸入輸出對中學習的監督式微調 (SFT) 不同,RFT 使用獎勵函數來評估模型回應,並反覆最佳化模型以最大化這些獎勵。此方法在定義確切的正確輸出具有挑戰性時表現卓越,但您可以可靠地測量回應品質。

何時使用 RFT

當您可以定義明確、可衡量的成功條件,但難以提供確切正確的訓練輸出時,請使用 RFT。RFT 非常適合:

  • 品質是主觀或多面向的任務 (創造性寫入、程式碼最佳化、複雜推理)

  • 具有多個有效解決方案的案例,其中有些解決方案明顯優於其他解決方案

  • 需要反覆改進、個人化或遵守複雜業務規則的應用程式

  • 收集高品質標籤範例昂貴或不切實際的案例

最佳使用案例

RFT 在可以客觀測量輸出品質,但難以預先定義最佳回應的網域中表現卓越:

  • 數學問題解決和程式碼產生

  • 科學推理和結構化資料分析

  • 需要step-by-step推理或多迴轉問題解決的任務

  • 應用程式平衡多個目標 (準確性、效率、風格)

  • 可透過執行結果或效能指標以程式設計方式驗證成功的案例

支援的模型

Nova Lite 2.0

資料格式概觀

RFT 訓練資料必須遵循 OpenAI 強化微調格式。每個訓練範例都是 JSON 物件,其中包含:

  • 使用 systemuser角色進行對話輪換的messages陣列

  • reference_answer 包含預期輸出或評估條件的欄位,以進行獎勵計算

目前的限制

  • 僅文字

資料格式範例

每個範例應該位於 JSONL 檔案的單一行上,每行一個 JSON 物件。

Chemistry problem
{ "id": "chem-01", "messages": [ { "role": "system", "content": "You are a helpful chemistry assistant" }, { "role": "user", "content": "Calculate the molecular weight of caffeine (C8H10N4O2)" } ], "reference_answer": { "molecular_weight": 194.19, "unit": "g/mol", "calculation": "8(12.01) + 10(1.008) + 4(14.01) + 2(16.00) = 194.19" } }
Math problem
{ "id": "sample-001", // Optional "messages": [ { "role": "system", "content": "You are a math tutor" }, { "role": "user", "content": "Solve: 2x + 5 = 13" } ], "reference_answer": { "solution": "x = 4", "steps": ["2x = 13 - 5", "2x = 8", "x = 4"] } }
Code problem
{ "id": "code-002", "messages": [ { "role": "system", "content": "You are a helpful programming assistant" }, { "role": "user", "content": "Write a Python function that reverses a string without using built-in reverse methods" } ], "reference_answer": { "code": "def reverse_string(s): \n result = '' \n for i in range(len(s) - 1, -1, -1): \n result += s[i] \n return result", "test_cases": [ { "input": "hello", "expected_output": "olleh" }, { "input": "", "expected_output": "" }, { "input": "a", "expected_output": "a" }, { "input": "Python123", "expected_output": "321nohtyP" } ], "all_tests_pass": true } }

reference_answer 欄位包含預期輸出或評估條件,您的獎勵函數會用來對模型的回應進行評分。不限於結構化輸出,它可以包含任何格式,協助您的獎勵函數評估品質。

資料集大小建議

起點

  • 最少 100 個訓練範例

  • 最少 100 個評估範例

評估優先方法

在投資大規模 RFT 訓練之前,請評估模型的基準效能:

  • 高效能 (>95% 獎勵) – RFT 可能不必要,您的模型已表現良好

  • 效能非常差 (0% 獎勵) – 首先切換到 SFT 以建立基本功能

  • 中等效能 – RFT 可能是適當的

從小型資料集開始,您可以:

  • 驗證您的獎勵函數沒有錯誤

  • 確認 RFT 是適合您使用案例的正確方法

  • 及早識別和修正問題

  • 在向上擴展之前測試工作流程

驗證後,您可以擴展到更大的資料集,以進一步改善效能。

有效訓練資料的特性

清晰度和一致性

良好的 RFT 範例需要清晰、不明確的輸入資料,以便在不同的模型輸出間進行準確的獎勵計算。避免資料中的雜訊,包括:

  • 不一致的格式

  • 矛盾的標籤或指示

  • 模棱兩可的提示

  • 衝突的參考答案

任何模棱兩可的情況都會誤導訓練程序,並導致模型學習意外的行為。

多樣性

您的資料集應擷取生產使用案例的完整多樣性,以確保強大的實際效能。包括:

  • 不同的輸入格式和邊緣案例

  • 從日誌和使用者分析映射實際的生產使用模式

  • 跨使用者類型、地理區域和季節性變化的範例

  • 包含從簡單到複雜問題的難度等級

獎勵函數考量事項

設計您的獎勵函數以進行高效訓練:

  • 在幾秒鐘內執行 (非分鐘)

  • 使用 Lambda 有效平行化

  • 傳回一致、可靠的分數

  • 正常處理不同類型的模型輸出

快速、可擴展的獎勵函數可實現快速反覆運算和經濟實惠的實驗。

其他屬性

RFT 資料格式支援核心結構描述需求之外的自訂欄位 (messagesreference_answer)。此彈性可讓您新增獎勵函數進行適當評估所需的任何其他資料。

注意

您不需要在配方中設定此 - 資料格式本質上支援其他欄位。只要將它們包含在訓練資料 JSON 中,它們就會在 metadata 欄位中傳遞給您的獎勵函數。

常見的其他屬性

中繼資料欄位範例:

  • task_id – 用於追蹤的唯一識別符

  • difficulty_level – 問題複雜性指標

  • domain – 主題區域或類別

  • expected_reasoning_steps – 解決方案中的步驟數量

具有其他屬性的範例

{ "messages": [ { "role": "system", "content": "You are a math tutor" }, { "role": "user", "content": "Solve: 2x + 5 = 13" } ], "reference_answer": { "solution": "x = 4", "steps": ["2x = 13 - 5", "2x = 8", "x = 4"] }, "task_id": "algebra_001", "difficulty_level": "easy", "domain": "algebra", "expected_reasoning_steps": 3 }

這些額外的欄位會在評估期間傳遞給您的獎勵函數,以根據您的特定使用案例量身打造複雜的評分邏輯。

訓練組態

範例配方

# Note: # This recipe can run on p5.48xlarge, p5e.48xlarge, and p5en.48xlarge instance types. run: name: "my-rft-run" # Unique run name (appears in logs and artifacts). model_type: amazon.nova-2-lite-v1:0:256k model_name_or_path: nova-lite-2/prod data_s3_path: s3://<bucket>/<data-file> # Training dataset in JSONL format. replicas: 4 # Number of total training instances. generation_replicas: 2 # Number of total instances dedicated to response generation. reward_lambda_arn: arn:aws:lambda:<region>:<account-id>:function:<function-name> ## MLFlow configs mlflow_tracking_uri: "" # Required for MLFlow mlflow_experiment_name: "my-rft-experiment" # Optional for MLFlow. Note: leave this field non-empty mlflow_run_name: "my-rft-run" # Optional for MLFlow. Note: leave this field non-empty ## SMTJ RFT training configs training_config: max_length: 8192 # Context window (tokens) for inputs and prompt. global_batch_size: 32 # Total samples per optimizer step across all replicas (16/32/64/128/256). reasoning_effort: high # Reasoning mode: high, low, or null for non-reasoning. data: shuffle: true # Shuffle training data each epoch. rollout: # Controls how responses are generated for advantage calculation. rollout_strategy: type: off_policy_async # Asynchronous rollout for higher throughput. age_tolerance: 2 # Maximum policy age before regeneration. advantage_strategy: number_generation: 4 # Samples per prompt to estimate advantages (higher = lower variance but higher cost). generator: max_new_tokens: 6000 # Cap on tokens generated per sample. set_random_seed: true # Seed generation for reproducibility across runs. temperature: 1 # Softmax temperature for sampling. rewards: preset_reward_function: null # Preset reward functions: exact_match or null for custom. api_endpoint: lambda_arn: arn:aws:lambda:<region>:<account-id>:function:<function-name> lambda_concurrency_limit: 12 # Max concurrent Lambda invocations (throughput vs. throttling). lambda_batch_size: 128 # Number of samples per Lambda invocation. trainer: max_steps: 2 # Steps to train for. One step = global_batch_size samples. save_steps: 5 # Save a checkpoint every N steps. test_steps: 1 # Run validation every N reference model updates. refit_freq: 4 # Frequency of reference model updates. clip_ratio_high: 0.2 # PPO clip ratio for policy updates. loss_scale: 1.0 # Scaling factor for the policy loss. # RL parameters ent_coeff: 0.0 # Entropy bonus added to the policy loss (higher = more exploration). kl_loss_coef: 0.0 # Weight on the KL penalty between the current and reference policy. optim_config: # Optimizer settings. lr: 1e-6 # Learning rate. weight_decay: 0.0 # L2 regularization strength (0.0 to 1.0). adam_beta1: 0.9 adam_beta2: 0.95 peft: # Parameter-efficient fine-tuning (LoRA). peft_scheme: "lora" # Enable LoRA for PEFT. lora_tuning: alpha: 64 # LoRA scaling factor. lora_plus_lr_ratio: 64.0 # LoRA+ learning rate scaling factor (0.0 to 100.0).

使用 LLM 做為判斷的 RFT 訓練

概觀

大型語言模型 LLMs) 在強化微調 (RFT) 工作流程中逐漸被用作判斷,提供引導模型最佳化的自動獎勵訊號。在此方法中,LLM 會根據指定的條件評估模型輸出,無論是評估正確性、品質、風格遵循或語意相等性,並指派推動強化學習程序的獎勵。

這對於傳統獎勵函數難以以程式設計方式定義的任務特別有用,例如判斷不同的表示法 (例如 "1/3"、"0.333" 和 "1/3") 是否在語義上相等,或評估一致性和相關性等細微品質。透過使用以 LLM 為基礎的判斷做為獎勵函數,您可以將 RFT 擴展至複雜的網域,而不需要大量的人工註釋,除了傳統對齊問題之外,也能快速迭代和持續改善跨各種使用案例的模型。

合理模式選擇

可用模式

  • none – 無推理 (省略 reasoning_effort 欄位)

  • 低 - 最低推理開銷

  • 高 – 最大推理功能 (指定 reasoning_effort 時預設為預設值)

注意

RFT 沒有媒體選項。如果組態中沒有 reasoning_effort 欄位,則會停用推理。啟用推理時,您應該將 max_new_tokens設定為 32768,以容納延伸推理輸出。

何時使用每個模式

使用高推理:

  • 複雜的分析任務

  • 數學問題解決

  • 多步驟邏輯扣除

  • step-by-step思考可增加價值的任務

不使用 (省略 reasoning_effort) 或低推理:

  • 簡單事實查詢

  • 直接分類

  • 速度和成本最佳化

  • 直接回答問題

成本和效能權衡

較高的推理模式會增加:

  • 訓練時間和成本

  • 推論延遲和成本

  • 複雜推理任務的模型功能

驗證您的 LLM 判斷

在生產環境中部署 LLM-as-a-judge 之前,請驗證判斷模型的評估是否符合人類判斷。這包括:

  • 針對您任務的代表性範例,測量 LLM 判斷者與人工評估者之間的協議率

  • 確保 LLM 與人類的協議符合或超過人類之間的協議費率

  • 識別判斷模型中的潛在偏差

  • 建立獎勵訊號引導模型朝預期方向的可信度

此驗證步驟有助於確保自動化評估程序會產生符合您生產品質標準的模型。

LLM 判斷的 Lambda 組態

使用 LLM 做為判斷,是使用 Lambda 函數進行強化學習與可驗證獎勵 (RLVR) 的延伸。在 Lambda 函數中,您可以呼叫 Amazon Bedrock 中託管的其中一個模型。

重要的組態需求:

Configuration 需求 詳細資訊
Amazon Bedrock 輸送量 足夠的配額 確保所使用的 Amazon Bedrock 模型的輸送量配額足以滿足您的訓練工作負載
Lambda 逾時 延長逾時 將 Lambda 函數逾時設定為最長 15 分鐘。預設設定為 3 秒,這不足以回應 Amazon Bedrock 模型
Lambda 並行 並行增加 Lambda 會在訓練期間平行叫用。增加並行以最大化可用輸送量
配方組態 比對 Lambda 設定 必須在配方中設定並行限制

建立和執行任務

啟動訓練任務

使用 SageMaker 訓練任務筆記本範本: https://docs.aws.amazon.com/sagemaker/latest/dg/nova-fine-tuning-training-job.html#nova-model-training-jobs-notebook

執行個體需求

容器同時支援 Full-Rank 和 LoRA 訓練:

  • LoRA 訓練 – 2/4/6/8 × p5.48xlarge 或 p5en.48xlarge 執行個體

  • 全執行訓練 – 2/4/6/8 × p5.48xlarge 執行個體 (必要)

監控訓練

訓練日誌包含每個步驟的全方位指標。金鑰指標類別:

獎勵指標

  • 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/meanresponse_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 記憶體

使用微調的模型

訓練完成後,最終模型檢查點會儲存到您指定的輸出位置。檢查點路徑可用於:

  • 訓練日誌

  • manifest.json 輸出 Amazon S3 位置中的 檔案 (由 在您的筆記本output_s3_uri中定義)

限制和最佳實務

限制

  • Lambda 逾時 – 獎勵函數必須在 15 分鐘內完成 (防止失控程序和管理成本)

  • 僅限單轉 – 不支援多轉對話

  • 資料需求 – 需要足夠的多樣性;難以獲得稀疏獎勵 (<5% 正面範例)

  • 運算成本 – 比監督式微調更昂貴

  • 無多模態資料 – 僅支援文字資料類型

最佳實務

從小開始

  • 從 100-200 個範例開始

  • 驗證獎勵函數正確性

  • 根據結果逐步擴展

訓練前評估

  • RFT 之前的測試基準模型效能

  • 如果獎勵持續為 0%,請先使用 SFT 建立基本功能

  • 如果獎勵 >95%,RFT 可能不必要

監控訓練

  • 追蹤平均獎勵分數和分佈

  • 注意過度擬合 (訓練獎勵增加,同時驗證獎勵減少)

  • 尋找相關的模式:

    • 獎勵穩定低於 0.15

    • 隨時間增加獎勵差異

    • 降低驗證效能

最佳化獎勵函數

  • 在幾秒鐘內執行 (非分鐘)

  • 將外部 API 呼叫降至最低

  • 使用高效演算法

  • 實作適當的錯誤處理

  • 利用 Lambda 的平行擴展

反覆運算策略

如果獎勵未改善:

  • 調整獎勵函數設計

  • 增加資料集多樣性

  • 新增更多代表性範例

  • 驗證獎勵訊號是否清晰一致

自適應課程學習

自適應課程學習是一項選用功能,可動態選取要在 RFT 期間向模型呈現的訓練提示。訓練人員使用模型本身來預測提示困難,並在生產困難範圍內選取提示,而不是對所有提示進行統一的訓練,其中模型有時成功,有時失敗。這可最大限度地提高每個 GRPO 推展群組中結果的差異,透過減少來自過簡單或過硬提示的雜訊梯度更新,產生更高的優勢訊號、更快收斂並改善 RL 訓練穩定性。

自適應課程的運作方式

啟用自適應課程時,訓練迴圈會在每個推展步驟之前新增預測和選擇階段:

  1. 預測 — 模型會使用少量的預測格式,預測每個候選提示的通過率 (或獎勵分散)。上一個訓練步驟的三個範例 (一個簡單、一個中、一個硬式) 提供校正內容。

  2. 選擇 — 依提示的預測難度與選擇目標的接近程度來排名 (預設值:50% 通過率)。最佳提示已核准推展;其餘提示會捨棄,而不會耗用推展運算。

  3. 訓練 — 標準 GRPO 訓練會繼續執行選取的提示。

  4. 意見回饋 - 推展的實際傳遞率會與預測進行比較。選擇目標會自動校正,以修正系統性預測偏差。REINFORCE 梯度會訓練預測器,以改善未來的預測。

何時使用自適應課程

在下列案例中,適應性課程最有效:

  • 您想要透過確保每個訓練批次包含具有有意義的獎勵差異的提示來改善 RL 訓練穩定性,以減少可取消穩定學習的雜訊梯度更新。

  • 您已確認基本 RFT 可改善您的目標指標。

  • 您想要將訓練運算專注於最具生產力的提示,以加速收斂。

  • 您的資料集很大 (5,000+ 個提示),其中包含生產力困難範圍之外的許多提示,否則會浪費運算。

設定自適應課程

在配方trainer中新增 下的 adaptive_curriculum 區塊,以啟用自適應課程學習:

training_config: trainer: adaptive_curriculum: enable: true # Enable adaptive curriculum prompt selection. selection_pool_multiplier: 8 # Score 8 x global_batch_size candidates, keep best global_batch_size. prediction_mode: pass_rate # "pass_rate" for discrete rewards; "spread" for continuous rewards. exemplar_history_steps: 1 # Previous training steps kept in the rolling exemplar history buffer. reinforce_coef: 0.01 # Scale factor for the REINFORCE loss that trains the predictor (0 disables). predictor_prompt_column: predictor_prompt # Dataset field with clean problem text used by the predictor. selection_lookahead_steps: 4 # Future training batches pre-approved per curriculum screening pass.

下表說明每個自適應課程參數:

參數 Type 預設 Description
enable Boolean false 是否啟用自適應課程提示選取。
selection_pool_multiplier 整數 (1–32) 8 控制相對於訓練批次大小的候選提示分數。值為 8 表示會評分 8 個global_batch_size提示,並global_batch_size選取最佳。較高的值可提供更好的選擇品質,但推論運算的成本更高。
prediction_mode String pass_rate 用於提示難度估算的預測模式。pass_rate 用於離散獎勵任務 (例如正確性檢查),其中預測器估計正確回答的機率。spread 用於持續獎勵任務,其中預測器預估跨推展分佈的最大/最小獎勵。
exemplar_history_steps 整數 ( ≥1) 1 用於範例選取之滾動歷史記錄緩衝區中要保留的先前訓練步驟數目。預測器會使用此歷史記錄中的範例來校正其少量的預測。
reinforce_coef 數字 (≥0) 0.01 訓練傳遞速率預測器之 REINFORCE 遺失的縮放係數。這可讓封閉式學習,其中預測器會在訓練過程中改善其準確性。設為 0 可停用預測器訓練。
predictor_prompt_column String predictor_prompt 資料集中的欄位名稱,其中包含用作預測器提示的乾淨問題文字。這應該是問題的簡潔版本,無需系統提示或格式化,因此預測器可以快速評估難度。
selection_lookahead_steps 整數 (1–16) 4 每個步驟在單一課程篩選通過中預先核准的未來訓練批次數量。每個傳遞都會為每個步驟計算selection_pool_multiplier × global_batch_size候選項目分數;較高的selection_lookahead_steps重複值會傳遞多次,以建立已核准提示的佇列,從而減少短提示資料集上的每個步驟預測器額外負荷。對於預測器本身昂貴的長內容資料集 (請參閱建議區段),請將此設定為 1,讓預測器每個步驟只會執行一次。

長內容資料集的建議

自適應課程的運作方式是在候選提示集區上執行輕量傳遞速率預測器,並選取要推展的最有生產力批次。當 max_prompt_length 很短 (數千個權杖或更少) 時,預測器會在每次篩選通過幾秒鐘內執行,而且課程額外負荷可忽略。當提示長度增加時,預測器推論時間大約會四分之一 (注意序列長度為 O(n2)),因此篩選可以在提示超過大約 8,000 個字符的資料集上主導步進時間。

注意

max_prompt_length 最多支援 32,768 個字符 (32K) 的自適應課程。不支援在超過此長度的資料集上啟用它;在訓練之前停用適應性課程或縮短提示。

以下設定在長內容資料集上保持適應性課程的可用性和成本效益。將它們一起套用;它們解決了篩選成本的不同元件。

典型 max_prompt_length 建議的自適應課程設定
高達 8K 權杖 使用預設值:selection_pool_multiplier: 8selection_lookahead_steps: 4。篩選開銷很小,不需要調校。
超過 8K 和高達 16K 權杖 設定 selection_lookahead_steps: 2。這將每個步驟通過的預測器數量減半,同時在佇列中保留足夠的預先核准提示,以避免推展匱乏。
超過 16K 和高達 24K 權杖 保持 selection_lookahead_steps: 2降低selection_pool_multiplier4。較小的集區會以一定成本將預測器批次大小減半,以選擇品質;這些集區會保留每個步驟的篩選時間限制。
超過 24K 和高達 32K 權杖 搭配 selection_lookahead_steps: 1 使用 selection_pool_multiplier: 4。預測器在每個訓練步驟的最小大小集區上執行一次。這是最積極支援的設定;不支援超過 32K。

針對長內容資料集調校的範例組態 (大約 24K–32K 字符提示):

training_config: max_length: 32768 global_batch_size: 32 trainer: adaptive_curriculum: enable: true selection_pool_multiplier: 4 # Smaller pool keeps predictor prefill bounded. selection_lookahead_steps: 1 # Predictor runs once per training step. prediction_mode: pass_rate exemplar_history_steps: 1 reinforce_coef: 0.01 predictor_prompt_column: predictor_prompt

適應性課程的資料準備

使用自適應課程時,您的訓練資料應包含predictor_prompt一個欄位 (或 中指定的欄位名稱predictor_prompt_column),其中包含簡明版本的問題文字。通過率預測器使用此欄位來快速評估提示難度,而無需處理完整的對話內容。

具有預測器提示的範例 JSONL 項目:

{ "messages": [ { "role": "system", "content": "You are a math tutor. Show your work step by step." }, { "role": "user", "content": "A train travels 120 miles in 2 hours. If it then increases speed by 50%, how far will it travel in the next 3 hours?" } ], "reference_answer": "270 miles", "predictor_prompt": "A train travels 120 miles in 2 hours. Speed increases 50%. Distance in next 3 hours?" }

如果 predictor_prompt 欄位不存在,系統會使用 messages 欄位的完整提示回到 。

具有自適應課程的完整配方範例

下列範例顯示啟用自適應課程的完整 LoRA RFT 配方:

run: name: "my-rft-adaptive-curriculum" model_type: amazon.nova-2-lite-v1:0:256k model_name_or_path: nova-lite-2/prod data_s3_path: s3://<bucket>/<data-file> replicas: 4 generation_replicas: 2 reward_lambda_arn: arn:aws:lambda:<region>:<account-id>:function:<function-name> training_config: max_length: 8192 global_batch_size: 32 reasoning_effort: null # Non-reasoning mode. data: shuffle: true rollout: rollout_strategy: type: off_policy_async age_tolerance: 2 advantage_strategy: number_generation: 16 # Higher n for better advantage estimates. generator: max_new_tokens: 6000 temperature: 1.0 rewards: preset_reward_function: exact_match # Or null for custom Lambda reward. api_endpoint: lambda_arn: ${oc.select:run.reward_lambda_arn} # Reuse the top-level run.reward_lambda_arn so the two stay in sync. lambda_concurrency_limit: 12 lambda_batch_size: 128 trainer: max_steps: 500 save_steps: 50 test_steps: 25 refit_freq: 4 clip_ratio_high: 0.2 ent_coeff: 0.0 kl_loss_coef: 0.0 optim_config: lr: 1e-6 weight_decay: 0.0 peft: peft_scheme: "lora" lora_tuning: alpha: 64 lora_plus_lr_ratio: 64.0 adaptive_curriculum: enable: true selection_pool_multiplier: 8 prediction_mode: pass_rate exemplar_history_steps: 1 reinforce_coef: 0.01 predictor_prompt_column: predictor_prompt

監控自適應課程

啟用自適應課程時,每個訓練步驟都會記錄其他指標:

  • 預測與實際通過率 — 與推展後觀察到的實際通過率相比,所選提示的平均預測通過率。較大的間隙表示預測器需要更多校正時間。

  • 選擇目標 — 目前的自動校正選擇目標。這會從 0.5 開始,並根據預測準確性進行調整。

  • 主要篩選條件計數 — 因為模型一直掌握提示而排除的提示數目。

注意

前 1-2 個訓練步驟在沒有自適應選擇的情況下執行 (預測器需要至少一個歷史步驟才能建置範例)。完全自適應選擇從步驟 3 開始。

進階功能:Nova Forge

對於需要超出標準 RFT 限制之進階功能的使用者,Nova Forge 可作為付費訂閱服務方案使用:

  • 多迴轉對話支援

  • 以 >15 分鐘的執行時間獎勵函數

  • 其他演算法和調校選項

  • 自訂訓練配方修改

  • State-of-the-art技術

Nova Forge 在 SageMaker HyperPod 上執行,旨在支援企業客戶建置自己的前沿模型。

有用的命令和秘訣

提供可觀測性指令碼的集合,以協助監控訓練任務的狀態和進度。

可用的指令碼包括:

  • 啟用電子郵件通知以進行訓練任務狀態更新

  • 根據任務組態取得訓練時間預估

  • 針對進行中的任務,取得預期需要多久的訓練近似值

安裝

注意

在使用下列任何指令碼之前,請務必重新整理您的 AWS 登入資料。

pip install boto3 git clone https://github.com/aws-samples/amazon-nova-samples.git cd amazon-nova-samples/customization/SageMakerUilts/SageMakerJobsMonitoring/

基本用量

# Enabling email notifications for training job status updates python enable_sagemaker_job_notifs.py --email test@amazon.com test2@gmail.com --region us-east-1 --platform SMTJ Creating resources........ Please check your email for a subscription confirmation email, and click 'Confirm subscription' to start receiving job status email notifications! You'll receive the confirmation email within a few minutes.
# Obtaining training time estimates based on job configurations python get_training_time_estimate.py
# Obtaining approximations for how long training is expected to take for in-progress jobs python get-training-job-progress.py --region us-east-1 --job-name my-training-job --num-dataset-samples 1000

如需其他詳細資訊和範例,請參閱此處