阿里Qwen2技术报告翻译:最强开源大模型是如何训练的?

文摘   2024-07-16 12:05   中国香港  



6月7日,阿里发布了最新、最强大Qwen2大模型。刚刚,Qwen2技术报告(英文)发布。本文是我用Kimi翻译的全文,在公众号后台回复“Qwen2”可下载原文档。

下是报告的核心内容概述:

1. 模型家族介绍:Qwen2系列包括从0.5亿到72亿参数的基础和指令调整型语言模型,包括密集型模型和专家混合模型(Mixture-of-Experts, MoE)。


2. 性能表现:Qwen2在多个基准测试中超越了以前的开放权重模型,包括其前身Qwen1.5,并在语言理解、生成、多语言能力、编程、数学和推理方面与专有模型展现出竞争力。


3. 旗舰模型Qwen2-72B:展示了卓越的性能,具体分数包括MMLU上的84.2分、GPQA上的37.9分、HumanEval上的64.6分、GSM8K上的89.5分和BBH上的82.4分。


4. 多语言能力:Qwen2支持约30种语言,包括英语、中文、西班牙语、法语、德语、阿拉伯语、俄语、韩语、日语、泰语和越南语等。


5. 模型权重公开可用:Qwen2模型权重在Hugging Face和ModelScope平台上公开可用,GitHub上还提供了补充材料,包括示例代码。


6. 模型架构:Qwen2基于Transformer架构,采用自注意力和因果掩码,引入了分组查询注意力(Grouped Query Attention, GQA)和双块注意力(Dual Chunk Attention, DCA)等技术。


7. 预训练和后训练:Qwen2在超过7万亿个token的大规模数据集上进行预训练,并采用监督式微调和直接偏好优化(Direct Preference Optimization, DPO)等技术进行后训练。



//


首先是论文作者:



摘要


本报告介绍了Qwen2系列,这是我们大型语言模型和大型多模态模型的最新成员。我们发布了一套全面的基础和指令调整型语言模型,参数范围从5亿到72亿,包括密集型模型和专家混合模型。Qwen2在大多数之前开放权重模型中超越了,包括其前身Qwen1.5,并在语言理解、生成、多语言能力、编程、数学和推理等多样化基准测试中展现出与专有模型相媲美的性能。


旗舰模型Qwen2-72B表现出色:在MMLU上得分84.2,在GPQA上得分37.9,在HumanEval上得分64.6,在GSM8K上得分89.5,在BBH上得分82.4,作为基础语言模型。指令调整型变体Qwen2-72B-Instruct在MT-Bench上得分9.1,在Arena-Hard上得分48.1,在LiveCodeBench上得分35.7。此外,Qwen2展示了强大的多语言能力,熟练掌握约30种语言,包括英语、中文、西班牙语、法语、德语、阿拉伯语、俄语、韩语、日语、泰语、越南语等,凸显了其多功能性和全球覆盖范围。


为了促进社区创新和可访问性,我们已经在Hugging Face和ModelScope上公开提供了Qwen2模型权重,以及包括示例代码在内的补充材料在GitHub上。这些平台还包括量化、微调和部署的资源,促进了广泛的应用和研究工作。


1 引言


随着OpenAI在2022年推出ChatGPT之后,全球对大型语言模型(LLMs)的热情不断高涨。2023年,Llama系列的发布进一步点燃了开源社区的兴趣,特别是在本地LLMs达到GPT级别的情况。最近,Anthropic在2024年发布的Claude-3 Opus和OpenAI在2024年更新的ChatGPT模型GPT-4o,迅速攀升至聊天机器人领域的顶峰,这在由Chiang等人在2024年所推崇的聊天机器人竞技场(Chatbot Arena)中得到了体现,该平台以其对LLMs的人类评估而闻名。此外,AI@Meta在2024年推出的Llama3已成为最先进的开放权重模型系列,缩小了与领先专有模型的性能差距,并被广泛认为是GPT-4级别的模型。越来越多的竞争性LLMs正在追求与OpenAI的GPT系列相似的进步。包括Qwen(Bai等人,2023a)、Mistral(Jiang等人,2023a)、Gemma(Mesnard等人,2024)等在内的许多模型都以开放权重的方式发布。


