mobile wallpaper 1mobile wallpaper 2mobile wallpaper 3mobile wallpaper 4mobile wallpaper 5mobile wallpaper 6mobile wallpaper 7
3796 字
11 分钟
Qwen2:GQA 工程自觉
2026-07-26

Qwen2 论文解读:把 GQA 焊死在每个 size 上,这才叫工程自觉#

论文:Qwen2 Technical Report 作者:An Yang 等 62 人(阿里通义实验室),提交人 Xuancheng Ren 这篇报告发布于 2024 年 7 月,是 Qwen 系列从”能用”跨到”能打”的关键一步。它不是一篇讲新 idea 的论文,而是一份工程集大成的交付清单——GQA 全 size 铺开、上下文从 8K 拉到 128K、预训练数据从 3T 翻到 7T,外加一个从 7B 长出来的 57B MoE。说白了,Qwen2 证明了一件事:把已知最佳实践做到极致,本身就是一种竞争力。

一、先搞清楚 Qwen2 到底发了什么#

Qwen2 一口气发了五个规模的模型:0.5B、1.5B、7B、72B 四个稠密模型,加上一个总参数 57B、每 token 只激活 14B 的 MoE 模型(记作 57B-A14B)。每个规模都有 base 和 Instruct 两个版本。

这个产品矩阵的意图很明确:0.5B 和 1.5B 是给手机、耳机、智能眼镜这些端侧设备准备的;7B 是社区主力,16GB 显存就能跑 16-bit 推理;72B 是旗舰,对标 Llama-3-70B;57B-A14B 则是给想要”大模型效果、小模型推理成本”的团队准备的甜点。

跟 Qwen1.5 比,最直观的变化是砍掉了 4B、14B、32B、110B 这些中间档位,换成更精炼的梯度。这不是偷懒,是团队想明白了:与其铺一堆不上不下的 size,不如把每个档位都打磨到位。

二、架构:没有什么新发明,但每个选择都很老练#

1. GQA 全 size 化——这才是 Qwen2 最该被记住的事#

分组查询注意力(Grouped Query Attention, GQA)不是 Qwen2 发明的,LLaMA-2 70B 和 Mistral 早就用了。但 Qwen2 做了一件别人没做彻底的事:从 0.5B 到 72B,所有模型全部用 GQA,一个不落。

具体数字:0.5B 是 14 个 Query head 配 2 个 KV head(7<1>),1.5B 是 12<2>(6<1>),7B 是 28<4>(7<1>),72B 是 64<8>(8<1>)。这意味着什么?意味着不管你部署哪个 size,KV cache 的显存占用都被压到最低。

对比一下 Qwen1.5:小模型还在用传统 MHA,每 token 的 KV 尺寸远大于 Qwen2。论文原话说”Qwen2 系列每 token 的 KV 尺寸显著低于 Qwen1.5”。对于长上下文推理来说,这不是锦上添花,是生死线。

2. 其他架构选择#

剩下的部分像是把 2023-2024 年的”正确答案”抄了一遍:

  • SwiGLU 激活函数(替代 ReLU/GELU)
  • RoPE 旋转位置编码
  • RMSNorm + pre-normalization
  • QKV 加 bias(这个跟 LLaMA 不同,LLaMA 不加)
  • 词表 151,646 个 token,字节级 BPE,所有模型共用

词表值得多说一句:151K 的词表比 LLaMA 的 128K 大不少,但 Qwen 团队声称压缩率更优,对多语言更友好。这是中文团队的天然优势——你得把中文、日文、泰文、阿拉伯文都伺候好,词表小了根本不够用。

3. 各 size 配置速览#

项目0.5B1.5B7B72B57B-A14B (MoE)
隐藏维度8961,5363,5848,1923,584
层数2428288028
Query heads1412286428
KV heads22484
中间层维度4,8648,96018,94429,5682,560/专家
路由专家数64
激活专家数8
共享专家数8
训练 token 数12T7T7T7T4.5T

