Qwen2.5技术报告关键信息整理

本文基于阿里的《Qwen2.5 Technical Report》整理的,主要记录一下它在Qwen2.5上的技术路线。

架构与分词器

Qwen2.5系列包括开源的密集模型(Dense Models)和用于API服务的MoE模型(Mixture-of-Experts Models)。

密集模型

包括0.5B、1.5B、3B、7B、14B、32B和72B。

这些模型基于Transformer解码器架构,保留了Qwen2的设计。架构中包含以下几个关键组件:

  • 分组查询注意力(Grouped Query Attention, CQA)

  • SwiGLU激活函数

  • 旋转位置嵌入(Rotary Positional Embeddings, RoPE)

  • QKV偏置(QKV Bias):在注意力机制中引入偏置。

  • RMSNorm:使用预归一化(Pre-normalization)来确保训练的稳定性。

MoE模型

在密集模型的基础上,Qwen2.5扩展到了MoE模型架构。具体来说,MoE模型通过将标准的**前馈网络(Feed-Forward Network, FFN)**层替换为专门的MoE层来实现。每个MoE层由多个FFN专家和一个路由机制组成,路由机制将token分配给top-K专家。Qwen2.5采用了细粒度的专家分割(Fine-grained Expert Segmentation)和共享专家路由(Shared Experts Routing),这些创新显著提升了模型在下游任务中的性能。

分词器

Qwen2.5使用Qwen的分词器,该分词器实现了基于字节的字节对编码(Byte-Level Byte-Pair Encoding, BBPE),词汇表大小为151,643个常规token。与之前的Qwen版本相比,控制token的数量从3个增加到22个,新增了两个用于工具功能的token,其余的token用于其他模型能力。这一扩展确保了所有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和Qwen2-Math-72B-Instruct模型。通过使用专有的通用奖励模型和Qwen2-Math-RM-72B模型进行严格过滤,进一步提升了合成数据的质量。

  • 更好的数据混合:为了优化预训练数据的分布,Qwen2.5使用Qwen2-Instruct模型对不同领域的数据进行分类和平衡。通过策略性地对过度代表的领域(如电子商务、社交媒体和娱乐)进行降采样,并对高价值领域(如技术、科学和学术研究)进行升采样,确保了训练数据的平衡性和信息丰富性,更好地服务于模型的学习目标。

基于这些技术,Qwen2.5的预训练数据集从Qwen2的7万亿token扩展到了18万亿token,数据规模和质量都有了显著提升。

超参数的缩放定律

Qwen2.5基于Qwen2.5的预训练数据开发了超参数的缩放定律。这些缩放定律帮助确定不同模型架构下的最佳训练超参数,特别是批量大小(batch size)和学习率(learning rate)。通过系统实验,Qwen2.5分析了模型架构与最佳训练超参数之间的关系,涵盖了从44M到14B参数的密集模型和从44M到1B激活参数的MoE模型,训练数据规模从0.8B到600B token不等。

此外,Qwen2.5还利用缩放定律预测和比较了不同参数数量的MoE模型与密集模型的性能,指导MoE模型的超参数配置,使其在性能上与特定的密集模型(如Qwen2.5-72B和Qwen2.5-14B)达到性能对等。

长上下文预训练

为了提高训练效率,Qwen2.5采用了两阶段的预训练方法:

  1. 初始阶段:使用4,096 token的上下文长度进行预训练。

  2. 扩展阶段:在最终预训练阶段,将上下文长度从4,096扩展到32,768 token,适用于除Qwen2.5-Turbo以外的所有模型变体。同时,使用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%的较短序列,确保模型能够平滑适应不断增加的上下文长度,同时保持对不同长度序列的有效处理和泛化能力。

为了增强模型在推理时处理长序列的能力,Qwen2.5实现了两种关键策略:

  1. YARN:通过高效扩展上下文长度,显著提升了长序列的处理能力。

  2. 双块注意力(Dual Chunk Attention, DCA):通过减少困惑度(perplexity)提升了长序列的建模能力,同时保持了模型在短序列上的强大性能,确保了不同输入长度下的一致性质量。

