论文:
Qwen: https://arxiv.org/abs/2309.16609
Qwen-vl: https://arxiv.org/pdf/2308.12966
qwen2: https://arxiv.org/pdf/2407.10671
qwen2-vl: https://arxiv.org/pdf/2409.12191
代码:https://github.com/QwenLM/Qwen2-VL
1、为什么要做这个研究(理论走向和目前缺陷) ?
之前的开源模型(包括qwen-1.5)和闭源模型效果依然有巨大差距。
2、他们怎么做这个研究 (方法,尤其是与之前不同之处) ?
总体创新点不多,更多是组合最新研究的中的创新点+高质量数据来提升。具体说来,引入分组查询注意力提升推理速度,引入双分块注意力+yarn改造的RoPE提升长文本处理能力,引入MoE(共享专家+专用专家)来提升模型推理效率,最重要的是,预训练的数据重qwen1.5的3万亿提升到qwen2的7万亿。
3、发现了什么(总结结果,补充和理论的关系)?
qwen2效果超越其他开源模型,且比肩闭源模型,在量化部署等工程方面也做的比较完善。
摘要
发布Qwen2系列模型,参数量从0.5B到72B不等,既有全参数密集模型,也有混合专家模型,支持30中语言,且完全开源,并且也做了量化、微调、部署等工作。
1 引言
Qwen2系列模型包括基座语言模型(即仅预训练但不对齐人类偏好)和指令微调模型(预训练后还要多论文微调,以适应人类偏好或agent应用),涉及4个全参数密集模型:0.5B, 1.5B, 7B和72B,和一个混合专家模型Qwen2-57B-A14B,即参数量有57B,但是推理时仅激活14B参数。
这些模型的预训练数据超过7万亿token,后训练(post-train)时,先SFT微调,后DPO微调来使模型输出符合指令和人类偏好。注:DPO是一种简化的RLHF算法,不用训练专门的奖励模型,差异:RLHF:人类偏好 → 奖励模型 → RL 调策略,DPO:人类偏好 → 直接调策略(用一个聪明设计的 supervised 损失)。
2 分词器和模型
2.1 分词器
同qwen,分词算法BPE,包含151643个token的词表和3个控制用的token。
2.2 模型架构
2.2.1 Qwen2全参数密集模型
transformer架构,仅decoder,仅自注意力(无交叉注意力),因果掩码。和qwen的差别主要是在如下几方面:
分组查询注意力(Grouped Query Attention, GQA): 用GQA取代多头注意力,优化了推理时的KV cache,提升吞吐量。
注: 正常的多头注意力是一个query对应一个key和一个value,分组多头注意力是多个query对应同一个key和value,这些对应同一个key和value的head即属于一组,同一个组里的计算key和value的投影矩阵也是相同的,因为他们的输入是同一个token特征。
双分块注意力(Dual Chunk Attention, DCA): 当输入序列很长时会将其分成多块,设计跨块注意力机制,确保模型能在超长文本下仍然抓住远距离依赖。配合 YARN 对相对位置编码进行改造,缓解 RoPE 在极长上下文下的退化问题。
此外,和qwen一样的点是,采用SwiGLU激活,RoPE位置编码,QKV偏移,RMSNorm和pre-normalization来提升训练稳定性。
2.2.2 qwen2混合专家模型
Qwen2 MoE模型架构和Qwen1.5-MoE-A2.7B 基本相同,Qwen2 MoE有如下关键设计:
细粒度专家:原始的Mistral-7B转为MoE模型Mixtral 8x7B是简单的把FFN复制7次共计8个同样参数量的FFN层,推理时只激活其中两个FFN对结果进行加权。本文参考另一篇论文做法,不是用8个和原始FFN相同参数量的FFN层,而是用8个更小参数量的FFN层,同时计算量也更小,但是每次推理时多激活几个FFN层加权,提高了模型的适应性和性能。
共享专家+专用专家:最近的研究表明,同时激活共享专家和路由专家效果更好,这样有利于维持通用通用能力和提升特定领域的专业能力。
专家初始化:基于训练好的密集模型的FFN层做拷贝,即“向上循环利用”(dense upcycle),再通过参数打乱等方式增加专家间多样性。
2.2.3 模型配置
下表展示各模型详细参数信息,其中Qwen2-57B-A14B是基于qwen2-7B来的。
**![[图片]](/https://i-blog.csdnimg.cn/direct/e9348f8554684c9ea68076a84952f287.png)
**
3 预训练
重点工作在提升数据质量和高效处理超长上下文的数据。
3.1 预训练数据
提升数据质量:滤除低质量数据,合成高质量数据
数据拓展:增加代码、数据等领域数据。
数据分布更高:做了实验,通过降低模型大小来验证丰富数据来源的作用。
最终从qwen1.5的3万亿token的预训练数据拓展到qwen2的7万亿训练数据。一些多任务的指令跟随数据也加到了预训练数据中,以提升指令跟随能力。
3.2 长上下文训练
通过修改RoPE的base值(10000-》1000000),来提升长下文预训练效果,使得能够一次处理的token数目从4096增加到32768。此外,配合YARN改造RoPE和双分块注意力,进一步提升长下文处理能力至131,072个token。
4 后训练
后训练的目的主要是增强模型在编程、数据、逻辑推理、指令跟随方面及多语言理解方面的能力,并且使模型生成的结果符合人类偏好。这部分的主要的工作是尽量使用少量的高质量的数据来SFT和RLHF,减少对人工标注数据的依赖。
4.1 后训练数据
包括演示数据和偏好数据,演示数据用于SFT, 偏好数据用于RLHF。
- 后训练阶段(Post-training):
- 有监督微调(SFT)
- 构建 50 万+ 的高质量指令数据样本
- 使用分阶段学习率、权重衰减和梯度裁剪,保证稳定性
- 人类偏好对齐(RLHF & DPO)
- 使用偏好数据,采用 Direct Preference Optimization (DPO),直接在偏好对上优化策略模型。
- 在线阶段引入 Online Merging Optimizer,在保持指令对齐的同时最大程度保留基础能力,减小“对齐损伤”。
- 数据构建方法:
- 协同人工标注(Collaborative Data Annotation)
- 自动化数据合成(Automated Data Synthesis)
- 使用 InsTag 等工具对指令类型进行标签化,并通过“指令进化”自动生成更复杂、更多样的任务。
5 评估
大量评估测试表明,性能不错,比qwen1.5提升很多。
6 结论
qwen2效果超越之前的开源模型,且比较闭源模型,且能够处理多达13万token的长文本。

1834

被折叠的 条评论
为什么被折叠?