注意 0.5B 用了 12T token 训练,比其他模型多 70%。论文说他们试过用 12T 数据训大模型,效果没比 7T 好多少——但小模型确实能从更多数据里榨出油水。这个发现挺实在的。

三、训练数据:从 3T 到 7T,不只是堆量#

1. 数据量翻倍只是表面#

Qwen1.5 用了 3T token,Qwen2 直接干到 7T。但论文里有个细节容易被忽略:他们曾经放宽质量阈值搞了一版 12T 的数据集,结果大模型效果没比 7T 好。结论是——对大模型来说,数据质量的边际收益远大于数据数量。

所以最终方案是:用更严格的过滤(加入模型辅助的质量打分),用 Qwen 自己合成高质量数据,通过小规模实验反复调数据配比。

2. 重点加码的方向#

相比 Qwen1.5,Qwen2 显著增加了三类数据的比例:高质量代码、数学、多语言。这直接解释了为什么 Qwen2 在 HumanEval 上从 46.3 跳到 64.6(+18.3),MATH 从 34.1 跳到 51.1(+17.0)。

另外,预训练阶段就混入了高质量多任务指令数据。这不是新招,但 Qwen2 把它作为正式流程写进了报告——说明 base 模型的 in-context learning 能力不是天上掉下来的,是预训练阶段就刻意培养的。

四、上下文长度:从 4K 到 128K 的三级跳#

1. 训练阶段怎么做的#

预训练前期上下文长度是 4,096,后期专门有一个阶段拉到 32,768,同时引入更多高质量长文本数据。RoPE 的 base frequency 从 10,000 调到 1,000,000——这是让位置编码在更长序列上不退化的标准操作。

2. 推理阶段怎么外推#

两个关键技术:

  • Dual Chunk Attention (DCA):把长序列切成可管理的块,分别处理块内和块间的相对位置关系。如果输入本身就在一个块内,结果跟标准注意力完全一致——这保证了短文本不受影响。
  • YARN:对注意力权重做重缩放,改善长度外推时的困惑度退化。

两者结合后,Qwen2 可以处理最长 131,072 token(128K)。Needle in a Haystack 测试中,Qwen2-72B-Instruct 在 128K 全文范围内都能准确检索信息,7B-Instruct 也能到 128K,MoE 版本稳定在 64K。

3. 实际效果#

在更严格的 LV-Eval(多跳长文 QA)上,Qwen2-72B 加 YARN+DCA 在 256K 长度上还能拿到 42.35 分,而 ChatGLM4-9B-1M 在同样长度只有 36.95。当然,7B 在超过 128K 后就基本崩了(256K 只有 0.55),所以别指望小模型能无限制外推。

五、MoE:从 7B 长出来的 57B#

1. 设计哲学#

Qwen2-57B-A14B 不是从零训的,是从 Qwen2-7B 通过 upcycling 扩展而来。具体操作:

  1. 把 7B 的 FFN 按目标专家数复制;
  2. 在中间维度上打乱参数,让各专家产生差异;
  3. 切成细粒度专家后,每个专家随机重新初始化 50% 的参数;
  4. 再用 4.5T token 继续预训练。

2. 细粒度专家 + 共享专家#

64 个路由专家,每次激活 8 个,外加 8 个共享专家(所有 token 都过)。每个专家的中间维度只有 2,560——比 7B 的 18,944 小得多。这就是”细粒度”的含义:专家更小、组合更多,理论上能覆盖更多样化的输入模式。

3. 效果#

只激活 14B 参数,MMLU 拿到 76.5,HumanEval 53.0,GSM8K 80.7。对比 Yi-1.5-34B(全量激活 32B)的 MMLU 77.1、HumanEval 46.3——MoE 用不到一半的激活参数,在代码上反而赢了 7 个点。这就是 MoE 的性价比故事。

六、后训练:SFT + DPO 的组合拳#

1. SFT 阶段#

