再读Qwen2.5 Technical Report

作者 | 曾天真 编辑 | 自动驾驶之心

 原文链接:https://zhuanlan.zhihu.com/p/25779226727 

点击下方卡片,关注“自动驾驶之心”公众号

戳我-> 领取自动驾驶近15个方向学习路线

>>点击进入→自动驾驶之心『大模型』技术交流群

本文只做学术分享,如有侵权,联系删文

背景:最近DeepSeek-R1的风头正劲,而其实目前主流的被蒸馏基座模型仍然是Qwen。因此今天还是花点时间回顾一下Qwen2.5的模型,也许在不久的未来就有Qwen的推理模型就会出炉。

其实很多策略是通用的。

Qwen2.5核心优化点:

Qwen 2.5 在预训练和训练后阶段都有显著改进。

在预训练方面,将高质量预训练数据集从之前的 7 万亿词元扩展到 18 万亿词元,这为常识、专业知识和推理能力奠定了坚实基础。

在训练后阶段,我们实施了包含超过 100 万个样本的精细监督微调,以及包括离线学习直接偏好优化(DPO)和在线学习组相对策略优化(GRPO)在内的多阶段强化学习。

预训练部分:

我们的语言模型预训练过程包含几个关键部分。首先,我们通过复杂的筛选和评分机制,精心挑选高质量的训练数据,并进行策略性的数据混合。其次,我们对超参数优化展开广泛研究,以便有效地训练各种规模的模型。最后,我们采用专门的长上下文预训练,来增强模型处理和理解长序列的能力。下面,我们将详细介绍数据准备、超参数选择和长上下文训练的方法。

预训练数据

与前作Qwen2相比,Qwen2.5在预训练数据质量上有显著提升。这些改进源于以下几个关键方面:

  1. 更优的数据筛选:高质量的预训练数据对模型性能至关重要,因此数据质量评估和筛选是我们流程的关键部分。我们利用Qwen2-Instruct模型作为数据质量筛选器,进行全面的多维分析,以评估训练样本并打分。这种筛选方法相较于我们之前用于Qwen2的方法有了重大改进,因为Qwen2在更大的多语言语料库上进行了扩展预训练,其增强的能力能够实现更细致的质量评估,从而在多种语言中更好地保留高质量训练数据,并更有效地过滤掉低质量样本。

  2. 更优质的数学和代码数据:在Qwen2.5的预训练阶段,我们纳入了来自Qwen2.5-Math(Yang等人,2024b)和Qwen2.5-Coder(Hui等人,2024)的训练数据。这种数据整合策略非常有效,因为这些专业数据集对于在数学和编码任务中取得领先性能至关重要。通过在预训练中利用这些高质量的领域特定数据集,Qwen2.5继承了强大的数学推理和代码生成能力。

  3. 更优质的合成数据:为了生成高质量的合成数据,特别是在数学、代码和知识领域,我们利用了Qwen2-72B-Instruct(Yang等人,2024a)和Qwen2Math-72B-Instruct(Qwen团队,2024c)。通过我们专有的通用奖励模型和专门的Qwen2-Math-RM-72B(Qwen团队,2024c)模型进行严格筛选,进一步提高了合成数据的质量。

  4. 更优的数据混合:为了优化预训练数据的分布,我们使用Qwen2-Instruct模型对不同领域的内容进行分类和平衡。我们的分析显示,电子商务、社交媒体和娱乐等领域在网络规模的数据中占比过高,这些数据通常包含重复、模板化或机器生成的内容。相反,技术、科学和学术研究等领域虽然包含更高质量的信息,但传统上在数据中的占比不足。通过对占比过高的领域进行策略性下采样,以及对高价值领域进行上采样,我们确保了训练数据集更加平衡且信息丰富,能更好地满足模型的学习目标。

基于这些技术,我们开发了一个更大、质量更高的预训练数据集,数据量从Qwen2使用的7万亿词元扩展到了18万亿词元。

超参数的缩放定律:

我们基于Qwen2.5的预训练数据开发了超参数的缩放定律(Hoffmann等人,2022;Kaplan等人,2020)。以往的研究(Dubey等人,2024;Almazrouei等人,2023;Hoffmann等人,2022)主要利用缩放定律在给定计算预算的情况下确定最佳模型规模,而我们利用它们来确定不同模型架构的最佳超参数。具体来说,我们的缩放定律有助于确定关键的训练参数,如不同规模的密集模型和MoE模型的批量大小B和学习率μ。

通过大量实验,我们系统地研究了模型架构与最佳训练超参数之间的关系。具体而言,我们分析了最佳学习率(\mu_{opt})和批量大小(B_{opt})如何随模型规模N和预训练数据大小D变化。我们的实验涵盖了广泛的架构,包括参数规模从4400万到140亿的密集模型,以及激活参数从4400万到10亿的MoE模型,在规模从8亿到600亿词元的数据集上进行训练。利用这些最佳超参数预测,我们将最终损失建模为模型架构和训练数据规模的函数。

