专栏名称: 计算机视觉深度学习和自动驾驶
讨论计算机视觉、深度学习和自动驾驶的技术发展和挑战
目录
相关文章推荐
丁香医生  ·  想老得慢一点,劝你先把脸皮「变厚」! ·  昨天  
营养师顾中一  ·  你其实从没吃过「香芋」,不信来看! ·  2 天前  
丁香医生  ·  得了关节炎,真的是行走的「晴雨表」吗? ·  3 天前  
51好读  ›  专栏  ›  计算机视觉深度学习和自动驾驶

Qwen2.5 技术报告

计算机视觉深度学习和自动驾驶  · 公众号  ·  · 2024-12-31 00:02

正文

24年12月来自通义千问的论文“Qwen2.5 Technical Report”。


本报告介绍 Qwen2.5,这是一系列全面的大语言模型 (LLM),旨在满足多样化的需求。与之前的迭代相比,Qwen 2.5 在预训练和后训练阶段都有显著的改进。在预训练方面,将高质量的预训练数据集从之前的 7 万亿个 token 扩展到 18 万亿个 token,为常识、专家知识和推理能力提供坚实的基础。在后训练方面,用超过 100 万个样本实现复杂的监督微调,以及多阶段强化学习,包括离线学习 DPO 和在线学习 GRPO。后训练技术显著增强人类偏好,并显著改善长文本生成、结构化数据分析和指令遵循。


为了有效处理多样化和多样化的用例,提供丰富配置的 Qwen2.5 LLM 系列。开放权重产品包括基础模型和指令调整模型,参数大小分别为 0.5B、1.5B、3B、7B、14B、32B 和 72B。还提供指令调整模型的量化版本。可以从 Hugging Face Hub、ModelScope 和 Kaggle 访问 100 多个模型。此外,对于托管解决方案,专有模型目前包括两种混合专家 (MoE) 变体:Qwen2.5-Turbo 和 Qwen2.5-Plus,均可从阿里云模型工作室获得。


Qwen2.5 在评估语言理解、推理、数学、编码、人类偏好匹配等的广泛基准测试中都表现出顶级性能。具体来说,开放权重旗舰模型 Qwen2.5-72B-Instruct 的表现优于许多开放和专有模型,并且与最先进的开放权重模型 Llama-3-405B-Instruct 相比具有竞争力,后者大约大 5 倍。Qwen2.5-Turbo 和 Qwen2.5-Plus 提供卓越的成本效益,同时与 GPT-4o-mini 和 GPT-4o 具有竞争力。此外,作为基础,Qwen2.5 模型在训练专用模型,如 Qwen2.5-Math(Yang,2024b)、Qwen2.5-Coder(Hui,2024)、QwQ(Qwen Team,2024d)和多模态模型等方面,发挥了重要作用。



随大型基础模型(尤其是大语言模型 (LLM))的快速发展,通用人工智能 (AGI) 的火花越来越明显 (Brown,2020;OpenAI,2023;2024a;Gemini Team,2024;Anthropic,2023a;b;2024;Bai,2023;Yang,2024a;Touvron,2023a;b;Dubey,2024)。模型和数据扩展的不断进步,加上大规模预训练范式、随后的高质量监督微调 (SFT) 和从人类反馈中强化学习 (RLHF) (Ouyang,2022),使大语言模型 (LLM) 能够在语言理解、生成和推理方面开发出新兴能力。在此基础上,推理时间扩展方面的最新突破,尤其是 o1(OpenAI,2024b)的展示,增强 LLM 通过逐步推理和反思进行深度思考的能力。这些发展提升语言模型的潜力,表明它们可能会在科学探索方面取得重大突破,因为它们继续展示出表明更通用的人工智能的新兴能力。


除了模型能力的快速发展,近两年 LLM 社区还见证开放(开放权重)大型语言模型的爆发,例如 Llama 系列(Touvron,2023a;b;Dubey,2024)、Mistral 系列(Jiang,2023a;2024)和 Qwen 系列(Bai,2023;Yang,2024a;Qwen Team,2024a;Hui,2024;Qwen Team,2024c;Yang,2024b)。开放权重模型使大语言模型的访问民主化,让普通用户和开发人员能够更广泛地参与研究,通过社区协作促进创新,并加速跨不同领域的 AI 应用开发。


近日发布 Qwen 系列的最新版本 Qwen2.5 的细节。在开放权重部分,发布 0.5B、1.5B、3B、7B、14B、32B、72B 7 种大小的预训练和指令调优模型,不仅提供 bfloat16 精度的原始模型,还提供不同精度的量化模型。其中旗舰模型 Qwen2.5-72B-Instruct 与最先进的开放权重模型 Llama-3-405B-Instruct 相比表现出竞争力,后者大约是前者的 5 倍。此外,还发布混合专家的专有模型(MoE, Lepikhin et al., 2020;Fedus et al., 2022;Zoph et al., 2022),即 Qwen2.5-Turbo 和 Qwen2.5-Plus1,其性能分别与 GPT-4o-mini 和 GPT-4o 竞争。