超过 50 万条指令数据,覆盖指令遵循、代码、数学、逻辑推理、角色扮演、多语言、安全。训练 2 个 epoch,序列长度 32,768,学习率从 7e-6 衰减到 7e-7。

2. RLHF 阶段#

这里 Qwen2 用了一个两阶段方案:

  • 离线 DPO:先用偏好数据做标准 DPO,拉大优选回复和非优选回复的似然差。
  • 在线 DPO:从当前策略模型采样多个回复,用奖励模型挑出最好和最差的,组成偏好对,再做一轮 DPO。

另外用了 Online Merging Optimizer 来缓解对齐税(alignment tax)——就是模型变”乖”之后能力下降的问题。

3. 数据构建的四个花活#

  • Rejection sampling:数学题生成多条推理路径,只留结论正确的。
  • Execution feedback:代码题实际编译运行,用测试结果构造偏好对。
  • Data repurposing:从公共文学作品中提取素材,生成不同详细程度的指令。
  • Constitutional feedback:编制原则集,让模型生成符合/偏离准则的回复。

这些招数单独看都不新鲜,但全部系统化地跑通并写进报告,说明后训练流水线已经相当成熟。

七、Benchmark:数字说话#

1. 旗舰对决(Base 模型)#

数据集Llama-3-70BQwen1.5-72BQwen2-72B提升幅度
MMLU79.577.584.2+6.7 vs Qwen1.5
MMLU-Pro52.845.855.6+9.8
HumanEval48.246.364.6+18.3
GSM8K83.079.589.5+10.0
MATH42.534.151.1+17.0
BBH81.065.582.4+16.9
C-Eval65.284.191.0+6.9

Qwen2-72B 在几乎所有指标上同时超过了 Llama-3-70B 和自家前代。特别是代码和数学,提升幅度是两位数。BBH 从 65.5 到 82.4 这个跳跃尤其夸张——Qwen1.5 在推理任务上一直是短板,Qwen2 算是把这个坑填上了。

2. 7B 级别的屠杀#

数据集Llama-3-8BQwen1.5-7BQwen2-7B
MMLU66.661.070.3
HumanEval33.536.051.2
GSM8K56.062.579.9
MATH20.520.344.2

Qwen2-7B 在 MMLU 上超了 Llama-3-8B 将近 4 个点,代码和数学更是碾压。考虑到 Qwen2-7B 能在 16GB 显存上跑,这对社区部署来说是个非常强的选择。

3. 指令模型#

Qwen2-72B-Instruct:MT-Bench 9.12,Arena-Hard 48.1,IFEval 77.6,MATH 69.0。对比 Qwen1.5-72B-Chat 的 MT-Bench 8.61、Arena-Hard 36.1、IFEval 55.8——对齐质量的提升比基础能力的提升更显著。

但论文也坦承:在英文 in-house 评测中,Qwen2-72B-Instruct(72.94)略低于 Llama-3-70B-Instruct(74.06)。团队归因于英文预训练 token 量和后训练数据的多样性。这份坦诚在技术报告里不多见。

八、多语言与安全#

1. 30 种语言不是虚的#

预训练覆盖约 30 种语言,多语言数学(MGSM)从 Qwen1.5-72B 的 61.7 跳到 76.0,提升 14 个点。人工评测中,Qwen2-72B-Instruct 在 10 种语言上平均得分 3.93/5,超过 GPT-4-Turbo(3.98 接近)和 GPT-4o(4.09),略低于 Claude-3-Opus(4.15)。

考虑到 Qwen2 是开源模型,能跟闭源旗舰在多语言上掰手腕,这本身就是成绩。

2. 安全评测#

在非法、欺诈、隐私三个维度上,Qwen2-72B-Instruct 的越狱率都低于 GPT-4。色情类别(22.91%)仍高于理想水平,但跟 GPT-4(23.63%)基本持平。

收尾:我的一点看法#