后训练

Qwen2.5在后训练阶段引入了两项重要改进,相比Qwen2,这些改进显著提升了模型的性能和人类偏好对齐能力。

  1. 扩展的监督微调数据覆盖:监督微调(Supervised Fine-Tuning, SFT)过程使用了包含数百万高质量样本的大规模数据集。这一扩展特别针对Qwen2在长序列生成、数学问题解决、代码生成、指令遵循、结构化数据理解、逻辑推理、跨语言迁移和鲁棒系统指令等方面的局限性进行了优化。

  2. 两阶段强化学习:Qwen2.5的强化学习(Reinforcement Learning, RL)过程分为两个阶段:离线强化学习(Offline RL)和在线强化学习(Online RL)。

监督微调(Supervised Fine-Tuning, SFT)

在SFT阶段,Qwen2.5在多个关键领域进行了优化:

  1. 长序列生成:Qwen2.5能够生成高质量的内容,输出上下文长度可达8,192 token,显著超越了通常的2,000 token输出长度。为了解决这一差距,Qwen2.5开发了长响应数据集,使用回译技术从预训练语料中生成长文本数据的查询,并使用Qwen2过滤低质量的配对数据。

  2. 数学:引入了Qwen2.5-Math的链式思维数据,涵盖了多种查询来源,包括公共数据集、K-12问题集合和合成问题。为了确保高质量的推理,使用了拒绝采样(Rejection Sampling)、奖励建模和带注释的答案进行指导,生成逐步推理过程。

  3. 代码生成:为了增强代码生成能力,Qwen2.5引入了Qwen2.5-Coder的指令微调数据。通过将多种语言特定的代理集成到一个协作框架中,生成了跨近40种编程语言的高质量和多样化指令对。此外,通过从代码相关的问答网站合成新示例,并从GitHub收集算法代码片段,扩展了指令数据集。使用多语言沙箱进行静态代码检查,并通过自动化单元测试验证代码片段的质量和正确性。

  4. 指令遵循:为了确保高质量的指令遵循数据,Qwen2.5实现了一个严格的基于代码的验证框架。在该框架中,LLM生成指令和相应的验证代码,以及全面的单元测试进行交叉验证。通过基于执行反馈的拒绝采样,精心筛选用于监督微调的训练数据,确保模型忠实遵循指令。

  5. 结构化数据理解:开发了一个全面的结构化理解数据集,涵盖了传统任务(如表格问答、事实验证、错误纠正和结构化理解)以及涉及结构化和半结构化数据的复杂任务。通过在模型响应中引入推理链,显著增强了模型从结构化数据中推断信息的能力,从而提升了在这些多样任务中的表现。

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

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

  8. 鲁棒系统指令:构建了数百个通用系统提示,以提高后训练中系统提示的多样性,确保系统提示与对话之间的一致性。使用不同系统提示的评估显示,模型保持了良好的性能并减少了方差,表明鲁棒性得到了提升。

  9. 响应过滤:为了评估响应的质量,使用了多种自动注释方法,包括专门的批评模型和多代理协作评分系统。响应经过严格评估,只有那些被所有评分系统认为无瑕疵的响应才会被保留。这种全面的方法确保了输出保持最高质量标准。

最终,构建了一个包含超过100万SFT示例的数据集。模型在序列长度为32,768 token的情况下进行了两个epoch的微调。为了优化学习,学习率逐渐从7×10-6降低到7×10-7。为了防止过拟合,应用了0.1的权重衰减,梯度范数被裁剪到最大值1.0。

离线强化学习(Offline Reinforcement Learning)

