6.1 Qwen 系列模型全解析(Qwen1 → Qwen3)

本文围绕 Qwen 系列从 Qwen1 / Qwen1.5 / Qwen2 / Qwen2.5 / Qwen3 的技术演进展开,重点覆盖:模型结构、预训练与数据配方、长上下文外推、对齐与奖励建模、以及关键设计背后的动机。在必要处穿插直观案例帮助理解。


1. Qwen 系列的总体设计哲学

Qwen 系列整体遵循 “高效稳定的 Transformer Decoder-only 基座 + 训练数据与对齐体系持续升级 + 长上下文能力逐代增强” 的路线。

从结构上看,Qwen 主干长期保持与 LLaMA 类似的骨架:

  • Decoder-only Transformer
  • RoPE 位置编码
  • RMSNorm / Pre-Norm 训练稳定性设计
  • SwiGLU 增强 FFN 表达
  • FlashAttention / SDPA 等高效注意力实现
  • 对偏置(bias)的谨慎处理:大部分层去 bias,但在某些关键投影层保留

从训练上看,Qwen 系列的主要增量集中在:

  1. Tokenizer 与词表策略(数字拆分、扩展词表、BBPE 等)
  2. 数据质量过滤与数据混合策略(尤其 Qwen2.5 与 Qwen3)
  3. 后训练对齐链路(SFT / DPO / GRPO、拒绝采样、执行反馈、宪法反馈等)
  4. 长上下文训练与外推(NTK 插值、YaRN、ABF、DCA、Turbo 的多阶段长度递增)

2. Qwen1:QWEN TECHNICAL REPORT 的核心要点

2.1 模型结构:LLaMA-like 的稳健基座 + 针对性改动

2.1.1 Tokenizer:tiktoken BPE + cl100k_base 起点 + 扩词表

Qwen1 使用 tiktoken 的 BPE,选择 cl100k_base 作为起点扩充词表,并强调一个很关键的策略:数字拆分为单个数字 token

为什么要把数字拆开?
在数学、代码、表格等任务里,数字的组合方式极其多样。若把 “12345” 当成一个整体 token,那么模型需要记住大量稀疏 token;拆成 “1 2 3 4 5” 后,模型能够通过组合泛化。

  • 例子:
    • 不拆分:"123.5" 可能被当作少见整体 token
    • 拆分:"123.5" → "1 2 3 . 5"
      这样能显著改善数值推理与数值生成的一致性。

最终词表规模约 152K


2.1.2 Untied Embedding:输入输出不共享参数

Qwen1 采用 Untied Embedding:输入 embedding 矩阵与输出 unembedding(logits 投影)矩阵不共享权重。

  • 共享(tied)常见于许多 LLM:节省参数与显存
  • 不共享(untied)的动机:输出空间的判别能力与输入表征空间的几何结构不一定要一致,拆开可提升性能

代价:显存/参数增加。收益:常在困惑度与下游生成质量上带来提升。


2.1.3 “黄金四件套”:RoPE + Pre-RMSNorm + SwiGLU + 去 bias(大部分层)

Qwen1 的核心结构配置可以理解为一套业界成熟且强势的组合:

  • RoPE:旋转位置编码
  • Pre-RMSNorm:每个子层输入先归一化,增强训练稳定性
  • SwiGLU:比 GeLU FFN 更强的表达与梯度性质
  • 大多数层移除 bias:减少参数、提升数值稳定性与训练效率

2.1.4 QKV bias 保留:增强外推能力(尤其对未见分布)

Qwen1 的一个“反常识”点:

大多数层去 bias,但在注意力的 QKV 线性层保留 bias。

直觉理解:

  • 去 bias 会让模型更“规整”,但可能损失一些对偏移/背景特征的拟合能力
  • QKV 是注意力机制的入口,它决定了“看谁、怎么看”
  • 在 QKV 保留 bias 相当于给注意力入口提供一个可学习的平移项,提升对输入特征分布变化时的适应性

直观例子(外推/域外输入)
假设训练数据里“表格类文本”较少,但推理时输入经常是 “带很多冒号/对齐符/缩进的结构化片段”。QKV bias 能帮助模型在注意力映射时更灵活地适配这种分布偏移。


2.2 训练:标准自回归目标 + 高效训练工程

2.2.1 自回归语言建模目标

标准 LM 目标是最大化 token 序列的条件概率:

max⁡θ∑t=1Tlog⁡pθ(xt∣x<t) \max_\theta \sum_{t=1}^{T} \log p_\theta(x_t \mid x_{<t}) θmaxt=1Tlogpθ(xtx<t)

其中 xtx_txt 是第 ttt 个 token。


2.2.2 构建 batch:随机打乱与合并后截断到固定长度

训练上下文长度为 2048。为了高效构建批次,会将文本进行随机打乱与合并,再截断到固定长度,保证 batch 里序列长度一致、吞吐更高。


2.2.3 FlashAttention + BF16 + AdamW + Cosine LR
  • FlashAttention:降低注意力的显存与时间成本
  • BF16:混合精度训练加速且相对稳定
  • AdamW 超参:
    • β1=0.9\beta_1=0.9β1=0.9β2=0.95\beta_2=0.95β2=0.95ϵ=1×10−8\epsilon=1\times 10^{-8}ϵ=1×108
  • 余弦学习率计划:学习率衰减到峰值的 10%

2.3 长上下文外推:动态 NTK 插值 + LogN-Scaling + 分层窗口注意力

Qwen1 在“训练长度 2048,但推理能到 8192”这个能力背后,主要依赖三个方向:

2.3.1 动态 NTK 插值(Dynamic NTK Interpolation)

核心目的是在不重新训练或少量训练的情况下,让 RoPE 在更长长度上保持合理的相位分布,从而不至于注意力崩坏。


2.3.2 LogN-Scaling:让注意力熵随长度增长保持稳定

当上下文长度从训练长度外推到更长时,注意力分布可能变得“过尖”或“过平”,导致模型关注异常。LogN-Scaling 通过引入与长度相关的缩放因子,稳定注意力的熵。

一种形式可写为:

Attention(Q,K,V)=softmax(κlog⁡ndQK⊤)V \text{Attention}(Q, K, V) \mathrm{}= \text{softmax} \left( \frac{\kappa \log n}{d} QK^{\top} \right)V Attention(Q,K,V)=softmax(dκlognQK)V

其中:

  • nnn 表示上下文长度(或与长度相关的尺度)
  • ddd 为缩放相关的维度项(常见为 dkd_kdk 或其变体)
  • κ\kappaκ 为超参数

2.3.3 分层窗口 Self-Attention:低层短窗,高层长窗

思路:低层负责局部模式,高层负责全局语义。

  • 低层用短窗口,避免把有限计算量浪费在远距离噪声
  • 高层逐渐增大窗口,允许整合更长距离信息

3. Reward Model:偏好模型预训练 + 微调数据采样体系

Qwen1 的奖励模型训练可以概括为两步:

3.1 预训练偏好模型:同等大小 Qwen + 池化层输出标量

将模型的某个特殊句子结束标记对应的隐藏状态通过池化/映射,得到奖励标量。

直观理解
把 “整段回答” 压缩成一个向量,再映射成一个分数,作为偏好训练的目标。


3.2 微调奖励模型:分类系统 + 平衡采样 + 多样性采样

  • 分类系统:约 6600 个细粒度标签,保证 prompt 多样与复杂
  • 平衡采样:避免训练集中于少数热门类型
  • 多样性采样:用不同规模与采样策略的模型生成多样回复,降低标注难度并提升奖励模型判别能力

案例:为什么需要多样回复?
如果所有候选回复都非常相似,标注者很难区分偏好,也很难让奖励模型学到“细粒度的好坏差异”。引入多样候选后,奖励模型更容易学到“更礼貌、更准确、更遵循指令”等判别边界。


4. Qwen1.5:结构延续 + MoE 支线 + 32K 长上下文与量化生态

Qwen1.5 没有正式技术报告,但从公开信息看,其特征是:

4.1 结构:延续“黄金四件套”与 QKV bias

  • BPE / Pre-RMSNorm / SwiGLU / RoPE
  • FlashAttention,并在实现上更多使用 SDPA
  • 继续 untied embedding(不共享输入输出 embedding)
  • 延续 “只在 QKV 加 bias” 的策略
  • 仅 Qwen1.5-32B 使用 GQA(说明该点更偏向大模型上的效率考量)

4.2 Qwen1.5-MoE-A2.7B:细粒度专家与路由机制

