Qwen2.5:新一代大型语言模型的技术解析与未来展望

8

在人工智能领域,大型语言模型(LLMs)的快速发展正逐步将通用人工智能(AGI)的愿景变为现实。随着模型和数据规模的不断扩大,以及大规模预训练后高质量监督微调(SFT)和人类反馈强化学习(RLHF)等技术的应用,LLMs在语言理解、生成和推理能力上都取得了显著的进步。特别是由OpenAI o1 展示的推理时间扩展,通过逐步推理和反思增强了LLMs的深度思考能力,进一步提升了语言模型的潜力。这些进步预示着LLMs在科学探索中取得重大突破的可能性,同时也标志着它们在迈向通用人工智能的道路上又迈出了坚实的一步。

值得关注的是,过去两年间,LLM社区见证了开源模型的蓬勃发展,例如Llama系列、Mistral系列和Qwen系列。开源模型降低了LLMs的使用门槛,促进了更广泛的科研参与,并通过社区合作激发创新,加速了AI在各个领域的应用。近期,Qwen系列最新版本Qwen2.5的发布,再次引起了业界的广泛关注。

Qwen2.5 提供了多种配置选择,以满足不同应用场景的需求:

  • 开源模型:Qwen2.5提供了七个不同规模的预训练和指令微调模型,参数量分别为0.5B、1.5B、3B、7B、14B、32B和72B。这些模型不仅提供了原始精度(bfloat16)版本,还提供了不同精度的量化模型。其中,旗舰模型Qwen2.5-72B-Instruct在性能上与Llama-3-405B-Instruct(约5倍参数)相当,展现了卓越的性能。
  • MoE 专有模型:Qwen2.5还提供了Qwen2.5-Turbo和Qwen2.5-Plus两种专家混合模型(MoE)变体,分别在性能上与GPT-4o-mini和GPT-4o相当,为用户提供了更强大的选择。

Qwen2.5 的关键特点包括:

  • 更好的规模:相较于Qwen2,Qwen2.5不仅引入了0.5B、1.5B、7B和72B模型,还重新引入了3B、14B和32B模型。这些模型在资源受限的场景中更具成本效益,并且在当前开放基础模型领域中相对较少被使用。Qwen2.5Turbo 和 Qwen2.5-Plus 在准确性、延迟和成本之间实现了良好的平衡。
  • 更好的数据:Qwen2.5在预训练和后训练数据方面都得到了显著的改进。预训练数据从7万亿个token增加到18万亿个token,重点在于知识、编程和数学。预训练过程分阶段进行,以允许不同混合模型之间的过渡。 后训练数据量达到100万例,涵盖了监督微调、DPO、GRPO等不同阶段。
  • 更好的使用:Qwen2.5在易用性方面也进行了改进,包括生成长度的增加(从2000个token增加到8000个token)、对结构化输入和输出(例如表格和JSON)的支持增强,以及工具使用的便捷性。此外,Qwen2.5Turbo 支持上下文长度最多为100万token,极大地扩展了应用场景。

AI快讯

Qwen2.5系列模型架构与分词器:

Qwen2.5系列包括开源的稠密模型(Qwen2.5-0.5B / 1.5B / 3B / 7B / 14B / 32B / 72B)以及API服务的MoE模型(Qwen2.5-Turbo 和 Qwen2.5-Plus)。

对于稠密模型,Qwen2.5延续了Qwen2中基于Transformer的解码器架构。该架构包含几个关键组件:分组查询注意(GQA),用于高效利用KV缓存;SwiGLU激活函数,用于非线性激活;旋转位置嵌入(RoPE),用于编码位置信息;QKV 偏置以及RMSNorm,确保训练的稳定性。

在稠密模型的基础上,通过用专门的MoE层替换标准的FFN层,Qwen2.5将架构扩展到MoE模型。每个MoE层包含多个FFN专家和一个路由机制,用于将token分发给前K个专家。Qwen2.5借鉴了Qwen1.5-MoE的研究方法,实施了精细的专家分割和共享专家路由。