与在线强化学习(Online RL)相比,离线RL允许预先准备训练信号,这对于标准答案存在但难以使用奖励模型评估的任务特别有利。在本研究中,重点放在数学、代码生成、指令遵循和逻辑推理等客观查询领域,这些领域获取准确评估可能较为复杂。在前一阶段,广泛使用了执行反馈和答案匹配等策略来确保响应质量。对于当前阶段,重用了该流程,使用SFT模型重新采样新查询的响应。通过质量检查的响应被用作正例,未通过的响应则被用作负例进行直接偏好优化(Direct Preference Optimization, DPO)训练。为了进一步增强训练信号的可靠性和准确性,使用了人工和自动化审查流程。这种双重方法确保了训练数据不仅可学习,而且与人类期望对齐。最终,构建了一个包含约150,000个训练对的数据集。模型使用在线合并优化器(Online Merging Optimizer)进行一个epoch的训练,学习率为7×10^-7。

在线强化学习(Online Reinforcement Learning)

为了开发一个强大的奖励模型用于在线RL,遵循了一组精心定义的标注标准。这些标准确保模型生成的响应不仅高质量,而且符合伦理和以用户为中心的标准。具体标注指南包括:

  • 真实性:响应必须基于事实准确性,忠实反映提供的上下文和指令。模型应避免生成虚假或无支持的信息。

  • 帮助性:模型的输出应真正有用,有效解决用户查询,提供积极、吸引人、教育和相关的内容。它应精确遵循给定的指令,并为用户提供价值。

  • 简洁性:响应应简洁明了,避免不必要的冗长。目标是清晰高效地传达信息,而不让用户感到信息过载。

  • 相关性:响应的所有部分应直接与用户查询、对话历史和助手上下文相关。模型应定制其输出,确保与用户需求和期望完全对齐。

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

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

用于训练奖励模型的查询来自两个不同的数据集:公开可用的开源数据和具有更高复杂性的专有查询集。响应生成自使用不同方法(SFT、DPO和RL)在训练各个阶段微调的Qwen模型检查点。为了引入多样性,这些响应在不同的温度设置下采样。偏好对通过人工和自动化标注流程创建,DPO的训练数据也集成到该数据集中。

在在线强化学习(RL)框架中,使用了组相对策略优化(Group Relative Policy Optimization, GRPO)。用于训练奖励模型的查询集与RL训练阶段使用的查询集相同。训练过程中查询的处理顺序由奖励模型评估的响应分数的方差决定。具体来说,响应分数方差较高的查询优先处理,以确保更有效的学习。每个查询采样8个响应。所有模型在2048全局批量大小和每个episode 2048样本的情况下进行训练,将一对查询和响应视为一个样本。

长上下文微调

为了进一步扩展Qwen2.5-Turbo的上下文长度,在微调阶段引入了更长的SFT示例,使其在长查询中更好地对齐人类偏好。

在SFT阶段,采用了两阶段方法。在第一阶段,模型仅使用短指令进行微调,每个指令包含最多32,768 token。这一阶段使用与其他Qwen2.5模型相同的数据和训练步骤,确保在短任务上表现强劲。在第二阶段,微调过程结合了短指令(最多32,768 token)和长指令(最多262,144 token)。这种混合方法有效增强了模型在长上下文任务中的指令遵循能力,同时保持了其在短任务上的表现。

在RL阶段,使用了与其他Qwen2.5模型类似的训练策略,专注于短指令。这一设计选择基于两个主要考虑:首先,长上下文任务的RL训练计算成本高昂;其次,目前缺乏提供适合长上下文任务奖励信号的奖励模型。此外,发现仅在短指令上进行RL训练仍能显著增强模型在长上下文任务中对人类偏好的对齐能力。

如何学习大模型 AI ?

由于新岗位的生产效率,要优于被取代岗位的生产效率,所以实际上整个社会的生产效率是提升的。

但是具体到个人,只能说是:

“最先掌握AI的人,将会比较晚掌握AI的人有竞争优势”。

这句话,放在计算机、互联网、移动互联网的开局时期,都是一样的道理。

我在一线互联网企业工作十余年里,指导过不少同行后辈。帮助很多人得到了学习和成长。