此外,我们利用缩放定律预测不同参数数量的MoE模型相对于其密集模型对应版本的性能,并进行比较。该分析为我们的MoE模型超参数配置提供了指导,使我们能够通过仔细调整激活参数和总参数,实现与特定密集模型变体(如Qwen2.5-72B和Qwen2.5-14B)相当的性能。

长上下文预训练:

为了实现最佳训练效率,Qwen2.5采用两阶段预训练方法:初始阶段上下文长度为4096词元,随后是针对更长序列的扩展阶段。遵循Qwen2使用的策略,除了Qwen2.5-Turbo之外,所有模型变体在预训练的最后阶段将上下文长度从4096扩展到32768词元。同时,我们使用ABF技术将RoPE的基础频率从10000提高到1000000。

对于Qwen2.5-Turbo,我们在训练过程中实施渐进式上下文长度扩展策略,分为四个阶段:32768词元、65536词元、131072词元,最终达到262144词元,RoPE基础频率为10000000。在每个阶段,我们精心挑选训练数据,使其包含40%当前最大长度的序列和60%更短的序列。这种渐进式训练方法使模型能够平稳适应不断增加的上下文长度,同时保持对不同长度序列进行有效处理和泛化的能力。

为了增强模型在推理过程中处理更长序列的能力,我们采用了两种关键策略:YARN 和双块注意力机制(DCA)。通过这些创新,我们将序列长度容量提高了四倍,使Qwen2.5-Turbo能够处理多达100万个词元,而其他模型能够处理多达131072个词元。值得注意的是,这些方法不仅通过降低困惑度改进了长序列的建模,还保持了模型在短序列上的强大性能,确保了在不同输入长度下的一致质量。

训练后优化:

与Qwen 2相比,Qwen 2.5在训练后优化设计方面有两项重大改进:(1)扩大监督微调数据覆盖范围:监督微调过程使用了包含数百万高质量示例的大规模数据集。这一扩展专门针对前一版本模型存在局限性的关键领域,如长序列生成、数学问题解决、编码、指令遵循、结构化数据理解、逻辑推理、跨语言迁移以及稳健的系统指令处理。(2)两阶段强化学习:Qwen 2.5中的强化学习(RL)过程分为两个不同阶段:离线强化学习和在线强化学习。

  • 离线强化学习:此阶段专注于培养奖励模型难以评估的能力,如推理、事实性和指令遵循能力。通过精心构建和验证训练数据,我们确保离线强化学习信号既易于学习又可靠,使模型能够有效地掌握这些复杂技能。

  • 在线强化学习:在线强化学习阶段利用奖励模型检测输出质量细微差异的能力,包括真实性、有用性、简洁性、相关性、无害性和无偏差性。这使模型能够生成精确、连贯且结构良好的回复,同时保持安全性和可读性。因此,模型的输出始终符合人类质量标准和期望。

监督微调