在过去的几个月里,我们先后推出了Qwen系列(Bai等人,2023a)并发展到Qwen1.5(Qwen团队,2024a)。与此同时,我们公开了视觉-语言模型Qwen-VL(Bai等人,2023b),并推出了音频-语言模型Qwen-Audio(Chu等人,2023)。在这项工作中,我们介绍了Qwen家族大型语言模型和大型多模态模型的最新成员:Qwen2。Qwen2是一系列基于Transformer架构(Vaswani等人,2017)的LLMs,使用下一个token预测进行训练。该模型系列包括基础的,即预训练但未与人类偏好对齐的基础语言模型,以及针对聊天和代理目的使用单轮和多轮指令遵循数据集进行微调的指令调整型模型。我们的发布包括四个密集型模型,参数计数分别为0.5亿、1.5亿、7亿和72亿,以及一个具有570亿参数的专家混合(MoE)模型,每个token激活140亿参数。特别是小型模型Qwen2-0.5B和Qwen2-1.5B旨在轻松部署在便携式设备上,如智能手机、耳机和智能眼镜。相反,较大的模型适用于不同规模的GPU部署。


所有模型都在超过7万亿个token的高质量、大规模数据集上进行了预训练,涵盖了广泛的领域和语言。与以前的Qwen版本相比,Qwen2包括更广泛的语言数据,增强了代码和数学内容的数量和质量。这种丰富被假设为提高LLMs的推理能力。关于后训练,所有模型都经过了监督式微调和直接偏好优化(DPO,Rafailov等人,2023),通过学习人类反馈使它们与人类偏好对齐。这个过程赋予了模型有效遵循指令的能力。


我们已经对Qwen2进行了全面的评估,同时选择了一些基线模型进行评估,包括通过API可访问的开放权重和专有模型。Qwen2在基础语言能力和指令调整型功能评估中超越了竞争模型。具体来说,我们的指令调整型变体Qwen2-72B-Instruct在MT-Bench(Zheng等人,2023)上得分9.1,在Arena-Hard(Chiang等人,2024)上得分48.1,在LiveCodeBench(Jain等人,2024)上得分35.7。与此同时,基础语言模型Qwen2-72B在MMLU(Hendrycks等人,2021a)上达到84.2,在GPQA(Rein等人,2023)上达到37.9,在HumanEval(Chen等人,2021)上达到64.6,在GSM8K(Cobbe等人,2021)上达到89.5,在BBH(Suzgun等人,2023)上达到82.4。


2 词元器与模型


本节介绍了Qwen2的词元器和模型设计。我们详细描述了不同模型大小的模型架构和配置。


2.1 词元器


遵循Qwen(Bai等人,2023a),我们采用了基于字节级字节对编码的相同词元器。值得注意的是,该词元器由于其相对于其他选择更好的压缩率,表现出高效的编码效率,促进了Qwen2的多语言能力。


所有大小的模型都采用一个共有词汇表,包括151,643个常规词元和3个控制词元。有关更多信息,请参阅Bai等人(2023a)。需要注意的是,由于分布式训练的考虑,嵌入的有效大小更大。


2.2 模型架构


Qwen2系列基本上是基于Transformer架构的大型语言模型,具有自注意力和因果掩码(Vaswani等人,2017)。具体来说,这一系列包括4个规模的密集型语言模型和1个专家混合(MoE)模型。我们在深入探讨MoE模型的独特属性之前,先介绍密集型模型的具体细节。


2.2.1 Qwen2 密集型模型


Qwen2密集型模型的架构包括多个Transformer层,每层都配备了因果注意力机制和前馈神经网络(FFN)。与Qwen的主要区别如下:


- 分组查询注意力:我们采用了分组查询注意力(GQA,Ainslie等人,2023)而不是传统的多头注意力(MHA)。GQA在推理期间优化了KV缓存的使用,显著提高了吞吐量。第2.2.3节报告了不同模型大小的详细KV头配置。