我意识到有很多经验和知识值得分享给大家,也可以通过我们的能力和经验解答大家在人工智能学习中的很多困惑,所以在工作繁忙的情况下还是坚持各种整理和分享。但苦于知识传播途径有限,很多互联网行业朋友无法获得正确的资料得到学习提升,故此将并将重要的AI大模型资料包括AI大模型入门学习思维导图、精品AI大模型学习书籍手册、视频教程、实战学习等录播视频免费分享出来。

在这里插入图片描述

第一阶段(10天):初阶应用

该阶段让大家对大模型 AI有一个最前沿的认识,对大模型 AI 的理解超过 95% 的人,可以在相关讨论时发表高级、不跟风、又接地气的见解,别人只会和 AI 聊天,而你能调教 AI,并能用代码将大模型和业务衔接。

  • 大模型 AI 能干什么?
  • 大模型是怎样获得「智能」的?
  • 用好 AI 的核心心法
  • 大模型应用业务架构
  • 大模型应用技术架构
  • 代码示例:向 GPT-3.5 灌入新知识
  • 提示工程的意义和核心思想
  • Prompt 典型构成
  • 指令调优方法论
  • 思维链和思维树
  • Prompt 攻击和防范

第二阶段(30天):高阶应用

该阶段我们正式进入大模型 AI 进阶实战学习,学会构造私有知识库,扩展 AI 的能力。快速开发一个完整的基于 agent 对话机器人。掌握功能最强的大模型开发框架,抓住最新的技术进展,适合 Python 和 JavaScript 程序员。

  • 为什么要做 RAG
  • 搭建一个简单的 ChatPDF
  • 检索的基础概念
  • 什么是向量表示(Embeddings)
  • 向量数据库与向量检索
  • 基于向量检索的 RAG
  • 搭建 RAG 系统的扩展知识
  • 混合检索与 RAG-Fusion 简介
  • 向量模型本地部署

第三阶段(30天):模型训练

恭喜你,如果学到这里,你基本可以找到一份大模型 AI相关的工作,自己也能训练 GPT 了!通过微调,训练自己的垂直大模型,能独立训练开源多模态大模型,掌握更多技术方案。

到此为止,大概2个月的时间。你已经成为了一名“AI小子”。那么你还想往下探索吗?

  • 为什么要做 RAG
  • 什么是模型
  • 什么是模型训练
  • 求解器 & 损失函数简介
  • 小实验2:手写一个简单的神经网络并训练它
  • 什么是训练/预训练/微调/轻量化微调
  • Transformer结构简介
  • 轻量化微调
  • 实验数据集的构建

第四阶段(20天):商业闭环

对全球大模型从性能、吞吐量、成本等方面有一定的认知,可以在云端和本地等多种环境下部署大模型,找到适合自己的项目/创业方向,做一名被 AI 武装的产品经理。

  • 硬件选型
  • 带你了解全球大模型
  • 使用国产大模型服务
  • 搭建 OpenAI 代理
  • 热身:基于阿里云 PAI 部署 Stable Diffusion
  • 在本地计算机运行大模型
  • 大模型的私有化部署
  • 基于 vLLM 部署大模型
  • 案例:如何优雅地在阿里云私有部署开源大模型
  • 部署一套开源 LLM 项目
  • 内容安全
  • 互联网信息服务算法备案

学习是一个过程,只要学习就会有挑战。天道酬勤,你越努力,就会成为越优秀的自己。

如果你能在15天内完成所有的任务,那你堪称天才。然而,如果你能完成 60-70% 的内容,你就已经开始具备成为一名大模型 AI 的正确特征了。

这份完整版的大模型 AI 学习资料已经上传CSDN,朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费

在这里插入图片描述