MoE 的核心目标:总参数量很大,但每次只激活一小部分计算,获得更高性价比

  • “A2.7B” 通常表示 激活参数约 2.7B(每次 forward 实际参与计算的参数规模)
  • 细粒度专家:将 FFN 切成多个子块,每个子块一个专家
  • 路由:4 个共享专家 + 60 个路由专家(每次激活 4 个)

直观例子(MoE 的好处)
同一个模型既要写代码又要写诗又要做数学。Dense 模型需要把能力压进同一套参数里;MoE 可以让不同专家更专注不同模式:

  • 代码专家更偏符号与结构
  • 数学专家更偏推理链条
  • 写作专家更偏文风与叙事
    路由网络根据输入选择合适专家组合,从而提升多任务能力。

4.3 训练与对齐:PPO + DPO

公开信息表示偏好对齐既用了 PPO 也用了 DPO,并且全系列支持 32K 上下文,同时提供 AWQ/GPTQ 等量化版本(int4/int8)以利部署。


5. Qwen2:QWEN2 TECHNICAL REPORT 的关键升级点

Qwen2 在结构上最显著的变化集中于 GQA + 长上下文外推体系(YaRN + DCA)

5.1 结构:GQA + YaRN + DCA + BBPE 词表

  • Tokenizer:BBPE,词表大小 151643
  • SwiGLU、RoPE、QKV bias、RMSNorm 延续
  • 新增/强化:
    • GQA(Grouped Query Attention)
    • YaRN(长度外推相关技术)
    • DCA(Dual Chunk Attention,双块注意力)

5.2 预训练:数据质量、代码/数学/多语言扩展、数据混合更像“人类学习分布”

5.2.1 更强过滤:启发式 + 模型过滤

除了传统规则过滤,还用 Qwen 模型过滤低质量数据,并用模型合成/筛选高质量预训练样本。

5.2.2 数据扩展:代码、数学、多语言显著增强

相比 Qwen1.5,Qwen2 强化了:

  • 高质量代码与数学数据
  • 多语言覆盖约 30 种语言
5.2.3 数据分布改进:混合策略更合理

通过小模型试验来优化不同来源/领域的混合配比,使训练分布更接近“有效学习”的分布结构。


5.3 后训练数据合成:拒绝采样、执行反馈、文学数据再利用、宪法反馈

Qwen2 的一个重要工程思路是:把“可验证”任务尽量变成可自动构造高质量偏好/示范数据的问题

5.3.1 拒绝采样:适用于有明确最终答案的任务(数学等)

做法:从多个候选解中筛掉明显错误或质量差的,保留更优路径。
直观案例
同一道数学题生成 8 条推理链,如果其中 2 条能得到正确答案且推理更一致,那么只保留这 2 条或用它们构造偏好对。

5.3.2 执行反馈:适用于 coding 与可编译/可测试任务

模型生成代码 + 测试用例,跑编译/运行得到硬信号。
如果能通过单元测试,就可作为高质量示范;若失败,可构造偏好对或用于拒绝采样。

5.3.3 文学数据再利用:把公共领域作品变成指令-响应对

对文学作品生成不同粒度的指令(改写、续写、风格转换、摘要等),形成 demo 数据。

5.3.4 宪法反馈:把原则集变成“遵循/违反”的训练信号

构建原则数据集,让模型学习遵守安全与价值观准则,也能构造“好/坏响应”的偏好样本。


5.4 RLHF:离线 + 在线两阶段(DPO + 在线合并优化)

Qwen2 的对齐过程强调两阶段:

  1. 离线阶段:用预先收集的偏好数据做 DPO
  2. 在线阶段:用奖励模型对当前策略采样的多个 response 进行排序,形成偏好对,继续做在线式优化,并使用 Online Merging Optimizer 缓解对齐税(alignment tax)

6. Qwen2.5:数据规模与长上下文能力的大跃迁

Qwen2.5 可以理解为在 Qwen2 的结构基础上,把数据与训练策略推到更激进的水平。

6.1 模型系列:dense + MoE

  • Dense:0.5B / 1.5B / 3B / 7B / 14B / 32B / 72B(base 与 instruct)
  • MoE:Qwen2.5-Turbo、Qwen2.5-Plus

6.2 结构:与 Qwen2 基本一致

  • SwiGLU、RoPE、QKV bias、RMSNorm
  • GQA + YaRN + DCA
  • Tokenizer:BBPE,151643 词表

6.3 预训练数据:18T tokens 量级 + 更细过滤 + 更合理混合

