Qwen2.5技术报告解读:Qwen2.5 Technical Report
摘要
介绍Qwen2.5的核心改进点:
高质量的预训练数据集从之前的 7 万亿个 token 扩展到了 18 万亿个 token。
后训练方面,实现了超过100万个样本的复杂监督微调,以及多阶段强化学习:包括离线学习DPO和在线学习GRPO
结构与分词器
Qwen2 . 5系列包括针对开源的密集模型(DenseModel),即Qwen2。5 ~ 0 . 5B / 1 . 5B / 3B / 7B / 14B / 32B / 72B 和 面向API服务的MoE模型,即Qwen2。5 - TURBO和Qwen2 . 5 ~ Plus。
Dense模型
基于Transformer的decoder结构,模型结构的关键要素是:有助于高效的KV缓存利用的GQA(分组查询注意力机制),SwiGLU非线性激活函数,用于编码位置信息的RoPE,注意力机制中的QKV偏差,具有预归一化的RMSNorm。后两者是为了保证稳定的训练。
结构和 LLaMA非常相似,差异在于训练数据和tokenizer中文支持更好。
1. GQA(分组查询注意力机制)
2. 用 RMSNorm 替代传统 LayerNorm,在保持性能的同时提升计算效率。
3. 采用 SwiGLU,将前馈网络(FFN)维度从 “4 倍隐藏层大小” 缩减至 “8/3 倍”,降低计算成本。
4. 使用 RoPE(旋转位置编码),且用 FP32 精度存储逆频率矩阵,保证长文本建模精度。
MOE模型
目录
摘要
结构与分词器
Dense模型
MOE模型
分词器
Pre-training 预训练
训练数据
超参数缩放规律
长文本预训练
后训练
SFT
长文本微调
通过用专门的 MoE 层替换标准前馈网络 (FFN) 层来实现,其中每层都包含多个 FFN 专家和一个将令牌分派给前 K 个专家的路由机制。
分词器
字节级字节对编码(BBPE)
GQA 的操作可以拆解为 3 步,核心是 “对 Query 分组,组内共享 KV”:
1. 拆分 Query 和 KV:假设模型有`H`个注意力头,GQA 会把H个 Query 分成G组(比如 16 个 Query 头分成 4 组,每组 4 个 Query);同时,只生成G组独立的 Key 和 Value(而非 MHA 的H组)。
2. 组内共享计算:让每组内的所有 Query,共同使用对应的 1 组 Key 和 Value 来计算注意力权重(比如第 1 组的 4 个 Query,都用第 1 组的 KV 算注意力)。
3. 结果拼接输出:把每组计算出的注意力结果拼接起来,再进入后续的模型层,完成一次注意力计算。
Pre-training 预训练
训练数据
通过复杂的过滤和评分机制,结合数据混合策略,精心策划高质量的训练数据
如何将数据规模从 7 万亿 token 提升至 18 万亿 token?
数据过滤(用 Qwen2-Instruct 模型多维度筛选)、领域数据增强(融入数学 / 代码专用数据)、合成数据生成(用 Qwen2-72B 等生成并过滤)、数据混合优化(平衡过采样 / 欠采样领域)四个维度
超参数缩放规律
基于模型规模(N)和数据量(D),确定不同规模模型(密集型、MoE 型)的最优批大小(B)和学习率(μ)
长文本预训练
在预训练阶段,逐步扩展序列长度,每一阶段保证40%最大序列和60%较短序列数据的混合。
后训练
扩大监督微调数据覆盖范围:监督微调过程包含了数百万个高质量样本,专门解决了先前模型显示出局限性的关键领域。
两阶段强化学习:强化学习(RL)过程分为两个不同的阶段:离线 RL 和在线 RL。
离线 RL(Offline RL)用 “已收集好的静态数据集” 训练模型。
在线 RL(Online RL)模型在训练中实时与环境交互,不断产生新数据并用于学习。
SFT
构建超 100 万样本的数据集,针对性优化 9 大能力(长文本生成、数学推理、代码生成、指令跟随等),设置 32Ktoken 序列长度、梯度裁剪等训练参数,确保模型基础能力达标。
长文本微调
SFT 阶段采用了两阶段式的方法。
- 第一阶段,模型仅依靠短指令来进行微调操作,这里的每个指令最多涵盖 32,768 个令牌
- 第二阶段,微调过程将短指令与长指令(最多 262,144 个令牌)有机结合。这种混合式的处理手段,卓有成效地提升了模型在长上下文任务里的指令跟踪能力,同时还稳固住了它在短任务上已有的出色性能。
RL 阶段仅聚焦于简短指令。
RL 阶段仅聚焦于简短指令是基于两个主要考虑:首先,对于长上下文任务,RL训练的计算代价很高;其次,目前缺乏为长情境任务提供合适奖励信号的奖励模型。此外,在短指令上单独采用RL仍然可以显著增强模型在长上下文任务中与人类偏好的一致性。