Nova 2.0 上的 RFT - 亚马逊 SageMaker AI
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

Nova 2.0 上的 RFT

RFT 训练数据遵循 OpenAI 对话格式。每个训练示例都是一个 JSON 对象,其中包含消息、参考答案和可选工具定义。本节提供有关在 Nova 2.0 上为 RFT 准备有效训练数据的指导。

数据格式和结构

每个训练示例都是一个 JSON 对象,其中包含以下内容:

  • 消息:使用系统、用户和可选的助手角色进行一系列对话回合

  • reference_ans wer:奖励计算的预期产出或评估标准

  • t@@ ools(可选):模型可用的函数定义数组

  • id(可选):用于跟踪和重复数据删除的唯一标识符

每个示例都应在 JSONL 文件中的一行上,每行一个 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”)。对于跟踪和重复数据删除很有用。

消息

定义提示和上下文的聊天消息的有序列表

对象数组。模特按顺序看见它们。通常以系统消息开头,然后是用户。

消息 [] .role

谁在留言中说话

常用值:“系统”、“用户”(有时在其他上下文中为 “助手”)

消息 [] .content

消息的文字内容

纯字符串。对于系统来说,这是指令,对于用户来说,这是任务或输入。

工具

在本示例中,模型可用的刀具规格

阵列。每个项目都定义了工具的界面和元数据。类型可能包括 “函数” 或 “内部”。

参考答案

本示例的预期模型输出

字符串或对象,具体取决于任务。用作评估或培训的目标。

注意

任何其他自定义字段(例如 task_id、难度等级、context_data)均未经过验证,将作为元数据传递给您的奖励函数。

其它属性

“additionalProperties”:true 设置允许您包含超出核心架构要求的自定义字段,从而可以灵活地添加奖励函数进行适当评估所需的任何数据。

常见的附加字段

您可以包括以下类型的附加字段:

元数据:

  • task_id:用于跟踪的唯一标识符

  • 难度等级:问题复杂度指标

  • 域:主题领域或类别

  • expected_reasoning_steps:解决方案中的步骤数

评估标准:

  • 评估标准:具体的评分标准

  • 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示例需要清晰、明确的输入数据,以便能够对不同的模型输出进行准确的奖励计算。避免数据中的噪音,包括:

  • 格式不一致

  • 相互矛盾的标签或说明

  • 提示含糊不清

  • 相互矛盾的参考答案

任何歧义都会误导训练过程并导致模型学习意外行为。

多元化

您的数据集应捕获各种各样的生产用例,以确保强大的现实世界性能。Include:

  • 各种问题类型和难度级别

  • 不同的输入格式和边缘情况

  • 所有预期场景的代表性样本

这种多样性有助于防止过度拟合,并确保模型优雅地处理不熟悉的输入。

奖励功能注意事项

设计奖励功能以实现高效训练:

  • 在几秒钟内执行(不是几分钟)

  • 使用 Lambda 进行有效的并行化

  • 返回一致、可靠的分数

  • 优雅地处理不同类型的模型输出

快速、可扩展的奖励功能可实现快速迭代和具有成本效益的大规模实验。