RL 高质量数据:数据形式、成本结构与模型蒸馏¶
调研时间:2026-07-28。本文由 AI 辅助生成,经本人核查与修订;文中内容代表本人截至该日期的调研结论与判断。
调研背景与问题¶
这篇调研源于梁文峰对投资人的一段演讲摘要:
数据应该几乎就等于模型的一半。前面还有一个标数据的问题。我们在数据标注方面,这跟我们的资本投入有关。以我们这个资本投入的结构,支撑不起那么多高质量数据标注的成本,因为成本很高。
美国数据标注的成本跟中国数据标注成本没有什么区别。中国去标数据并没有成本优势,尤其是标高端数据上并不会有成本优势,使得我们很难投入去像美国这样标数据。这条路在中国是很难的,因为标数据实在太贵了,不管是我们外标还是我们自己标,都很难受。
演讲摘要是提出问题的背景,不是本文需要评价或逐句验证的对象。本文要回答的是下面这些问题:
- RL 高质量学习数据是什么格式,具体包含什么内容;
- 为什么 RL 高质量数据非常昂贵,钱实际花在了哪些环节;
- 蒸馏技术是什么,如何从已有模型蒸馏出可用于训练的数据与能力。
全文围绕这些问题展开:说明不同训练阶段所需的数据类型,拆解公开数据集和成本结构,并介绍蒸馏的具体做法、适用条件与风险。
RL 训练数据的定义与边界¶
RL 数据的含义¶
经典强化学习把一条轨迹写成:
其中 \(s\) 是状态,\(a\) 是动作,\(r\) 是 reward。对单轮 LLM,prompt 可以看作初始状态,模型生成的 token 序列是动作,最终得到一个或多个 reward。对工具型 Agent,状态还包括工具结果、文件系统、网页、数据库或模拟环境,轨迹才真正接近传统 RL。
LLM post-training 中常见的数据流是:
预训练模型
├── SFT demonstrations
│ └── SFT policy
├── preference / rating data
│ ├── Reward Model -> 在线 RL rollout -> RL policy
│ └── DPO 等离线偏好优化 -> aligned policy
├── prompt + ground truth + verifier
│ └── 在线生成多组 rollout -> rule reward -> RLVR policy
└── teacher-generated responses / trajectories
└── 筛选与验证 -> 蒸馏 SFT -> 可选的 preference / RL
因此:
- SFT 是监督学习,不是 RL;
- DPO 使用偏好数据直接优化 policy,但训练时不进行在线 RL rollout;
- Reward Model 训练本身是监督学习;
- RLHF 的 RL 阶段才使用 Reward Model 对新 rollout 给 reward;
- RLVR 可以不需要人工写推理过程,但需要可验证问题、可靠 ground truth 和 verifier;
- PRM 可以服务于搜索或 RL,但 “训练 PRM” 不自动等于 “用 PRM 做了 RL”。
DPO 原论文明确把它描述为用分类损失求解标准 RLHF 目标、避免训练时从模型采样的直接优化方法。工程交流中可以把 SFT、DPO、RM、RLAIF 和 RLVR 统称 post-training,但成本核算时必须拆开。
数据规模的统计单位¶
同一个项目可以同时报告下面几种规模:
10,000 prompts
× 每题 4 个 responses
× 每个 response 5 个 attributes
× 每项 3 位 annotators
= 10,000 个问题
= 40,000 个回答
= 200,000 个属性对象
= 600,000 次人工判断
这些数字都可能正确,却代表完全不同的劳动量。报告数据规模时,至少同时给出:
- distinct prompt 数;
- response 或完整 trajectory 数;
- comparison 数;
- step / attribute / reward 数;
- annotator judgment 数;
- 总 token 数与长度分布;
- raw、accepted、trainable 三个阶段的数量;
- 生成时每个 prompt 的采样数 \(K\);
- 数据来自哪个 policy / teacher 版本。
不说明单位的 “10 万条高质量 RL 数据” 几乎没有可比性。
RL 数据的格式与内容结构¶
公开工具通常使用 JSONL,每行一个逻辑样本。TRL 的数据格式文档列出了 prompt-only、prompt-completion、preference、unpaired preference 和 stepwise supervision 等常见格式。字段名不是行业标准,重要的是语义和 provenance。
数据格式总览¶
| 数据类型 | 最小内容 | 主要用途 | 一条数据的监督信号 |
|---|---|---|---|
| Prompt-only | prompt | PPO、GRPO、RLVR 在线采样 | 只定义初始任务,不预先给答案 |
| SFT demonstration | prompt, response | 监督微调、冷启动、行为蒸馏 | teacher 或人展示应如何回答 |
| Pairwise preference | prompt, chosen, rejected | Reward Model、DPO | 同一上下文中 A 优于 B |
| K-way ranking | prompt, responses[], ranking | Reward Model、排序蒸馏 | 多个候选的相对顺序 |
| Pointwise / multi-attribute | prompt, response, scores | 回归 RM、属性控制、过滤 | 单回答绝对分或多维分 |
| Outcome supervision | prompt, response, outcome | ORM、rejection sampling | 最终答案或任务是否成功 |
| Process supervision | prompt, steps[], labels[] | PRM、步骤过滤 | 每一步是否正确或有进展 |
| RL rollout | prompt、生成 token、reward、policy metadata | PPO、GRPO 等在线更新 | 当前 policy 的实际样本与 advantage |
| Agent trajectory | state、action、tool result、terminal outcome | Agent SFT、offline/online RL | 多轮环境交互及最终状态 |
| Evaluation / red-team | input、rubric、reference、grader | 独立验收 | 不应回流到训练集的测量信号 |
SFT 示范¶
最简单的 instruction distillation 数据是:
{
"id": "math_001",
"prompt": [
{"role": "user", "content": "求方程 x^2 - 5x + 6 = 0 的解。"}
],
"response": [
{"role": "assistant", "content": "因式分解为 (x-2)(x-3)=0,所以 x=2 或 x=3。"}
],
"source": {
"prompt_dataset": "internal_math_v3",
"teacher": "teacher_model_version",
"generation_config": {"temperature": 0.7, "seed": 18},
"verifier": "symbolic_math_v2"
}
}
真正用于训练时可以只保留 prompt 与 response,但企业数据仓库不应删掉 source、teacher、生成参数、过滤器版本和验证结果。否则无法解释某个错误从哪里进入模型,也无法在 teacher 或政策变化后定向重建数据。
成对偏好¶
Reward Model 和 DPO 常用:
{
"id": "pref_001",
"prompt": [{"role": "user", "content": "解释为什么天空通常是蓝色。"}],
"chosen": [{"role": "assistant", "content": "太阳光进入大气后,较短波长的蓝光更容易被瑞利散射……"}],
"rejected": [{"role": "assistant", "content": "因为海洋把蓝色反射到了天空。"}],
"label": {
"winner": "chosen",
"strength": 3,
"criteria": ["correctness", "relevance"],
"rationale": "rejected 把因果关系写反。"
},
"annotation": {
"annotator_ids": ["a17", "a42", "a93"],
"agreement": 1.0,
"guideline_version": "helpfulness_v5"
}
}
一个关键细节是:
chosen > rejected只表达相对偏好,不保证 chosen 是绝对好答案,也不保证 rejected 是绝对坏答案。
如果两个答案都错,普通 DPO 仍会把“较少错”的答案往上推。因此高质量偏好数据最好额外保存绝对正确性、安全性和“不应训练”标志,不能只保留一个 winner bit。
Reward Model 常用 Bradley–Terry 形式学习:
如果两个候选差异过大,标签虽然容易,却只教会模型显而易见的规则;如果差异过小或问题本身含糊,标签噪声会变高。高价值数据往往位于“模型容易混淆,但专家可以稳定区分”的区域。
多维绝对评分¶
HelpSteer2 数据卡的基本样式是:
{
"prompt": "c#",
"response": "C# is a high-level, object-oriented programming language ...",
"helpfulness": 3,
"correctness": 4,
"coherence": 4,
"complexity": 2,
"verbosity": 1
}
其公开 disagreements 数据还保留每位标注员的分数数组,而不是只保留平均值。原始 HelpSteer2 有 21,362 个 response 样本,相邻两个 response 共享 prompt;五个属性均为 0–4 分。后来补充的 preference 数据进一步保存 -3 到 +3 的偏好强度与人工理由。
这类数据比一个二元 winner 信息更密,但并不天然更好:
- 标注员需要持续校准 0–4 的尺度;
- “correctness” 与 “verbosity” 不是同一种判断难度;
- 平均值会掩盖真实价值分歧;
- 不同业务对属性的权重不同;
- 一个整体 reward 可能再次把多维信息压扁。
过程监督¶
简化后的 stepwise 数据可以写成:
{
"prompt": "比较 9.8 和 9.11 的大小。",
"steps": [
{"text": "9.8 的小数部分是 0.8。", "label": "positive"},
{"text": "9.11 的小数部分是 0.11。", "label": "positive"},
{"text": "因为 0.11 > 0.8,所以 9.11 > 9.8。", "label": "negative"}
],
"finish_reason": "found_error"
}
实际 PRM 样本必须带完整前缀。模型学习的不是脱离上下文判断一句话,而是:
同一句 step 在不同问题、不同前置假设下可能有完全不同的标签。
PRM800K 的公开 JSONL中,一行代表一条完整 solution sample,内部包含多个 step,每个位置又可能有多个 candidate completion。字段还包括:
labeler与timestamp;generation;- screening / quality-control 标记;
- problem、ground-truth answer 和预生成解法;
- step completion 的
-1 / 0 / +1; human_completion与chosen_completion;total_time;finish_reason。
这套结构比 prompt/chosen/rejected 贵得多,因为每个标签都依赖之前的整段数学推理。
RLVR 源数据与 rollout buffer¶
RLVR 的源数据可能很简单:
{
"problem_id": "aime_2024_01",
"prompt": "……",
"reference_answer": "42",
"verifier": {
"type": "normalized_exact_match",
"version": "math_answer_v4"
},
"domain": "math",
"difficulty": 4
}
训练时才生成:
{
"problem_id": "aime_2024_01",
"policy_version": "checkpoint_8200",
"group_id": "g_991",
"rollouts": [
{
"response": "<think>...</think><answer>42</answer>",
"reward": {"accuracy": 1.0, "format": 1.0},
"old_logprobs": "...",
"ref_logprobs": "...",
"action_mask": "...",
"termination": "eos"
},
{
"response": "<think>...</think><answer>44</answer>",
"reward": {"accuracy": 0.0, "format": 1.0},
"old_logprobs": "...",
"ref_logprobs": "...",
"action_mask": "...",
"termination": "eos"
}
]
}
old_logprobs、advantage、value 等字段通常属于短期 rollout buffer,不一定作为长期数据集发布。长期保存时至少应保留 policy version、prompt version、verifier version、reward components 和 termination cause,否则无法复现一次更新。
DeepSeek-R1 论文 2026 修订版给出了一个具体例子:R1-Zero 每个问题采样 16 个输出,以准确性 reward 和格式 reward 训练;每个训练 step 使用 32 个不同问题,batch 为 512。这里真正被大规模消费的是模型自己生成的长回答 token,而不是人工写好的 512 条标准推理。
Agent 轨迹¶
工具型 Agent 的最小可审计记录应接近:
{
"task_id": "repo_fix_017",
"environment": {
"image": "sha256:...",
"repo_commit": "abc123",
"network_policy": "offline",
"tool_schema_version": "v7"
},
"initial_observation": {"issue": "修复分页重复记录"},
"trajectory": [
{"step": 0, "action": {"tool": "search", "args": {"query": "cursor"}}, "observation": "..."},
{"step": 1, "action": {"tool": "patch", "args": {"file": "store.go"}}, "observation": "..."},
{"step": 2, "action": {"tool": "test", "args": {"target": "./..."}}, "observation": "PASS"}
],
"outcome": {
"tests_passed": true,
"hidden_tests": 7,
"policy_violations": 0,
"reward": 1.0
}
}
只保存最终回答会丢掉真正可训练的 action、observation 与环境状态。只保存文本 trace、不保存可重建环境,也无法确认轨迹是否真的完成任务。
高质量 RL 数据的判断标准¶
质量的相对性¶
可以把数据集 \(D\) 对某个初始策略 \(\pi_0\)、目标任务分布 \(T\) 和训练算法 \(A\) 的价值写成:
其中:
- \(\Delta\operatorname{Eval}\):对冻结、独立评测的真实增益;
- \(C(D)\):生产、训练和维护成本;
- \(R(D)\):隐私、安全、许可、偏见和污染风险;
- \(\lambda\):企业对风险的权重。
这不是行业统一指标,而是用于说明:高质量不属于数据文件本身,它取决于数据对哪个模型、哪类任务、哪种训练方法是否产生稳定增益。
质量维度¶
| 维度 | 需要回答的问题 | 常见失败 |
|---|---|---|
| Target relevance | prompt 是否来自目标用户和真实任务 | 公共题刷高,线上无增益 |
| Correctness / reward validity | 标签、答案、verifier 是否真的正确 | reward hacking、错误答案被判正 |
| Contrastiveness | 候选是否暴露模型的真实决策边界 | chosen/rejected 差异太明显 |
| Difficulty | 当前模型能否从样本中获得信号 | 全部过易或全部不可解 |
| Diversity and coverage | 是否覆盖主题、语言、长度、风险与长尾 | teacher 风格单一、尾部消失 |
| Freshness | 是否来自当前或相近 policy | Reward Model stale、分布外打分 |
| Independence | train、validation、test 是否隔离 | benchmark contamination |
| Provenance | 谁、何时、用什么模型和规则生成 | 无法追责和重建 |
| Reproducibility | 环境、工具、seed、版本是否可恢复 | Agent trace 无法重放 |
| Human calibration | 标注员是否理解并稳定执行 rubric | 尺度漂移、分歧被平均掩盖 |
| Governance | 是否满足许可、隐私、安全和删除要求 | 不能合法训练或无法删除 |
信息密度¶
高质量数据常通过选择提高信息密度,而不是无限扩量。
PRM800K 论文在第二阶段进行 10 轮 active learning:用当前 PRM 找到“答案错误但 PRM 评分很高”的 convincing wrong solutions,交给人类定位首个错误,再重训 PRM。论文报告 active learning 让过程监督的数据效率提升 2.6 倍。
这说明一个困难负例的价值可能远高于大量重复易例。相反,旧对话中 “1 万条可以训练有意义的 RM,10 万条才接近大型通用项目”只能作为经验猜测,不能成为跨模型、跨任务的数量门槛。
LIMA用 1,000 个精心选择的 prompt-response 对一个 65B base model 做 SFT,也获得了较强的指令遵循效果。这支持“小而精的数据可以有效改变表达与交互方式”,却不证明 1,000 条数据足以注入基础模型没有的知识、覆盖安全长尾,或替代复杂在线 RL。
策略时效性¶
策略更新后,回答分布会变。用旧 policy 生成的偏好数据训练出的 RM,面对新 policy 可能变成 OOD judge。
Anthropic 的 Helpful–Harmless RLHF 工作采用按周更新 preference model 与 RL policy 的迭代在线流程。Google 的 RLAIF 研究也把 RM staleness 明确列为问题:初始 policy 的数据会随着 policy 更新逐渐失配。
因此高质量 RL 数据不是一次采购后永久使用的资产。模型越快迭代,fresh rollout、重新标注和重新校准的成本越高。
典型公开数据集及其构造方式¶
数据集对比¶
| 项目 | 主要监督信号 | 公开规模的正确单位 | 主要用途 | 容易被忽略的限制 |
|---|---|---|---|---|
| InstructGPT | 人工 demonstration、K-way ranking、RL prompts | 约 13k SFT prompts、33k RM prompts、31k PPO prompts | SFT + RM + PPO | 三个集合不是同一种样本 |
| HH-RLHF | chosen / rejected 多轮对话 | 每行一对完整 transcript | PM/RM、DPO | chosen 只是相对更好;含有有害内容 |
| HelpSteer2 | 五维 0–4 分、偏好强度和理由 | 21,362 responses,约 10k prompt pairs | 回归 RM、偏好 RM、属性控制 | 多维评分尺度需要校准 |
| Chatbot Arena | 真实用户 A/B/tie/both-bad 投票 | 论文时累计超过 240k votes | 模型评测,也可派生偏好数据 | 用户选择偏差、反作弊、隐私、模型配对偏差 |
| PRM800K | 每个推理 step 的 +1/0/-1 | 约 800k filtered step labels、75k solutions | PRM、best-of-N search | 原论文没有用 PRM 对 generator 做 RL |
| OASST1 | 人写对话树、评分与排序 | 161,443 messages、461,292 ratings、>10k trees | SFT、偏好与多轮研究 | 志愿劳动不是零经济成本 |
| UltraFeedback | 多模型回答 + GPT-4 多维反馈 | 约 64k prompts、256k responses | 合成 RM/DPO/SFT 数据 | judge 错误和风格偏见会批量复制 |
| DeepSeek-R1 / RLVR | prompt + 可验证答案 + 在线 group rollout | R1-Zero 每题多次采样;R1 另构造约 800k SFT samples | GRPO、rejection SFT、蒸馏 | RL rollout token 与静态 SFT 行数是两类规模 |
InstructGPT¶
InstructGPT 论文的三阶段数据是:
- 人工 demonstration 训练 SFT;
- 对模型输出排序,训练 RM;
- 从另一批 prompt 在线采样,用 RM reward 做 PPO。
论文报告 SFT、RM 和 PPO 集合分别约含 13k、33k、31k training prompts,并聘用约 40 位经过筛选的 contractor。这个案例的重要性不在于数据量巨大,而在于 prompt 来自真实 API 分布、标注员经过训练,并且三个阶段的数据来源与作用不同。
HH-RLHF¶
Anthropic HH-RLHF 数据卡的核心格式很简单:
helpfulness 数据还区分 base、best-of-16 rejection sampling 和在线迭代阶段。这个细节说明同样的 chosen/rejected schema 可以来自不同 policy distribution,训练价值和难度并不相同。
Chatbot Arena¶
Chatbot Arena 论文中的数据由真实用户提问、匿名双模型回答和用户投票组成,论文撰写时累计超过 240,000 次投票。它把“用户流量”转化为自然 prompt 与偏好信号。
但 Chatbot Arena 首先是评测平台,不是为某个 policy 定制的数据生产线。若拿来训练,还要解决:
- 用户和语言分布是否匹配目标产品;
- 同一用户或攻击者的重复票;
- 模型 pair sampling 导致的选择偏差;
- 用户是否只按长度、风格或品牌印象投票;
- 对话公开、隐私授权和训练用途是否一致;
- 训练后继续把 Arena 当独立评测是否造成污染。
所以它的人工边际支付可以很低,平台、流量、推理、反作弊和数据权利并不免费。
PRM800K¶
PRM800K 论文报告:
- raw collection:1,085,590 个 step labels,覆盖 101,599 条 solution samples;
- 过滤掉 QC 和未完成任务后:约 800,000 个 step labels,覆盖约 75,000 条 solutions;
- phase 1 约占 5%,在每一步收集多个 alternative completions;
- phase 2 预生成完整解法,人工逐步查到第一个 negative 即停止;
- 每位 phase-2 标注员先做 30 道 screening,至少与 gold labels 达到 75% 一致;
- 每轮另混入 10–20 道持续 QC 题;
- 10 轮 active learning 在轮次间重训 PRM。
需要特别保留旧对话中已经纠正过的结论:
《Let’s Verify Step by Step》训练 PRM,并用 PRM 做 best-of-N search;论文明确说没有用该 reward 对 generator 做 RL。
因此 PRM800K 是“可供 RL 使用的过程 reward 数据”,不是该论文已经完成 PRM-RL 的证据。
OASST1¶
OpenAssistant Conversations 论文报告 161,443 条消息、461,292 个质量评分、超过 10,000 棵完整对话树、35 种语言和超过 13,500 名志愿者。
它包含的是人类创作、树状分支、多轮追问、排名和审核的组合。若商业复刻,不应只按“461,292 次点击”计价,因为最贵的一部分是创作消息、维护多语言社区、平台开发和质量治理。志愿者不收工资只说明现金支出被转移,不说明数据没有生产成本。
UltraFeedback¶
UltraFeedback 数据卡从约 64,000 个 prompt 出发,每题让不同模型生成 4 个回答,得到约 256,000 个 responses,再由 GPT-4 从 instruction-following、truthfulness、honesty 和 helpfulness 等维度生成分数与文字反馈。
这里 “feedback 数”会因按 response-level、dimension-level 还是派生 pairwise comparisons 计数而不同,不宜只引用一个“超过一百万”而不解释单位。
它证明 AI feedback 能扩展数据密度,也公开承认 GPT-4 会产生错误和不准确反馈。因此合成数据的质量控制至少需要:
- 多候选与多 teacher,避免单一模式;
- 位置交换,检查 judge 的 position bias;
- 长度匹配或 length-controlled analysis;
- rule verifier 优先于主观 judge;
- 人工抽检和分歧样本仲裁;
- 不让同一个 teacher 同时生成、筛选并做最终评测。
DeepSeek-R1¶
DeepSeek-R1 2026 修订版把几类数据放在同一条流水线上:
base model
├── 直接进行 rule-reward RL
│ └── DeepSeek-R1-Zero
└── 少量 human-aligned cold-start SFT
-> reasoning-oriented RL
-> rejection sampling + 约 800k SFT
-> general alignment RL
-> DeepSeek-R1
└── 用约 800k teacher samples 对小模型做 SFT distillation
其约 800k SFT 数据实际为 804,745 个样本,平均约 5,355 tokens;其中约 600k 是 reasoning data,约 200k 是 non-reasoning data。Reasoning 部分对每个 prompt 生成多个回答,只保留正确回答,并过滤语言混杂、过长段落与代码块等异常;部分非规则可验证数据由 DeepSeek-V3 结合 ground truth 判断。论文还在 cold-start 数据和人工补充的推理数据流程中明确加入了人工复核,但这不等于公开证明全部 804,745 条都经过逐条人工验收。
这个案例同时说明:
- R1-Zero 可以不依赖人工 reasoning trajectories 做 RL;
- 可读性、语言一致性和通用能力仍需要 cold start、SFT 和偏好 reward;
- RL 数据、rejection-sampled SFT 数据和蒸馏数据不能当成同一个集合;
- 可靠 verifier 能减少人工写解法的需求,却增加题目、ground truth、测试用例和判题系统的工程需求。
高质量 RL 数据的成本构成¶
成本模型¶
把一个数据项目的总成本拆成:
其中成本集合只包含:
若:
- \(N_p\):prompt 数;
- \(K\):每题候选或 rollout 数;
- \(J\):每个对象的独立 judge 数;
- \(t\):每次人工判断耗时;
- \(w\):单位时间综合人工成本;
- \(y\):最终可接受率;
则只看人工与生成的简化成本约为:
降低小时工资只影响其中 \(tw\) 的一部分。任务越复杂、\(K\) 越大、acceptance yield 越低、在线迭代越频繁,工资差异越不决定总账。
数据规范设计成本¶
开放问答没有天然的唯一答案。企业必须先把抽象目标变成 rubric:
- helpfulness 与 harmlessness 冲突时优先什么;
- 不确定时是回答、拒答还是查询工具;
- 引用、格式、长度和语气如何权衡;
- 哪些事实必须查证;
- 哪些行为触发政策边界;
- 多轮对话中只评最后一轮还是评完整轨迹。
这个过程需要研究人员、产品、领域专家、安全与法务共同决定。错误 rubric 会稳定地产生大量“高一致性坏标签”,比随机噪声更危险。
候选生成成本¶
偏好数据至少需要两个候选;best-of-16 需要 16 个;GRPO 对每题采样一组长 rollout。Agent 任务还要真的运行工具和环境。
随着模型变强,候选越长、推理越深。标签员读取成本和模型 inference 成本同时增长。DeepSeek-R1-Zero 的公开设置中,单个输出最大长度从 32,768 提高到 65,536 tokens;每次 rollout 批量生成 8,192 个输出。即使没有人工逐步标注,长 token rollout 也不是廉价数据。
专家判断成本¶
普通内容分类可以交给一般 crowd worker;判断竞赛数学首错、代码隐藏测试、专业医疗建议或安全攻击,需要能完成或验证任务的人。
PRM800K 不仅要求读答案,还要求:
- 理解题目和完整前缀;
- 区分正确、有进展、无进展和错误;
- 找到第一个实质错误;
- 在不同候选 next step 之间判断;
- 持续通过隐藏 QC。
当标签员的能力接近数据所要提升的模型能力时,成本由专家机会成本决定,地域低工资优势自然缩小。
复标与质量控制成本¶
高风险或主观任务通常需要:
- 多人独立标注;
- gold screening;
- 分歧仲裁;
- 持续 calibration;
- 隐藏 QC;
- 低质量 worker 淘汰;
- rubric 更新后返工。
最终数据只显示一个 chosen 或平均分,容易把这些隐藏劳动误认为不存在。PRM800K 从约 108.6 万 raw step labels 过滤到约 80 万 trainable labels,就是 acceptance loss 的公开实例。
难例发现成本¶
随机样本中会有大量:
- 两个回答都明显好;
- 两个回答都明显坏;
- 模型已经稳定掌握的简单题;
- 重复 prompt;
- 无法可靠判定的坏题;
- 对当前 policy 没有梯度价值的样本。
高价值 hard negative 需要先运行当前模型、Reward Model 或 verifier,再按 disagreement、uncertainty、错误类型和业务风险筛选。主动学习减少标签浪费,却引入模型服务、检索、版本控制和循环重训。
策略迭代成本¶
静态偏好数据能训练初始 RM,但 policy 学会拿高 reward 后,可能进入 RM 没见过的区域,甚至利用其漏洞。于是团队需要:
这是持续运营成本,不是一次性数据采购。
Agent 环境成本¶
对代码、浏览器、数据库和业务流程 Agent,reward 常来自环境最终状态。高质量数据要求:
- 可重置 sandbox;
- 固定依赖、时钟和网络;
- 可复现的初始状态;
- 隐藏测试或业务 validator;
- 工具调用审计;
- side effect 隔离;
- 失败重试与环境故障归因。
很多时候,构造一个可信 task environment 比写 prompt 更贵。
独立评测成本¶
训练数据不能自己证明自己有效。项目还需独立的:
- validation set;
- held-out test set;
- 红队集;
- 真实线上回放;
- 人工盲评;
- regression suite。
如果把昂贵 expert cases 全用于训练而没有保留评测,企业无法判断模型真的泛化,还是只记住了数据。
合规与治理成本¶
真实用户数据和 teacher-generated data 还涉及:
- 用户是否同意用于模型改进;
- PII 与敏感信息处理;
- 数据许可和 teacher 使用条款;
- 有害内容标注员的心理健康保护;
- 可追踪删除;
- 地域数据驻留;
- 审计记录。
这些成本不会因为标注平台位于低工资地区而消失。
高端数据中的地域成本结构¶
这里不比较不同国家的报价,也不把演讲摘要中的判断作为待验证命题。需要解释的是一种成本结构变化:任务越接近模型能力前沿,人工执行标签在总成本中的占比越低,稀缺专家、候选生成、验证、质量管理和环境工程的占比越高。
可以按任务类型观察这种变化:
| 任务 | 普通人工工资的影响 | 更主要的瓶颈 |
|---|---|---|
| 简单分类、内容审核 | 较高 | worker 规模、规则稳定性 |
| 通用语言偏好 | 中等 | 语言能力、rubric calibration、多人一致性 |
| 多语言与本地文化偏好 | 中到较高 | 母语覆盖与目标用户匹配 |
| 竞赛数学、专业代码 | 较低 | 可验证专家、长上下文、QC |
| 医疗、法律、金融 | 较低 | 资质、责任、证据与合规 |
| 安全红队 | 较低 | 稀缺攻击能力、保密与治理 |
| Agent 环境与轨迹 | 较低 | 环境工程、推理算力、重放与隐藏测试 |
因此,“哪里的人更便宜”只能解释简单任务的一部分账单。到了高端任务,更关键的是:合格专家是否存在、候选需要生成多少次、错误能否自动验证、多少 raw 样本会被淘汰,以及数据是否需要随着 policy 持续刷新。这也是高质量数据昂贵、而蒸馏有吸引力的直接背景。
可核验的公开成本证据¶
公开项目总账非常少,能严谨引用的只有局部证据。
-
OpenAI summarization 工作披露主要模型使用约 65,000 次比较,少至 8,000 次也获得过较好结果;contractor 至少支付 15 美元/小时。这是某个历史项目的下限信息,不代表今天的专家价格。
-
Google RLAIF 论文在 2023 年价格下估算 Reddit TL;DR 偏好:AI 双向去位置偏差标注约 0.06 美元/例,云端人类 classification 服务约 0.67 美元/例,即 AI 低 10 倍以上。论文也明确说这个估算没有包括标注员训练、专家与 crowd 差异、LLM 标注系统建设等成本。它证明的是一个具体 summarization 设置,不是所有高端数据的通用倍数。
-
DeepSeek-R1 2026 修订版按每 H800 GPU-hour 2 美元的假设,报告 R1-Zero、SFT data creation 和 R1 训练合计约 147,000 H800 GPU-hours、29.4 万美元。这个表是算力口径,不包含 base model 预训练、人类劳动的完整成本、失败实验、研究人员和组织成本,不能与“数据标注采购价”直接相加或比较。
-
PRM800K、HH-RLHF、HelpSteer2、OASST1 和 UltraFeedback 都没有公开足以还原企业总账的财务数据。
因此,旧对话中按项目给出的数十万到上千万美元复刻价格,应理解为基于工资、耗时和管理系数的预算情景,不应继续写成论文披露或确定事实。
模型蒸馏的定义与类型¶
知识蒸馏定义¶
知识蒸馏让较小或更便宜的 student \(p_S\) 学习较强 teacher \(p_T\) 暴露出来的知识。经典的 Hinton 等人方法使用经过 temperature 平滑的 teacher 概率分布:
teacher 对非最高概率 token 的分配包含“哪些错误更接近正确”的信息,通常比 one-hot label 更密。
对生成模型,蒸馏可以发生在多个层面。
| 方法 | 需要 teacher 提供 | student 学什么 | 适用情况 |
|---|---|---|---|
| Logit distillation | 每个 token 的 logits/probabilities | 完整 next-token 分布 | teacher 权重或 logits 可访问 |
| Hidden-state distillation | 中间层表示、attention | 表示空间和内部特征 | 架构可对齐、白盒 |
| Sequence-level distillation | teacher 生成的完整输出 | teacher 的高概率序列与行为 | 只有 API、跨架构 |
| Preference distillation | teacher 对 A/B 的偏好或评分 | teacher 的 reward / judgment | RLAIF、RM、DPO |
| Reasoning distillation | 解题轨迹、反思、验证结果 | 可观察的解题行为 | 数学、代码、科学推理 |
| Agent trajectory distillation | state/action/tool result | 工具选择和长程策略 | 可重建环境的 Agent |
| Online policy distillation | teacher 在 student 状态上的反馈 | student 自己分布附近的动作 | 需要持续 teacher 调用 |
Sequence-Level Knowledge Distillation把 teacher 解码出的序列作为 student 的新训练目标。今天用闭源 LLM API 批量生成 instruction-response 再 SFT,本质上就是这种黑盒蒸馏的扩展。
蒸馏与相关技术¶
- 普通 SFT:数据可能来自人、规则、历史日志或 teacher;
- sequence distillation:SFT target 特意由 teacher 产生;
- pseudo-labeling / self-training:模型或前一代模型给未标数据生成 label;
- rejection sampling:生成多个候选,只保留 verifier / judge 选中的输出;
- RLAIF:AI 生成偏好或 reward,再训练 RM 或 policy;
- model extraction:关注通过查询复刻一个模型,可能涉及不同的授权和安全问题;
- quantization / pruning:直接压缩现有权重,不通过 teacher 数据教 student。
这些技术可以组合。例如先用 teacher 生成 sequence,SFT student;再让 teacher 对 student 的候选做偏好标签,DPO;最后在可验证任务上用 RLVR。
从已有模型进行蒸馏的方法¶
蒸馏流水线¶
定义目标与冻结评测
-> 选择 student base checkpoint
-> 建 prompt pool
-> teacher 每题生成 K 个候选
-> rule verifier / execution / retrieval 做硬验证
-> AI judge 做软评分与偏好
-> 人工复核高风险、分歧和高价值样本
-> 去重、平衡、污染检查和 provenance 固化
-> 用最佳回答做 SFT
-> 用强弱对做 RM / DPO
-> 对可验证任务做在线 RL
-> 用独立评测找 failure,再主动学习迭代
独立评测集的建立¶
蒸馏前先决定想转移什么:
- 通用指令遵循;
- 某个领域知识;
- 数学或代码推理;
- 工具使用;
- 安全边界;
- 长回答风格;
- 延迟、吞吐和成本目标。
评测集必须按原始 source/problem 先切分,再让 teacher 生成。若先生成再随机切行,同一题的改写或相似解法可能同时进入 train 与 test。
Student 基座选择¶
蒸馏主要转移 teacher 已经表现出来的行为,不会神奇地消除 student 的容量与基础能力限制。
选择 student 时应看:
- 原始 domain knowledge;
- tokenizer 与目标语言;
- context length;
- tool-calling 格式;
- 推理长度承载能力;
- 许可与部署约束;
- 训练和推理预算。
DeepSeek-R1 修订版也报告早期 7B 和 16B MoE 的 RL 难以在 AIME 获得有效改善,而更大的 base 才能利用长 CoT。这说明“给同一份好数据”不代表不同 base 都能学到同样能力。
Prompt 数据池设计¶
Prompt pool 应由几部分混合:
- 真实用户请求与业务日志;
- 领域专家设计的 canonical tasks;
- 当前 student 的线上失败;
- 长尾和高风险任务;
- 形式变体、语言变体和多轮上下文;
- 明确不可回答或应拒绝的任务;
- 可验证的数学、代码和结构化任务。
只让 teacher 回答公共 benchmark,会蒸馏 benchmark 技巧,不一定蒸馏产品能力。
多候选采样¶
单次 greedy output 会压缩 diversity,也无法构造偏好。实际应对 temperature、system prompt、teacher 或解题策略做适度变化:
\(K\) 越大,越可能找到好答案和有价值负例,但 inference 与验证成本线性增加。开放任务还要防止所有候选只是同一种 teacher 风格的表面改写。
分层验证机制¶
推荐:
schema / parser
-> deterministic rules
-> compiler / unit tests / symbolic solver
-> retrieval-grounded checks
-> independent AI judge
-> human expert
越确定、越便宜的 verifier 越靠前。人工集中处理机器无法可靠判定、judge 分歧、业务高风险和 active-learning 样本。
正负样本构造¶
最佳 teacher response 可用于 SFT;student 或较弱 teacher 的失败回答可作为 rejected;两个都好的近邻候选可训练细粒度偏好。
数据仓库应保留:
- teacher 原始输出;
- verifier 每一项结果;
- judge 分数和 rationale;
- 为什么被接受或拒绝;
- student 当时的输出;
- problem family 与 difficulty;
- teacher / student / judge version。
只发布最终 chosen/rejected 会让后续团队无法重做阈值、修复 judge 偏差或重建多属性 reward。
SFT、偏好优化与 RL 的选择¶
第一阶段:
它让 student 模仿 teacher 输出。若 student 已经能给出正确答案,但风格、拒答、长度或工具选择仍不稳定,再加入:
- DPO / preference optimization;
- Reward Model + PPO/GRPO;
- RLVR;
- process reward;
- 在线 student-aware teacher feedback。
不是所有蒸馏都需要 RL。若 SFT 已满足目标,额外 RL 只会增加复杂度和 reward hacking 风险。
独立评测设计¶
不能用同一个 teacher:
至少加入一种独立锚点:
- 确定性 ground truth;
- 隐藏测试;
- 不同家族的 judge;
- 盲评的人类专家;
- 真实线上 outcome;
- 未参与生成的 benchmark。
否则测到的可能只是 student 更像 teacher,而不是更正确或更满足用户。
DeepSeek-R1 蒸馏案例¶
DeepSeek-R1 是目前最容易误解、也最完整的公开案例之一。
数据与训练流程¶
根据 2026 修订版论文:
- 收集 reasoning prompts;
- 从第一阶段 RL checkpoint 对每题采样多个 reasoning trajectories;
- rule reward 或带 ground truth 的 generative judge 判正确性;
- 只保留正确回答;
- 过滤语言混杂、超长段落和异常代码块;
- 加入约 200k non-reasoning SFT data;
- 得到约 800k、实际统计 804,745 个样本;
- 用同一数据对 Qwen/Llama 系列 student 做 2–3 epochs SFT;
- distilled models 没有再做 RL,以单独展示蒸馏效果。
论文报告 student 训练最大 context 为 32,768,batch size 为 64。这里的“蒸馏”是 teacher-output SFT,不是 logit distillation。
案例支持的结论¶
- 强 teacher 的推理轨迹可以显著提升小模型;
- verifier + rejection sampling 是控制合成数据质量的核心;
- 小模型直接大规模 RL 未必比从强模型蒸馏更划算;
- 约 800k 条不是未经筛选的一次 teacher 调用,而是多候选、验证、过滤、混合与人工检查后的集合;
- SFT 蒸馏之后仍可以继续做 RL,只是论文的 distilled models 没有做。
案例不支持的推论¶
- 任何 800k 条 CoT 都能得到相同结果;
- teacher API 单次生成 800k 个答案就足够;
- 小模型已经复制了 teacher 的全部能力;
- 蒸馏比训练强 teacher 本身更能拓展能力边界;
- 合成数据可以完全取消人类或 ground truth;
- 论文的算力账单就是企业全部研发成本。
模型蒸馏的限制与风险¶
Teacher 误差传播¶
Teacher 流利不等于正确。若 teacher 同时是 judge,系统性错误可能被判为高质量并批量复制。
对事实任务,应保留证据引用与 retrieval snapshot;对代码,应执行测试;对数学,应使用 symbolic / numeric verifier;对安全和开放偏好,应保留人类 anchor。
多样性收缩¶
Teacher 的高概率输出比真实人类分布更集中。只保留一个 best answer 会进一步压缩措辞、策略与价值观差异。
The Curse of Recursion研究的是模型反复训练于生成数据时原始分布尾部消失的问题。它不等于“任何单轮、经验证的蒸馏都会崩溃”,但提醒我们:
- 不应丢弃真实人类和原始数据;
- 应使用多 teacher、多 prompt style 和多采样;
- 应显式测量语义、策略和语言 diversity;
- 长尾样本不能只靠 teacher 自己发现;
- 递归蒸馏必须保留 provenance,防止把旧合成数据当真人数据。
奖励劫持¶
如果模型优化的是有漏洞的 RM 或格式 reward,它可能提高 reward 而降低真实效果。DeepSeek-R1 修订版也展示了 helpful RM reward 上升但 CodeForces performance 下降的 reward hacking 现象。
治理手段包括:
- reward components 分开记录;
- 设置可验证 hard constraints;
- 使用 adversarial negative;
- 对高 reward 样本做人工反查;
- 在线监控 reward–outcome divergence;
- 周期性更新 RM;
- 训练时限制 policy drift,评测时不只看 reward。
可见推理的忠实性¶
Sequence distillation 学到的是 teacher 输出的解释文本和行为模式,不能证明复制了 teacher 的内部计算过程。人为要求更长 CoT 还可能教会 student 产生看似合理但不忠实的解释。
因此 reasoning data 的验收应看最终正确性、步骤可检查性、反事实稳定性和对新题的迁移,不只看“像不像深度思考”。
许可、隐私与数据权利¶
蒸馏前必须确认:
- teacher 权重或 API 输出是否允许用于训练;
- 原 prompt 是否允许发送给外部 teacher;
- teacher 输出是否包含可识别或受保护内容;
- student 的发布许可是否兼容 base model;
- 数据集能否用于商业用途;
- 用户删除请求能否追踪到衍生样本。
技术上能蒸馏,不代表合同和数据治理上可以蒸馏。
企业实施建议¶
数据合同与小规模试验¶
先写一页 data contract:
目标任务分布:
基线模型与版本:
想改善的行为:
不可退化的行为:
每类数据的逻辑单位:
reward / rubric:
训练与评测隔离方式:
可接受的标签噪声:
来源、隐私和许可:
成本上限与停止条件:
然后用小规模 pilot 测每类数据的边际价值:
只有当某类样本持续带来增益,才扩量。
人机分层协作¶
现实做法通常是:
规则与程序
处理格式、答案、测试和明显错误
强 teacher / judge
负责批量生成、初筛、多维评价和理由
普通标注员
负责清晰、可培训的一致性任务
领域专家
负责 gold、难例、分歧、长尾和高风险
研究人员
负责 rubric、active learning、reward 漏洞和评测
这比把全部样本交给最便宜的人,或把全部判断交给同一个 LLM,更符合成本和质量目标。
数据迭代闭环¶
真实任务与线上 failure
-> 去隐私和任务聚类
-> 当前 student 多采样
-> verifier / judge / expert 标注
-> SFT / preference / RL
-> 独立评测
-> 按错误类型选择下一批数据
每轮都记录:
- 哪类 failure 减少;
- 哪类能力退化;
- 每个 accepted sample 的总成本;
- label agreement;
- verifier false positive / false negative;
- teacher–human agreement;
- 数据来源和 policy freshness;
- 相对于上一轮的实际增益。
训练方案选择¶
| 条件 | 优先方案 |
|---|---|
| 只有 teacher API | 多候选 sequence distillation + verifier + SFT |
| 能访问 teacher logits | logit KD + sequence KD |
| 有大量真实用户 | 同意后收集真实 prompt,做 A/B preference 与 failure mining |
| 数学、代码、结构化答案 | RLVR + rejection SFT,人工集中修 verifier 长尾 |
| 开放式聊天对齐 | 少量高质量人工 anchor + 大量 AI feedback + 独立人评 |
| 专业领域 | 专家构造 gold/rubric,teacher 扩写,专家只审困难与高风险样本 |
| 工具型 Agent | 可重建 environment + trajectory + outcome reward,不能只收最终文本 |
| 预算有限 | 先做小而精的 SFT 和独立 eval,再判断 DPO/RL 是否有边际价值 |
对既有调研的复核与补充¶
旧的分享对话覆盖了 HH-RLHF、HelpSteer2、Chatbot Arena、PRM800K、OASST1 和 UltraFeedback,也详细拆解了 PRM800K。其主要方向是对的,但需要如下校正。
| 旧结论 | 复核 |
|---|---|
| 六种是数据构造方式,不是六种训练算法 | 正确 |
| PRM800K 的 800K 是 step labels,不是 80 万道题 | 正确 |
| PRM800K 训练 PRM,并主要用于 best-of-N,不是论文中对 generator 做 RL | 正确且应突出 |
| PRM800K phase 2 找首错,经过 screening、持续 QC 和 active learning | 正确 |
| HelpSteer2 是五维 0–4 分,约 10k prompt pairs | 基本正确;公开文件按 response 计为 21,362 条 |
| Chatbot Arena 的用户承担出题和投票 | 正确,但训练权利、选择偏差、反作弊与平台成本需补充 |
| OASST1 的志愿者模式不等于零经济成本 | 正确 |
| UltraFeedback 用 GPT-4 做多维反馈 | 正确;feedback 总数必须说明计数单位 |
| AI feedback 一定比人工便宜 | 方向通常成立,非普遍定律;Google 论文的 10 倍仅针对特定 summarization 设置 |
| Teacher/judge 决定合成数据上限 | 过度简化;student 还受 base、filter、真实数据和训练目标影响,也可能在局部指标超过单次 teacher 输出 |
| 10k/100k 是有意义 RM 与大型项目的固定门槛 | 没有充分依据,只能作为特定项目经验 |
| 六个项目的商业复刻各需某个美元区间 | 论文未披露总账;只能作为假设驱动预算,不能当事实 |
旧对话没有充分覆盖的部分包括:
- prompt-only RLVR 与在线 rollout buffer;
- policy freshness 和 RM staleness;
- Agent trajectory 与可重建环境;
- train/eval contamination;
- 数据 provenance、许可、隐私与删除;
- 白盒 logit KD 和黑盒 sequence KD 的区别;
- teacher-independent evaluation;
- base checkpoint 对蒸馏与 RL 的限制;
- reward hacking 与合成数据 diversity;
- 人工数据、合成 SFT、偏好数据和 RL 算力成本的分账。
调研问题回答汇总¶
数据格式与内容¶
最简答案是:
- SFT:
prompt + ideal response; - 偏好:
prompt + chosen + rejected + 可选理由/强度; - 多维反馈:
prompt + response + attribute scores; - 过程监督:
prompt + 全部前缀 steps + 每步 label; - RLVR 源数据:
prompt + ground truth + verifier; - 在线 RL:当前 policy 生成的
rollout + reward + logprob/advantage metadata; - Agent RL:
environment state + action/tool call + observation + terminal outcome。
高质量还要求 prompt 与目标分布匹配、标签正确、候选有区分度、数据覆盖长尾、来源和版本完整、与当前 policy 足够新,并有独立 eval 证明它确实改善模型。
高成本来源¶
因为购买的不是“点击”,而是可信 reward:
模型越强,容易例越没有价值;团队要找到更难、更接近决策边界、但仍能可靠验证的样本。到这个阶段,稀缺专家、推理算力和研究工程通常比普通标注工资更重要。
既有模型蒸馏流程¶
只有 API 时,最实用的路线是:
真实 prompt pool
-> teacher 每题多采样
-> rule / test / ground truth 优先验证
-> AI judge 软评分
-> 人工审分歧和高风险
-> 最佳回答做 SFT
-> 强弱回答做 DPO / RM
-> 可验证任务再做 RLVR
-> 用独立评测和线上 failure 迭代
能访问 teacher logits 时,再加入 token-level KL distillation。无论哪种路线,都要保留 teacher、prompt、generation config、verifier、judge 和许可 provenance。
结论¶
数据确实可以决定 post-training 的方向和上限,但“高质量数据贵”的本质不是全球都在为同一次鼠标点击支付同样价格,而是:
随着模型能力上升,有价值的监督越来越接近人类稀缺知识、可靠验证和真实环境;同时,在线 RL 需要不断消费当前模型生成的新轨迹。数据成本因此从低端劳动力问题,逐渐变成专家、算力、环境、研究工程与治理的系统成本问题。
蒸馏是当前最现实的降本方法之一。它让强模型承担批量创作和初步判断,让人类集中于定义、验证、长尾和高风险;但只有当系统保留独立 ground truth、真实用户分布和严格评测时,蒸馏才是在转移知识,而不是规模化复制 teacher 的偏见。
主要来源¶
- Training language models to follow instructions with human feedback
- Learning to summarize with human feedback
- Training a Helpful and Harmless Assistant with RLHF
- Anthropic HH-RLHF dataset card
- Direct Preference Optimization
- Let’s Verify Step by Step
- PRM800K dataset
- HelpSteer2 paper
- HelpSteer2 dataset card
- OpenAssistant Conversations
- Chatbot Arena
- UltraFeedback
- UltraFeedback dataset card
- RLAIF vs. RLHF
- DeepSeek-R1, 2026 revision
- Distilling the Knowledge in a Neural Network
- Sequence-Level Knowledge Distillation
- MiniLLM
- Self-Instruct
- LIMA
- The Curse of Recursion