Nova 2.0 での RFT - Amazon SageMaker AI

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

Nova 2.0 での RFT

RFT トレーニングデータは OpenAI 会話形式に従います。各トレーニング例は、メッセージ、リファレンス回答、オプションのツール定義を含む JSON オブジェクトです。このセクションでは、Nova 2.0 での RFT の効果的なトレーニングデータを準備するためのガイダンスを提供します。

データ形式と構造

各トレーニング例は、以下を含む JSON オブジェクトです。

  • メッセージ: システム、ユーザー、オプションでアシスタントロールを使用した会話ターンの配列

  • reference_answer: 報酬計算に期待される出力または評価基準

  • ツール (オプション): モデルで使用できる関数定義の配列

  • id (オプション): 追跡と重複排除のための一意の識別子

各例は、JSONL ファイルの 1 行上にあり、行ごとに 1 つの JSON オブジェクトが必要です。

次の例は、グラウンドトゥルース値を含む参照回答の化学問題を示しています。

{ "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 には、ドメイン固有のルールを使用して計算されたグラウンドトゥルース値が含まれています。報酬関数は、モデルの予測値をこれらの参照値と比較して、報酬スコアを計算します。

次の例は、ソリューションステップの数学的な問題を示しています。

{ "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" } }

フィールドの説明

フィールド

説明

追加のメモ

必須

id

この RFT 例の一意の識別子

文字列 (「sample-001」など)。追跡と重複排除に役立ちます。

いいえ

メッセージ

プロンプトとコンテキストを定義するチャットメッセージの順序付きリスト

オブジェクトの配列。モデルはそれらを順番に表示します。通常、 はシステムメッセージ、次に user で始まります。

はい

messages[].role

メッセージで話しているユーザー

一般的な値:「system」、「user」 (他のコンテキストでは「assistant」になることもあります)

いいえ

messages[].content

メッセージのテキストコンテンツ

プレーン文字列。システムの場合は手順、ユーザーの場合はタスクまたは入力です。

いいえ

tools

この例でモデルで使用できるツール仕様

配列。各項目はツールのインターフェイスとメタデータを定義します。タイプには、「関数」または「内部」を含めることができます。

はい

reference_answer

この例で予想されるモデル出力

タスクに応じて文字列またはオブジェクト。評価またはトレーニングのターゲットとして使用されます。

いいえ

注記

追加のカスタムフィールド (Task_id、 difficulty_level、context_data など) は検証されず、メタデータとして報酬関数に渡されます。

その他のプロパティ

additionalProperties」: true 設定では、コアスキーマの要件を超えるカスタムフィールドを含めることができ、報酬関数が適切な評価に必要なデータを柔軟に追加できます。

一般的な追加フィールド

次のタイプの追加フィールドを含めることができます。

メタデータ:

  • task_id: 追跡用の一意の識別子

  • difficulty_level: 問題の複雑さインジケータ

  • ドメイン: サブジェクトエリアまたはカテゴリ

  • expected_reasoning_steps: ソリューションのステップ数

評価基準:

  • evaluation_criteria: 特定のグレーディングrubrics

  • 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 と効果的に並列化する

  • 一貫性のある信頼できるスコアを返す

  • さまざまなタイプのモデル出力を適切に処理する

高速でスケーラブルな報酬関数により、大規模な迅速な反復と費用対効果の高い実験が可能になります。