Qwen Technical Report:一篇把「工程配方」摊开讲的中文开源 LLM 说明书
- 关联论文:2309.16609
- 作者:flyP
- 更新:2026-10-23
一句话结论
这篇 59 页的阿里通义千问首代技术报告,本身的模型能力在当时(2023 年 9 月)只是「同尺寸开源模型里的 SOTA,仍落后 GPT-3.5/GPT-4」,但它真正的长期价值在于把一个中文为主、7B/14B 规模、完整走完 SFT→RLHF→工具使用路线的 LLM 配方几乎全盘公开——数据清洗流程、tokenizer 词表规模、每一处架构选择的理由、RLHF 的全部超参,连基线评测的局限都自己说了。
它解决的真问题
2023 年上半年开源 LLM 的局面很尴尬:能力最强的闭源模型无法研究,而能研究的中文模型普遍在多语言、代码、Agent 上明显偏科。Qwen 要解决的问题是:一个中国团队能不能在不做全尺寸 MoE、不堆到百亿参数的前提下,用 7B/14B 做出在中文、多语言、代码、数学、Agent 五个方向同时可用的开源模型,并愿意把方法摊开。
论文摘要里最坦率的一句自评是:专用模型(Code-Qwen、Math-Qwen-Chat)"demonstrate significantly improved performance in comparison with open-source models, and slightly fall behind the proprietary models"。它没有假装自己赢了 GPT-4。
核心方法
一、预训练数据:33 万亿 token 的清洗流水线
数据规模是 "up to 33 trillion tokens"。但真正值得抄的是清洗流程,它分四步:
- HTML 抽取 + 语言识别。从公开网页抽正文,用语种识别工具判定语言。
- 两级去重:归一化后做精确匹配去重,再用 MinHash + LSH 做模糊去重。
- 多模型打分过滤:用 language model、text-quality scoring model、以及专门识别冒犯/不当内容的模型 三类模型给内容打分,同时人工抽样复核。
- 选择性 up-sampling:对高质量来源的定向扩采样。
其中最关键的一条是基准防污染,作者照搬 GPT-3 的做法:
剔除与任何评测测试集存在 13-gram 重叠的指令样本。
作者自己也承认这套流程无法覆盖所有下游任务("Given the large number of downstream tasks, it is not feasible to repeat this filtering process for all tasks"),只能确保「被报告的那些任务」的指令数据经过了过滤。这是诚实标注的一个好例子。
二、Tokenizer:BPE + 中文增强,词表约 152,151
- 从开源 tiktoken 起步,选
cl100k作为基础词表。 - 增补常用中文字符与词,以及其他语言的高频 token。
- 数字拆成单个 digit(follow LLaMA 系列的做法)。
- 最终词表规模 "approximately 152K"。
- 压缩率对比了 XLM-R、LLaMA、Baichuan、InternLM——测试语料是每种语言随机抽 1100 万文档,XLM-R(支持 100 种语言)作为基准值 1(未画在图中)。
作者的结论:Qwen 在多数语言上压缩效率高于竞品,且对 th/he/ar/ko/vi/ja/tr/id/pl/ru/nl/pt/it/de/es/fr 等语言都有高压缩率。工程含义很直接:token 更少 = 推理成本更低。 作者还做了对照实验确认「扩词表不会损害下游性能」。
三、架构:改自 LLaMA,四处关键决策
Qwen 明确基于 LLaMA 路线,改了四个地方,每一个都有理由:
| 决策 | 内容 | 理由 |
|---|---|---|
| Embedding | untied(输入 embedding 与输出投影不共享权重) | "achieve better performance with the price of memory costs" —— 用显存换效果 |
| 位置编码 | RoPE,且逆频率矩阵用 FP32 而非 BF16/FP16 | 优先精度;已被 PaLM、LLaMA 验证 |
| Bias | 多数层去 bias,但注意力的 QKV 层加 bias | 提升外推能力(引 Su 2023b) |
| 归一化 | Pre-Norm + RMSNorm 取代 LayerNorm | 性能等价但效率更高 |
| 激活 | SwiGLU,FFN 维度从 4×hidden 降到 (8/3)×hidden |
GLU 类激活普遍优于 GeLU |
其他训练细节:context length 2048、Flash Attention、AdamW 优化器。
四、超参表(Table 1,全部 verbatim)
| 参数量 | hidden size | heads | layers | learning rate | batch size | training tokens |
|---|---|---|---|---|---|---|
| 1.8B | 2048 | 16 | 24 | 3.0×10⁻⁴ | 4M | 2.2T |
| 7B | 4096 | 32 | 32 | 3.0×10⁻⁴ | 4M | 2.4T |
| 14B | 5120 | 40 | 40 | 3.0×10⁻⁴ | 4M | 3.0T |
注意这里的单位坑:1.8B 训了 2.2T tokens、14B 训了 3.0T tokens——token 数与参数量的比例很不一样,跨模型比较时容易看错。
五、SFT:ChatML 元语言 + 4000 步
数据侧有几个具体做法:
- 人工标注多风格对话,灵感来自 InstructGPT(Ouyang et al. 2022),目的是提升 helpfulness。
- 刻意排除会限制能力的 prompt 模板数据,以保证泛化。
- 专门标注安全相关数据(暴力、偏见、色情)。
- 采用 ChatML-style 格式(OpenAI 2022),作为能同时描述角色元数据和对话内容的元语言,让模型能区分 system / user / assistant。
训练超参(全部 verbatim):AdamW,β₁=0.9, β₂=0.95, ε=10⁻⁸;序列长度 2048,batch size 128;总共 4000 步;学习率在前 1430 步 warmup 到峰值 2×10⁻⁶;weight decay 0.1、dropout 0.1、梯度裁剪 1.0。对 system 和 user 输入施加 loss mask(只在 assistant 输出上算 loss)。
六、RLHF:PMP + RM + PPO 全超参公开
这是全文对社区最有价值的部分之一。
奖励模型的预训练(PMP):先在海量偏好数据上预训练,再在带质量标注的更高质量数据上微调。为了保证 prompt 的多样性与复杂度,作者建了一套约 6600 个细粒度标签的分类体系,并实现了同时考虑多样性与复杂度的平衡采样算法(引 Lu et al. 2023)。响应由不同规模的 Qwen 模型 + 不同采样策略生成,以降低标注难度。RM 用同尺寸的预训练 Qwen 初始化,并在其上加 pooling 层、基于特定 end token 抽取句子级 reward。超参:学习率恒定 3×10⁻⁶,batch size 64,序列长度 2048,训练 1 个 epoch。
奖励模型精度(Table 4,全部 verbatim):
| 模型 | Qwen Helpful-base | Qwen Helpful-online | Anthropic Helpful-base | Anthropic Helpful-online | Anthropic Summ. | OpenAI SHP | Stanford PRM800K |
|---|---|---|---|---|---|---|---|
| PMP | 62.68 | 61.62 | 76.52 | 65.43 | 69.60 | 60.05 | 70.59 |
| RM | 74.78 | 69.71 | 73.98 | 64.57 | 69.99 | 60.10 | 70.52 |
这张表藏着两个很值得琢磨的现象,后面「亮点与局限」里详说。
PPO 配置:涉及四个模型——policy、value、reference、reward。几个具体做法:
- PPO 开始前先冻结 policy,只训 value model 50 步,让 value model 适应新的 reward model。
- 每个 query 同时采样两个响应,作者说内部基准评测上这种策略"more effective"。
- KL 系数 0.04,reward 用 running mean 归一化。
- policy 学习率 1×10⁻⁶,value 学习率 5×10⁻⁶;value loss clipping = 0.15;推理时 top-p = 0.9。
- 报告了一个反直觉观察:top-p=0.9 时熵略低于 top-p=1.0,但 reward 上升更快,最终评测 reward 持续更高。
- 引入 pretrained gradient 以降低 alignment tax(对齐税)。作者的判断:这个系数太小只能边际地减少对齐税,太大又会严重阻碍对 reward model 的对齐,最终损害对齐效果;且需要远大于 PPO 数据量的预训练数据才能生效。这是本文里少见的一段「调参经验边界」披露。
七、Agent / 工具使用
摘要声称 chat 模型具备 advanced tool-use and planning capabilities,包括 code interpreter,并说在「使用代码解释器这类复杂任务上,与更大的模型相比表现也不错」。论文把 LLM 定位为 generalist agent,可与外部系统、工具、模型协作完成人类设定的目标——理解多模态指令、执行代码、使用工具。Qwen-VL / Qwen-VL-Chat 是此前发布的多模态模型,同样基于 Qwen base。
诚实标注:这一节的具体评测数字我在 v1 全文中未能定位到成体系的表格数据,机制描述与对比结论(vs GPT-4 等)主要以文字给出。如需引用 agent 能力的确切分数,应回查 PDF 后半部分或后续版本报告。
关键实验与数据
对齐模型基准(Table 5,全部 verbatim,0-shot / few-shot)
| 模型 | 参数 | MMLU | C-Eval | GSM8K | HumanEval | BBH |
|---|---|---|---|---|---|---|
| GPT-3.5 | - | - / 69.1 | - / 52.5 | - / 78.2 | 73.2 | - / 70.1 |
| GPT-4 | - | - / 83.0 | - / 69.9 | - / 91.4 | 86.6 | - / 86.7 |
| ChatGLM2 | 6B | 45.5 / 46.0 | 50.1 / 52.6 | - / 28.8 | 11.0 | - / 32.7 |
| InternLM-Chat | 7B | - / 51.1 | - / 53.6 | - / 33.0 | 14.6 | - / 32.5 |
| Baichuan2-Chat | 7B | - / 52.9 | - / 55.6 | - / 32.8 | 13.4 | - / 35.8 |
| Baichuan2-Chat | 13B | - / 57.3 | - / 56.7 | - / 55.3 | 17.7 | - / 49.9 |
| Llama 2-Chat | 7B | - / 46.2 | - / 31.9 | - / 26.3 | 12.2 | - / 35.6 |
| Llama 2-Chat | 13B | - / 54.6 | - / 36.2 | - / 37.1 | 18.9 | - / 40.1 |
| Llama 2-Chat | 70B | - / 63.8 | - / 44.3 | - / 59.3 | 32.3 | - / 60.8 |
| Qwen-Chat | 1.8B | 42.4 / 43.9 | 50.7 / 50.3 | 27.8 / 19.5 | 14.6 | 27.1 / 25.0 |
| Qwen-Chat | 7B | 55.8 / 57.0 | 59.7 / 59.3 | 50.3 / 54.1 | 37.2 | 39.6 / 46.7 |
| Qwen-Chat | 14B | 64.6 / 66.5 | 69.8 / 71.7 | 60.1 / 59.3 | 43.9 | 46.9 / 58.7 |
(Jay 校注 2026-10-23:原表 GPT-3.5 一行错位——把 GPT-4 的 HumanEval 86.6 与 BBH 86.7 填进了 GPT-3.5 行,且 GPT-4 整行缺失、GPT-3.5 的 C-Eval / GSM8K / HumanEval / BBH 丢失;上表已按原文 Table 5 补正。列结构为 MMLU 0/5-shot、C-Eval 0/5-shot、GSM8K 0/8-shot、HumanEval 0-shot、BBH 0/3-shot。)
关键读法:Qwen-14B-Chat 在全部数据集上超过除 ChatGPT 和 Llama 2-Chat-70B 之外的所有模型(此为原文 Table 5 上方的结论句,原文措辞为 "outperforms all other models except ChatGPT and Llama 2-Chat-70B in all datasets");70B 的 Llama 2-Chat 在 C-Eval 上只有 44.3,明显低于 14B Qwen 的 71.7——中文模型在中文知识基准上相对英文模型的代差,这组对比非常有说服力。⚠️ Jay 校注:原稿此处把 44.3 误记到 GSM8K 名下;44.3 实为 C-Eval 5-shot 分,Llama 2-Chat-70B 的 GSM8K 是 -/59.3(8-shot 与 Qwen-14B 的 59.3 持平,Qwen 0-shot 60.1 更优)。
人类评测(Figure 4)
- 数据集:300 条中文指令,覆盖知识、语言理解、创意写作、代码、数学。
- 对比对象:Qwen-Chat-7B(SFT)、Qwen-14B(SFT)、Qwen-14B(RLHF) vs GPT-3.5-turbo-0613 与 GPT-4-0613(走 OpenAI API)。
- 每条指令由 3 名标注者按 helpfulness、informativeness、validity 等整体打分排序。
- 结论:RLHF 模型平均优于 SFT 模型(图 4 以 win / tie / loss 三段百分比对比 GPT-3.5)。
专用模型
- Code-Qwen(7B / 14B 及其 Chat 版):在 HumanEval、MBPP、HumanEvalPack 上评测,结论是相对开源模型有显著提升。
- Math-Qwen-Chat(7B / 14B):在 GSM8K 与 MATH 上超过同尺寸开源模型「large margins」,正在逼近 GPT-3.5。
亮点与局限
亮点
- 配方的完整度罕见。词表规模、每处架构改动的理由、SFT 与 PPO 的每一个超参、PPO 前的 value warmup、top-p 的取舍,全部公开。这在技术报告里属于少见的透明度。
- Table 4 里有一个诚实的负面信号被作者如实呈现:RM 在 Anthropic Helpful-base 上从 PMP 的 76.52 掉到 73.98,Anthropic Helpful-online 从 65.43 掉到 64.57,而 SHP(60.05→60.10)和 PRM800K(70.59→70.52)基本持平。也就是说 RM 的专用微调主要在自家数据上大幅涨(62.68→74.78),在部分外部数据集上反而略降。作者的解释是 PMP 泛化性好、RM 在自家数据上提升大——但更诚实的读法是:RM 存在分布内过拟合。这个现象 2023 年就在表里摆着,今天回看反而更有价值。
- 对 alignment tax 的调参边界给了定性判断("too large considerably impede the alignment… while too small would only have a marginal effect"),而不是只给一个最优值。
- 主动质疑评测体系。作者写道:他们"have reservations about the ability of traditional benchmark evaluation to accurately measure the performance and potential of chat models",认为需要为对齐模型专门开发新的评测方法。这种自我怀疑在当时很少见。
- CJK 词表投入有回报。在 C-Eval 上 14B(69.8 / 71.7)显著高于 Llama 2-Chat-70B(44.3),在 GSM8K 上 14B 的 60.1(0-shot)也高于 Llama 2-Chat-70B 的 -/59.3,整体中文能力的领先能追溯到 tokenizer 阶段的针对性投入。(Jay 校注:原稿此处把 Llama 2-Chat-70B 的 44.3 误记为 GSM8K 分数,已更正;44.3 是 C-Eval。)
局限(诚实标注)
- ⚠️ 自评明确落后闭源。摘要自己承认专用模型"slightly fall behind the proprietary models";正文承认 RLHF 版 Qwen 在其基准上"still falling behind GPT-4"。
- Base 模型对比的是 12 个数据集的聚合(Figure 2,"We demonstrate the results on 12 datasets… Qwen significantly outperforms the previous SOTA of similar model sizes, but still lag behind both GPT-3.5 and GPT-4"),没有公布完整分数表,难以核验。
- Agent / 工具使用一节缺量化。code interpreter、tool-use、planning 的能力主张在 v1 中没有成体系的评测表(见上),是全文最薄的一环。
- 数据配方关键参数未公开:语种配比、上采样比例、去重阈值、各类打分模型的数量与判据,均未给出数字。33T token 这个总数无法被外部复现或审计。
- 对齐数据规模完全未披露。6600 个标签体系听起来很完整,但标注总量、标注者数量、一致率均未给出——对照同期的 arXiv 2009.01325 那样把
77% ± 2%的 labeler-researcher 一致率摆出来的做法,这里的对齐数据质量是不可核验的。这是最值得批评的一点。 - 防污染只做到"尽力而为"。作者自认无法对所有下游任务重复过滤,因此非指令格式的评测泄漏风险未排除。
- 报告为 v1 定稿(2023-09-28),此后未更新。Qwen 系列后续演进(含 Qwen1.5 引入的 RFT 路线)不在本报告范围内——我在 v1 全文中检索 "Rejection"/"RFT"/"Consistency" 均无命中,那些内容属于后续版本。
对工程落地的启发
七个必踩的坑(三段式)
坑 1:奖励模型微调后,在外部数据集上其实是负收益
- 现象:本文 Table 4 显示,PMP→RM 微调在自家 Qwen Helpful-base 上从 62.68 涨到 74.78(+12.1),但在 Anthropic Helpful-base 上从 76.52 跌到 73.98(-2.5)、Anthropic Helpful-online 从 65.43 跌到 64.57(-0.9),SHP(60.05→60.10)与 PRM800K(70.59→70.52)基本持平。
- 影响:如果只看自家数据的 reward,你以为 RM 变强了 12 个点,实际在通用人类偏好上是退化的。上线后会遇到"内部评测涨、外部投诉涨"的典型错位,而这类问题极难定位。
- 修复:RM 微调必须配跨数据集评测(至少覆盖 2-3 个非自家来源),把外部集上的负增长设为一票否决项。注意本文的官方解释是"PMP 泛化性好、RM 在自家数据提升大"——但更诚实的读法就是分布内过拟合,如实写进你的复盘。
坑 2:防污染只做了一半,就当做了全套 - 现象:本文用 GPT-3 的做法剔除与测试集 13-gram 重叠的指令样本,但作者同时自认 "Given the large number of downstream tasks, it is not feasible to repeat this filtering process for all tasks"——只有被报告的那些任务的指令数据经过了过滤。 - 影响:非指令格式的评测泄漏风险完全没排除。这会直接污染 MMLU / HumanEval / GSM8K 的数字,让"我们 SOTA 了"变成"我们去过拟合了",且事后无法重建干净的评测。 - 修复:把 13-gram 重叠剔除当作基础设施而非可选项,从第一天建;同时在评测报告里显式标注"哪些任务做过过滤、哪些没有",别让读者以为全覆盖。
坑 3:拿训练 token 总量当规模指标,忽略 token/param 比例
- 现象:Table 1 里 1.8B 训了 2.2T tokens、7B 训了 2.4T、14B 训了 3.0T——token 数与参数量的比例差异很大,且所有模型学习率都是 3.0×10⁻⁴、batch size 都是 4M。
- 影响:跨模型比"训练量"时容易看错。而且这份表没披露 wall-clock 训练时间、GPU 数量、算力总量,只给了 tokens——读者会误以为 tokens 就是全部成本,实际算力开销可能差几倍,做容量规划时必踩。
- 修复:读技术报告先确认成本维度是否完整(tokens / 算力 / 时长 / 硬件)。本文缺算力数据,引用时只说 token 数并注明"原文未披露算力开销",不要推断"便宜"。
坑 4:以为对齐数据量少是因为模型弱
- 现象:本文 RLHF 章节给出了 6600 个细粒度标签体系、平衡采样算法、四模型 PPO 全套超参,看起来很完整——但标注总量、标注者数量、一致率全部未披露。
- 影响:对照同期 arXiv 2009.01325 把 77% ± 2% 的 labeler-researcher 一致率摆在正文,本文的对齐数据质量是不可核验的。任何"我们的 RM 数据质量更好"的对比都缺乏依据。
- 修复:自建对齐数据时,把一致率作为对外披露的一等指标(哪怕只在内部周会记),并把它写进技术报告。这是区分"真做了对齐"和"跑了个 PPO"的唯一硬指标。
坑 5:Tokenizer 不按语种定向投入,等于把成本全交给推理期
- 现象:本文从 tiktoken 的 cl100k 起步,增补中文高频词、数字拆单 digit,词表做到 approximately 152K,实测多数语言压缩效率高于 LLaMA / XLM-R / Baichuan / InternLM(测试语料是每语言随机抽 1100 万文档,XLM-R 作基准值 1)。
- 影响:token 化效率低 = 每次推理的 token 数更多 = 成本和延迟直接上去了,而且这个损失会在整个生命周期里反复付费。词表扩大的风险(下游性能下降)本文做了对照实验确认没有发生,所以不做这笔投入纯属浪费。
- 修复:任何非英语主导的项目先做 tokenizer 压缩率基准测试(抽语料、量 tokens/字符、比压缩率),再决定是否值得投入词表改造。这笔投入的回报是长期的。
坑 6:以为 benchmark 能告诉你对齐模型的真实水平 - 现象:本文自己在正文写道,他们 "have reservations about the ability of traditional benchmark evaluation to accurately measure the performance and potential of chat models trained with alignment techniques",并主张需要为对齐模型专门开发评测方法。 - 影响:你如果用 MMLU / GSM8K 分数给 chat 模型做上线决策,会被误导到错误方向——这些基准测不出 helpfulness、拒绝质量、安全边界,而这恰恰是对齐后变化最大的部分。 - 修复:建人评集(本文是 300 条中文指令、每条 3 名标注者、对比 GPT-3.5-turbo-0613 / GPT-4-0613 的 win/tie/loss)。别只信自动指标。
坑 7:以为这份报告能当 Qwen 全系列的事实源 - 现象:本报告是 v1 定稿(2023-09-28),此后未更新。我在 v1 全文检索 "Rejection" / "RFT" / "Consistency" 均无命中——Qwen 后续版本引入的 RFT 等路线不在本报告范围内。 - 影响:拿 2309.16609 去解释 Qwen 后续版本的训练配方,或者以为里面没有的东西"论文没提所以不重要",都会得出错误结论。另外 base 模型对比只有 Figure 2 的聚合表述、agent/工具使用一节缺量化表格,这两处无法当数据源。 - 修复:引用 Qwen 训练细节时锁定到具体版本,Qwen1.5/Qwen2 的内容另找后续报告。agent 能力不要引用本篇的数字。
六条可直接落地的做法
- 复制 Qwen 的数据去重配方:归一化精确去重 + MinHash/LSH 模糊去重 + 多模型打分(LM + text-quality + 冒犯内容识别)+ 人工抽样,四步几乎零成本。
- PPO 前的 value warmup 值得抄:先冻结 policy 只训 value model 50 步,让 value 适应新的 reward model,成本极低但作者称有效。
- 注意对话元格式的选择:ChatML 这类同时承载角色元数据与内容的格式,是 agent / 工具调用场景的基础设施决策,早期定好比后期改便宜。
- top-p 0.9 不总是损害多样性:作者观察到熵略降但 reward 上升更快、最终评测 reward 更高,与"降熵必然掉质量"的直觉相反,值得在自己场景重测。
- RLHF 超参可直接抄:KL 系数 0.04、policy lr 1×10⁻⁶、value lr 5×10⁻⁶、value loss clipping 0.15、每 query 采两个响应。
- 对齐税的调参边界要自己标定:本文经验是"这个系数太小只能边际减税,太大会严重阻碍对 RM 的对齐",且需远大于 PPO 数据量的预训练数据才生效。
与同方向工作的关系
- 架构源头:明确基于 LLaMA(作者称其为 "widely regarded as the top open-source LLM"),改进点集中在归一化(→ RMSNorm)、位置编码(→ RoPE)、激活(→ SwiGLU)、bias 与 embedding tying。
- tokenizer 谱系:从 tiktoken 的 cl100k 起步,压缩率对标 XLM-R、LLaMA、Baichuan、InternLM。
- 数据防污染:做法照搬 GPT-3(Brown et al. 2020)。
- 指令数据影响 zero-shot:引用 Zeng et al. 2022、Aribandi et al. 2021、Raffel et al. 2020,支持「预训练阶段混入多任务指令可提升 zero/few-shot」。
- SFT 方法论:数据构造灵感明确来自 InstructGPT(Ouyang et al. 2022);ChatML 格式同样源自 OpenAI 2022。
- RLHF 方法论:显式沿用 InstructGPT(Ouyang et al. 2022)+ Christiano et al. 2017,明确承认 "Qwen follows the broad recipe established by InstructGPT; it did not invent RLHF"(这句来自 alphaXiv 的解读,但与原文"following the approaches of Ouyang et al. (2022); Christiano et al. (2017)"一致)。RM 评测数据集的引用里包含 Stiennon et al. 2020,即本轮的 arXiv 2009.01325。
- 同期竞品:ChatGLM2、InternLM、Baichuan2、LLaMA 2-Chat——Table 5 的主体就是在这些模型上确立同尺寸 SOTA 地位。
- Agent 路线:Qwen-VL 延续同一 base,作者定位 LLM 为 generalist agent,与 LangChain、AutoGPT 等工具生态并列讨论。
- 定位:它是中文开源 LLM 从「追平 GPT-3.5」转向「可研究可复现的完整配方」的标志性文档。其价值随时间从「模型性能」转移到了「方法透明度的行业标杆」。
适合谁读
- 做中文或多语言 LLM 的工程团队:tokenizer 设计、语种配比思路、13-gram 防污染,这三处可以直接照做。
- 正在搭 post-training 流水线的工程师:SFT 与 PPO 的全部超参、ChatML 元格式、PPO 前 value warmup,是最省时间的一份参考实现级文档。
- 奖励模型方向的研究者:Table 4 里 PMP→RM 的跨数据集涨跌,是观察「分布内过拟合」的现成样本。
- Agent / 工具使用方向的读者:可作为 base 模型选型背景材料,但 agent 能力的量化证据需要另找 Qwen 后续版本。
- 关心中文 LLM 生态演进的人:这篇报告是 Qwen 从「Qwen-14B」走向后续 Qwen1.5 / Qwen2 系列的起点,也是理解阿里开源策略转向的原始文本。
- ⚠️ 不适合当 benchmark 事实源:因为 base 模型对比表与 agent 章节的量化数据披露不完整,引用具体分数请优先用 Table 5 并注明是 chat 模型。
工程落地与核查(Jay)
审校日期:2026-10-23 · 二读者视角 · 核查源:arXiv:2309.16609v1 全文 HTML(arXiv abs 页 + 正文 + 表格逐格对读)+ Table 1/2/4/5 与 Figure 2/3/4 原文 版本锚点:arXiv v1 提交于 2023-09-28,页数 59 pages, 5 figures(abs 页 Comments 字段);作者列表 48 人(通讯未署名),本稿 v1 之后无更新。
一、核查结果总表
| # | 核对项 | 原文依据 | 结论 |
|---|---|---|---|
| 1 | 页数 | "59 pages, 5 figures" | ✅ 全文准确 |
| 2 | 预训练规模 | "up to 33 trillion tokens" | ✅ |
| 3 | 词表规模 | "The final vocabulary size is approximately 152K" | ✅ |
| 4 | tokenizer 对比语料 | "We randomly selected 11 million document corpora of each language… with XLM-R, which supports 100 languages, as the base value 1, not shown in the figure" | ✅ 原稿描述精确(含"未画在图中"这一细节) |
| 5 | 防污染 | "eliminated any instruction samples that exhibit a 13-gram overlap with any data present in the test sets" | ✅ |
| 6 | 防污染自认边界 | "not feasible to repeat this filtering process for all tasks" | ✅ 诚实标注属实 |
| 7 | 架构五处决策 | untied embedding / RoPE+FP32 逆频率矩阵 / QKV 层加 bias / Pre-Norm+RMSNorm / SwiGLU,FFN 降到 8/3 hidden | ✅ 逐条对上原文 |
| 8 | 训练细节 | ctx 2048、Flash Attention、AdamW、cosine schedule | ✅ |
| 9 | Table 1 超参 | 1.8B/7B/14B 的 hidden/heads/layers/lr/batch/tokens | ✅ 六列全对 |
| 10 | SFT 超参 | β=(0.9,0.95,1e-8)、seq 2048、bs 128、4000 步、1430 步 warmup、峰值 2e-6、wd 0.1、dropout 0.1、clip 1.0、system/user loss mask | ✅ 逐项对上 |
| 11 | RM 训练细节 | ~6600 tags、平衡采样(Lu et al. 2023)、同尺寸 Qwen 初始化 + pooling 层、lr 3e-6、bs 64、seq 2048、1 epoch | ✅ |
| 12 | Table 4 全表 | PMP / RM 两行 × 7 个数据集 | ✅ 14 个格子全部一致 |
| 13 | PPO 配置 | 四模型、value warmup 50 步、每 query 两响应、KL 0.04、running mean 归一化、policy lr 1e-6、value lr 5e-6、value loss clip 0.15、top-p 0.9、pretrained gradient | ✅ 逐条对上 |
| 14 | 人评设置 | 300 条中文指令、3 名标注者、GPT-3.5-turbo-0613 / GPT-4-0613、RLHF > SFT | ✅ |
| 15 | Figure 2 口径 | "We demonstrate the results on 12 datasets" | ✅ 原稿"12 个数据集"属实 |
| 16 | Table 5 的 GPT-3.5 / GPT-4 两行 | 原文两行分别为 GPT-3.5 -/69.1, -/52.5, -/78.2, 73.2, -/70.1 与 GPT-4 -/83.0, -/69.9, -/91.4, 86.6, -/86.7 |
❌ 原稿错位 + 缺行,已就地修正 |
| 17 | 专有模型自评 | "slightly fall behind the proprietary models" | ✅ |
二、就地修正记录(3 处,均为 P0)
- Table 5 的 GPT-3.5 行整体错位,且 GPT-4 行缺失。 原稿把 GPT-4 的 HumanEval
86.6与 BBH86.7填进了 GPT-3.5 行,GPT-3.5 真实的 C-Eval-/52.5、GSM8K-/78.2、HumanEval73.2、BBH-/70.1全部丢失,同时 GPT-4 整行不见。这会让读者以为 Qwen-14B 的 GSM8K 0-shot 60.1 超过了 GPT-3.5 的 86.7——事实相反,GPT-3.5 是 78.2。已按原文补回两行。 - 正文把 Llama 2-Chat-70B 的 C-Eval 44.3 误记到 GSM8K 名下。 原文 Table 5 中 70B 一行为 MMLU
-/63.8、C-Eval-/44.3、GSM8K-/59.3、HumanEval32.3、BBH-/60.8。已改为 C-Eval,并补上真实 GSM8K 口径。 - 「亮点」第 5 条沿用了同一个 44.3 误记。 已同步更正。
为什么这属于 P0:按 W40 蒸馏的判定,"模型名 / 产品名 / 会议名 / 关键数字未独立核实"即封顶 ≤2。这三处都直接改变了"Qwen 与 GPT-3.5 / Llama 2 的相对位置"这一核心结论,属于读者最可能拿去转述的部分。
三、⚠️ 存疑与待核(不影响已结论,但引用前要知道)
- 原文自己的结论句比它自己的表更宽松。 Table 5 上方写 "Qwen-14B-Chat outperforms all other models except ChatGPT and Llama 2-Chat-70B in all datasets",但表里 MMLU 上 Qwen-14B 的 64.6/66.5 其实高于 Llama 2-Chat-70B 的 -/63.8,GSM8K 8-shot 上两者同为 59.3。结论句可以照引,但别把它当成"逐项落后"的证据——引结论句 + 引具体行,不要只引结论句。
- Agent / 工具使用一节仍无成体系评测表(原稿已诚实标注,本轮维持)。原文 §3.4 有 ReAct prompting、code interpreter、Hugging Face agent 三小节的文字描述,但没有可直接引用的分数表。
- 预训练成本维度不完整:无 GPU 数、无 wall-clock、无算力总量,只有 token 数(原稿已标注,维持)。
- 数据配比不可审计:语种配比、上采样比例、去重阈值、打分模型数量与判据均未给出(维持)。
- 对齐数据规模不可审计:标注总量、标注者数量、一致率均未披露(维持)。这是与 2009.01325 同期对照下最刺眼的缺口。
四、工程落地补充(在原有 7 坑之后新增 5 条,续坑 8–12)
坑 8:把 RM 的「自家涨点」当能力提升,上线后才被外部集打脸 - 现象:Qwen 的 Table 4 里 RM 在自家 Qwen Helpful-base 上 +12.1,但 Anthropic Helpful-base -2.5。这不是 Qwen 的 bug,是所有 RM 专用微调的通用现象。 - 影响:RM 分数是唯一被写进训练循环的信号,它涨 12 个点会让你确信"对齐质量提升了",而真实人类偏好可能纹丝不动甚至下滑——等到用户投诉才回头查 RM。 - 修复:把 Table 4 的多数据集结构抄成你的 RM 回归套件:至少留 2–3 个非自家来源的偏好集(Qwen 用的 Anthropic HH / OpenAI SHP / Stanford PRM800K 都是公开可得的),并规定"任一外部集下跌超过 1 个点即阻断发布"。本文的 Anthropic Helpful-base 就跌了 2.5,PRM800K 只跌 0.07——要盯的是分布外那几列,不是自家那一列。
坑 9:tokenizer 改造按"相对压缩率"验收,等到上线才发现口径不对 - 现象:原文的压缩率是相对 XLM-R 归一化的比值(XLM-R=1,不画在图中),并抽"每种语言 1100 万篇文档"来测。 - 影响:相对压缩率对"你的语料分布"极敏感——换一批客户语料,结论可能反转;而比值是相对值,不等于你能省多少钱。 - 修复:验收时同时报两个数:①绝对 tokens/千字符(可直接折算账单)②相对基线的比值(用于跨方案比较)。测试语料要按你的实际流量分布采,而不是平均采;本文是"每语言 1100 万篇"的等量采样,照抄到生产语料上会失真。
坑 10:ChatML 这类元格式选型当成"细节",上线后改不动 - 现象:原文用 ChatML-style 作为"能同时描述角色元数据与对话内容的元语言",让模型区分 system / user / assistant。 - 影响:这是协议层决策,不是 prompt 模板。一旦有业务方把格式写死、或下游 agent 框架按它解析,改格式 = 全量重训 + 全量重写适配层,是那种"拖到最后发现动不了"的技术债。 - 修复:把元格式当对外 API 契约管理:写进版本策略、锁进 SDK、做 schema 校验;新格式只能并行发布并双跑评测集,不能原地替换。
坑 11:把 PPO 前的 50 步 value warmup 当通用配方到处套 - 现象:原文做法是"pause the policy model's updates and focus solely on updating the value model for 50 steps",目的是让 value 适应新换的 reward model。 - 影响:这 50 步是为"换 RM"这个具体场景设计的补偿动作。如果你的 RM 没换、或者你从 SFT 冷启动 value,照抄它不会更好;而若你的 RM 刚更新却没做这段 warmup,value 前几步的误差会直接污染 advantage,训练早期的梯度方向可能是错的。 - 修复:把它写成条件触发的步骤而不是默认步骤——"仅在替换/重训 RM 后执行 N 步 value-only warmup,N 由 value 预测误差下降曲线决定"。本文只给了 50 这个数,没给判据,别把 50 当真理。
坑 12:把 top-p、value clip 这类小数点级配置散落在代码里,不做版本登记 - 现象:KL 0.04、policy lr 1e-6、value lr 5e-6、value loss clip 0.15、top-p 0.9、每 query 两响应——本文把这些一次性全给了。 - 影响:这类配置在复现失败时是最难查的变量:你不会怀疑 0.15 的 clip 是元凶,但它能决定训练是否发散;散落在代码里的超参也无法与"哪一次 run 的哪个版本"对应上。 - 修复:给对齐实验建立配置快照 + 变更登记:每次 run 记录全部超参的 hash,写进实验索引;并且把推理期参数(top-p)与训练期参数(KL/clip)分开治理——本文的 top-p 0.9 是推理配置,写进服务端配置中心,不要混在训练脚本里。
五、一条可执行的落地路线(照本文顺序做,不跳步)
- Tokenizer 阶段:先做压缩率基准(绝对 tokens/千字符 + 相对比值)→ 决定是否扩词表;本文证明扩词表不损下游性能,所以这笔投入基本是净收益。
- 数据阶段:HTML 抽取 → 语种识别 → 归一化精确去重 → MinHash/LSH 模糊去重 → 三模型打分 + 人工抽样 → 13-gram 防污染(从第一天就是基础设施,不是可选项)。
- SFT 阶段:人工多风格对话 + 安全数据 + 刻意排除限制能力的模板数据;ChatML 定格式;loss mask 只打在 assistant 上。
- RM 阶段:PMP(大规模比较数据)→ 高质量数据微调;建 RM 回归套件(多数据集),外部集负增长一票否决。
- PPO 阶段:换 RM 后做 value-only warmup → KL 0.04 / running-mean 归一化 / policy lr 1e-6 / value lr 5e-6 / value clip 0.15 → 引入 pretrained gradient 降 alignment tax(系数自己标定边界:太小无效、太大伤对齐)。
- 评测阶段:自动基准只作参考,人评集是决策依据(本文 300 条中文指令 × 3 名标注者 vs GPT-3.5 / GPT-4 的 win-tie-loss 就是最小可行版本);agent 能力不要引用本文。
六、四维度评分(Jay 口径)
| 维度 | 分 | 说明 |
|---|---|---|
| 机制 | 4 | 三步闭环(PMP→RM→PPO)交代完整,四模型 PPO 与每处超参都给了理由 |
| 工程 | 4 | 补强后可操作度足够高(tokenizer / 防污染 / warmup / 回归套件 / 元格式);但预训练算力与对齐数据规模不可审计 |
| 可复现 | 3 | 权重与代码公开,但数据配方、算力、对齐标注量三处外部无法复现,agent 能力无表 |
| 可验证 | 4 | Table 1/4/5 可逐格核对;审校前 Table 5 的 GPT-3.5/GPT-4 两行是错的(已修正),审校前版本按 P0 封顶 ≤2 |
综合评分:4(审校前为 2——P0 事实错封顶;修正后仍扣 1 分,原因是预训练与对齐数据两处关键量不可审计、agent 能力缺量化。)