- 双块注意力与YARN:为了扩大Qwen2的上下文窗口,我们实现了双块注意力(DCA,An等人,2024),它将长序列分割成可管理长度的块。如果输入可以在一个块中处理,DCA会产生与原始注意力相同的结果。否则,DCA有助于在块内和跨块之间有效地捕获相对位置信息,从而提高长上下文性能。此外,我们还采用了YARN(Peng等人,2023)来重新调整注意力权重,以更好地进行长度外推。


此外,我们沿用了Qwen模型中使用的SwiGLU(Dauphin等人,2017)作为激活函数,旋转位置嵌入(RoPE,Su等人,2024)作为位置嵌入,QKV偏置(Su,2023)用于注意力,RMSNorm(Jiang等人,2023b)和预归一化用于训练稳定性。


2.2.2 Qwen2 专家混合模型


Qwen2 MoE模型的架构与Qwen1.5-MoE-A2.7B(Qwen团队,2024c)非常相似。作为原始FFN的替代,MoE FFN由n个单独的FFN组成,每个FFN充当一个专家。每个token根据由门控网络G分配的概率被引导到特定的专家Ei进行计算:


p=softmax(G(x))

y=∑i∈topk(p)Ei(x)


接下来,我们将介绍Qwen2 MoE的关键设计考虑。


- 专家粒度:MoE模型与密集型模型的主要结构区别在于MoE层包含多个FFN,每个FFN充当一个独立的专家。因此,从密集型架构过渡到MoE架构的一个直接策略是将每个专家的参数设置为原始密集型模型中单个FFN的参数。例如,从Mistral-7B(Jiang等人,2023a)过渡到Mixtral 8x7B(Jiang等人,2024),涉及一次激活八个专家中的一个。不同地,我们的模型采用了细粒度专家(Dai等人,2024),创建了规模更小的专家,同时激活了更多的专家。在总专家参数和激活参数相等的情况下,细粒度专家提供了更丰富的专家组合。通过利用这些细粒度专家,Qwen2 MoE促进了更多样化和动态的专家利用,从而提高了整体性能和适应性。


- 专家路由:专家路由机制的设计对于提高MoE模型的性能至关重要。最近,将共享专家和特定路由专家整合到MoE层内的趋势日益明显(Rajbhandari等人,2022;Dai等人,2024)。我们采用了这种方法,因为它既促进了共享专家在各种任务中的应用,又保留了其他专家在特定路由场景中的选择性使用。引入共享和专门的专家为开发MoE路由机制提供了一种更适应性和有效的方法。


表1列出了Qwen2密集型和MoE模型的架构。对于MoE模型,57B-A14B表示该模型总共有570亿参数,每个token激活了140亿参数,中间尺寸指的是每个专家的尺寸,#激活专家不包括共享专家。


配置0.5B1.5B7B72B57B-A14B
隐藏尺寸8961,5363,5848,1923,584
层数2428288028
查询头数1412286428
KV头数22484
头尺寸64128128128128
中间尺寸4,8648,96018,94429,5682,560
#路由专家64#激活专家8#共享专家8
词嵌入大小151,646151,646151,646151,646151,646
#训练token12T7T7T7T4.5T


2.2.3 模型配置


接下来,我们提供了Qwen2系列的关键配置和信息。


Qwen2系列由5种尺寸的模型组成,分别是Qwen2-0.5B、Qwen2-1.5B、Qwen2-7B、Qwen2-57B-A14B和Qwen2-72B。表1列出了超参数和重要信息,例如预训练token的数量。特别是,Qwen2-57B-A14B是从Qwen2-7B扩展而来。值得注意的是,与Qwen1.5模型相比,Qwen2模型展示了每个token的显著降低的键值(KV)大小。这一特性转化为内存占用的减少,特别是在长上下文推理任务中特别有利。


3 预训练


在Qwen2的预训练中,我们专注于改进数据集,并探索有效处理扩展上下文长度的方法。


3.1 预训练数据


Qwen2模型的预训练涉及开发一种新的、大规模、高质量的多语言数据集。该数据集在多个关键领域改进了之前Qwen和Qwen1.5模型使用的语料库(Bai等人,2023a;Qwen团队,2024a),在规模、质量和多样性方面增强了预训练数据:


- 质量提升:过滤算法通过额外的启发式和基于模型的方法进行了改进,包括使用Qwen模型过滤掉低质量数据。此外,这些模型被用来合成高质量的预训练数据。


- 数据扩展:与Qwen1.5(Qwen团队,2024a)相比,我们收集了更大容量的高质量代码、数学和多语言数据,增强了模型在这些领域的能力。这个新数据集支持约30种语言,如英语、中文、西班牙语、法语、德语、阿拉伯语、俄语、韩语、日语、泰语和越南语等。


- 分布改进:为确保模型学习类似于人类学习的分布,我们在缩小规模的模型上进行实验,优化来自不同来源和领域的数据混合。


基于这些增强,预训练数据从Qwen1.5的3万亿token扩展到7万亿token。尝试进一步放宽质量阈值导致了一个12万亿token的数据集。然而,在这个数据集上训练的模型并没有显示出比7万亿token模型有显著的性能提升。怀疑增加数据量并不一定有利于模型预训练。考虑到训练成本,我们选择使用更高质量的7万亿token数据集来训练更大的模型,将进一步的探索留给未来的模型迭代。


所有Qwen2密集型模型,除了Qwen2-0.5B,都在这个超过7万亿token的大规模数据集上进行了预训练。Qwen2-0.5B是使用12万亿token数据集进行预训练的。MoE模型接受了额外的4.5万亿token的预训练,符合升级再利用的原则。与之前的Qwen模型类似,高质量的多任务指令数据被整合到Qwen2的预训练过程中,以增强上下文学习和指令跟随能力。


3.2 长上下文训练


为了增强Qwen2的长上下文能力,我们在预训练的最后阶段将上下文长度从4,096个token扩展到32,768个token。这一扩展得到了大量高质量、长数据的补充。结合这些增强,我们将RoPE的基本频率从10,000调整到1,000,000,以优化长上下文场景中的表现(Xiong等人,2023)。


为了充分利用模型的长度外推潜力,我们采用了YARN机制(Peng等人,2023)和双块注意力机制(An等人,2024)。这些策略使模型能够处理长达131,072个token的序列,同时保持高性能,这在初步实验中的困惑度降低很小。


4 后训练


在经过大规模的预训练之后,我们对Qwen2进行了后训练阶段。这一过程对于提高其在包括编程、数学、逻辑推理、指令跟随和多语言理解在内的广泛领域的熟练度至关重要。此外,它确保了模型的生成与人类价值观一致,使其有帮助、诚实且无害。与依赖大量人类监督的传统方法不同,我们的方法侧重于可扩展的对齐,最小化人类注释(Cao等人,2024)。具体来说,我们研究了获取高质量的演示和偏好数据的方法,用于监督式微调(Supervised Fine-Tuning, SFT)和从人类反馈中进行强化学习(Reinforcement Learning from Human Feedback, RLHF),旨在最大限度地减少人类标记的需求,同时最大化数据的质量和可靠性。


4.1 后训练数据


后训练数据主要由两部分组成:演示数据D = {(xi, yi)}和偏好数据P = {(xi, y+i, y−i)},其中xi代表指令,yi代表满意的响应,y+i和y−i是xi的两个响应,y+i是比y−i更受偏好的选择。集合D用于SFT,而P用于RLHF。


构建训练数据涉及一个两步过程:协作数据注释和自动化数据合成。首先,我们从大规模指令语料库中提取数据本体,从而获得广泛和多样化的高质量指令。这些指令通过系统增强以融入更大的复杂性。通过人工注释,我们获得了目标响应yi及其正面和负面对应物(y+i, y−i)。随后,采用多种自动化对齐策略,在代码、数学、指令跟随、创作、角色扮演和安全等领域合成了大量人工注释的数据。


4.1.1 协作数据注释

自动本体提取 该过程首先应用InsTag(Lu等人,2024c),一个开放集细粒度标注器,从大规模指令数据集中提取底层本体。随后的手动细化确保了提取本体的准确性。