Qwen2.5采用了Qwen的分词器,该分词器实现了字节级的字节对编码,词汇表包含151,643个常规分词。与之前相比,Qwen2.5扩展了控制分词符的集合(从3个扩展到22个),新增了两个分词符用于工具功能,并将剩余的分词符分配给其他模型能力。这一扩展在所有Qwen2.5模型中建立了统一的词汇表,增强了一致性并减少了潜在的兼容性问题。

Qwen2.5 的预训练过程,包含了多个关键组件,首先,通过复杂的筛选和评分机制筛选高质量的训练数据,并结合战略性数据混合。其次,进行广泛的超参数优化研究,以有效训练不同规模的模型。最后,整合专门的长上下文预训练,以增强模型处理和理解长序列的能力。

预训练数据增强

Qwen2.5 在预训练数据质量方面相较于其前代 Qwen2 展示了显著的增强,数据过滤是关键一环,Qwen2.5 利用 Qwen2-Instruct 模型作为数据质量过滤器,进行全面的多维度分析,以评估和评分训练样本。得益于 Qwen2 在更大规模多语言语料库上的扩展预训练,此过滤方法提高了质量评估能力,从而在多个语言中更有效地保留高质量的训练数据并过滤低质量样本。

整合数学和代码数据同样重要。Qwen2.5整合了 Qwen2.5-Math 和 Qwen2.5-Coder 的数据集,专门的数据集在数学和编程任务上达到最先进的性能方面发挥了关键作用,Qwen2.5 继承了强大的数学推理和代码生成能力。

在合成数据方面,Qwen2.5为了生成高质量的合成数据,尤其是在数学、代码和知识领域,利用了 Qwen2-72B-Instruct 和 Qwen2Math-72B-Instruct 两种模型。通过使用专有的通用奖励模型和 Qwen2-Math-RM-72B 模型进行严格的过滤,进一步提高了合成数据的质量。

数据混合策略也得到了优化。为了优化预训练数据分布,采用了 Qwen2-Instruct 模型对内容进行分类和平衡,使其在不同领域之间分布更加均衡。分析表明,在大规模网络数据中,电子商务、社交媒体和娱乐等领域的内容显著过量,这些内容往往具有重复性、模板化或机器生成的特点。 相反,技术、科学和学术研究等领域虽然包含高质量的信息,但却常常被低估。通过战略性地减少过量领域的样本数量,并增加高价值领域的样本数量,确保了更均衡且信息丰富的训练数据集,从而更好地服务于模型的学习目标。

基于这些技术,Qwen2.5 开发了一个更大规模和更高质量的预训练数据集,将预训练数据从 Qwen2 中使用的 7 万亿个 token 扩展到了 18 万亿个 token。

基于 Qwen2.5 的预训练数据开发了超参数的 Scaling Law。以往的研究主要利用 Scaling Law 来确定给定计算预算下的最优模型规模,但Qwen2.5则利用它们来识别不同模型架构下的最优超参数。具体而言,Scaling Law 有助于确定不同规模稠密模型和 MoE 模型的关键训练参数,如批量大小 B B B 和学习率 μ \mu μ。

通过广泛的实验,系统地研究了模型架构与最优训练超参数之间的关系。具体而言,分析了最优学习率 μ opt \mu_{\text{opt}} μopt​ 和批量大小 B opt B_{\text{opt}} Bopt​ 随模型规模 N N N 和预训练数据规模 D D D 的变化情况。实验涵盖了广泛的架构,包括从 44M 到 14B 参数的稠密模型和从 44M 到 1B 激活参数的 MoE 模型,在从 0.8B 到 600B token 的不同数据集上进行训练。利用这些最优超参数预测,随后将最终损失建模为模型架构和训练数据规模的函数。

