趋近智
为了更好地使用前面讨论的基于偏好的方法来训练奖励模型,我们需要一种统一的方式来组织人类反馈数据。目标是表示成对比较的结果,说明对于给定的输入提示,哪个回复是更受偏好的。
奖励模型数据的基本单位通常包含一个三元组:输入提示 (x),被认为更好或“选择的”回复 (yw),以及被认为更差或“拒绝的”回复 (yl)。这种结构直接用于基于Bradley-Terry模型或类似比较框架的损失函数。
成对比较元组: 这是最普遍的格式。每个数据点都明确表示一个单独的比较判断。
(提示, 被选回复, 被拒回复)("解释RLHF。", "RLHF使用人类反馈来训练奖励模型...", "RLHF是关于强化学习的。")提示的情况下,会学习给被选回复分配比被拒回复更高的分数。排序列表(可转换为成对): 有时,标注者可能会对为同一提示生成的多个回复进行排序(例如,最佳 > 良好 > 一般 > 差)。
(提示, [排序回复1, 排序回复2, ..., 排序回复n]),其中顺序表示偏好(1是最佳)。[A, B, C](其中A是最佳)意味着成对的 (A, B)、(A, C) 和 (B, C)。分组偏好: 数据集可能会将与单个提示相关的所有比较进行分组。
提示,值是(被选回复, 被拒回复)对的列表。Anthropic的“有用且无害的人类反馈强化学习”(HH-RLHF)是一个被广泛提及的数据集。它主要采用成对比较格式。每个条目包含:
提示(通常是对话的开头)。被选完成(人类标注者偏好的回复)。被拒完成(未被偏好的回复)。这种清晰的结构使得应用标准奖励模型损失函数变得直接。
这里是一个简化图,说明成对偏好记录中的核心关系:
单个偏好数据点将一个提示与两个回复关联起来,明确指出偏好(
被选)和非偏好(被拒)的选项。
为了处理,这些偏好常被组织成表格或结构化文件(如JSON Lines或CSV)。
| 提示 | 被选回复 | 被拒回复 |
|---|---|---|
| "总结光合作用的过程。" | "植物利用阳光、水和二氧化碳来制造..." | "光合作用是植物制造食物的方式。" |
| "写一首关于猫的短诗。" | "轻柔的爪子轻踏,\n胡须轻颤..." | "猫咪毛茸茸,\n它们很喜欢睡觉。" |
| "解释KL散度的原理。" | "KL散度衡量的是...之间的差异" | "它是用于分布的数学内容。" |
除了核心三元组,实际数据集常包含元数据:
训练奖励模型时,提示和每个回复(被选和被拒)通常会被连接并分词。例如,用于给被选回复打分的奖励模型输入可能看起来像 [tokenizer.bos_token] + tokenize(prompt) + tokenize(chosen_response) + [tokenizer.eos_token]。模型经过训练,为这种组合序列输出一个标量分数。(提示,被选回复)对与(提示,被拒回复)对的分数差异接着用于损失计算,如本章引言中的公式所示:
损失=−log(σ(RM(x,yw)−RM(x,yl)))
了解这些数据格式对于正确准备偏好数据集并实现RLHF流程中的奖励模型阶段非常重要。格式的选择会影响数据收集界面、存储以及在数据输入奖励模型训练循环之前的预处理步骤。
这部分内容有帮助吗?
© 2026 ApX Machine Learning用心打造