指令选择 每个带有标注的指令都根据标签多样性、语义丰富度、复杂性和意图完整性进行评估。基于这些标准,我们选择了一组代表性指令(Dong等人,2023)。


指令演化 为了丰富指令数据集,采用了自我演化策略(Zhao等人,2024),促使Qwen模型向现有指令添加约束或要求,从而增加其复杂性,并确保数据集中不同难度级别的多样性。


人工注释 使用不同的生成策略和不同规模的Qwen模型获得指令的多个响应。注释者根据偏好对这些响应进行排名,确保最佳响应满足既定标准,从而产生演示数据和偏好数据。


4.1.2 自动化数据合成


在大规模上维护指令响应注释的质量面临重大挑战,特别是那些需要专业知识、经验、细心或耐心的任务。为了解决这些挑战,我们设计了各种自动化对齐策略,以大规模合成数据。


拒绝采样 对于数学或类似具有明确最终答案的任务,应用拒绝采样(Yuan等人,2023)来提高解决方案的质量。大型语言模型(LLMs)被赋予生成多个响应的任务,即推理路径,对于每个指令。那些得出准确结论并被模型认为是合理的路径被保留,作为演示数据。通过对比正确和错误的路径生成偏好数据。


执行反馈 对于编程任务,LLMs被用来生成解决方案和相关测试用例。通过编译和执行这些解决方案来评估其有效性,从而创建演示和偏好数据。这种方法也适用于评估指令跟随(Dong等人,2024)。对于每个具有约束的指令,例如长度限制,LLM被赋予生成Python验证函数的任务,以确保响应符合指令要求。


数据再利用 在文学写作任务中创建熟练的响应对于没有接受过专门培训的注释者来说是一个挑战。为了解决这个问题,我们汇总了来自公共领域的高质量文学作品,并使用LLMs开发具有不同详细程度的指令。这些指令与原始作品配对,作为演示数据。例如,为了编译具有生动有趣响应的角色扮演数据,我们从像维基百科这样的知识库中获取详细的人物档案,并指导LLMs生成相应的指令和响应。这个过程类似于阅读理解任务,确保了人物档案的完整性。


宪法反馈 宪法AI指的是指导LLMs根据预定义的原则集生成响应的过程(Bai等人,2022)。为确保遵守如安全和价值观等准则,我们编制了一个宪法数据集。该数据集规定了要遵循和避免的原则。它被用来指导LLMs生成符合或偏离这些准则的响应,作为演示和偏好数据的参考。


4.2 监督式微调


我们收集了一个广泛的指令数据集,包含超过500,000个示例,涵盖指令跟随、编程、数学、逻辑推理、角色扮演、多语言和安全等技能。我们的模型在32,768个token的序列长度上进行了两个时期的微调。为了优化学习,学习率从7×10^-6逐渐降低到7×10^-7。为了解决过拟合问题,我们应用了0.1的权重衰减,并将梯度限制在最大值为1.0。


4.3 从人类反馈中进行强化学习


我们的RLHF培训制度包括两个连续的阶段:离线和在线训练。在离线训练阶段,我们使用预先编译的偏好数据集P,通过直接偏好优化(DPO, Rafailov等人,2023)最大化y+i和y−i之间的似然差异。在在线训练阶段,模型利用即时反馈的奖励模型不断改进其性能。具体来说,我们从当前策略模型中采样多个响应,奖励模型选择最受欢迎和最不受欢迎的响应,形成用于每个情节中DPO的偏好对。此外,我们采用了在线合并优化器(Lu等人,2024a),以减轻对齐税,即与将模型生成与人类偏好对齐相关的性能下降。


5 评估


(翻译太麻烦,图表太多,这部分直接引用博客里的数据)


相比Qwen1.5,Qwen2在大规模模型实现了非常大幅度的效果提升。我们对Qwen2-72B进行了全方位的评测。


在针对预训练语言模型的评估中,对比当前最优的开源模型,Qwen2-72B在包括自然语言理解、知识、代码、数学及多语言等多项能力上均显著超越当前领先的模型,如Llama-3-70B以及Qwen1.5最大的模型Qwen1.5-110B。这得益于其预训练数据及训练方法的优化。