此外,Qwen2.5 利用 Scaling Law 预测并比较不同参数数量的 MoE 模型与对应稠密模型的性能。这一分析指导了对 MoE 模型的超参数配置,通过仔细调整激活参数和总参数数量,使 MoE 模型能够与特定的稠密模型变体(如 Qwen2.5-72B 和 Qwen2.5-14B)实现性能上的可比性。

为了实现最优训练效率,Qwen2.5 采用了两阶段预训练方法:初始阶段采用 4,096 个 token 的上下文长度,随后是扩展阶段以处理更长的序列。借鉴 Qwen2 的策略,在最终的预训练阶段,将所有模型变体(除了 Qwen2.5-Turbo)的上下文长度从 4,096 扩展到 32,768 个 token。同时,利用 ABF 技术将 RoPE 的基频率从 10,000 提高到 1,000,000。

对于 Qwen2.5-Turbo,在训练过程中实施了一种逐级扩展上下文长度的策略,分为四个阶段:32,768 个 token、65,536 个 token、131,072 个 token,最终扩展到 262,144 个 token,同时 RoPE 的基频率设定为 10,000,000。在每个阶段,精心筛选训练数据,包括 40% 当前的最大长度序列和 60% 较短的序列。这种逐级训练方法使得模型能够平滑地适应不断增加的上下文长度,同时保持其处理和泛化不同长度序列的能力。

为了增强模型在推理过程中处理更长序列的能力,实施了两种关键策略:YARN 和双块注意力机制(DCA)。通过这些创新,实现了序列长度处理能力四倍的提升,使 Qwen2.5-Turbo 能够处理多达 100 万个 token,其他模型能够处理多达 131,072 个 token。

这些方法不仅通过降低困惑度提高了长序列建模能力,还保持了模型在较短序列上的强大性能,确保了不同输入长度的一致质量。

Qwen 2.5 在后训练设计方面相较于 Qwen 2 引入了两项重要的进步:扩展监督微调数据覆盖范围以及两阶段强化学习。

在监督微调方面,Qwen2.5 能够生成长达 8,192 个 token 的高质量内容,这一输出上下文长度远超典型的后续训练响应长度(不超过 2,000 个 token)。为解决这一差距,开发了长响应数据集,并采用反向翻译技术从预训练语料库生成长文本数据的查询,施加输出长度约束,并利用 Qwen2 过滤低质量配对数据。

Qwen2.5引入了 Qwen2.5-Math 的链式思维数据集,该数据集涵盖多种查询来源,包括公共数据集、K-12 问题集以及合成问题。为了确保高质量的推理,采用了拒绝采样以及奖励建模和标注答案进行指导,生成逐步推理过程。Qwen2.5为提高编程能力,整合了 Qwen2.5Coder 的指令调优数据,将多种语言特定代理整合到协作框架中,生成近 40 种编程语言的多样化和高质量指令对。通过从代码相关问答网站合成新示例并收集 GitHub 上的算法代码片段来扩展指令数据集。使用多语言综合沙盒进行静态代码检查,并通过自动单元测试验证代码片段,确保代码质量和正确性。

为确保高质量的指令遵循数据,实施了严格的基于代码的验证框架。在此方法中,LLM 生成指令及其相应的验证代码,并生成全面的单元测试以进行交叉验证。通过基于执行反馈的拒绝采样,仔细筛选用于监督微调的训练数据,从而确保模型严格遵循预期指令。Qwen2.5开发了一套全面的结构化理解数据集,涵盖传统任务(如表格问答、事实验证、错误修正和结构理解)以及涉及结构化和半结构化数据的复杂任务。通过将推理链整合到模型的响应中,显著增强了其从结构化数据中推断信息的能力,从而在这些多样任务中提高了其性能。这种方法不仅扩大了数据集的范围,还加深了模型从复杂数据结构中推理和提取有意义见解的能力。

Qwen2.5引入了涵盖多个领域的70,000多个新查询,增强模型的逻辑推理能力。这些查询包括多项选择题、真/假题以及开放性问题。模型被训练以系统地解决问题,并运用多种推理方法,如演绎推理、归纳概括、类比推理、因果推理和统计推理。通过迭代优化,系统地筛选掉包含错误答案或推理过程缺陷的数据。这一过程逐步增强了模型的逻辑推理能力和准确性,确保其在不同类型的推理任务中表现出稳健的性能。