在本节中,我们详细介绍Qwen2.5在监督微调(SFT)阶段的关键改进,重点关注以下几个关键领域:

  • 长序列生成:Qwen2.5能够生成高质量内容,输出上下文长度可达8192个词元,这比典型的训练后回复长度(通常低于2000个词元)有了显著提升。为了解决这一差距,我们开发了长回复数据集。我们使用反向翻译技术从预训练语料库中为长文本数据生成查询,施加输出长度约束,并使用Qwen2过滤掉低质量的配对数据。

  • 数学能力提升:我们引入了Qwen2.5-Math 的思维链数据,这些数据涵盖了各种查询来源,包括公共数据集、K - 12问题集和合成问题。为确保高质量的推理,我们采用拒绝采样,并结合奖励建模和带注释的答案作为指导,生成逐步的推理过程。

  • 编码能力增强:为提升编码能力,我们整合了Qwen2.5-Coder的指令调整数据。我们将多种特定语言的智能体纳入一个协作框架,生成涵盖近40种编程语言的多样化高质量指令对。我们通过从与代码相关的问答网站合成新示例,并从GitHub收集算法代码片段来扩展指令数据集。一个全面的多语言沙箱用于进行静态代码检查,并通过自动化单元测试验证代码片段,确保代码质量和正确性。

  • 指令遵循优化:为确保高质量的指令遵循数据,我们实施了一个严格的基于代码的验证框架。在这种方法中,大语言模型同时生成指令和相应的验证代码,以及用于交叉验证的全面单元测试。通过基于执行反馈的拒绝采样,我们精心挑选用于监督微调的训练数据,从而保证模型忠实遵循预期指令。

  • 结构化数据理解强化:我们开发了一个全面的结构化理解数据集,涵盖传统任务,如表格问答、事实验证、错误纠正和结构理解,以及涉及结构化和半结构化数据的复杂任务。通过将推理链纳入模型的回复中,我们显著增强了模型从结构化数据中推断信息的能力,从而提高了在这些不同任务上的性能。这种方法不仅拓宽了数据集的范围,还加深了模型从复杂数据结构中进行推理和获取有意义见解的能力。

  • 逻辑推理能力强化:为提升模型的逻辑推理能力,我们引入了70000个涵盖各个领域的新查询。这些查询包括选择题、判断题和开放式问题。模型经过训练,系统地处理问题,运用一系列推理方法,如演绎推理、归纳概括、类比推理、因果推理和统计推理。通过迭代优化,我们系统地过滤掉包含错误答案或有缺陷推理过程的数据。这一过程逐步增强了模型逻辑推理的准确性,确保在不同类型的推理任务中都有稳健的表现。

  • 跨语言迁移优化:为促进模型通用能力在不同语言间的迁移,我们使用翻译模型将高资源语言的指令转换为各种低资源语言,从而生成相应的候选回复。为确保这些回复的准确性和一致性,我们评估每个多语言回复与其原始版本之间的语义对齐。这一过程保留了原始回复的逻辑结构和风格细节,从而在不同语言间保持其完整性和连贯性。

  • 稳健系统指令优化:我们构建了数百个通用系统提示,以提高训练后系统提示的多样性,确保系统提示与对话之间的一致性。使用不同系统提示进行的评估表明,模型保持了良好的性能(Lu等人,2024b)且方差降低,这表明其稳健性得到了提升。

  • 回复过滤机制完善:为评估回复的质量,我们采用了多种自动注释方法,包括专门的评判模型和多智能体协作评分系统。回复经过严格评估,只有所有评分系统都认为完美的回复才会被保留。这种全面的方法确保我们的输出保持最高质量标准。

最终,我们构建了一个包含超过100万个监督微调示例的数据集。模型在序列长度为32768个词元的情况下进行两轮微调。为优化学习过程,学习率从(7×10{-6})逐渐降至(7×10{-7})。为解决过拟合问题,我们应用了0.1的权重衰减,并将梯度范数最大限制为1.0。

离线强化学习

与在线强化学习相比,离线强化学习能够预先准备训练信号,这对于存在标准答案但使用奖励模型难以评估的任务特别有利。在本研究中,我们专注于数学、编码、指令遵循和逻辑推理等客观查询领域,在这些领域中获得准确评估可能较为复杂。在前一阶段,我们广泛采用执行反馈和答案匹配等策略来确保回复的质量。在当前阶段,我们复用该流程,使用监督微调模型为一组新查询重新采样回复。通过我们质量检查的回复被用作直接偏好优化(DPO)训练的正例,而未通过的则被视为负例。为进一步提高训练信号的可靠性和准确性,我们同时利用人工和自动审核流程。这种双重方法确保训练数据不仅易于学习,而且符合人类期望。最终,我们构建了一个包含约150000个训练对的数据集。然后,使用在线合并优化器(Lu等人,2024a)对模型进行一轮训练,学习率为(7×10^{-7}) 。

在线强化学习

为了为在线强化学习开发一个强大的奖励模型,我们遵循一套精心定义的标注标准。这些标准确保模型生成的回复不仅质量高,而且符合道德规范和以用户为中心的标准。数据标注的具体准则如下:

  • 真实性:回复必须基于事实准确,真实反映提供的上下文和指令。模型应避免生成错误或无数据支持的信息。

  • 有用性:模型的输出应真正有用,有效回答用户的查询,同时提供积极、引人入胜、有教育意义且相关的内容。它应严格遵循给定指令,为用户提供价值。

  • 简洁性:回复应简洁明了,避免不必要的冗长。目标是以清晰高效的方式传达信息,避免过多细节给用户造成负担。

  • 相关性:回复的所有部分都应与用户的查询、对话历史以及助手的上下文直接相关。模型应根据用户的需求和期望调整输出。

  • 无害性:模型必须优先保障用户安全,避免任何可能导致非法、不道德或有害行为的内容。它应始终倡导道德行为和负责任的交流。

  • 无偏差性:模型应生成无偏差的回复,包括但不限于性别、种族、国籍和政治方面的偏差。它应平等公正地对待所有主题,遵循广泛接受的道德标准。

用于训练奖励模型的查询来自两个不同的数据集:公开可用的开源数据和一个复杂度较高的专有查询集。回复由Qwen模型在不同训练阶段通过不同方法(监督微调、直接偏好优化和强化学习)微调后的检查点生成。为引入多样性,这些回复在不同温度设置下进行采样。偏好对通过人工和自动标注过程创建,直接偏好优化的训练数据也整合到该数据集中。

