跳转至

六十三:Qwen 2.5

来源:http://mp.weixin.qq.com/s?__biz=MzYyNTk3Njg1NA==&mid=2247484952&idx=1&sn=131f36de382dad0dfbb1a04ea570ba68&chksm=f01eb561c7693c77663ae6d2978614b5df7c6f0a36af1147d41344e8deac72d043ceaf8f9fce#rd

1. 学习范围

本日覆盖两个重点: - 模型架构Qwen2.5 dense 系列的 decoder-only Transformer、GQA、SwiGLU、RoPE、QKV bias、RMSNorm pre-norm、tokenizer、上下文长度和 MoE 服务模型。

  • QwQ-32BQwen 在 Qwen2.5 基座上强化推理能力的代表模型,重点理解 outcome-based RL、数学/代码 verifier、通用能力 RL 和 agent 能力。

推荐阅读资料: - Qwen2.5 Technical Report: https://arxiv.org/pdf/2412.15115

  • QwQ-32B 官方博客: https://qwenlm.github.io/blog/qwq-32b/

2. Qwen2.5 的定位

img

Qwen2.5 是 Qwen 系列在预训练、后训练和部署形态上的一次系统升级。技术报告中强调三点: - 预训练数据从 Qwen2 时代的约 7T tokens 扩展到 18T tokens。

  • 后训练包含超过 100 万条 SFT 样本,并结合 DPO 与 GRPO 等多阶段强化学习。

  • 开源 dense 模型覆盖 0.5B、1.5B、3B、7B、14B、32B、72B,并提供 base、instruct、量化版本;API 侧还有 Qwen2.5-Turbo、Qwen2.5-Plus 等 MoE 服务模型。

面试中不要只说“Qwen2.5 是一个更强的 LLM”。更准确的表达是:Qwen2.5 是一组统一 tokenizer、统一训练范式、不同参数规模和上下文长度的 decoder-only LLM 系列,并通过后训练扩展到指令跟随、长文本、结构化数据分析、数学、代码和推理场景。 img

3. Dense 模型架构

Qwen2.5 dense 模型延续 Transformer decoder 架构。核心模块可以写成:

x_l
  -> RMSNorm
  -> Causal Self-Attention with RoPE, QKV bias, GQA
  -> residual
  -> RMSNorm
  -> SwiGLU FFN
  -> residual

img

关键组件如下: - Decoder-only使用因果 mask,只允许 token 关注自己和历史 token,适合自回归生成。

  • Grouped Query Attention, GQAQuery head 数量大于 KV head 数量,多个 Query head 共享一组 K/V,用较小 KV cache 换取接近 MHA 的表达能力。

  • SwiGLU FFN用门控激活替换传统 ReLU/GELU FFN,提高非线性表达能力。

  • RoPE在 Q/K 上施加旋转位置编码,使相对位置信息进入 attention score。

  • QKV bias在注意力投影中保留 bias,有助于模型表达。

  • RMSNorm + pre-norm每个子层前先归一化,增强大模型训练稳定性。

4. GQA 的形状与 KV Cache

设 batch 为 B,序列长度为 T,隐藏维度为 d_model,Query head 数为 Hq,KV head 数为 Hkv,每头维度为 dh。一般有:

Q: [B, T, Hq, dh]
K: [B, T, Hkv, dh]
V: [B, T, Hkv, dh]
Hq >= Hkv
group_size = Hq / Hkv
i 个 Query head 使用的 KV head 可以写成:

kv_head = floor(i / group_size)
在 decode 阶段,每生成一个 token 都要读取历史 KV。若使用 MHA,KV cache 规模约为:

cache_mha ~= 2 * B * T * Hq * dh
若使用 GQA:

cache_gqa ~= 2 * B * T * Hkv * dh
因此 KV cache 节省比例约为 Hkv / Hq。Qwen2.5 的 32B 模型使用 40 个 Query heads 与 8 个 KV heads,相当于每 5 个 Query heads 共享一组 K/V。

5. 参数规模与上下文长度

Qwen2.5 开源 dense 模型的上下文设计有明显分层:

0.5B / 1.5B / 3B: 32K context, 8K generation
7B / 14B / 32B / 72B: 128K context, 8K generation
小模型使用较短上下文,适合轻量部署和端侧/低成本服务;中大模型支持 128K,更适合长文档理解、代码仓库阅读和复杂 agent 上下文。 需要区分: - context length模型可读入的最大上下文窗口。

  • generation length一次回复可生成的最大 token 数。

  • effective long-context ability模型是否真正能在长上下文中检索、组合、遵循指令,而不只是位置编码外推。

6. Tokenizer 与控制 token

Qwen2.5 使用 Qwen tokenizer,底层是 byte-level BPE,常规词表规模为 151,643 tokens。byte-level 设计可以覆盖未知字符和多语言文本,避免大量 OOV 问题。 Qwen2.5 相比旧版本扩展了控制 token。控制 token 的作用不是“让模型多认识几个字符串”,而是给训练和推理协议提供稳定接口,例如: - chat template 中区分 system、user、assistant。

  • tool/function calling 中标记工具调用边界。

  • 结构化输出中稳定表示特殊状态。

