趋近智
监督微调 (fine-tuning) (SFT) 是一个初始阶段,在此阶段语言模型学习遵循指令或特定格式。然而,仅仅SFT往往无法完全体现人类偏好在有用性、诚实性和无害性方面的细节。仅仅模仿演示数据,并不能保证与这些复杂且常带有主观色彩的价值观保持一致。为弥补这一不足,人类反馈强化学习 (reinforcement learning) (RLHF) 引入了一种将人类判断直接纳入模型优化过程的机制。RLHF 根本在于高质量人类偏好数据的收集,这些数据作为后续奖励模型 (RM) 的训练信号。获取这种重要偏好数据的过程有详细说明。
主要设想并非要求人类写出“好”的回复(这更接近SFT数据生成方式),也不是给出绝对分数(这可能在不同标注员和提示之间存在不一致)。而是采用收集成对比较的标准方法。对于一个特定的输入提示,模型会生成两个或多个候选回复。然后,人类标注员被要求根据预设标准(例如,有用性、连贯性、安全性)选择他们更喜欢的回复。这种相对判断比绝对评分更可靠,也更容易让人类持续保持一致性。
这一过程始于一组多样化的提示。这些提示应尽可能地与最终对齐 (alignment)模型需要处理的输入类型相似。提示的来源可以包括:
需要确保提示在长度、主题、复杂性和交互方式上的多样性(例如,问答、摘要、创意写作、对话轮次)。
选定提示后,SFT 模型(即上一个微调 (fine-tuning)阶段的模型)被用来为该提示生成多个候选回复。通常,对于给定的提示 ,会生成至少两个回复 ()。改变解码温度或使用 top-k/top-p 采样等技术可以增加生成回复之间的差异性。
生成单个偏好数据点的主要流程。
人类标注员会看到提示 以及两个生成的回复 和 。界面应清晰地并排显示提示和两个回复。为减少呈现偏见,每次比较任务中回复的顺序(左侧对比右侧,上方对比下方)都应随机化。
标注员会获得具体的指令和选择标准。这些标准通常围绕以下几点:
标注员根据这些标准选择他们认为更优的回复 ()。另一个回复则成为被拒绝的回复 ()。界面也可能允许标注员表明两个回复是否同样好或坏,或者两者都不可接受。一些设置可能还会要求对偏好提供自由文本解释,这对于质量控制和理解失败情况很有帮助,尽管这会增加标注成本。
这一过程的成果是一个偏好元组数据集。每个元组通常包含提示、偏好的(选定的)回复和不偏好的(被拒绝的)回复。这种结构直接用于训练奖励模型。
以下是一个单数据点在 Python 中如何表示的简化示例:
preference_data_point = {
"prompt": "用简单的话语解释梯度下降。",
"chosen_response": (
"想象你蒙着眼睛站在一座山上,想走到山底。 "
"梯度下降就像是你凭脚感,朝着最陡峭的下坡方向迈小步。 "
"你会一直走,直到无法再往下。"
),
"rejected_response": (
"梯度下降利用导数寻找函数的最小值。 "
"它计算梯度并更新参数。"
),
"labeler_id": "annotator_123",
"timestamp": "2023-10-27T10:30:00Z",
# 可选字段
"reasoning": (
"选定回复使用了有帮助的类比,使其更易懂。"
),
"model_version": "sft_model_v1.2"
}
# 通常以 JSON Lines 等格式存储或加载到库中
# 例如 Hugging Face Datasets
# 使用 Hugging Face 数据集结构的示例
# dataset = Dataset.from_dict({
# "prompt": ["prompt1", "prompt2", ...],
# "chosen": ["chosen1", "chosen2", ...],
# "rejected": ["rejected1", "rejected2", ...]
# })
RLHF 流程的运行效果很大程度上依赖于偏好数据的质量和数量。
收集偏好数据时使用的提示来源示例分布。
收集人类偏好数据是一项重要工作,包含多项固有挑战:
尽管存在这些挑战,收集高质量的偏好数据仍然是RLHF流程的重要支撑。该数据集直接决定了用于引导语言模型行为符合人类价值观的奖励信号。下一步则是利用这些收集到的数据来训练奖励模型本身。
这部分内容有帮助吗?
© 2026 ApX Machine LearningAI伦理与透明度•