从18万亿Token到多模态,Qwen2.5的“技术进化图谱”,它如何用更少参数击败顶级模型?

打造一个有温度、有趣味、专业的全栈式AI&AIGC交流社区,

用心写好每一篇文章!



 毋庸置疑,OpenAI系列的o1、o3系列大模型确实在某些方面具有碾压式的优势,但是我想问个问题:所有公司的所有场景都需要用到这么复杂、成本这么高的模型吗?答案肯定是No! 除此之外,OpenAI等国外的主流大语言模型在中文理解与回答方面的效果并不尽人意,我们需要花费的额外的微调成本。随着OpenAI的大模型的费用越来越高,肯定会有一部分人开始拥抱开源模型,而Llama与Qwen绝对是开源大模型界的第一梯队。阿里开源的Qwen系列大模型一度在国内受到了众多朋友的好评,Qwen2.5系列更是将其推向了顶峰。本文小编就来帮你好好解读一下Qwen2.5里面都做了哪些优化?这些干货对很多需要预训练或者微调模型的朋友大有裨益。



HF链接-https://huggingface.co/Qwen

代码链接-https://github.com/QwenLM/Qwen2.5

论文链接-https://arxiv.org/pdf/2412.15115




01-Qwen2.5背景简介

    随着大型语言模型(LLM)的快速发展,距离通用人工智能(AGI)越来越近。模型和数据缩放的不断进步,结合大规模预训练、高质量监督微调(SFT)和基于人类反馈的强化学习(RLHF)等范式,使得大型语言模型(LLM)能够在语言理解、生成和推理任务上面表现出强大的能力。
    在此基础上,OpenAI推出的o1大模型,通过逐步推理和反思增强了LLM的深度思考能力。除了模型能力的快速发展外,近两年来,LLM社区出现了大量开源大语言模型,例如Llama系列、Mistral系列和Qwen系列等。开放权重模型使得大型语言模型对普通用户和开发人员更加友好,通过社区协作促进创新,从而进一步加速跨不同领域的人工智能应用程序的开发。
02-Qwen2.5模型简介
    Qwen是阿里巴巴集团Qwen团队研发的大语言模型和大型多模态模型系列。目前,大语言模型已升级至Qwen2.5版本。无论是语言模型还是多模态模型,均在大规模多语言和多模态数据上进行预训练,并通过高质量数据进行后期微调从而更符合用户的偏好。
    Qwen系列具备自然语言理解、文本生成、视觉理解、音频理解、工具使用、角色扮演、作为AI Agent进行互动等多种能力。最新版本Qwen2.5有以下特点:  
  • 易于使用的仅解码器稠密语言模型,提供 0.5B 、1.5B 、3B 、7B 、14B 、32B 和 72B 共7种参数规模的模型,并且有基模型和指令微调模型两种变体(其中“ B ”表示“十亿”, 72B 即为 720 亿);

  • 利用最新的数据集进行预训练,包含多达 18T tokens (其中“ T ”表示“万亿”, 18T 即为 18 万亿);

  • 指令遵循、生成长文本(超过 8K tokens )、理解结构化数据(例如,表格)以及生成结构化输出特别是 JSON 方面有了显著改进;

  • 更加适应多样化的系统提示,增强了角色扮演的实现和聊天机器人的背景设置。

  • 支持最多达 128K tokens 的上下文长度,并能生成多达 8K tokens 的文本。

  • 支持超过 29 种语言,包括中文、英文、法文、西班牙文、葡萄牙文、德文、意大利文、俄文、日文、韩文、越南文、泰文、阿拉伯文等。

3-Qwen2.5模型应用场景

03.01-快速开发业务代码

    我相信任何做IT业务的朋友都离不开代码开发工作,在日常的代码开发过程中,经常需要开发一些重复而乏味的代码。代码大模型的出现可以快速的帮你补全代码、开发初版代码、查找代码问题、解析疑难代码等等。
    当下的代码大模型更多的是赋能IT工程师,而不是外界谜题们夸大其次的代替!它的出现可以进一步提高开发人员的效率,让你专注在核心逻辑代码的开发上面!
03.02-解决你生活中各种琐事
    我们生活中经常会遇到各种繁琐的事宜,写邮件、做海报、写文章、解答孩子的十万个为什么等等。大模型可以给你提供一些很好的建议,而你只需要稍微完善一下就可以了。大模型并不是万能的,并不能解决你的所有问题!