为促进模型通用能力在不同语言间的迁移,Qwen2.5采用翻译模型将高资源语言的指令转换为各种低资源语言,从而生成相应的响应候选。为了确保这些响应的准确性和一致性,评估了每个多语言响应与其原始对应物的语义对齐程度。这一过程保留了原始响应的逻辑结构和风格上的细微差别,从而在不同语言中保持其完整性和连贯性。Qwen2.5构建了数百个通用系统提示,以提高训练后系统提示的多样性,确保系统提示与对话的一致性。使用不同系统提示的评估表明,模型保持了良好的性能,并且减少了性能波动,表明其稳健性得到了提升。

为了评估响应的质量,Qwen2.5 采用了多种自动标注方法,包括专门的批评模型和多智能体协作评分系统。响应经过严格评估,只有所有评分系统均认定为完美的响应才会被保留。最终,构建了一个包含超过 100 万样本的 SFT 数据集。模型经过两轮微调,序列长度为 32,768 个 token。为了优化学习效果,学习率从 7 × 1 0 − 6 7×10^{-6} 7×10−6 逐渐降低至 7 × 1 0 − 7 7×10^{-7} 7×10−7。为了解决过拟合问题,应用了权重衰减 0.1,并将梯度范数剪裁至最大值 1.0。

与在线强化学习相比,离线强化学习允许预先准备训练信号,这在标准答案存在但难以通过奖励模型进行评估的任务中特别有利。在本研究中,重点关注诸如数学、编程、指令遵循和逻辑推理等目标查询领域,在这些领域中,获得准确的评估可能较为复杂。在前一阶段,广泛采用了执行反馈和答案匹配等策略,以确保响应的质量。对于当前阶段,重用了该管道,利用 SFT 模型重新采样一组新的查询响应。通过质量检查的响应被用作正例,而未能通过质量检查的响应则作为直接偏好优化(DPO)训练的负例。为了进一步提高训练信号的可靠性和准确性,采用了人工和自动审查的双重流程。这种双重方法确保了训练数据不仅可学习,还与人类期望相一致。

最终,构建了一个包含约 15 万个训练对的数据集。然后,使用在线合并优化器对该模型进行了一轮训练,学习率为 7 × 1 0 − 7 7×10^{−7} 7×10−7。

为了开发一个稳健的奖励模型以应用于在线强化学习,遵循一套精心定义的标注标准。 这些标准确保模型生成的响应不仅质量高,而且符合伦理和用户中心的标准。

用于训练奖励模型的查询数据来源于两个不同的数据集:公开的开源数据和一个具有更高复杂性的专有查询集。响应由经过不同方法(即SFT、DPO 和 RL)微调的 Qwen 模型生成,并且在训练的不同阶段采用不同的微调方法。为了增加多样性,响应是在不同的温度设置下抽取的。偏好对通过人工和自动标注过程创建,而 DPO 的训练数据也被整合到这个数据集中。

在在线强化学习框架中,采用群组相对策略优化(GRPO)。用于训练奖励模型的查询集与 RL 训练阶段使用的查询集相同。在训练过程中查询的处理顺序由奖励模型对其响应得分的方差决定,具体而言,响应得分方差较高的查询被优先处理,以确保更有效的学习。为每个查询抽取 8 个响应。所有模型均使用 2048 的全局批量大小和每集 2048 个样本进行训练,考虑到查询和响应为一对样本。

