View a markdown version of this page

Nova 2.0 上的 RFT - Amazon Nova

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

Nova 2.0 上的 RFT

RFT 訓練資料遵循 OpenAI 對話格式。每個訓練範例都是 JSON 物件,其中包含訊息、參考答案和選用的工具定義。本節提供在 Nova 2.0 上準備 RFT 有效訓練資料的指引。

資料格式和結構

每個訓練範例都是包含下列項目的 JSON 物件:

  • 訊息:一系列使用系統、使用者和選擇性助理角色的對話式轉場

  • reference_answer:獎勵計算的預期輸出或評估條件

  • 工具 (選用):模型可用的函數定義陣列

  • id (選用):追蹤和刪除重複資料的唯一識別符

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

下列範例顯示包含 Ground Truth 值的參考答案的化學問題:

{ "id": "chem-001", "messages": [ { "role": "system", "content": "You are a helpful chemistry assistant" }, { "role": "user", "content": "Predict hydrogen bond donors and acceptors for this SMILES: CCN(CC)CCC(=O)c1sc(N)nc1C" } ], "reference_answer": { "donor_bond_counts": 2, "acceptor_bond_counts": 4, "explanation": "Calculated using Lipinski's rule of five: N-H groups (2 donors), N and O atoms with lone pairs (4 acceptors)" } }
注意

reference_answer 包含使用網域特定規則計算的 Ground Truth 值。您的獎勵函數會將模型的預測值與這些參考值進行比較,以計算獎勵分數。

下列範例顯示解決方案步驟的數學問題:

{ "id": "math-001", "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"] } }

下列範例顯示具有預期行為的工具用量:

{ "id": "tool-001", "messages": [ { "role": "system", "content": "You are a helpful game master assistant" }, { "role": "user", "content": "Generate a strength stat for a warrior character. Apply a +2 racial bonus modifier." } ], "tools": [ { "type": "function", "function": { "name": "StatRollAPI", "description": "Generates character stats by rolling 4d6, dropping the lowest die result, and applying a modifier.", "parameters": { "type": "object", "properties": { "modifier": { "description": "An integer representing the modifier to apply to the total of the stat roll.", "type": "integer" } }, "required": ["modifier"] } } } ], "reference_answer": { "tool_called": "StatRollAPI", "tool_parameters": { "modifier": 2 }, "expected_behavior": "Call StatRollAPI with modifier=2 and return the calculated stat value" } }

欄位描述

欄位

Description

其他備註

必要

id

此 RFT 範例的唯一識別符

字串 (例如 "sample-001")。適用於追蹤和重複資料刪除。

messages

定義提示和內容的聊天訊息排序清單

物件的陣列。模型會依序查看它們。通常以系統訊息開頭,然後是使用者。

messages【】.role

誰在訊息中說話

常見值:"system"、"user" (有時在其他內容中為 "assistant")

messages【】.content

訊息的文字內容

純字串。對於系統,它是指示,對於使用者,它是任務或輸入。

工具

在此範例中,模型可用的工具規格

陣列。每個項目都會定義工具的界面和中繼資料。類型可能包括「函數」或「內部」。

reference_answer

此範例的預期模型輸出

字串或物件,視任務而定。用作評估或訓練的目標。

注意

任何其他自訂欄位 (例如 task_id、Cucky_level、 context_data) 都不會經過驗證,並將做為中繼資料傳遞給您的獎勵函數。

超參數指引

根據您的訓練方法,使用以下建議的超參數:

一般:

  • Epochs:1

  • 學習率 (lr):1e-7

  • 世代數:8

  • 最大新權杖數:8192

  • 批次大小:256

LoRA (低排名調整):

  • LoRA 排名:32

注意

根據您的資料集大小和驗證效能調整這些值。監控訓練指標以防止過度擬合。

其他屬性

「additionalProperties」: true 設定可讓您包含核心結構描述需求以外的自訂欄位,讓您靈活地新增獎勵函數進行適當評估所需的任何資料。

常見的其他欄位

您可以包含下列類型的其他欄位:

中繼資料:

  • task_id:追蹤的唯一識別符

  • difficulty_level:問題複雜性指標

  • 網域:主旨區域或類別

  • expected_reasoning_steps:解決方案中的步驟數

評估條件:

  • evaluation_criteria:特定分級盧布

  • custom_scoring_weights:不同層面的相對重要性

  • context_data:問題的背景資訊

  • external_references:相關文件或資源的連結

具有其他屬性的範例

下列範例包含自訂中繼資料欄位:

{ "id": "algebra_001", "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 }

資料集大小建議

起點

從下列最低資料集大小開始:

  • 最少 100 個訓練範例

  • 最少 100 個評估範例

優先考慮高品質的輸入資料和可靠的獎勵函數,該函數會在模型回應時一致地執行。

評估優先方法

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

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

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

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

此評估優先方法可確保獎勵函數沒有錯誤,並判斷 RFT 是否適合您的使用案例。從小型開始,您可以熟悉 RFT 工作流程、及早識別和修正問題、在擴展之前驗證您的方法,以及測試獎勵函數可靠性。驗證後,您可以擴展到更大的資料集,以進一步改善效能。

有效訓練資料的特性

清晰度和一致性

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

  • 不一致的格式

  • 矛盾的標籤或指示

  • 模棱兩可的提示

  • 衝突的參考答案

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

多樣性

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

  • 各種問題類型和困難程度

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

  • 來自所有預期案例的代表性範例

這種多樣性有助於防止過度擬合,並確保模型正常處理不熟悉的輸入。

獎勵函數考量事項

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

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

  • 使用 Lambda 有效平行化

  • 傳回一致、可靠的分數

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

快速、可擴展的獎勵函數可大規模進行快速迭代和經濟實惠的實驗。