03.03-解决一些复杂的数学问题
    与其它物种不同的是,人类有着强大的数学推理与计算能力。我们的日常生活中到处都可以看到数学的身影,然而人类看似简单的一个题目,对大模型而言却可能是一个大难题。当前的很多的大语言模型已经具备了比较强大的数学推理与计算能力,尤其是OpenAI展示的O3大模型,一旦大模型具备了该能力以后,生活中很多复杂的问题就可以迎刃而解!
04-Qwen2.5模型整体架构
    Qwen2.5系列包括用于开源的密集型Qwen2.5B/1.5B/3B/7B/14B/32B /72B,以及用于API服务的MoE型Qwen2.5-Turbo和Qwen2.5 Plus。
    对于密集模型,作者基于Transformer的解码器架构。该架构包含几个关键组件:用于高效KV缓存利用的分组查询注意力,用于非线性激活的SwiGLU激活函数,用于编码位置信息的旋转位置嵌入,注意力机制中的QKV偏差和具有预归一化的RMSNorm,从而确保稳定的训练。
    在密集模型架构的基础上,作者将其扩展到MoE模型架构。这是通过用专门的MoE层替换标准前馈网络(FFN)层来实现的,其中每一层都包括多个FFN专家和一个将令牌分派给前K位专家的路由机制。遵循Qwen1.5-MoE中演示的方法,作者实现了细粒度专家分割和共享专家路由。这些架构创新大大提高了下游任务的模型性能。
    对于标记化,作者使用Qwen的标记器,该标记器实现了字节级字节对编码,词汇表为151643个常规标记。与之前的Qwen版本相比,作者将控制令牌集从3个扩展到22个,为工具功能添加了两个新令牌,并将其余令牌分配给其他模型功能。此扩展在所有Qwen2.5模型中建立了统一的词汇表,增强了一致性并减少了潜在的兼容性问题。

05-Qwen2.5模型实现细节

05.01-预训练阶段

    Qwen2.5系列的大语言模型预训练过程由几个关键组成部分组成。
  • 首先,作者通过复杂的过滤和评分机制,结合数据混合策略,精心策划了一个高质量的训练数据。

  • 其次,作者对超参数优化进行了广泛的研究,从而有效地训练各种尺度的模型。

  • 最后,作者结合了专门的长上下文预训练,从而提高模型处理和理解扩展序列的能力。

05.01.01-预训练数据收集细节
    与前代Qwen2相比,Qwen2.5主要从以下几个方面来提升训练数据的质量。基于这些技术,作者开发了一个更大、更高质量的预训练数据集,从Qwen2中使用的7万亿个令牌扩展到18万亿个令牌。
  • 更严格的数据过滤机制--作者利用Qwen2 Instruct模型作为数据质量过滤器,进行全面、多维的分析,以评估和评分训练样本。
  • 质量更高的数学和代码数据--在Qwen2.5的预训练阶段,作者整合了来自Qwen2.5-Math和Qwen2-5-Coder的训练数据。
  • 质量更好的合成数据--作者利用了Qwen2-72B-Instruct和Qwen2Math-72B-Iinstruct。通过使用专有的通用奖励模型和专门的Qwen-2Math-RM-72B模型进行严格过滤,进一步提高了合成数据的质量。
  • 更好的数据混合机制--大量的分析结果表明:电子商务、社交媒体和娱乐等领域在网络规模的数据中明显过高;相反,技术、科学和学术研究等领域虽然包含高质量的信息。通过对代表性过高的领域进行战略性下采样和对高价值领域进行上采样,从而确保了一个更平衡、信息丰富的训练数据集,更好地服务于我们模型的学习目标。

05.01.02-调节超参数细节
    作者基于Qwen2.5的预训练数据制定了超参数调节方案。具体来说,其缩放定律有助于确定关键的训练参数,如批量大小B和学习率μ,适用于不同大小的密集模型和MoE模型。通过广泛的实验,作者系统地研究了模型架构与最优训练超参数之间的关系。使用这些最优的超参数预测,作者将最终损失建模为模型架构和训练数据规模的函数。此外,利用缩放定律来预测和比较具有不同参数计数的MoE模型与密集模型的性能。
05.01.03-长上下文处理细节
    为了获得最佳的训练效率,Qwen2.5采用了两阶段预训练方法:初始阶段具有4096个令牌的上下文长度,然后是更长序列的扩展阶段。
    对于Qwen2.5-Turbo,作者在训练过程中实施了渐进式上下文长度扩展策略,分为四个阶段:32768个令牌、65536个令牌、131072个令牌,最终为262144个令牌,RoPE基频为10000000。在每个阶段,作者仔细整理训练数据,使其包括当前最大长度的40%序列和较短的60%序列。这种渐进式训练方法能够平滑地适应不断增加的上下文长度,同时保持模型在不同长度的序列中有效处理和泛化的能力。
    为了增强该模型在推理过程中处理较长序列的能力,作者实施了两种关键策略:YARN和双块注意力。
    通过这些创新,作者实现了序列长度容量的四倍增长,使Qwen2.5-Turbo能够处理多达100万个代币,其它型号可以处理多达131072个代币。值得注意的是,这些方法不仅通过减少困惑来改进长序列的建模,而且在较短序列上保持了模型的强大性能,确保了不同输入长度的一致质量。
