Abstract
主要是在介绍通义千问2.5(Qwen2.5)这一大型语言模型系列,涵盖了它在不同训练阶段的改进、多样化配置、可获取途径以及在各项性能评测中的出色表现等多个方面,旨在展示其先进性与实用性。
训练阶段改进
-
预训练阶段
-
说明了Qwen2.5在预训练时对数据集进行了大规模的扩充,将高质量预训练数据集的词元数量从之前的7万亿提升到了18万亿。词元可以理解为语言模型学习时的基本语言单位(比如单词、汉字等),更多的高质量词元数据意味着模型能够接触到更丰富的语言表达和知识内容,进而为其积累常识、掌握专业知识以及提升推理能力筑牢根基。例如,更多的科学文献、新闻报道等文本数据中的词元,能帮助模型学习到不同领域的专业术语和逻辑关系等。
-
-
后训练阶段
-
采用了较为复杂且有效的训练手段,先是利用超过100万个样本开展监督微调。监督微调就是在已有预训练模型基础上,根据带有标注(比如正确答案、期望输出等)的样本进一步调整模型参数,让模型朝着更符合人们期望的方向优化。
-
同时运用多阶段强化学习,包含离线学习的直接偏好优化(DPO)和在线学习的广义奖励策略优化(GRPO)。强化学习旨在通过奖励机制引导模型做出更符合期望的行为(在这里就是生成更符合人类偏好的文本等),不同的学习方式从不同角度来优化模型对人类偏好的契合度,最终实现增强人类偏好这一目标,并且显著提升了像长文本生成、对结构化数据进行分析以及准确遵循指令等方面的能力。比如,在生成长篇文章或者分析表格数据并按照要求给出结论等任务中,模型能有更好的表现。
-
模型配置与获取途径
-
丰富配置
-
为了适应各种各样的实际使用场景,Qwen2.5以多种不同的配置推出。其中开源权重版本涵盖了从0.5B到72B等不同参数量的基础模型和指令微调模型。参数数量在一定程度上体现了模型的规模和复杂度,不同规模的模型适用于不同的应用场景,小型模型可能更适合资源受限的设备或者对简单任务的处理,大型模型则能应对更复杂、要求更高的任务。
-
还提供了指令微调模型的量化版本,量化可以降低模型存储和运算时对资源的需求,便于更广泛的部署和应用。
-
-
获取途径
-
使用者可以通过多个知名平台获取相关模型,像Hugging Face Hub、魔搭(ModelScope)和Kaggle等,能从中获取超过100个模型,方便研究人员、开发者等不同群体使用。另外,对于托管解决方案,专有模型里有Qwen2.5 - Turbo和Qwen2.5 - Plus这两种混合专家(MoE)变体,可在阿里云模型平台(Alibaba Cloud Model Studio)获取,这种托管的专有模型可能会针对特定用户需求和服务场景提供更定制化的功能与保障。
-
性能表现
-
基准测试表现优异
-
Qwen2.5在众多基准测试中都展现出顶尖水平,这些基准测试涉及语言理解(比如能否准确理解语句含义、篇章主旨等)、推理(像根据给定条件推出合理结论等)、数学(例如解决数学运算、数学应用题等)、编码(比如编写代码片段、理解代码逻辑等)以及人类偏好对齐(生成的内容是否符合人们期望的风格、逻辑等)等多个重要方面。
-
具体来看,开源权重旗舰模型Qwen2.5 - 72B - 指令微调模型性能突出,胜过许多其他开源和专有模型,并且和当前规模比它大5倍左右的先进开源权重模型Llama - 3 - 405B - 指令微调模型相比,也有着很有竞争力的表现,这充分体现了它的高性能优势。
-
-
性价比优势明显
-
Qwen2.5 - Turbo和Qwen2.5 - Plus这两个模型在与类似的竞品(分别对应GPT - 4o - mini和GPT - 4o)竞争时,不仅性能表现不逊色,而且在成本效益方面有着突出优势,意味着使用它们能以相对较低的成本获得较好的使用效果,对于企业、开发者等在考虑成本投入的情况下选择合适的语言模型有着很大吸引力。
-
-
助力专项模型训练
-
作为基础模型,Qwen2.5还在训练其他专用模型方面发挥了关键作用,像通义千问2.5 - 数学(专注于数学相关任务处理)、通义千问2.5 - 编码者(针对编码相关任务优化)、QwQ(可能有其特定的应用侧重)以及多模态模型(融合了图像、语音等不同模态信息与语言处理的模型)等,进一步拓展了其在不同专业领域和应用场景中的影响力与应用价值。
-
1 Introduction
1.1 通用人工智能与大型语言模型发展背景
-
AGI曙光初现:当前,随着大型基础模型特别是大型语言模型(LLMs)的迅猛发展,人工通用智能(AGI)已逐渐展现出希望的曙光。众多机构和团队(如文中提及的布朗等人、OpenAI、Gemini团队等所开展的相关研究)都在推动这一进程,这些大型语言模型的发展成果正让AGI的轮廓变得越来越清晰。
-
能力提升的关键因素:模型和数据规模的持续扩大起着基础性作用,而且还采用了先大规模预训练,再接着进行高质量监督微调(SFT)以及基于人类反馈的强化学习(RLHF)这样的模式。在这样的发展模式下,大型语言模型逐渐具备了在语言理解、生成以及推理方面的新能力,也就是所谓的“涌现能力”,这些能力并非简单的叠加,而是在模型发展到一定程度后自然出现的较为复杂和高级的能力表现。例如,模型能更好地理解一段复杂文本的深层含义、生成逻辑连贯且符合语境的回复,或者依据给定条件进行合理的推理推导等。
-
推理能力的进一步突破:在上述基础之上,近期像OpenAI展示的o1在推理时间扩展方面实现了新突破,使得大型语言模型可以通过逐步推理和反思的方式,像人类进行深度思考那样来处理问题,这进一步挖掘了语言模型的潜力,让人们看到其在未来科学探索等领域有望达成重大突破,因为这些能力越来越接近人们对通用人工智能的期望,比如能够自主去探索新知识、解决复杂科学问题等。
1.2 开源大型语言模型的影响
-
开源模型涌现:在过去两年间,大型语言模型社区里出现了大量开源(开放权重)的大型语言模型,像Llama系列、Mistral系列以及本文着重介绍的通义千问系列等。这些开源模型的出现意义重大,改变了大型语言模型以往相对局限的使用格局。
-
对用户和开发者的积极作用:它们让普通用户和开发者更容易接触和使用大型语言模型,不再受限于以往只有少数特定群体能使用的情况。这样一来,更多的人能够参与到相关研究当中,不同背景的开发者、研究者可以汇聚在社区里交流协作,共同为模型的改进、创新应用的开发出谋划策,进而推动人工智能在各个不同领域(如医疗、教育、金融等)的应用能够加速发展,为各行各业带来更多基于人工智能的解决方案。
1.3 通义千问2.5的相关情况介绍
-
模型发布情况:
-
开源权重部分:通义千问2.5公布了其详细信息,在开源权重方面推出了7种不同规模的预训练模型和指令微调模型,涵盖从0.5B到72B多种参数量级别,满足不同使用场景和需求。并且提供了不同精度的版本,除了bfloat16精度的原始模型外,还有其他精度的量化模型,量化模型有助于降低模型对存储和计算资源的要求,便于更广泛地部署和应用。其旗舰模型通义千问2.5 - 72B - 指令微调模型表现出色,和同领域规模更大(约为其5倍)的先进开源权重模型Llama - 3 - 405B - 指令微调模型相比,性能也毫不逊色,具备很强的竞争力。
-
专有模型部分:还发布了基于混合专家(MoE)技术的专有模型,即通义千问2.5 - Turbo和通义千问2.5 - Plus1,这两个模型在和类似竞品(分别对应GPT - 4o - mini和GPT - 4o)竞争时,展现出了良好的竞争力,说明它们在性能和成本等综合考量方面有自身优势,能在市场中占据一席之地。
-
-
关键特性展现:
-
规模更优方面:对比之前的通义千问2版本,通义千问2.5扩充了模型规模的选择,重新纳入了3B、14B和32B这几种模型。这些中间规模的模型在资源有限的应用场景中性价比更高,例如一些计算资源相对匮乏的小型服务器或者边缘计算设备等场景下,使用它们既能满足一定的性能需求,又不会占用过多资源。而且在当前开放基础模型领域中,这类规模的模型相对来说还不够丰富,通义千问2.5的这一举措正好填补了部分空白,同时通义千问2.5 - Turbo和通义千问2.5 - Plus在准确性、处理延迟以及成本这几个关键要素之间找到了很好的平衡,能为用户提供更优质的综合使用体验。
-
数据更优方面:数据层面有了显著改进,预训练数据从7万亿词元大幅增加到18万亿词元,并且着重聚焦知识、编码以及数学这些重要领域,这意味着模型在学习过程中能接触到更海量且更具针对性的信息,有助于提升其在对应领域的知识储备和处理能力。预训练还采用分阶段的方式,方便实现不同内容混合之间的平滑过渡,使模型学习更加系统和高效。而后训练阶段的数据量达到了100万个示例,覆盖了监督微调(SFT)、直接偏好优化(DPO)以及群组相对策略优化(GRPO)等多个重要环节,通过这些全面且精细的后训练操作,能进一步优化模型的性能,使其输出更符合人们的期望和实际应用需求。
-
使用更优方面:通义千问2.5解决了通义千问2在实际使用中存在的一些关键局限。比如,文本生成长度有了很大提升,从原来的2000词元增加到8000词元,这使得它在处理长文本相关任务(如长篇文章创作、长篇故事生成等)时更具优势;对结构化输入和输出(像表格、JSON格式这类有特定结构的数据)的支持变得更好,方便在涉及数据处理、信息整合等应用场景中使用,例如可以更好地解析表格数据并生成相应结构化的回复;在工具使用方面也更加便捷,可能是与外部工具(如数据库查询工具、特定的专业软件等)的交互更顺畅,更易于借助外部工具来拓展自身功能,提升整体实用性。此外,通义千问2.5 - Turbo还支持长达100万词元的上下文长度,这在处理超长文本、复杂对话场景等需要长时间记忆和关联上下文信息的情况下,能发挥很大的作用,保证模型输出的连贯性和准确性。
-
2 Architecture & Tokenizer
通义千问2.5系列涵盖了不同类型的模型,一是用于开源的密集型模型,具体有通义千问2.5 - 0.5B、1.5B、3B、7B、14B、32B、72B这些不同参数量级的模型,可供开发者等群体自由获取使用;二是用于提供API服务的混合专家(MoE)模型,像通义千问2.5 - Turbo和通义千问2.5 - Plus,这类模型主要通过API接口的方式为用户提供服务,往往在特定的应用场景和功能需求方面有独特优势。
2.1 模型架构相关细节
-
基础架构元素
-
位置信息编码与相关机制:在模型架构中,运用旋转位置嵌入(RoPE)技术来对位置信息进行编码,这一技术能让模型更好地理解文本中词元所处的位置顺序,因为对于语言模型来说,词元的先后顺序等位置信息对于准确把握语义等是很关键的。同时,在注意力机制里采用了查询(Q)、键(K)、值(V)偏差(QKV bias),注意力机制本身是帮助模型聚焦文本不同部分重要性的关键环节,添加这个偏差可以进一步优化模型对不同词元关系的捕捉和处理能力。另外,还使用了均方根层归一化(RMSNorm)且是预归一化的方式,其目的在于保证模型在训练过程中的稳定性,避免出现梯度消失或梯度爆炸等问题,使得训练能够顺利、有效地进行下去。
-
-
从密集型到混合专家(MoE)架构的扩展
-
架构转变方式:以原有的密集型模型架构为基础,将其扩展成混合专家(MoE)架构。具体操作是把标准的前馈网络(FFN)层替换为专门的混合专家层。每个混合专家层里包含了多个前馈网络专家,并且配备了一个路由机制。这个路由机制非常重要,它起着分配词元的作用,会根据一定规则把词元分配给排名前K的专家,也就是让不同的词元能被相应更合适的专家进行处理,以此来提升模型整体的处理效率和性能表现。
-
借鉴方法与创新举措:参考通义千问1.5 - 混合专家(MoE)所展示的方法,进一步实施了细粒度的专家划分以及共享专家路由。细粒度的专家划分能够更精准地对不同类型、不同特点的词元进行分类处理,让每个专家可以专注于处理特定类型的词元;共享专家路由则可以在不同部分、不同阶段更合理地调配专家资源,提高资源利用效率。通过这些架构方面的创新,使得模型在面对下游各种不同的任务(比如文本分类、问答系统、文本生成等具体应用任务)时,性能得到了实实在在的显著提升,能够输出更准确、更符合要求的结果。
-
2.2 分词相关内容
-
分词器及编码方式:在对文本进行处理时,使用的是通义千问的分词器,这个分词器采用字节级字节对编码(BBPE)的方式来处理文本,将文本分割成一个个的词元。字节级字节对编码是一种比较常用且有效的文本编码方式,它能够较好地处理各种自然语言文本,尤其是对于那些不在词汇表中的罕见词或者新出现的词等,都能进行合理的编码表示。并且其常规词元词汇表规模达到了151,643个词元,这为模型准确理解和处理大量文本提供了丰富的基础词元储备。
-
控制词元的扩展及作用:与之前的通义千问版本相比,控制词元的数量有了明显增加,从原来的3个扩展到了22个。其中专门新增了2个用于工具功能的控制词元,这意味着模型在与外部工具进行交互或者调用相关工具功能时,有了专门对应的标识词元,能更好地实现这些操作。其余新增的控制词元则分配给了其他模型功能,比如可能用于表示不同的文本格式、特定的语义角色等。通过这样的扩展,在整个通义千问2.5系列的所有模型中建立起了统一的词汇表,好处在于增强了模型之间的一致性,无论使用该系列中的哪个模型,在词汇理解和处理上都能保持相对统一的标准,同时也减少了因为词汇不一致等可能带来的潜在兼容性问题,比如不同模型之间交互、协同工作时出现理解差异等情况会大大减少。
3 Pre-training
我们的语言模型预训练过程包含几个关键部分。首先,我们通过复杂的筛选和评分机制精心策划高质量的训练数据,并结合策略性的数据混合。其次,我们对超参数优化进行广泛研究,以便有效地训练不同规模的模型。最后,我们采用专门的长上下文预训练来提升模型处理和理解长序列的能力。下面,我们将详细介绍我们在数据准备、超参数选择和长上下文训练方面的方法。
3.1 Pre-training Data
Qwen2.5预训练数据质量提升的关键方面
-
数据筛选改进
-
重要性强调:高质量的预训练数据是模型性能的基石,所以数据质量评估与筛选在整个流程中占据关键地位。
-
筛选方法:利用Qwen2 - Instruct模型作为筛选工具,它能从多个维度对训练样本进行全面分析评估并打分。此方法相比用于Qwen2的旧方法有显著进步,原因在于Qwen2在更大规模多语言语料库上的预训练使其能力得到拓展。这种拓展后的能力可实现更精细的质量评估,具体表现为能更好地保留高质量训练数据,同时更精准地过滤掉多语言环境下的低质量样本。例如,在处理包含多种语言文本的训练数据时,能更敏锐地识别出不同语言中表达不准确、不完整或不符合要求的数据,从而提升整体数据质量。
-
-
数学和代码数据优化
-
数据整合策略:在Qwen2.5预训练时,引入了来自Qwen2.5 - Math和Qwen2.5 - Coder的训练数据。这些特定领域的数据集在提升模型于数学和编码任务上的表现方面效果显著。例如,Qwen2.5 - Math数据集包含丰富的数学问题、公式推导、解题思路等信息,Qwen2.5 - Coder数据集则涵盖了各类编程代码示例、算法逻辑等内容。通过整合这些数据,Qwen2.5在预训练过程中得以学习到专业的数学推理和代码生成知识,从而继承了强大的相关能力。当面对数学计算问题或代码编写需求时,模型能够凭借预训练所学到的知识,更准确、高效地进行处理。
-
-
合成数据提升
-
生成与筛选方式:为生成高质量合成数据,尤其是在数学、代码和知识领域,借助了Qwen2 - 72B - Instruct和Qwen2 - Math - 72B - Instruct模型。之后,运用专有的通用奖励模型和Qwen2 - Math - RM - 72B模型进行严格筛选。通用奖励模型可从整体上评估合成数据的质量,判断其是否符合预期标准;Qwen2 - Math - RM - 72B模型则专注于数学领域,确保数学相关合成数据的准确性和逻辑性。通过这种方式,有效提高了合成数据的质量,使其能更好地服务于模型训练,增强模型在相应领域的处理能力。例如,在生成数学练习题的合成数据时,经过筛选后的数据能更准确地反映数学知识要点,且难度分布合理。
-
-
数据混合优化
-
数据分布问题分析:在优化预训练数据分布方面,通过Qwen2 - Instruct模型对不同领域内容进行分类和平衡。经分析发现,网络规模数据中存在领域占比失衡现象。像电子商务、社交媒体和娱乐等领域的数据占比过高,且这些数据多为重复、模板化或机器生成的内容,对模型学习高价值信息帮助有限。而技术、科学和学术研究等领域虽信息质量高,但占比较低。
-
平衡策略:针对此问题,采取了策略性的采样调整。对占比过高的领域进行下采样,减少冗余信息的输入;对高价值领域进行上采样,增加优质数据的比例。这样调整后的训练数据集更加平衡,富含更多有价值信息,能更好地契合模型的学习目标,使模型在学习过程中接触到更全面、更有深度的知识,从而提升模型的综合能力。例如,在训练模型理解科学概念时,经过优化后的数据集中科学领域相关的数据量增加,有助于模型更深入地学习科学知识,进而在处理科学相关问题时表现更出色。
-
通过上述一系列技术手段,成功构建了一个规模更大(从7万亿词元扩展到18万亿词元)且质量更高的预训练数据集,为Qwen2.5模型提供了更坚实的数据基础,有助于其在各项任务中展现更优异的性能。这个更大规模的数据集意味着模型在预训练过程中有更多的数据可供学习,能够捕捉到更广泛的语言模式、知识信息和逻辑关系;更高质量的数据则确保模型学习到的信息更加准确、有用,减少错误或低质量信息对模型学习的干扰,从而全面提升模型的性能表现。
3.2 Scaling Law for Hyper-parameters
基于Qwen2.5预训练数据开发超参数缩放定律
-
背景与研究方向差异:
以往有诸多研究(如Dubey等人、Almazrouei等人、Hoffmann等人的相关研究)聚焦于利用缩放定律,在给定计算资源预算的情况下,去确定什么样的模型大小是最优的。也就是说,重点考虑在算力有限的条件下,模型规模多大能达到最好的效果。而此次研究另辟蹊径,是基于Qwen2.5的预训练数据,尝试运用缩放定律去找出不同模型架构下的最优超参数。这里的超参数包括像批量大小(batch size,用B表示)以及学习率(learning rate,用μ表示)等,它们对于模型训练过程和最终性能有着至关重要的影响。例如,学习率决定了模型每次更新参数时“步子”的大小,如果学习率过大可能导致模型无法收敛到最优解,过小则训练速度会很慢;批量大小关乎每次训练时使用的数据量多少,影响着模型参数更新的稳定性等。
实验探究模型架构与最优超参数的关系
-
实验范围设定:
开展了大量的实验来深入、系统地研究模型架构和最优训练超参数之间的关联。具体操作中,着重分析了最优学习率(μopt)以及最优批量大小(Bopt)这两个关键超参数随着模型大小(用N表示,比如模型里包含的参数数量)以及预训练数据大小(用D表示,像数据集中包含的词元数量等体现数据规模的指标)的变化情况。而且实验涵盖的范围很广,在模型架构方面,既包含了参数数量从4400万(44M)到140亿(14B)的密集模型(dense models),又涉及激活参数数量从4400万(44M)到10亿(1B)的混合专家(MoE,Mixture of Experts)模型。在训练所使用的数据方面,选用的数据集其词元数量跨度从8亿(0.8B)到6000亿(600B),如此全面的实验设置能够较为完整地展现不同情况下各因素之间的关系。
例如,对于一个较小参数规模的密集模型(比如4400万参数),在相对较小的预训练数据集(比如8亿词元)上训练时,其对应的最优学习率和批量大小可能是某一组特定的值;而当模型参数规模增大到140亿,预训练数据规模也扩大到6000亿词元时,最优学习率和批量大小就会相应地发生变化,通过这样大量不同组合的实验去探寻其中的规律。
利用最优超参数预测构建最终损失模型
-
最终损失建模思路:
在通过前面的实验得到了不同情况下的最优超参数预测值之后,进一步把最终损失(final loss,衡量模型训练效果的一个重要指标,损失越小通常意味着模型性能越好)当作是模型架构以及训练数据规模的函数来进行建模。这样做的目的是希望通过建立起这种函数关系,更清晰地了解在不同的模型架构搭建以及不同的数据规模条件下,最终损失会如何变化,从而能更好地把握模型整体的训练效果走向,为后续优化等操作提供依据。
借助缩放定律指导MoE模型超参数配置并对比性能
-
性能对比与配置指导:
利用缩放定律去预测和比较不同参数数量的混合专家(MoE)模型和与之对应的密集模型的性能表现。MoE模型有其独特的结构特点,它包含多个专家模块,通过一定的机制来决定在不同情况下启用哪些专家进行计算,所以其参数配置相对复杂一些。通过这样的性能对比分析,就可以依据结果来指导MoE模型的超参数配置工作。比如,经过仔细调整MoE模型的激活参数(实际参与计算的那部分专家相关的参数)以及总参数,能够让MoE模型达到和特定的密集模型变体(像Qwen2.5 - 72B和Qwen2.5 - 14B这些已经有一定性能表现的密集模型)相当的性能水平。这意味着在实际应用中,可以根据具体需求、算力等各方面情况,更合理地选择使用密集模型还是MoE模型,并且能够通过合适的超参数配置让它们发挥出期望的性能效果。
3.3 Long-context Pre-training
Qwen2.5的两阶段预训练方法及相关调整
-
两阶段预训练概述:
Qwen2.5为了达到最佳的训练效率,设计了包含两个阶段的预训练方式。在最开始的初始阶段,设定了上下文长度为4096个词元,这里的上下文长度可以简单理解为模型在一次处理过程中能够“看到”和考虑的文本序列长度范围。随后进入扩展阶段,目的是让模型能够应对更长的文本序列情况,以此来提升模型对长文本相关任务的处理能力。
-
除Qwen2.5 - Turbo外模型变体的处理:
参照之前Qwen2所运用的策略,在除了Qwen2.5 - Turbo这个特定变体之外的其他所有模型变体进行最终预训练的时候,会对上下文长度做进一步拓展。具体来说,就是把原本的4096个词元的上下文长度增加到32768个词元。与此同时,还会对旋转位置编码(RoPE)的基频进行调整。RoPE是一种在模型中用于处理位置信息的技术,通过将基频从10000提高到1000000(利用ABF技术来实现,ABF技术由相关研究者提出,能够帮助完成这样的参数调整操作),可以让模型更好地适应更长的上下文长度,更准确地把握文本中不同位置词元之间的关系,有助于提升模型在长序列文本处理时的性能。
Qwen2.5 - Turbo的渐进式上下文长度扩展策略
-
多阶段扩展过程:
对于Qwen2.5 - Turbo这个特殊的模型变体,采用了一种循序渐进的上下文长度扩展策略,一共划分成四个阶段来逐步增加其能处理的上下文长度。先是达到32768个词元,接着进一步扩展到65536个词元,然后再到131072个词元,最终可以达到262144个词元的上下文长度。并且在这个过程中,其旋转位置编码(RoPE)的基频设定为10000000,这个特定的基频设置也是配合着不断增长的上下文长度,帮助模型更好地对不同位置的词元进行编码和处理,从而适应长序列文本的情况。