大规模预训练后,我们对模型进行精细的微调,以提升其智能水平,让其表现更接近人类。这个过程进一步提升了代码、数学、推理、指令遵循、多语言理解等能力。此外,模型学会对齐人类价值观,它也随之变得更加对人类有帮助、诚实以及安全。我们的微调过程遵循的原则是使训练尽可能规模化的同时并且尽可能减少人工标注。我们探索了如何采用多种自动方法以获取高质量、可靠、有创造力的指令和偏好数据,其中包括针对数学的拒绝采样、针对代码和指令遵循的代码执行反馈、针对创意写作的回译、针对角色扮演的scalable oversight、等等。在训练方面,我们结合了有监督微调、反馈模型训练以及在线DPO等方法。我们还采用了在线模型合并的方法减少对齐税。这些做法都大幅提升了模型的基础能力以及模型的智能水平。


我们全面评估了Qwen2-72B-Instruct在16个基准测试中的表现。Qwen2-72B-Instruct在提升基础能力以及对齐人类价值观这两方面取得了较好的平衡。相比Qwen1.5的72B模型,Qwen2-72B-Instruct在所有评测中均大幅超越,并且了取得了匹敌Llama-3-70B-Instruct的表现。


而在小模型方面,Qwen2系列模型基本能够超越同等规模的最优开源模型甚至更大规模的模型。相比近期推出的最好的模型,Qwen2-7B-Instruct依然能在多个评测上取得显著的优势,尤其是代码及中文理解上。



代码 & 数学


我们持续投入提升Qwen的代码及数学能力。在代码方面,我们成功将CodeQwen1.5的成功经验融入Qwen2的研发中,实现了在多种编程语言上的显著效果提升。而在数学方面,大规模且高质量的数据帮助Qwen2-72B-Instruct实现了数学解题能力的飞升。


长文本处理


Qwen2系列中的所有Instruct模型,均在32k上下文长度上进行训练,并通过YARNDual Chunk Attention等技术扩展至更长的上下文长度。


下图展示了我们在Needle in a Haystack测试集上的结果。值得注意的是,Qwen2-72B-Instruct能够完美处理128k上下文长度内的信息抽取任务。结合其本身强大的性能,只要有充足的算力,它一定能成为你处理长文本任务的首选!


此外,Qwen2系列中的其他模型的表现也十分突出:Qwen2-7B-Instruct几乎完美地处理长达128k的上下文;Qwen2-57B-A14B-Instruct则能处理64k的上下文长度;而该系列中的两个较小模型则支持32k的上下文长度。


除了长上下文模型,我们还开源了一个智能体解决方案,用于高效处理100万tokens级别的上下文。

安全


下表展示了大型模型在四种多语言不安全查询类别(非法活动、欺诈、色情、隐私暴力)中生成有害响应的比例。测试数据来源于Jailbreak,并被翻译成多种语言进行评估。我们发现Llama-3在处理多语言提示方面表现不佳,因此没有将其纳入比较。通过显著性检验(P值),我们发现Qwen2-72B-Instruct模型在安全性方面与GPT-4的表现相当,并且显著优于Mistral-8x22B模型。



6 结论


本技术报告介绍了Qwen2系列,这是一套多功能的基础和指令调整型语言模型,参数范围从0.5亿到72亿,包括密集型和专家混合(Mixture-of-Experts)架构模型。Qwen2在语言理解、生成、多语言能力、编程、数学和推理等多个广泛基准测试中,超越了以前的开放权重模型,特别是其前身Qwen1.5,并与专有模型展现出竞争力。在这次更新中,我们特别关注长上下文、多语言、编程、数学能力以及安全性和责任性。为了促进社区内的创新和可访问性,我们已经公开提供了Qwen2模型权重,使研究人员和开发人员能够在各种应用和研究项目中充分利用Qwen2的全部潜力。通过这些努力,我们旨在为人工智能技术的发展及其对社会的积极影响做出贡献。


END.


延伸阅读


大语言模型专题 | 计算机视觉专题

AI模型更新 | AI技术博客 | AI深度报告



猜想笔记
探索AI边界
 最新文章