05.02-后训练阶段
    与Qwen 2相比,Qwen 2.5在其后训练阶段中引入了两个重大的改进:
1、扩展了监督微调数据覆盖范围:监督微调过程利用了由数百万个高质量示例组成的庞大数据集。这一扩展专门针对先前模型显示出局限性的关键领域,如长序列生成、数学问题解决、编码、指令遵循、结构化数据理解、逻辑推理、跨语言迁移和稳健的系统指令。
2、引入两阶段强化学习:Qwen 2.5中的强化学习过程分为两个不同的阶段:离线强化学习和在线强化学习。
  • 离线强化学习:这个阶段侧重于培养奖励模型难以评估的能力,如推理、事实性和指令遵循。通过对训练数据的细致构建和验证,确保离线RL信号既可学习又可靠,使模型能够有效地获得这些复杂的技能。
  • 在线强化学习:在线强化学习阶段利用奖励模型的能力来检测输出质量的细微差别,包括真实性、有用性、简洁性、相关性、无害性和去偏见性。它使模型能够生成精确、连贯和结构良好的响应,同时保持安全性和可读性。因此,该模型的输出始终符合人类质量标准和期望。

06-Qwen2.5模型性能评估
    上表展示了该模型与多个开源系列大语言模型的最大系列模型在多个评估数据集上面的的比较结果。通过观察与分析,我们可以发现:与Llama系列的大模型相比,Qwen2.5系列能够在多项数据集上面获得更好的得分效果。
    上表展示了该模型与多个开源系列大语言模型的中等系列模型在多个评估数据集上面的比较结果。通过观察与分析,我们可以得出以下的初步结论:32B左右的Qwen2.5模型在大多数评估数据集上面可以获得更高的得分,与其它模型拉开了较大的差距!
    上表展示了该模型与多个开源系列大语言模型的中小型7B系列模型在多个评估数据集上面的比较结果。通过观察与分析,我们可以发现:Qwen2.5-7B模型在多个评估数据集上面都获得了较好的得分效果,甚至由于其它8B或者9B的模型。

07-Qwen2.5模型上手指南

07.01-直接使用HF/魔塔Demo

步骤1-访问https://huggingface.co/spaces/Qwen/Qwen2.5-72B-Instruct链接
步骤2-输入你的问题,稍等一下,你就可以看到对应的答案!
07.02-利用HF的API接口
# 加载python三方库from transformers import AutoModelForCausalLM, AutoTokenizer
# 加载预训练模型model_name = "Qwen/Qwen2.5-7B-Instruct"model = AutoModelForCausalLM.from_pretrained( model_name, torch_dtype="auto", device_map="auto")tokenizer = AutoTokenizer.from_pretrained(model_name)
# 应用模版,对输入进行Token化prompt = "Give me a short introduction to large language model."messages = [ {"role": "system", "content": "You are Qwen, created by Alibaba Cloud. You are a helpful assistant."}, {"role": "user", "content": prompt}]text = tokenizer.apply_chat_template( messages, tokenize=False, add_generation_prompt=True)model_inputs = tokenizer([text], return_tensors="pt").to(model.device)
# 执行模型推理generated_ids = model.generate( **model_inputs, max_new_tokens=512)generated_ids = [ output_ids[len(input_ids):] for input_ids, output_ids in zip(model_inputs.input_ids, generated_ids)]
# 执行输出解码操作response = tokenizer.batch_decode(generated_ids, skip_special_tokens=True)[0]

08-近期线下交流活动

    这是AI产品汇举办的第6次线下分享活动,欢迎对AI&AIGC感兴趣、或这有创业想法或者产品的朋友一起来交流与探讨仅有30个坑位,先到先得
    由于博主当前在深圳,去北京举办一场活动的开销比较大(来回路费+茶歇+场地)等,所以本地活动会象征性的收取一点费用,只要能保底就行,请各位朋友知悉!



关注我,AI热点早知道,AI算法早精通,AI产品早上线!




禁止私自转载,需要转载请先征求我的同意!

欢迎你的加入,让我们一起交流、讨论与成长!

若二维码失效:关注公众号--》交流分享--》联系我们