基本上,Qwen2.5 系列包括用于开源的密集模型,即 Qwen2.5-0.5B / 1.5B / 3B / 7B / 14B / 32B / 72B,以及用于 API 服务的 MoE 模型,即 Qwen2.5-Turbo 和 Qwen2.5-Plus。下面,提供有关模型架构的详细信息。


对于密集模型,将基于 Transformer 的解码器架构(Vaswani,2017;Radford,2018)保留为 Qwen2(Yang,2024a)。该架构包含几个关键组件:用于高效利用 KV 缓存的分组查询注意 (GQA,Ainslie,2023),用于非线性激活的 SwiGLU 激活函数 (Dauphin,2017),用于编码位置信息的旋转位置嵌入 (RoPE,Su,2024),注意机制中的 QKV 偏差 (Su,2023) 和 RMSNorm (Jiang,2023b) 具有预归一化以确保稳定的训练。

在密集模型架构的基础上,将其扩展到 MoE 模型架构。这是通过用专门 MoE 层替换标准前馈网络 (FFN) 层来实现的,其中每层包含多个 FFN 专家和一个将token分派给前 K 个专家的路由机制。遵循 Qwen1.5-MoE(Yang,2024a)中展示的方法,实现细粒度专家细分(Dai,2024)和共享专家路由(Rajbhandari,2022;Dai,2024)。这些架构创新已在下游任务中显著提高模型性能。


对于token化,用 Qwen 的token化器(Bai,2023),它实现字节级字节对编码(BBPE,Brown,2020;Wang,2020;Sennrich,2016),词汇表包含 151,643 个常规tokens。与以前的 Qwen 版本相比,将控制token集从 3 个扩展到 22 个,为工具功能添加了两个新tokens,并将剩余的分配给其他模型功能。此次扩展在所有 Qwen2.5 型号中建立了统一的词汇表,增强了一致性并减少了潜在的兼容性问题。


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

预训练数据

与前代 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)和 Qwen2-Math-72B-Instruct(Qwen Team,2024c)。通过使用专有的通用奖励模型和专门的 Qwen2-Math-RM-72B(Qwen Team,2024c)模型进行严格过滤,进一步提高合成数据的质量。

  • (4)更好的数据混合。为了优化预训练数据分布,用 Qwen2-Instruct 模型对不同领域的内容进行分类和平衡。分析表明,电子商务、社交媒体和娱乐等领域在网络规模数据中的比例明显过高,通常包含重复、基于模板或机器生成的内容。相反,技术、科学和学术研究等领域虽然包含更高质量的信息,但传统上却代表性不足。通过对过度代表的域进行战略性下采样和对高价值域进行上采样,确保更平衡、信息丰富的训练数据集,从而更好地服务于模型的学习目标。

基于这些技术,开发更大、更高质量的预训练数据集,从 Qwen2(Yang et al.,2024a)中使用的 7 万亿个tokens 扩展到 18 万亿个 tokens。

超参的规模化定律

根据 Qwen2.5 的预训练数据制定超参的规模化定律(Hoffmann,2022;Kaplan,2020)。虽然先前的研究(Dubey,2024;Almazrouei,2023;Hoffmann,2022)主要使用规模化定律来确定给定计算预算的最佳模型大小,但利用它们来确定跨模型架构的最佳超参。具体而言,规模化定律有助于确定关键训练参数,例如不同大小的密集模型和 MoE 模型的批量大小 B 和学习率 μ。


通过大量实验,系统地研究模型架构与最佳训练超参之间的关系。具体来说,分析最佳学习率 μ/opt 和批量大小 B/opt 如何随模型大小 N 和预训练数据大小 D 而变化。实验涵盖广泛的架构,包括具有 44M 到 14B 个参数的密集模型和具有 44M 到 1B 个激活参数的 MoE 模型,这些模型在 0.8B 到 600B 个 tokens 数据集上进行训练。使用这些最佳超参预测,将最终损失建模为模型架构和训练数据规模的函数。


此外,利用规模化定律来预测和比较具有不同参数数量的 MoE 模型与其密集模型的性能。此分析指导对 MoE 模型的超参配置,能够通过仔细调整激活参数和总参数来实现与特定密集模型变体(例如 Qwen2.5-72B 和 Qwen2.5-14B)的性能对等。

长上下文预训练

为了实现最佳训练效率,Qwen2.5 采用两阶段预训练方法:初始阶段上下文长度为 4,096 个 token,然后是用于更长序列的扩展阶段。按照 Qwen2 中使用的策略,在最终预训练阶段将除 Qwen2.5-Turbo 之外的所有模型变体上下文长度从 4,096 个 token 扩展到 32,768 个 token。同时,用 ABF 技术将 RoPE 的基频从 10,000 增加到 1,000,000(Xiong,2023)。


对于 Qwen2.5-Turbo,在训练过程中实施渐进式上下文长度扩展策略,分为四个阶段:32,768 个 token、65,536 个 token、131,072 个 token,最终为 262,144 个 token,RoPE 基频为 10,000,000。在每个阶段,都会精心挑选训练数据,以包含 40% 的当前最大长度序列和 60% 的较短序列。这种渐进式训练方法可以平稳适应不断增加的上下文长度,同时保持模型有效处理和泛化不同长度序列的能力。