为进一步延长 Qwen2.5-Turbo 的上下文长度,在后训练阶段引入了更长的强化学习示例,使模型更好地与长查询的人类偏好对齐。在 SFT 微调阶段,采用两阶段方法。第一阶段,模型仅使用包含最多 32,768 个标记的短 token 进行微调,使用与其他 Qwen2.5 模型相同的训练数据和步骤,确保其在短任务上的强大性能。第二阶段,微调过程结合了短 token(最多 32,768 个标记)和长 token(最多 262,144 个标记),这种混合方法有效增强了模型在长上下文任务中的指令遵循能力,同时保持其在短任务上的性能。在 RL 阶段,采用与其它 Qwen2.5 模型相同的训练策略,仅专注于短指令。这一设计选择受到两个主要因素的驱动:首先,长上下文任务的 RL 训练计算成本高昂;其次,目前缺乏适用于长上下文任务的奖励模型,能够提供合适的奖励信号。此外,发现仅在短指令上采用RL训练仍能显著增强模型在长上下文任务中与人类偏好的对齐能力。

AI快讯

预训练模型和后训练的指令调优模型均使用综合评估套件进行评估,包括常用的标准公开基准和技能导向的内部数据集。评估套件设计为以自动评估为主,尽量减少人工干预。为防止测试数据泄露,在构建预训练和后训练数据集时,使用 n-gram 匹配法排除可能被污染的数据。

对 Qwen2.5 系列的基础语言模型进行了全面评估。基础模型的评估主要侧重于其在自然语言理解、通用问答、编程、数学、科学知识、推理以及多语言能力方面的表现。评估数据集包括一般任务、数学与科学任务、编码任务和多语言任务。

为了全面评估指令调优模型的质量,结合自动评估和人工评估来评估其能力和人类偏好。对于基本能力的评估,应用与预训练模型评估中类似的基准数据集,这些数据集旨在评估自然语言理解、编程、数学和推理能力。具体而言,通用评估包括:MMLU-Pro、MMLU-redux、LiveBench 0831,科学和数学评估包括:GPQA、GSM8K、MATH,编程评估包括:HumanEval、MBPP、MultiPL-E、LiveCodeBench 2305-2409,指令遵循评估:IFEval,人类偏好对齐和指令遵循:MT-Bench、Arena-Hard

内部自动评估,尽管存在多个可用于评估的开源基准数据集,我们仍认为这些数据集不足以全面捕捉大语言模型(LLM)的能力。为解决这一问题,我们开发了一系列内部数据集,旨在评估模型在多个方面的性能,包括知识理解、文本生成、编程等。这些评估包括中文和英文,还专门评估了指令调优模型的多语言性能。

奖励模型是指导强化学习(RL)过程的基础,因此我们对 Qwen2.5 系列中使用的奖励模型进行了单独评估。评估基准包括 Reward Bench、RMB、PPE,以及一个内部收集的离域中文人类偏好基准(Human-Preference-Chinese)以提供全面的分析。

通过迭代实验,还认识到一个关键限制:当前的奖励模型评估基准并不能准确预测在其指导下训练的RL模型的表现。这一认识强调了需要进一步研究更具预测性的评估方法以评估奖励模型的重要性。

AI快讯

利用三个基准来评估 Qwen2.5 模型的长上下文处理能力:RULER、LV-Eval、Longbench-Chat。在LV-Eval中,采用关键词召回作为报告得分,以降低原始指标中高比例的假阴性结果。

此外,Qwen2.5-Turbo 在 1M token 的密钥检索任务中实现了 100% 的准确率,展示了其卓越的从超长上下文中捕捉详细信息的能力。基于 Minference 开发了一种稀疏注意机制,以显著提高推理速度,这对于处理长上下文时的用户体验至关重要。对于 1M token 的序列,这种方法将注意力机制的计算负担减少了 12.5 倍。

展望未来,Qwen2.5将通过纳入更广泛、更具多样性和更高质量的数据,迭代改进基础模型和指令调优的大语言模型(LLMs)。其次,还将继续开发多模态模型。目标是将各种模态整合到统一框架中,从而实现文本、视觉和听觉领域无缝、端到端的信息处理。第三,致力于增强模型的推理能力,这将通过战略性扩展推理计算资源来实现。这些努力旨在突破当前技术限制的边界,并为人工智能领域做出贡献。