偏好数据 — 引擎、界面与生意
这一章讲三件事: 一条偏好数据从哪来(谁在什么界面上点出来的)、 长什么样(打分还是排序,最后变成什么)、多少钱(外包采购的真实流程)。 这是全书最「产业实地」的一章——也是公开知识最少的一环,书里明说: 这是「公开知识里最不透明的部分」1。
1. 这一章讲什么
第 04 章讲了奖励模型怎么吃偏好数据,这一章讲偏好数据怎么来。核心张力 一句话:我们无法把人类价值写成损失函数,所以拿偏好数据当代理信号——而代理 信号的收集本身,是重资本、重组织、重细节的活,两个硬约束挂在头上:收集的操作 复杂度与成本;数据必须来自被训模型自己的生成(on-policy)1。
2. 顶层全景与主走查
主走查:跟着一条真实形状的偏好数据走完一生。
第 1 步 出题:标注员写一个 prompt(或从题库取)
「帮帮我,明天要演讲,我现在很慌。」
第 2 步 生成:被训模型的当前 checkpoint 生成两条回答 A、B
(on-policy —— 必须是「这一代模型」的话,不是网 上捡的)
第 3 步 标注:界面上并排显示 A、B,标注员选择
「A 远好 / A 略好 / 相当 / B 略好 / B 远好」(5 点 Likert)
并可附备注与总体评分
第 4 步 坍缩:训练时「A 略好」被折成「chosen=A, rejected=B」
—— 强度信息丢掉,只剩二值
第 5 步 入库:进入第 04 章的损失函数
图说:第 3 步的界面形状、第 4 步的坍缩,是这条数据一生中
信息损失最大的两处。(prompt 与回答为演示编的,界面选项是书里的真实刻度。)
3. 核心原理
3.1 为什么非得 on-policy
on-policy 在 RL 语境里是严格术语(数据由当前策略产生),在偏好数据语境里被 放宽成「当前模型家族的生成」——比如上一个训练阶段 checkpoint 的输出2。 为什么重要:不同模型的生成有不同的毛病分布,偏好信号只有打在你模型自己会犯 的错上才有的放矢;用一池子网上捡来的各家模型输出,信号落不到你要修的地方。 书里引的实证:on-policy 数据显著优于流行数据集那种「热门模型输出大杂烩」3。
一个容易忽略的细节:chosen 不等于正确答案。偏好数据里被选中的那条,只是 「比对手好」——可能两条都不合格。书里特意点破这一点,免得读者把 chosen 当成 标准答案4。
3.2 界面:一门没人好好研究的学问
数据是在界面上点出来的,而界面不是中立的量杯(第 09 章的伏笔在此兑现)。书里 给了一排真实界面5:
| 界面 | 形状 | 用在哪 |
|---|---|---|
| Anthropic 早期 | 双答案并排选偏好 + 备注 + 总体评分 | 专职训练数据收集 |
| ChatGPT beta(作者本人被 A/B 过) | 双答案选优 | 线上收集 |
| ChatBotArena / LMArena | 双模型对战,可投平局 | 公开评测 |
| Ai2 playground | 单条点赞/点踩 | 线上隐式信号 |
| Midjourney | 一次出四张选一张 | 图像生成的偏好来源 |
书里给的反直觉例子:回答太快会让用户觉得模型笨——哪怕人人都想要快。 界面速度都能改变「偏好」,其他界面因素同理6。
3.3 打分还是排序:一场数据形状的取舍
ratings(给每条打绝对分)与 rankings(给一组排相对序)是最大的分岔7:
- 打分简单,但「4 分」在不同标注员手里含义不同;UltraFeedback 的用法:多次 打分后,最高分与随机一条低分组成偏好对;
- 排序(Likert 刻度)是主流:5 点制(远好/略好/相当/略差/远差)或 Anthropic 早期的 8 点制——偶数刻度干脆取消「相当」,逼标注员表态8;
- 讽刺的终点:这些精细刻度最终全部坍缩成二值喂给 Bradley-Terry 损失 (第 04 章)——8 点制的信息在训练接口处只剩「谁赢」。书里把这归为「怎么用 更丰富的信号」那个反复出现又反复无解的老问题。
多轮对话另有一层:实践中通常只对「最后一轮」收偏好;训练时把对话按轮展开成 多条样本;还有个没解决的组织问题——出题的人和标注的人要不要同一个(不同人 出题能防「出题人讨好自己」的谄媚,但多轮对话又要求实时接龙,很难拆开)9。
结构化偏好是自动化的例外:数学题对/错、精确指令遵循(「每句以 g 开头的 金鱼诗」——带约束的输出当 chosen、不带约束的当 rejected,一秒造出一对)。 这类「靠题目固有结构自动造出」的偏好已被证明能把指令遵循、数学等评测实打实推上去10。 信号类型还可以更瘦:KTO 算法连成对都不要,单条「好/坏」标签就能训11。
3.4 生意:一份数据合同的解剖
这节是全书独家 性最强的部分——作者在 HuggingFace 亲自买过数据。要点12:
- 供应商是稀缺资源:抢数据供应商的激烈程度堪比抢 GPU;名牌团队能拿到 折扣与优先档期;
- 合同里全是坑:有供应商不威胁诉讼就不交货;有供应商把没合作过的公司列成 客户做公关;默认条款的小字可能禁止开源产出物;
- 节奏是周批交付:作者在 HF 的合同约 50 万美元、6 周交付——前几周 校准口径,后几周冲效果;目标是第 4–5 周就能看到数据推动评测;
- 数据可能白买:HF 第一次买人类偏好数据时自家管线没准备好,最后几周只能 对着没把握的端点继续收——「数百万美元的数据集没进最终模型,是这个行业的 日常成本」;
- 指令数据是另一码事:人写指令数据不受 on-policy 约束(直接盖在基座上用), 所以采购节奏宽松得多;如今人类数据的重心已经移向「出 prompt」和「最难的前沿 任务」13。
3.5 偏差清单:数据里自带的私货
书里清点的偏差,每一个都会原样传给模型14:
| 偏差 | 表现 |
|---|---|
| 前缀偏差 | 回答开头几个字过度主导选择 |
| 谄媚 | 顺着用户说、恭维,哪怕牺牲真实 |
| 冗长 | 长回答系统性胜出(第 13 章的主角) |
| 格式偏好 | 列表、加粗、emoji 更讨喜 |
这些大多不在标注指南里——它们是人类的习惯,不是任务的要求。书里的判词: 滤不滤得掉这些偏差,就是「好偏好数据」与「伟大偏好数据」的分界。
4. 作者的判断与证据
书里有证据的部分:on-policy 优势、UltraFeedback 的构造法、Llama 2 的 14 轮 数据收集,都有出处;界面例子(含作者自己被 A/B 的截图)是亲历。书里给判断 的部分:开放问题清单占了整节——「职业标注员跟随的是指令还是自己的价值观?」 「标注分歧是噪声(随机误差)还是信号?」「数据收集的语境能否迁移到真实用户?」——作者 把它们明标为未解,并且指出一个结构性盲区:工业界的 RLHF 是封闭不公开的,没人 能审计「标注指南里的规格」与「模型实际学到的行为」是否一致,OpenAI 的 Model Spec 是少数可对照的公开物15。
判断(我们的,不是书里的): 偏好数据的采购模式(按周交付、按条计价) 正在被两头挤压:头上是合成数据(第 11 章,便宜两个数量级以上),脚下是 RLVR (第 07 章,绕开偏好)。人类偏好数据不会消失——第 09 章的哲学问题和 「最后一公里的人类判断」保证了它——但「按吨买」的形态大概率是过渡形态。 如果错,会错在: 如果某些领域(安全、长尾人际场景)的人类偏好被证明 无法合成替代且需求爆发,「按吨买」可能反而成为长期形态。
5. 边界与局限
- 最大玩家的做法不可见:OpenAI/Anthropic 的标注指南、验收标准从不公开, 书里只有 InstructGPT 一份 2022 年的公开指南可引16;
- 标注员画像数据缺失:多少人来标、什么背景、分歧率多少——书里列为开放 问题,而非给出数据;
- 本章的界面案例都是 2022–2025 年的产品快照,界面形态本身在快速演化。
6. 可带走的
- 偏好数据要 on-policy(至少同模型家族)——打在模型自己会犯的错上;
- chosen ≠ 正确,只是相对更好;
- 界面不是量杯:速度、布局、刻度都在塑造「偏好」;
- 打分/排序之争的终点是二值坍缩——丰富信号目前喂不进训练;
- 5 点/8 点 Likert、多轮只标末轮、结构化偏好自动造对、KTO 单标签——按成本 与场景挑;
- 采购现实:50 万美元、6 周批交付、供应商违约风险真实存在、数据可能白买;
- 前缀/谄媚/冗长/格式四大偏差,滤不滤得掉决定数据档次;
- 「规格 vs 行为」无法审计,是这个行业的结构性盲区。
7. 原文地图
| 主题 | 原书章 | 原文位置 |
|---|---|---|
| 两大挑战与数据地位 | 11 Preference Data | text/30-ch11-11-preference-data.txt:32(搜「operational complexity and cost」) · text/30-ch11-11-preference-data.txt:32(搜「on-policy」) |
| 为什么需要与「区分比生成容易」 | 11 Preference Data | text/30-ch11-11-preference-data.txt:50(搜「differentiate between a good and a bad answer」) |
| on-policy 的软定义 | 11 Preference Data | text/30-ch11-11-preference-data.txt:74(搜「current family of models」) · text/30-ch11-11-preference-data.txt:74(搜「particularly important」) |
| chosen 非全局正确 | 11 Preference Data | text/30-ch11-11-preference-data.txt:86(搜「not a globally correct answer」) |
| 界面案例 | 11 Preference Data | text/30-ch11-11-preference-data.txt:98(搜「replies too fast」) · text/30-ch11-11-preference-data.txt:104(搜「Anthropic」) · text/30-ch11-11-preference-data.txt:156(搜「Midjourney」) |
| ratings vs rankings | 11 Preference Data | text/30-ch11-11-preference-data.txt:175(搜「rankings」) · text/30-ch11-11-preference-data.txt:204(搜「UltraFeedback」) |
| Likert 5 点与 8 点 | 11 Preference Data | text/30-ch11-11-preference-data.txt:210(搜「Likert」) · text/30-ch11-11-preference-data.txt:242(搜「8-step Likert」) · text/30-ch11-11-preference-data.txt:280(搜「reduced to a binary signal」) |
| 多轮 | 11 Preference Data | text/30-ch11-11-preference-data.txt:292(搜「final」) · text/30-ch11-11-preference-data.txt:292(搜「sycophancy」) |
| 结构化偏好与 IFEval | 11 Preference Data | text/30-ch11-11-preference-data.txt:316(搜「constraint」) · text/30-ch11-11-preference-data.txt:310(搜「letter g」) · text/30-ch11-11-preference-data.txt:378(搜「inductive biases」) |
| KTO 等替代 | 11 Preference Data | text/30-ch11-11-preference-data.txt:390(搜「Kahneman-Tversky」) |
| 采购生意 | 11 Preference Data | text/30-ch11-11-preference-data.txt:408(搜「who-you-know」) · text/30-ch11-11-preference-data.txt:420(搜「breach of contract」) · text/30-ch11-11-preference-data.txt:444(搜「6 week」) · text/30-ch11-11-preference-data.txt:451(搜「500K」) · text/30-ch11-11-preference-data.txt:463(搜「wasted」) |
| 指令数据例外 | 11 Preference Data | text/30-ch11-11-preference-data.txt:475(搜「on-policy restrictions」) |
| 偏差清单 | 11 Preference Data | text/30-ch11-11-preference-data.txt:487(搜「prefix bias」) · text/30-ch11-11-preference-data.txt:487(搜「sycophancy」) |
| 开放问题与 Model Spec | 11 Preference Data | text/30-ch11-11-preference-data.txt:517(搜「professional setting」) · text/30-ch11-11-preference-data.txt:526(搜「Model Spec」) |