为了增强模型在推理过程中处理较长序列的能力,实施两项关键策略:Yet another RoPE extensioN ( YARN ,Peng,2023)和 Dual Chunk Attention( DCA ,An,2024)。通过这些创新,将序列长度容量提高四倍,使 Qwen2.5-Turbo 能够处理多达 100 万个 token,其他模型能够处理多达 131,072 个 token。值得注意的是,这些方法不仅通过降低困惑度来改善长序列的建模,而且还保持模型在较短序列上的强大性能,确保在不同输入长度下保持一致的质量。


与 Qwen 2 相比,Qwen 2.5 在后训练设计中引入两项重大改进:

(1) 扩展监督微调数据覆盖范围:监督微调过程利用包含数百万个高质量示例的海量数据集。这一扩展专门解决先前模型存在局限性的关键领域,例如长序列生成、数学问题解决、编码、指令遵循、结构化数据理解、逻辑推理、跨语言迁移和强大的系统指令。

(2) 两阶段强化学习:Qwen 2.5 中强化学习 (RL) 过程分为两个不同的阶段:离线 RL 和在线 RL。

  • • 离线 RL:此阶段专注于开发奖励模型难以评估的能力,例如推理、事实性和指令遵循。通过精心构建和验证训练数据,确保离线 RL 信号既可学习又可靠(Xiang,2024),从而使模型能够有效地获得这些复杂的技能。

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

有监督微调

Qwen2.5 在 SFT 阶段所做的关键改进,包括几个关键领域:

(1) 长序列生成:Qwen2.5 能够生成高质量内容,输出上下文长度高达 8,192 个tokens,这比典型的训练后响应长度有显著的进步,后者通常保持在 2,000 个tokens以下。为了弥补这一差距,开发长响应数据集 (Quan et al., 2024)。采用反向翻译技术从预训练语料库中生成长文本数据查询,施加输出长度约束,并使用 Qwen2 过滤掉低质量的配对数据。

(2) 数学:引入 Qwen2.5-Math 的思维链数据 (Yang et al., 2024b),它涵盖各种查询源,包括公共数据集、K-12 问题集和综合问题。为了确保高质量的推理,采用拒绝抽样(Yuan,2023)以及奖励模型和带注释的答案作为指导,产生逐步的推理过程。

(3) 编码:为了增强编码能力,整合 Qwen2.5-Coder 的指令调整数据(Hui,2024)。将多种特定于语言的智体纳入协作框架,在近 40 种编程语言中生成多样化且高质量的指令对。通过从与代码相关的问答网站合成新示例并从 GitHub 收集算法代码片段来扩展指令数据集。使用全面的多语言沙盘执行静态代码检查并通过自动单元测试验证代码片段,确保代码质量和正确性(Dou,2024;Yang,2024c)。

(4) 指令跟踪:为了确保高质量的指令跟踪数据,实施严格的基于代码验证框架。在这种方法中,LLM 会生成指令和相应的验证代码,以及用于交叉验证的综合单元测试。通过基于执行反馈的拒绝抽样,精心挑选用于监督微调的训练数据,从而保证模型忠实地遵循预期的指令(Dong,2024)。

(5) 结构化数据理解:开发一个全面的结构化理解数据集,它既涵盖传统任务,例如表格问答、事实验证、错误更正和结构理解,也涵盖涉及结构化和半结构化数据的复杂任务。通过将推理链纳入模型的响应中,显著增强它从结构化数据中推断信息的能力,从而提高它在这些不同任务中的性能。这种方法不仅扩大数据集的范围,而且还加深模型从复杂数据结构中推理和得出有意义见解的能力。

(6) 逻辑推理:为了增强模型的逻辑推理能力,引入一组涵盖各个领域的 70,000 个新查询。这些查询包括多项选择题、判断题和开放式问题。该模型经过训练,可以系统地解决问题,采用一系列推理方法,例如演绎推理、归纳概括、类比推理、因果推理和统计推理。通过迭代改进,系统地过滤掉包含错误答案或有缺陷的推理过程数据。这个过程逐步增强模型的逻辑推理能力和准确性,确保在不同类型的推理任务中都有稳健的表现。

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

(8) 强大的系统指令:构建数百个通用系统提示,以提高训练后系统提示的多样性,确保系统提示和对话之间的一致性。对不同系统提示的评估表明,该模型保持良好的性能(Lu et al.,2024b)并降低方差,表明鲁棒性得到提高。

(9) 响应过滤:为了评估响应的质量,采用多种自动注释方法,包括专用评论家模型和多智体协作评分系统。对响应进行严格评估,只有所有评分系统认为无瑕疵的响应才会被保留。这种全面的方法确保输出保持最高质量标准。


最终,构建一个包含超过 100 万个 SFT 示例的数据集。该模型针对两个时期进行微调,序列长度为 32,768 个tokens。为了优化学习,学习率逐渐从 7 × 10−6 降低到 7 × 10−7。为了解决过拟合问题,应用 0.1 的权重衰减,并将梯度范数的最大值限制为 1.0。







请到「今天看啥」查看全文