6.1 Qwen 系列模型全解析(Qwen1 → Qwen3)
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 系列的主要增量集中在:
- Tokenizer 与词表策略(数字拆分、扩展词表、BBPE 等)
- 数据质量过滤与数据混合策略(尤其 Qwen2.5 与 Qwen3)
- 后训练对齐链路(SFT / DPO / GRPO、拒绝采样、执行反馈、宪法反馈等)
- 长上下文训练与外推(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=1Tlogpθ(xt∣x<t) \max_\theta \sum_{t=1}^{T} \log p_\theta(x_t \mid x_{<t}) θmaxt=1∑Tlogpθ(xt∣x<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×10−8
- 余弦学习率计划:学习率衰减到峰值的 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(κlogndQK⊤)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 的对齐过程强调两阶段:
- 离线阶段:用预先收集的偏好数据做 DPO
- 在线阶段:用奖励模型对当前策略采样的多个 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 可以概括为三条主线升级:
- 训练数据:Qwen2.5 的 18T 扩到 36T tokens
- 结构:Attention 模块做了更显著的改动(Q/K RMSNorm、bias 可配置、滑窗逻辑前置)
- 后训练:四阶段流程,面向“推理模式 + 快速响应模式”的融合
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 引入 qqq 与 kkk 的额外归一化(在 head 维度上做 RMSNorm)。
直觉收益:
- 稳定注意力分数的尺度
- 减少不同层/不同 batch 下注意力 logits 的漂移
- 在长上下文或分布外输入中更稳定
虽然这里不强制用公式,但可以用一句话概括其目的:
对 qqq 与 kkk 做归一化相当于让注意力打分更接近“方向相似度”而不是“尺度驱动”,从而更稳定。
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)
- 也能快速响应(短答案高质量)
四阶段流程:
- 长 CoT 冷启动:多领域长 CoT 数据微调(数学、编码、逻辑、STEM)
- 基于推理的强化学习:用 RL 进一步提升推理能力
- 思考模式融合:融合思考与非思考的能力
- 通用强化学习:在 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 等)、四阶段后训练面向“推理与快速响应融合”
AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。
更多推荐


所有评论(0)