在我们的在线强化学习框架中,我们采用组相对策略优化(GRPO)。训练奖励模型的查询集与强化学习训练阶段使用的查询集相同。训练过程中查询的处理顺序由奖励模型评估的回复分数方差决定。具体而言,回复分数方差较高的查询被优先处理,以确保更有效的学习。我们为每个查询采样8个回复。所有模型的训练全局批量大小为2048,每个训练片段包含2048个样本,将一对查询和回复视为一个样本。

长上下文微调

为了进一步扩展Qwen2.5-Turbo的上下文长度,我们在训练后优化阶段引入更长的监督微调示例,使其在长查询中更好地符合人类偏好。在监督微调阶段,我们采用两阶段方法。在第一阶段,模型仅使用长度不超过32768个词元的短指令进行微调。此阶段使用与其他Qwen2.5模型相同的数据和训练步骤,确保在短任务上有强大的性能。在第二阶段,微调过程同时使用短指令(长度不超过32768个词元)和长指令(长度不超过262144个词元)。这种混合方法有效增强了模型在长上下文任务中的指令遵循能力,同时保持了在短任务上的性能。

在强化学习阶段,我们对Qwen2.5-Turbo采用与其他Qwen2.5模型类似的训练策略,仅专注于短指令。这种设计选择主要基于两个考虑因素:首先,长上下文任务的强化学习训练计算成本高昂;其次,目前缺乏能够为长上下文任务提供合适奖励信号的奖励模型。此外,我们发现仅对短指令采用强化学习仍可显著提高模型在长上下文任务中与人类偏好的一致性。

实验部分:

自动驾驶之心

论文辅导来啦

知识星球交流社区

近4000人的交流社区,近300+自动驾驶公司与科研结构加入!涉及30+自动驾驶技术栈学习路线,从0到一带你入门自动驾驶感知(大模型、端到端自动驾驶、世界模型、仿真闭环、3D检测、车道线、BEV感知、Occupancy、多传感器融合、多传感器标定、目标跟踪)、自动驾驶定位建图(SLAM、高精地图、局部在线地图)、自动驾驶规划控制/轨迹预测等领域技术方案、大模型,更有行业动态和岗位发布!欢迎加入。

独家专业课程

端到端自动驾驶大模型、VLA、仿真测试、自动驾驶C++、BEV感知、BEV模型部署、BEV目标跟踪、毫米波雷达视觉融合、多传感器标定、多传感器融合、多模态3D目标检测、车道线检测、轨迹预测、在线高精地图、世界模型、点云3D目标检测、目标跟踪、Occupancy、CUDA与TensorRT模型部署、大模型与自动驾驶、NeRF、语义分割、自动驾驶仿真、传感器部署、决策规划、轨迹预测等多个方向学习视频

学习官网:www.zdjszx.com

### 关于Qwen2.5Qwen2.5Code的区别 #### 特征对比 对于Qwen2.5Qwen2.5Code之间的差异,主要体现在设计目标和支持的任务类型上。Qwen2.5专注于处理多模态任务,特别是涉及图像理解和生成的场景。该模型能够通过潜在查询和文本查询来执行不同类型的视觉理解任务,并能提供像素级掩码和语义嵌入作为输出[^1]。 相比之下,Qwen2.5Code更侧重于编程辅助功能,旨在帮助开发者编写代码、优化现有程序以及解决编码过程中遇到的问题。这类模型通常经过特定领域数据集训练,以便更好地适应软件开发需求[^3]。 #### 应用场景 由于各自的设计初衷不同,在实际应用中两者也表现出明显的区别: - **Qwen2.5**适用于需要解析复杂图片内容的应用场合,比如自动标注照片库、医学影像分析或是增强现实技术等领域。 - **Qwen2.5Code**则更适合集成到IDE(集成开发环境)内,为程序员提供实时建议、错误检测及修复方案等功能支持。 #### 技术实现 从技术角度来看,尽管两个版本都基于强大的预训练架构构建而成,但它们针对各自的专长进行了定制化调整。例如,为了提高对源代码的理解力,Qwen2.5Code可能会额外引入语法树结构的学习机制;而对于提升视觉识别精度而言,Qwen2.5或许会采用更加精细的特征提取算法[^2]。 ```python # 示例:如何使用Qwen2.5进行图像描述 from qwen import QwenImageCaptioning model = QwenImageCaptioning('path/to/image') caption = model.generate_caption() print(f"Generated Caption: {caption}") ``` ```python # 示例:利用Qwen2.5Code完成Python函数补全 import qwen_code as qc def incomplete_function(x): return x * suggestions = qc.get_suggestions(incomplete_function.__code__) for suggestion in suggestions: print(suggestion) ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值