6.3.1 更精细过滤:用 Qwen2-Instruct 做质量过滤器

核心思想:用更强模型对样本进行多维度打分,过滤掉低质量与模板化内容。

6.3.2 更优数学/代码数据:引入 Qwen2.5-Math / Qwen2.5-Coder 训练数据

这类数据不仅包含答案,还往往包含结构化推理、验证或更高密度的可学习信号。

6.3.3 更高质量合成数据:72B 级 Instruct/Math 模型生成 + RM 严格过滤

用更强模型合成数据,再用专有 RM 或 Math-RM 过滤,提高合成数据的可靠性。

6.3.4 数据混合:下采样“过度代表领域”,上采样“高价值领域”

观察:电商、社交媒体、娱乐内容在互联网中过多,且重复、模板化严重;技术/科学/学术内容更稀缺但价值高。
因此对过度代表领域下采样,对高价值领域上采样。

直观例子
如果训练集中“短促口语闲聊”占比太高,模型会更擅长随口聊天但推理不稳;增加 STEM 与技术文档比例,能显著提升推理与知识密度任务表现。


6.4 长文本预训练:两阶段到 32K,并用 ABF 提升 RoPE 基频

Qwen2.5 采用阶段式长度扩展:

  • 先在 4K 上训练
  • 最终阶段(除 Turbo 外)扩展到 32K
  • 使用 ABF 将 RoPE 基础频率从 10000 提升到 1000000
6.4.1 Turbo 的多阶段:32K → 64K → 128K → 256K

并且每阶段数据混合:

  • 40% 使用当前最大长度序列
  • 60% 使用较短序列
    以保证模型既能适应长输入,也不丢短输入性能。
6.4.2 长度能力的结果:Turbo 可到 1M tokens,其他可到 128K

这里可以把长上下文训练理解为:
“先让模型学会在 4K 内稳定,再逐渐给更长文本,并用 RoPE/YaRN/DCA 等机制保障注意力在更长尺度上不崩。”


6.5 后训练:约 1M 示例,覆盖 SFT / DPO / GRPO 的完整链路

Qwen2.5 的后训练非常系统,重点覆盖 9 类能力构建:

6.5.1 长序列生成:构建 long response 数据集

通过反向翻译等方式从预训练语料生成长文本 query,并用 Qwen2 过滤低质量配对,保证长度与质量。

6.5.2 数学推理:引入 CoT 数据 + 拒绝采样 + 奖励建模

对数学任务用拒绝采样保证质量,并结合奖励建模与带注解答案帮助模型学到稳定推理过程。

6.5.3 编程能力:多智能体合成 + 多语言 sandbox 静态检查 + 单元测试验证

覆盖约 40 种编程语言,强调可执行验证来确保数据正确性。

6.5.4 指令跟随:代码验证框架 + 交叉单测 + 执行反馈拒绝采样

把“遵循约束”问题变成“可验证”的程序化问题,从而得到更可靠对齐信号。

6.5.5 结构化数据理解:表格问答、事实验证、纠错、结构理解 + CoT

引入 CoT 让模型在结构化/半结构化数据上更擅长推理。

6.5.6 逻辑推理:新增 70000 queries,覆盖演绎/归纳/类比

并通过迭代剔除错误答案和缺陷推理,提高推理链质量。

6.5.7 跨语言迁移:翻译生成低资源语言指令并校验语义对齐

确保不同语言之间逻辑结构和风格一致。

6.5.8 鲁棒系统指令:数百条通用 system prompts 增强鲁棒性

评估显示在不同 system prompts 下方差更小。

6.5.9 响应过滤:评论模型 + 多智能体协作评分,严格筛“完美响应”

用多个自动注释系统交叉筛选,只有都认为完美的才保留。


7. Qwen3:数据翻倍 + 注意力结构改动 + 四阶段后训练体系

Qwen3 可以概括为三条主线升级:

  1. 训练数据:Qwen2.5 的 18T 扩到 36T tokens
  2. 结构:Attention 模块做了更显著的改动(Q/K RMSNorm、bias 可配置、滑窗逻辑前置)
  3. 后训练:四阶段流程,面向“推理模式 + 快速响应模式”的融合

7.1 模型结构:Attention 模块的关键变化

7.1.1 Attention 线性层 bias 可配置
  • Qwen2:q/k/v 默认带 bias,o_proj 默认无 bias
  • Qwen3:q/k/v/o 是否带 bias 由 attention_bias 配置控制