第一,Qwen2 是一篇”反创新”的好论文。 它没有任何一个组件是首创的——GQA 是 Ainslie et al. 2023 的,SwiGLU 是 Shazeer 2020 的,YARN 是 Peng et al. 2023 的,DPO 是 Rafailov et al. 2023 的。但 Qwen2 的价值在于:它证明了在 LLM 这个领域,系统级的工程整合能力本身就是护城河。你不需要发明新轮子,你需要的是把 20 个轮子全部装对位置,然后让整车跑起来比别人的快。

第二,GQA 全 size 化这个决策,比看起来重要得多。 很多团队在大模型上用 GQA、小模型上省成本用 MHA,觉得小模型反正上下文短、batch 小,KV cache 不是瓶颈。Qwen2 说不对——端侧模型的显存更紧张,长上下文的趋势不可逆,GQA 应该是无差别标配。这种”从第一天就为部署做设计”的思路,是真正的工程成熟度。

第三,数据策略的诚实让人舒服。 论文直接说了”12T 数据训大模型没比 7T 好”,也承认英文能力不如 Llama-3。在一个充斥着”我们全面领先”话术的领域,这种实事求是的态度反而增加了其他数据的可信度。

第四,MoE 的 upcycling 路线值得关注。 从 7B 稠密模型出发,通过参数打乱+重初始化+继续训练得到 57B MoE,这条路比从零训 MoE 省资源得多。如果这个范式被验证可复现,对中小团队来说是个福音——你不需要从头攒 57B 的训练预算,你只需要一个训好的 7B 加上 4.5T token 的续训资源。

第五,放在 Qwen 系列演进里看。 Qwen1 是”证明我能做”,Qwen1.5 是”证明我能做好”,Qwen2 是”证明我能做到开源第一梯队”。从 Qwen1.5-72B 被 Llama-3-70B 全面压制,到 Qwen2-72B 全面反超,中间只隔了不到半年。这个迭代速度,加上全 size 开源权重、支持量化部署、提供完整工具链——Qwen2 不只是一个模型,是一个生态位宣言。

附:核心数据速查#

旗舰模型关键 Benchmark#

指标Qwen2-72B (Base)Qwen2-72B-InstructLlama-3-70B (Base)
MMLU84.282.379.5
MMLU-Pro55.664.452.8
GPQA37.942.436.3
HumanEval64.686.048.2
GSM8K89.593.283.0
MATH51.169.042.5
BBH82.481.0
MT-Bench9.12
Arena-Hard48.1
IFEval77.6
LiveCodeBench35.7

训练配置#

项目数值
预训练数据量(大模型)7T tokens
预训练数据量(0.5B)12T tokens
MoE 续训数据量4.5T tokens
预训练上下文(前期/后期)4,096 / 32,768
最大推理上下文131,072 (128K)
SFT 数据量500K+ 条
SFT 学习率7e-6 → 7e-7
SFT epochs2
RoPE base frequency1,000,000
词表大小151,646

关键概念清单#

术语含义
GQA (Grouped Query Attention)多个 Query head 共享少量 KV head,压缩 KV cache
SwiGLU结合 Swish 激活和门控线性单元的 FFN 激活函数
RoPE (Rotary Position Embedding)通过旋转矩阵编码相对位置的方案
RMSNorm只用均方根做归一化,比 LayerNorm 少一次均值计算
DCA (Dual Chunk Attention)将长序列分块处理,兼顾块内和块间位置关系
YARN对注意力分数做温度缩放以改善长度外推
DPO (Direct Preference Optimization)绕过奖励模型直接用偏好对优化策略
Upcycling从稠密模型权重出发初始化 MoE 专家
Alignment Tax对齐训练导致基础能力下降的代价
Online Merging Optimizer缓解对齐税的优化器策略
分享

如果这篇文章对你有帮助,欢迎分享给更多人!

Qwen2:GQA 工程自觉
https://mizuki-eaf.pages.dev/posts/qwen/qwen2gqa-工程自觉/
作者
无名之子
发布于
2026-07-26
许可协议
CC BY-NC-SA 4.0

部分信息可能已经过时

目录