Qwen2.5 论文解读:18T 数据喂出来的全家桶,开源阵营最像”平台”的一次发布
论文:Qwen2.5 Technical Report 作者:An Yang, Baosong Yang, Beichen Zhang, Binyuan Hui, Bo Zheng, Bowen Yu 等 42 人(Qwen Team, Alibaba) 这不是一篇”我们提出了新架构”的论文,而是一份”我们怎么把工程做到极致”的答卷。从 7T 到 18T 数据、从 0.5B 到 72B 七档尺寸、从纯文本到代码/数学/视觉/音频四条专业线——Qwen2.5 想说的事情只有一件:开源模型不该只是一个 checkpoint,它应该是一个平台。
一、先说结论:这玩意儿到底强在哪
开门见山。Qwen2.5-72B-Instruct 在 MMLU 上拿到 85+,HumanEval 85+,MATH 80+。什么概念?它用 72B 参数逼近了 Llama-3-405B-Instruct 的表现——对面可是 5 倍体量的怪物。
但真正让我觉得”这次不一样”的,不是单个模型的跑分,而是整个发布的矩阵感:
- 7 个 dense 尺寸(0.5B / 1.5B / 3B / 7B / 14B / 32B / 72B),全部开源权重
- 2 个 MoE 模型(Turbo / Plus),走 API 服务
- 4 条专业分支(Coder / Math / VL / Audio)
- 每个尺寸都有 base + instruct + 量化版
这不是发模型,这是铺货架。
二、架构:没有新发明,但每个螺丝都拧紧了
1. 基础结构
Qwen2.5 的架构和 Qwen2 一脉相承,没有搞什么惊世骇俗的新设计。核心组件:
- 分组查询注意力(Grouped Query Attention, GQA):KV head 数量远小于 Q head,推理时 KV Cache 占用直降。7B 模型 28 个 Q head 只配 4 个 KV head,72B 是 64 个 Q head 配 8 个 KV head。
- SwiGLU 激活函数:替代传统 FFN,同等参数量下表达能力更强。
- 旋转位置编码(RoPE):配合 QKV bias,长序列外推的基础。
- RMSNorm + Pre-Normalization:训练稳定性的老搭档。
一句话总结:全是业界验证过的最优实践,没有一个是”我们发明的”,但组合在一起就是当前 dense decoder-only 的最优解。
2. 七档尺寸矩阵
| 模型 | 层数 | 隐藏维度 | 中间层维度 | Q Heads | KV Heads | 非嵌入参数 |
|---|---|---|---|---|---|---|
| 0.5B | 24 | 896 | 4864 | 14 | 2 | ~0.4B |
| 1.5B | 28 | 1536 | 8960 | 12 | 2 | ~1.3B |
| 3B | 36 | 2048 | 11008 | 16 | 2 | ~2.7B |
| 7B | 28 | 3584 | 18944 | 28 | 4 | ~6.5B |
| 14B | 48 | 5120 | 27648 | 40 | 8 | ~13B |
| 32B | 64 | 5120 | 27648 | 40 | 8 | ~31B |
| 72B | 80 | 8192 | 29568 | 64 | 8 | ~67B |
注意 14B 和 32B 的隐藏维度相同(都是 5120),区别在层数(48 vs 64)。这说明 Qwen 团队在中等尺寸上选择了”加深而非加宽”的策略——更深的网络在推理任务上通常有更好的表现,而推理成本的增长相对可控。
3. 分词器
字节级 BPE(Byte-level BPE),常规 token 151,643 个,控制 token 从 Qwen2 的 3 个扩充到 22 个——其中新增了 2 个工具调用相关的特殊 token。这意味着 Qwen2.5 从 tokenizer 层面就为 function calling 和结构化输出做了准备。
三、18T 数据工程:真正的护城河在这里
1. 从 7T 到 18T:不只是堆量
Qwen2 用了 7T token,Qwen2.5 直接翻到 18T。但论文里更值得关注的不是这个数字本身,而是数据质量的工程化手段:
- 用 Qwen2-Instruct 做数据过滤——让模型自己判断哪些数据值得学
- 混入 Qwen2.5-Math 和 Qwen2.5-Coder 的专业数据——通用模型也能吃到专业数据的红利
- 用大型 instruct 模型生成合成数据——高质量问答对、推理链
- 领域重新平衡(domain rebalancing)——避免某些领域过拟合
这套打法的核心逻辑是:数据质量的提升比数据数量的提升更有性价比。18T 里面如果有一半是垃圾,不如 10T 全是精品。
2. 多语言覆盖
支持 29+ 种语言。中英双语是基本盘,但欧洲语言、日韩、阿拉伯语、东南亚语言都有覆盖。对于做国际化产品的团队来说,这意味着不用为每种语言单独训一个模型。
3. 长上下文训练
标准模型的预训练序列长度从 4,096 拉到 32,768。Turbo(MoE 版本)更激进,走了渐进式路线:32K → 64K → 128K → 256K,RoPE base frequency 拉到 10,000,000。
最终效果:所有开源模型支持 131,072 token(128K)输入,生成上限 8,192 token(8K)。Turbo 版本理论上能处理 1M token。
四、Dual Chunk Attention:长文本的关键拼图
1. 问题是什么
RoPE 的外推能力有限。你训练时只见过 32K 的序列,推理时突然来一个 128K 的请求,位置编码直接崩。传统做法是硬插值(NTK-aware scaling、YaRN),但效果有上限。
2. DCA 怎么解决
双块注意力(Dual Chunk Attention, DCA) 的思路是把长序列切成若干 chunk:
- 块内(intra-chunk):正常的相对位置建模,每个 chunk 内部用标准 attention
- 块间(inter-chunk):对 chunk 之间的相对位置做额外建模
这样做的好处是:模型不需要”记住”128K 个位置的绝对关系,只需要处理 chunk 内的短距离关系 + chunk 间的长距离关系。配合 YaRN 做频率外推,实现了 4 倍的上下文扩展——32K 训练的模型直接推到 128K。
3. 工程意义
DCA 不是 Qwen2.5 首创(Qwen2 就用了),但 Qwen2.5 把它变成了标配。所有 7 个开源尺寸都支持 128K,这不是”旗舰模型的专属功能”,而是”全家桶的标准配置”。
五、后训练:100 万条 SFT + 三阶段 RL
1. 监督微调(SFT)
- 数据量:超过 100 万条样本(Qwen2 是 50 万条,翻了一倍)
- 训练配置:两轮 SFT,序列长度 32,768,学习率 7e-6 → 7e-7(cosine decay),weight decay 0.1,gradient clipping 1.0
- 重点能力:长文本生成(8K+)、结构化数据理解(表格)、结构化输出(JSON)、多样化系统提示适配
2. 离线强化学习(Offline RL)
用 DPO(Direct Preference Optimization) 在约 15 万条偏好对上训练,聚焦四个方向:数学、代码、指令遵循、逻辑推理。数据质量通过人工审核 + 自动检测双重把关。
3. 在线强化学习(Online RL)
用 GRPO(Group Relative Policy Optimization) 配合奖励模型:
- 每个 query 采样 8 个 response
- 全局 batch size 2048
- 奖励模型打分,组内相对排序作为优化信号
这套”离线 DPO + 在线 GRPO”的组合拳,本质上是在说:先用人类偏好数据校准方向,再用模型自己的探索能力拔高上限。
4. Turbo 的特殊处理
MoE 版本的长上下文后训练走了不同路线:先做纯短文本 SFT,再混合长短文本 SFT。RL 阶段只用短文本——原因很现实:长序列的 RL 成本太高,奖励模型对长文本的打分也不够可靠。
六、专业分支:从通用模型到垂直利器
1. Qwen2.5-Coder
- 训练数据:5.5T token 的代码相关数据
- 开源尺寸:1.5B / 7B / 32B
- 亮点:7B 的 Coder 模型在 HumanEval 上超过了很多更大的通用模型
代码模型的训练不只是”多喂点 GitHub”。5.5T 里面包含了代码补全、代码生成、debug、代码审查、跨语言翻译等多种任务形态。
2. Qwen2.5-Math
- 开源尺寸:1.5B / 7B / 72B
- 推理范式:同时支持 CoT(Chain-of-Thought)、PoT(Program-of-Thought)、TIR(Tool-Integrated Reasoning)
- 数据来源:扩展的数学数据 + Qwen2-Math 生成的合成数据
- 语言:中英双语
TIR 是个有意思的设计——模型可以在推理过程中调用计算器、符号求解器。这不是”让模型假装算数”,而是”让模型知道什么时候该用工具”。
3. Qwen2-VL / Qwen2.5-Audio
视觉-语言和音频-语言模型作为多模态分支存在。Qwen2-VL-72B 在本次发布中得到了改进。这些模型共享 Qwen2.5 的语言骨干,在上面接了视觉编码器和音频编码器。
4. QwQ
推理增强模型,专注于复杂推理任务。可以理解为 Qwen 团队对 o1 类”思考型模型”的回应。
七、Benchmark 实战:数字说话
1. 旗舰表现
Qwen2.5-72B-Instruct 的核心数据:
| 基准 | 得分 | 对比 |
|---|---|---|
| MMLU | 85+ | 超越 Llama-3.1-70B,逼近 Llama-3-405B |
| HumanEval | 85+ | 代码生成第一梯队 |
| MATH | 80+ | 超越 GPT-4o(数学子集) |
72B 打 405B,参数量只有对方的 1/5.6。这不是”虽败犹荣”,这是”实际使用中几乎无感”。
2. 中坚力量
- 32B:对标 Phi-3.5-MoE-Instruct 和 Gemma2-27B-IT,在同等推理成本下表现更优
- 14B:单卡可跑的甜蜜点,适合企业私有化部署
- 7B:Coder 版本在代码任务上超越多数 14B 通用模型
3. 端侧模型
0.5B / 1.5B / 3B 覆盖手机、IoT、边缘设备。3B 模型在同类小模型中竞争力突出。
4. API 模型
- Qwen2.5-Turbo:对标 GPT-4o-mini,主打性价比
- Qwen2.5-Plus:对标 GPT-4o,主打全面能力
八、开源策略与许可证
大部分模型采用 Apache 2.0 协议——这是最宽松的开源许可之一,商用无限制。例外是 3B 和 72B 两个尺寸,采用了更限制的许可证(需要申请或同意额外条款)。
所有开源模型都提供:
- Base 版本(预训练原始权重)
- Instruct 版本(对齐后)
- 量化版本(GPTQ / AWQ)
MoE 模型(Turbo / Plus)不开源权重,仅通过阿里云百炼平台提供 API。
收尾:我的一点看法
Qwen2.5 这份技术报告,说实话,没有什么”让人拍案叫绝的新 idea”。GQA、SwiGLU、RoPE、DPO、GRPO——哪个不是别人先提出的?但它的价值恰恰不在于此。
第一,工程完成度就是竞争力。 18T 数据不是随便堆的,背后是完整的数据清洗、质量过滤、领域平衡流水线。100 万条 SFT 数据不是随便凑的,背后是人工标注 + 自动合成 + 多轮审核。这些东西论文里一笔带过,但做起来是几百人月的投入。
第二,“全家桶”策略的野心。 从 0.5B 到 72B,从通用到代码/数学/视觉/音频,从开源权重到 API 服务——Qwen2.5 想做的事情是:你不管什么场景、什么预算、什么部署条件,都能在我这里找到对应的模型。这不是一个模型在竞争,是一个生态在竞争。
第三,128K 上下文成为标配的意义。 当所有尺寸都支持 128K 输入时,“长文本”就不再是一个需要单独解决的工程问题,而是模型的基础能力。这会改变很多应用的设计范式——你不再需要精心设计 RAG 的 chunk 策略,直接把整个文档扔进去就行。
第四,后训练的精细化才是真正拉开差距的地方。 预训练决定了模型的能力上限,但后训练决定了这个上限能被用户感知到多少。Qwen2.5 在 SFT 阶段专门强化了 JSON 输出、表格理解、长文本生成、工具调用——这些都是”用户真正会用到的能力”,而不是”benchmark 上好看的数字”。
最后说一句:2024 年下半年,开源模型阵营的竞争已经从”谁能训出最大的模型”变成了”谁能提供最完整的模型平台”。Qwen2.5 是这场转变中最有说服力的注脚之一。
附:核心数据速查
模型规格速查表
| 模型 | 参数量 | 层数 | 隐藏维度 | Q/KV Heads | 上下文 | 许可证 |
|---|---|---|---|---|---|---|
| Qwen2.5-0.5B | 0.5B | 24 | 896 | 14/2 | 128K | Apache 2.0 |
| Qwen2.5-1.5B | 1.5B | 28 | 1536 | 12/2 | 128K | Apache 2.0 |
| Qwen2.5-3B | 3B | 36 | 2048 | 16/2 | 128K | 限制许可 |
| Qwen2.5-7B | 7B | 28 | 3584 | 28/4 | 128K | Apache 2.0 |
| Qwen2.5-14B | 14B | 48 | 5120 | 40/8 | 128K | Apache 2.0 |
| Qwen2.5-32B | 32B | 64 | 5120 | 40/8 | 128K | Apache 2.0 |
| Qwen2.5-72B | 72B | 80 | 8192 | 64/8 | 128K | 限制许可 |
训练配置速查
| 阶段 | 关键参数 |
|---|---|
| 预训练数据 | 18T token,29+ 语言 |
| 预训练序列长度 | 标准 32K;Turbo 渐进至 256K |
| RoPE base frequency | 10,000,000 |
| SFT 数据量 | 100 万+ 样本,两轮 |
| SFT 学习率 | 7e-6 → 7e-7 |
| DPO 偏好对 | ~15 万条 |
| GRPO 采样 | 每 query 8 个 response,batch 2048 |
| 分词器 | Byte-level BPE,151,643 常规 token + 22 控制 token |
专业模型速查
| 模型 | 数据量 | 尺寸 | 特色 |
|---|---|---|---|
| Qwen2.5-Coder | 5.5T code token | 1.5B/7B/32B | 代码全任务 |
| Qwen2.5-Math | 扩展数学数据 | 1.5B/7B/72B | CoT + PoT + TIR |
| Qwen2-VL | 多模态数据 | 72B(改进版) | 视觉-语言 |
| Qwen2.5-Audio | 音频数据 | - | 音频-语言 |
| QwQ | 推理数据 | - | 深度推理 |
关键概念清单
- GQA(Grouped Query Attention):多个 Q head 共享 KV head,降低推理显存
- SwiGLU:门控线性单元的变体,FFN 的标准替代
- RoPE(Rotary Position Embedding):旋转位置编码,支持长度外推
- DCA(Dual Chunk Attention):分块注意力,块内+块间双层位置建模
- YaRN:RoPE 频率外推方法,配合 DCA 实现 4x 上下文扩展
- DPO(Direct Preference Optimization):无需奖励模型的离线偏好对齐
- GRPO(Group Relative Policy Optimization):组内相对排序的在线 RL
- CoT / PoT / TIR:思维链 / 程序思维 / 工具集成推理
- Byte-level BPE:字节级子词分词,天然支持任意语言
如果这篇文章对你有帮助,欢迎分享给更多人!
部分信息可能已经过时