这让模型在不同规模与不同部署需求下,能更灵活地折中性能与效率。


7.1.2 Query/Key RMS Normalization:对 q 与 k 在 head_dim 上归一化

Qwen3 引入 qqqkkk 的额外归一化(在 head 维度上做 RMSNorm)。

直觉收益:

  • 稳定注意力分数的尺度
  • 减少不同层/不同 batch 下注意力 logits 的漂移
  • 在长上下文或分布外输入中更稳定

虽然这里不强制用公式,但可以用一句话概括其目的:
qqqkkk 做归一化相当于让注意力打分更接近“方向相似度”而不是“尺度驱动”,从而更稳定。


7.1.3 Sliding Window Attention 的逻辑更多移到初始化阶段

Qwen3 在初始化阶段更明确设置 sliding window 的配置条件,减少 forward 期间分支判断,使逻辑更集中、更利于优化。


7.2 预训练:36T tokens + 三阶段训练策略

7.2.1 数据层面:更丰富高质量内容(代码、STEM、推理、书籍、多语言、合成)

从 Qwen2.5 的 18T 扩到 36T,数据更强调知识密集与推理密集内容。


7.2.2 三阶段训练流程
  • 阶段 1:超过 30T tokens,4K 上下文
  • 阶段 2:提高 STEM/代码/逻辑推理比例,再训练 5T tokens 强化推理
  • 阶段 3:高质量长上下文数据,把上下文扩到 32K

7.3 后训练:四阶段流程(面向“推理 + 快速响应”的混合能力)

Qwen3 后训练目标之一是得到一种“混合模式”模型:

  • 需要时能逐步推理(长 CoT)
  • 也能快速响应(短答案高质量)

四阶段流程:

  1. 长 CoT 冷启动:多领域长 CoT 数据微调(数学、编码、逻辑、STEM)
  2. 基于推理的强化学习:用 RL 进一步提升推理能力
  3. 思考模式融合:融合思考与非思考的能力
  4. 通用强化学习:在 20+ 领域任务上做通用 RL,提升整体对齐与泛化

直观案例:为什么要“模式融合”?
如果只训练长 CoT,模型可能变得“什么都解释一大段”;如果只追求短答,模型可能推理不稳。融合阶段的目标是:

  • 简单问题给出短而准
  • 复杂问题可以展开推理并保持正确性

8. 关键技术点的直觉总结(按“问题 → 设计 → 结果”)

8.1 数字拆分与大词表:解决“数值与符号的组合泛化”

  • 问题:数字作为整体 token 太稀疏
  • 设计:数字拆分成单字符 token,配合扩词表
  • 结果:数学、代码、表格任务更稳

8.2 Untied Embedding:解决“输入表征空间与输出判别空间不必一致”

  • 问题:共享 embedding 可能限制输出判别能力
  • 设计:输入输出 embedding 不共享
  • 结果:性能提升但显存与参数更多

8.3 长上下文:解决“训练短、推理长”的外推崩坏

  • 问题:RoPE 在更长长度上注意力可能失稳
  • 设计:NTK 插值 / YaRN / ABF / DCA / 滑窗等组合
  • 结果:Qwen2.5 Turbo 可扩到超长上下文(甚至 1M)

8.4 后训练数据工程:让训练信号更“可验证、更高质量、更体系化”

  • 问题:对齐数据噪声高、覆盖不足、偏好标注昂贵
  • 设计:拒绝采样、执行反馈、宪法反馈、多智能体协作、严格过滤
  • 结果:指令跟随、推理、代码、结构化数据能力全面增强

9. 一句话对比:Qwen1 → Qwen3 的演进脉络

  • Qwen1:稳健的 LLaMA-like 基座 + 数字拆分 + untied embedding + 2048 训练、8192 外推尝试 + 奖励模型体系雏形
  • Qwen1.5:结构延续 + MoE 支线 + 32K 长上下文与量化生态强化
  • Qwen2:GQA + YaRN + DCA 的长上下文体系更成熟 + 数据过滤与合成对齐更系统
  • Qwen2.5:18T tokens 与两阶段/多阶段长文本训练,后训练覆盖面极大(SFT/DPO/GRPO)
  • Qwen3:36T tokens、Attention 结构进一步增强稳定性(Q/K Norm 等)、四阶段后训练面向“推理与快速响应融合”

Logo

AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。

更多推荐