<think>好的,我现在需要帮助用户了解如何部署Qwen2.5模型。用户提到了几个引用,我需要先仔细阅读这些引用内容,提取关键步骤,然后按照系统级指令的要求组织答案。 首先,查看引用[1],里面提到了模型下载的方法,包括使用ModelScope CLI、Python SDK或者git clone。还有体验链接,但用户关注的是部署,所以下载步骤是关键。引用[2]和[3]都涉及Windows系统下的本地部署,特别是环境配置、依赖安装、模型加载和运行。引用[3]还提到了可能遇到的坑,比如依赖冲突和CUDA版本问题,这些需要注意。 接下来,我需要整理部署步骤。根据引用内容,部署流程大致分为环境配置、模型下载、部署运行、进阶配置。每个步骤需要详细说明,比如环境配置中的Python版本、依赖安装,模型下载的不同方式,以及运行时的代码示例。同时,要确保所有数学公式和代码块符合格式要求,比如行内公式用$...$,独立公式用$$...$$,代码用三个反引号包裹。 还需要生成相关问题,可能需要考虑用户后续可能遇到的疑问,比如不同系统的部署差异、性能优化、微调方法等。要确保问题相关且有帮助。 另外,引用标识要自然地添加到对应的步骤后面,例如在提到模型下载时引用[1],在Windows部署步骤引用[2][3]。需要检查每个引用的对应内容,避免错引。 最后,确保回答结构清晰,分步骤说明,语言简洁,符合用户要求的中文回答。同时,注意不要使用任何Markdown格式,除了代码块和引用标识。检查LaTeX语法是否正确,比如是否有遗漏的$符号,代码是否正确高亮。</think>### Qwen2.5模型部署方法及教程 #### 一、环境配置 1. **Python环境** 推荐使用Python 3.8及以上版本,建议通过Anaconda创建虚拟环境: ```bash conda create -n qwen python=3.8 conda activate qwen ``` 2. **依赖安装** 安装ModelScope核心库及模型相关依赖[^2][^3]: ```bash pip install "modelscope[llm]" -f https://modelscope.oss-cn-beijing.aliyuncs.com/releases/repo.html pip install transformers torch ``` #### 二、模型下载 可通过以下三种方式获取Qwen2.5系列模型: 1. **ModelScope CLI** ```bash modelscope download qwen/Qwen2.5-7B-Chat ``` 2. **Python SDK** ```python from modelscope import snapshot_download model_dir = snapshot_download('qwen/Qwen2.5-7B-Chat') ``` 3. **Git Clone** ```bash git clone https://www.modelscope.cn/qwen/Qwen2.5-7B-Chat.git ``` 模型合集体验链接:[Qwen2.5官方页面](https://modelscope.cn/studios/qwen/Qwen2.5)[^1] #### 三、基础部署(CPU/GPU环境) ```python from modelscope import AutoModelForCausalLM, AutoTokenizer model = AutoModelForCausalLM.from_pretrained("qwen/Qwen2.5-7B-Chat", device_map="auto") tokenizer = AutoTokenizer.from_pretrained("qwen/Qwen2.5-7B-Chat") inputs = tokenizer("如何部署Qwen2.5模型?", return_tensors="pt") outputs = model.generate(**inputs) print(tokenizer.decode(outputs[0])) ``` #### 四、进阶配置 1. **GPU加速** 若使用NVIDIA显卡,需安装对应CUDA版本的PyTorch,并添加参数`torch_dtype=torch.float16`加速推理[^3]: $$ \text{显存需求} \geq 14\text{GB} \quad (\text{以7B模型为例}) $$ 2. **量化部署** 通过4/8-bit量化减少显存占用: ```python model = AutoModelForCausalLM.from_pretrained("qwen/Qwen2.5-7B-Chat", load_in_4bit=True) ``` #### 五、常见问题 - **依赖冲突**:确保`torch`与CUDA版本匹配,可通过`conda install pytorch torchvision torchaudio cudatoolkit=11.7`指定版本[^3] - **内存不足**:尝试缩小`max_length`参数或使用量化模型 - **中文支持**:Qwen2.5默认支持中文,无需额外配置
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值