面试中如果被问 tokenizer 为什么重要,应回答:tokenizer 决定文本到 token 的离散化方式,影响训练分布、上下文预算、跨语言效率、代码切分、特殊协议表达,以及模型是否能稳定处理工具调用。

7. MoE 服务模型

Qwen2.5 技术报告中还提到 Qwen2.5-Turbo 和 Qwen2.5-Plus 两个 MoE 服务模型。MoE 的核心思想是把 dense FFN 替换成多个专家,并由 router 为每个 token 选择 Top-k experts:

router_logits = x W_r
selected_experts = topk(router_logits, k)
y = sum_i gate_i * FFN_i(x)
MoE 的目的不是减少总参数,而是提高总容量与单位 token 激活计算量之间的比值。它的工程难点包括: - expert load balance,避免少数专家过热。

  • all-to-all 通信开销。

  • token dispatch/combine 的 kernel 效率。

  • serving 时的 batch、路由和缓存管理。

8. 预训练与后训练

Qwen2.5 的预训练强调数据规模和数据混合。18T tokens 的价值不只是“数据更多”,还在于覆盖通识、专业知识、数学、代码、多语言和推理场景,让 base model 具备较强的可塑性。 后训练大致包含: - SFT用高质量指令数据塑造可用的对话、工具、格式和任务行为。

  • DPO用偏好对优化 chosen vs rejected 的相对概率,避免显式训练 reward model 的复杂 pipeline。

  • GRPO以 group 内候选答案的相对奖励作为优化信号,用于强化推理、指令遵循等能力。

  • 长上下文 SFT例如 Qwen2.5-Turbo 使用短指令阶段和短长混合阶段,让模型适应长查询。

训练链路可以概括为:

large-scale pretraining
  -> SFT
  -> preference optimization / DPO
  -> online RL / GRPO
  -> task-specific or long-context adaptation

9. QwQ-32B 的推理路线

QwQ-32B 是 Qwen 对“强化学习放大推理能力”的探索。官方博客强调:在强基座模型上做可扩展 RL,可以显著增强推理能力;QwQ-32B 是 32B 参数模型,却能在一些推理任务上接近更大模型。

img

QwQ-32B 的训练思路包括: - 从 cold-start checkpoint 开始。

  • 第一阶段把 RL 重点放在数学和代码任务。

  • 数学任务使用 accuracy verifier 判断最终答案正确性。

  • 代码任务使用执行服务器,根据测试用例通过情况给奖励。

  • 第二阶段加入通用能力 RL,使用通用 reward model 和规则 verifier,提高 instruction following、human preference alignment 与 agent performance。

这个路线的关键是:推理模型并非只靠更多 CoT 样本 SFT,而是利用可验证任务构建稳定奖励,把“想得更久、搜索更多候选、修正中间过程”的行为强化出来。

10. Outcome-based RL 与过程监督

QwQ-32B 官方描述主要强调 outcome-based rewards。数学题只看最终答案是否正确,代码题看测试是否通过。这种方法的优点是奖励更客观、可扩展,缺点是中间推理步骤可能存在不可见错误。 对比:

Outcome reward:
  reward = final_answer_correct ? 1 : 0

Process reward:
  reward = sum(step_quality_scores)
Outcome reward 适合数学、代码、可验证任务;process reward 更适合需要评估中间推理质量的复杂开放任务,但标注或验证成本更高。

11. QwQ-32B 与普通 Instruct 模型的区别

普通 instruct 模型的目标是稳定响应用户指令,偏重格式、风格、安全和一般任务覆盖。QwQ-32B 更偏推理模型,常见差异包括: - 更愿意展开长链路推理。

  • 更适合数学、代码、逻辑、多步工具使用。

  • 推理成本和延迟更高。

  • 简单任务未必需要触发长思考。

  • 需要更谨慎处理幻觉、过度推理和答案冗长。

因此实际部署时常采用 router 或 chat template 控制:简单任务走 non-thinking/fast 模式,复杂任务走 reasoning 模式。

12. 面试速记

可以用下面这段口述总结 Qwen2.5:

Qwen2.5 是 decoder-only Transformer 系列,dense 模型采用 GQA、SwiGLU、RoPE、QKV bias、RMSNorm pre-norm 等现代 LLM 架构组件。它通过 18T tokens 预训练和包含 SFT、DPO、GRPO 的后训练体系提升知识、指令跟随和推理能力。模型规模覆盖 0.5B 到 72B,中大模型支持 128K context。QwQ-32B 则是在强基座上通过 outcome-based RL 强化数学、代码和通用推理能力,说明 RL 可以把已有世界知识进一步转化为可执行推理能力。

13. 常见误区

  • 把 Qwen2.5 与 QwQ-32B 混为一谈。Qwen2.5 是基础模型系列,QwQ-32B 是推理增强模型。

  • 只记 benchmark,不理解 GQA、RoPE、RMSNorm、SwiGLU 的工程意义。

  • 认为 128K context 等于任意长文本都能可靠检索。长上下文能力还依赖训练数据、位置外推、注意力效率和评估任务。

  • 认为 RL 一定需要人类偏好 reward。数学和代码可以使用规则 verifier 或执行反馈。

  • 把 MoE 理解为“更省参数”。MoE 通常是总参数更多、每 token 激活参数较少。

            预览时标签不可点
    

    <div class="