Qwen2.5-1M 技术报告

An Yang, Bowen Yu, Chengyuan Li, Dayiheng Liu, Fei Huang, Haoyan Huang, Jiandong Jiang, Jianhong Tu, Jianwei Zhang, Jingren Zhou, Junyang Lin, Kai Dang, Kexin Yang, Le Yu, Mei Li, Minmin Sun, Qin Zhu, Rui Men, Tao He, Weijia Xu, Wenbiao Yin, Wenyuan Yu, Xiafei Qiu, Xingzhang Ren, Xinlong Yang, Yong Li, Zhiying Xu, Zipeng Zhang 1


Qwen 团队,阿里巴巴集团

摘要

在本报告中,我们介绍了 Qwen2.5-1M 系列模型,该系列将上下文长度扩展到了 1 百万个标记。与之前的 128K 版本相比,Qwen2.5-1M 系列通过长上下文预训练和后训练显著增强了长上下文能力。关键的技术包括长数据合成、渐进式预训练和多阶段监督微调,有效提升了长上下文性能并降低了训练成本。

为了促进更广泛的用户群体使用长上下文模型,我们展示了并开源了我们的推理框架。该框架包括一种长度外推方法,可以在不进行额外训练的情况下将模型上下文长度扩展至少四倍,甚至更多。为了降低推理成本,我们在部署场景中实现了稀疏注意力机制以及分块预填充优化,并采用稀疏性改进方法来提高精度。此外,我们在推理引擎中进行了优化,包括内核优化、流水线并行和调度优化,显著提升了整体推理性能。通过利用我们的推理框架,Qwen2.5-1M 模型在包含 1 百万标记的上下文场景中实现了 3 到 7 倍的预填充加速。该框架为使用开源模型开发需要长上下文处理的应用程序提供了一个高效且强大的解决方案。

目前 Qwen2.5-1M 系列包括开源模型 Qwen2.5-7B-Instruct-1M 和 Qwen2.5-14B-Instruct-1M,以及通过 API 访问的模型 Qwen2.5-Turbo。评估表明,Qwen2.5-1M 模型在长上下文任务中取得了显著改进,而在短上下文场景中的表现没有下降。特别是,Qwen2.5-14B-Instruct-1M 模型在长上下文任务中的表现显著优于 GPT-4o-mini,并支持长达八倍的上下文。

Qwen2.5-1M 模型上的密钥检索测试,文档长度可达 1 百万标记。 该测试评估了模型从充满无关内容的超长文档中检索隐藏数字的能力。结果表明,Qwen2.5-1M 模型可以从包含多达 1 百万标记的文档中准确检索隐藏数字,只有 7B 模型出现了一些小错误。

1 引言

大型语言模型(LLMs)通过展示理解、生成和与人类语言交互的卓越能力,革新了自然语言处理。然而,有限的上下文长度限制了它们一次能处理的文本量,使其能力局限于简单的单一任务,并阻止它们应对需要大量信息处理或生成的复杂现实场景。例如,LLMs 在依赖仓库级上下文的代码生成和调试方面存在困难,或者基于大量文档进行深入研究。

为了解决这一问题,增加 LLMs 的上下文窗口已成为一个重要趋势。像 GPT 系列、LLama 系列和我们的 Qwen 系列等模型已从最初的 4k 或 8k 标记快速扩展到当前的 128k 标记。还有探索将 LLMs 的上下文长度扩展到 1M 标记甚至更长,如 Gemini、GLM-9B-Chat-1M 和 Gradient AI 的 Llama-3-1M 模型。这种增长使更复杂的应用成为可能,让用户和开发者能够利用这些模型增强的上下文处理能力进行创新研究和开发。

在本报告中,我们将介绍 Qwen2.5 的 1M 上下文长度版本,即 Qwen2.5-1M 系列。在开源权重方面,我们发布了两个指令调优模型:Qwen2.5-7B-Instruct-1M 和 Qwen2.5-14B-Instruct-1M。与 128K 版本相比,这些模型表现出显著增强的长上下文能力。此外,我们还提供了一个基于专家混合(MoE)的 API 可访问模型,称为 Qwen2.5-Turbo,其性能可与 GPT-4o-mini 相媲美,但具有更长的上下文、更强的能力和更具竞争力的价格。除了模型本身,我们还开源了针对长上下文处理优化的推理框架,使开发者能够更经济地部署 Qwen2.5-1M 模型。

本报告概述了 Qwen2.5-1M 背后的关键技术,重点关注以下两个方面:

  • 高效的长上下文训练。 Qwen2.5-1M 的预训练结合了强调长距离依赖的合成数据,并采用渐进长度扩展策略以降低成本并提高效率。后训练解决了长指令数据集稀缺的问题,使用代理生成的大规模指令数据。多阶段监督微调(SFT)和强化学习(RL)确保在短序列和长序列之间保持平衡性能,并优化与人类偏好的对齐。
  • 高效的推理和部署。 我们的推理框架包括三个关键组件:(1)一种无需训练的长度外推方法,使经过 256k 上下文长度训练的模型可以无缝扩展到 1M 上下文而无需额外训练;(2)旨在减少推理成本的稀疏注意力机制,进一步优化以提高 GPU 内存效率,与长度外推方法集成,并通过细化稀疏配置以提高精度;(3)引擎级别的优化,如内核改进、流水线并行和增强调度。通过这些进步,我们的推理框架在 1M 上下文场景中将预填充速度提高了 3 到 7 倍。
    2 架构
    Qwen2.5-1M 系列是基于 Qwen2.5 模型开发的,并支持最多 1 百万个标记的上下文长度。目前包括两个用于开源的密集模型,即 Qwen2.5-7B-1M 和 Qwen2.5-14B-1M,以及一个用于 API 服务的 MoE 模型,即 Qwen2.5-Turbo。
    Qwen2.5-1M 模型保留了与 Qwen2.5 相同的 Transformer 基础架构,确保推理兼容性。具体来说,架构包括 Grouped Query Attention(GQA)以高效利用 KV 缓存,SwiGLU 激活函数进行非线性变换,Rotary Positional Embeddings(RoPE)编码位置信息,注意力机制中的 QKV 偏置,以及带有预归一化的 RMSNorm 以确保稳定训练。


3 预训练
长上下文预训练计算密集且昂贵。为了提高训练效率并降低成本,我们在 Qwen2.5-1M 模型的预训练过程中专注于优化数据效率和改进训练策略。具体改进来自以下几个方面:
3.0.0.1 自然数据和合成数据。
在预训练阶段,我们组装了一个广泛且多样化的自然长文本语料库,以确保 Qwen2.5-1M 模型接触到各种语言模式和上下文。该语料库涵盖了多个领域,包括但不限于 Common Crawl、arXiv、书籍和代码仓库。
尽管自然语料库丰富,但它通常表现出弱的远距离关联,使得模型难以有效地学习远距离标记之间的连接。这是因为自然文本通常优先考虑局部连贯性而非全局结构,模型可以轻松预测下一个标记而不依赖于长距离依赖。
为了解决这些问题,我们用合成数据增强了自然语料库,以提高模型理解和生成长距离依赖的能力。合成数据生成过程涉及几个复杂的任务,旨在改善模型对顺序关系和上下文理解的掌握:

  • 填空任务(FIM) :FIM 任务要求模型预测给定文本序列中的缺失部分。通过在不同位置和长度插入空白,FIM 鼓励模型关注围绕空白的远距离上下文信息。
  • 基于关键字和位置的检索 :此任务涉及根据特定关键字或回忆出现在指定位置之前或之后的段落。这有助于模型识别并连接文本不同部分的相关信息,同时提高其对序列中位置关系的理解。
  • 段落重新排序 :在此任务中,段落被打乱,模型必须重新排列以恢复原始顺序。这加强了模型对逻辑流程和结构连贯性的认识,对于生成有条理和连贯的文本至关重要。
    通过将这些合成数据任务整合到预训练过程中,我们显著提高了模型捕捉长距离信息的能力。这种方法不仅提高了数据效率,还通过加速学习过程和减少达到高性能所需的迭代次数来降低总体计算成本。
    3.0.0.2 训练策略。
    长上下文训练需要大量的 GPU 内存,因此对训练成本和时间构成严重挑战。为了提高训练效率,Qwen2.5-1M 模型采用了渐进式上下文长度扩展策略,包括五个阶段。
    前两个阶段与其他 Qwen2.5 模型相似,我们直接使用来自 Qwen2.5 Base 模型的中间版本进行后续长上下文训练。具体来说,模型最初在 4096 标记的上下文中进行训练,然后转移到 32768 标记的上下文。在这个过程中,我们采用了自适应基频(ABF)技术,将旋转位置编码(RoPE)的基频从 10,000 调整到 1,000,000。
    在接下来的三个阶段,上下文长度分别扩展到 65,536 标记、131,072 标记和 262,144 标记,RoPE 基频分别设置为 1,000,000、5,000,000 和 10,000,000。在这些阶段,训练数据被精心策划,包括 75% 当前最大长度的序列和 25% 较短的序列。这种方法确保模型能够有效适应更长的上下文,同时保留其处理和泛化不同长度序列的能力。


为了监测渐进训练的性能变化,我们在每个训练阶段结束时使用 RULER 基准评估 Qwen2.5-14B-1M。如表 1 所示,随着序列长度逐渐增加,模型在相应序列长度上的理解能力得到了持续提升。值得注意的是,即使在最终的预训练阶段,使用 262,144 标记的序列也显著提高了 128K 样本的表现。这一发现与之前的研究所一致,表明模型通过训练更长的序列可以充分实现其在相对较短任务上的潜力。
4 后训练
后训练的目标是在不影响短任务性能的前提下,有效提升模型在长上下文任务中的表现。我们在构建 Qwen2.5-1M 模型的过程中突出了以下努力:
4.0.0.1 合成长指令数据。
在长上下文任务中,人工标注既昂贵又不可靠。为了解决这个问题,我们的训练数据中包含了一定量的合成长上下文问答对。具体来说,受启发于其他研究,我们从预训练语料库中选择长文档,并提示 Qwen2.5 根据每个文档随机提取的片段生成查询。这些查询涵盖了多种任务,包括总结、信息检索、多跳问答、推理、编程等。然后我们利用 Qwen-Agent 框架生成基于完整文档的高质量回答。该框架采用诸如检索增强生成、分块阅读和逐步推理等高级技术,能够全面整合文档的整体内容到其回答中。最后,我们利用完整文档、模型生成的查询和基于代理生成的回答构成了合成训练数据。
4.0.0.2 两阶段监督微调。
为了在不损害短任务性能的情况下提升模型在长上下文任务中的表现,我们采用了两阶段训练方案。在第一阶段,类似于 Qwen2.5 模型,我们仅在短指令数据上训练模型,每个包含最多 32,768 标记,并保持相同的训练步骤数量。这一阶段确保模型保留处理短任务的能力。在第二阶段,我们引入了一个混合数据集,包含短序列和长序列,长度范围从最多 32,768 标记到最多 262,144 标记。我们仔细平衡短序列和长序列的比例,以防止模型忘记在第一阶段获得的技能。
4.0.0.3 强化学习。
我们采用离线强化学习,类似于 Direct Preference Optimization (DPO),以增强模型与人类偏好的对齐。具体来说,我们利用其他 Qwen2.5 模型离线 RL 阶段的训练对,这些对仅包含最多 8,192 标记的短样本。我们发现,在这些短样本上进行训练足以显著提高模型与人类偏好的对齐,并有效地推广到长上下文任务。为了验证这一说法,我们使用 longbench-chat 基准评估了模型在 RL 阶段前后的表现。如表 2 所示,RL 阶段带来了所有模型的显著改进,证明了 RL 从短上下文到长上下文任务的有效推广。


5 推理和部署
当 LLMs 处理长上下文任务时,推理和部署面临重大挑战。主要问题包括在有限的 GPU 内存约束下部署更长序列的模型、减少计算以加快处理速度,同时在优化过程中保持准确性。在本节中,我们将介绍解决这些挑战的方法。
首先,我们介绍长度外推方法,该方法使模型在推理时支持比训练长度长四倍甚至更长的上下文。接下来,我们介绍一种稀疏注意力机制,该机制在预填充阶段实现了超过四倍的加速。最后,我们深入探讨内核和系统级别的优化,这些优化进一步提升了整体推理性能。
本节详细介绍的推理和部署解决方案已经开源并集成到 vLLM 中。它使用户能够在自己的设备上部署 Qwen-2.5 模型,利用我们先进的长度外推方法和加速优化,从而提升性能。
5.1 长度外推
长度外推是一种推理技术,旨在增强模型处理超出训练时使用的上下文长度的输入时的性能。我们采用以下两种方法来实现长度外推。


双块注意力(DCA)的图示。 DCA 将相对位置重新映射为较小的数字,从而避免遇到训练期间未见过的较大相对位置(图(a)中的灰色区域)。
5.1.0.1 双块注意力(DCA, )。
基于 RoPE 的现代 LLMs 在处理超过训练长度的序列时性能会下降,主要是因为在计算注意力权重时遇到了未训练过的较大相对位置距离。
DCA 方法通过将整个序列划分为多个块并将相对位置重新映射为较小的数字来解决此问题,确保任意两个标记之间的距离不超过预训练长度。图 2 (b) 显示了重新映射的相对位置矩阵。
DCA 采用三种不同的注意力模式来高效管理不同距离的标记交互:

  • 块内注意力 处理同一块内的标记之间的注意力。由于两个标记之间的距离相对较短,它保留了原始的相对位置。
  • 块间注意力 管理不在同一块中的标记之间的注意力。为了确保最大距离不超过预训练长度,它使用重复的序列作为不同块之间的相对位置。
  • 连续块注意力 通过仔细管理相邻块之间的注意力,确保短程相对位置的连续性。如果查询和键之间的距离在本地窗口大小以内,则保留原始相对位置。否则,它采用块间注意力中使用的方法来处理较长的距离。
    通过整合这些模式,DCA 提升了模型处理四倍或更长上下文长度的能力。此外,DCA 可以无缝集成到闪存注意力中,从而在生产环境中高效实现。
    5.1.0.2 YaRN 中的注意力缩放


在本报告的实验中,我们始终将注意力缩放与 DCA 一起使用。请注意,这两种长度外推方法在处理短序列时不会改变模型的行为,从而确保短任务的性能不受影响。
5.1.0.3 长度外推的效果
为了证明长度外推方法的有效性,我们评估了 Qwen2.5-1M 模型及其 128k 对应版本在上下文长度为 1 百万标记的情况下的表现。我们选择了 RULER 中的三项任务进行评估: 密钥检索、NIAH(针尖在草堆中)带多个查询,以及 NIAH 带多个值。
结果如图 3 所示。首先,我们发现 DCA 显著提升了所有指令模型在处理长上下文任务时的表现,尤其是在上下文长度远超训练长度的情况下。其次,对于相对简单的密钥检索任务,DCA 使 Qwen2.5-7B-Instruct 和 Qwen2.5-14B-Instruct 模型在最长 1 百万标记的序列上实现了超过 80% 的准确率,尽管它们只在最多 32K 标记的序列上进行过训练。这突显了 DCA 作为长度外推的稳健解决方案的有效性。最后,比较 Qwen2.5-1M 模型与其 128k 版本,我们观察到在更长序列(最多 256k 标记)上进行训练显著提高了模型在更长上下文中的性能外推能力。


长度外推对长上下文任务的影响。
5.2 稀疏注意力下的高效推理
对于长上下文 LLMs,推理速度对于用户体验至关重要。传统注意力机制的计算复杂度随输入序列长度呈二次增长,当输入长度达到一百万个标记时,注意力机制所花费的时间可能占总前向传递时间的90%以上。因此,引入稀疏注意力机制是成功部署长上下文模型的关键步骤。 具体来说,我们基于 MInference 实现了一种稀疏注意力机制,以加速预填充阶段。在此基础上,我们进一步优化了内存使用,通过分块预填充将这些改进与长度外推技术结合,并引入稀疏性细化方法以应对长序列中潜在的准确性下降问题。

垂直斜线模式在 MInference 中的图示。结合 MInference 与分块预填充的图示。

MInference 及其与分块预填充结合版本的图示。
5.2.0.1 MInference .
大型语言模型(LLMs)中的注意力计算在长上下文输入下表现出稀疏性。 成功识别并仅利用关键标记进行注意力计算,结果几乎与全注意力机制相同。这些关键标记在整个样本中呈现出明显的模式,在注意力图中表现为垂直和对角线。这种模式被称为“垂直斜线”模式,如图 6 (a) 所示。
为了利用这种稀疏性,MInference 首先进行离线搜索以确定最佳稀疏化配置。该配置指定了每个注意力头应采用多少垂直和对角线。在推理过程中,MInference 首先计算最后一个查询标记(即 last_q)与所有键标记之间的注意力。根据部分注意力结果,它动态选择符合预定义配置的“垂直斜线”模式的关键标记,最后仅在这些选定的关键标记上计算注意力。这种方法显著减少了大约 10 倍的计算和内存访问成本,同时仅引入极小的准确性损失。
5.2.0.2 结合分块预填充。
在 MInference 中,整个序列同时编码,导致激活值的 VRAM 消耗随输入长度线性增加。例如,当输入达到一百万个标记时,Qwen2.5-7B 单个 MLP 层的激活值 VRAM 消耗可飙升至 71GB,远远超过模型权重和键值缓存的内存使用。
为了解决这一挑战,可以在推理过程中使用分块预填充来减少 VRAM 消耗。通过使用 32,768 标记的分块长度,分块预填充可以将激活 VRAM 使用量减少 96.7%。此外,在处理多个请求时,分块预填充有助于防止解码被长时间的预填充操作瓶颈。
为了将分块预填充集成到 MInference 中,我们提出了一种策略,即为每个分块选择关键标记,如图 6 (b) 所示。输入序列被分成多个分块,由模型依次处理。在注意力层中,不是考虑尚未访问的整个输入序列的最后标记,而是利用每个分块内的最后 64 个标记来识别关键标记。这在标记选择过程中为每个分块引入了不同的垂直和对角线,而不会在初步实验中显著影响准确性。
通过将分块预填充与 MInference 结合,我们的方法在有限的 VRAM 资源内显著增加了支持的最大序列长度。
5.2.0.3 与 DCA 结合。
MInference 可以无缝集成 DCA 到其实现中。然而,我们在某些涉及长度外推的情况下观察到了性能下降。
我们假设 DCA 中相对位置的非连续性可能会破坏“斜线”模式,从而降低关键标记选择的准确性。为了解决这个问题,我们建议在选择连续相对位置的关键标记时恢复连续相对位置,确保对角线上的相对位置尽可能一致,如图 7 所示。需要注意的是,连续相对位置仅在关键标记选择阶段引入,最终的注意力权重计算仍使用 DCA 中的非连续位置嵌入。


DCA 和选择关键标记时相对位置矩阵的比较。 (b) 中对角线上的相对位置比 (a) 更一致。例如,红色方框标记的对角线包含 \([5,6,7,3,4,5,6,7]\) 在 (a) 和 \([7,7,7,4,4,7,7,7]\) 在 (b) 中。
5.2.0.4 1 百万标记序列的稀疏性细化。
在部署之前,MInference 需要进行离线搜索以确定每个注意力头的最佳稀疏化配置。由于全注意力矩阵的计算需求随序列长度呈二次增长,此搜索过程通常在短序列上进行。由于设备的 VRAM 限制,搜索中使用的序列通常保持在 32k 标记以下,导致在更长序列(如 1 百万标记)上的性能欠佳。


使用该注意力召回率指标,我们在一个由 1 百万标记序列组成的校准集上细化稀疏化配置。细化过程详见算法 [alg:refinement] 。


5.2.0.5 稀疏注意力对准确率的影响
为了证明我们整合 DCA 和稀疏性细化方法的必要性,我们在 Needle in a Haystack 测试 中评估了 Qwen2.5-7B-Instruct-1M,上下文长度可达 1 百万标记。我们选择这个模型是因为较小的模型对稀疏注意力带来的信息丢失更敏感,从而更好地突出我们改进的价值。
如图 8 所示,Qwen2.5-7B-Instruct-1M 在使用全注意力时成功检索了大部分密钥,即使在 1 百万标记的上下文中也是如此。然而,使用原始 MInference 方法会导致显著的性能下降。对于超过 400k 标记的上下文,模型的检索准确率可能会降至 60% 或更低。
在引入连续相对位置选择关键标记并细化稀疏化配置后,如图 8 (c) 所示,模型恢复了大部分性能,并在预填充阶段保持约 4 倍的速度提升。


不同稀疏化配置下 Qwen2.5-7B-Instruct-1M 在 Needle in A Haystack 上的表现。
5.3 推理引擎
除了算法上的进步,优化推理引擎对于使 LLMs 有效处理长序列也至关重要。Qwen2.5-1M 模型的 API 服务由 BladeLLM 提供支持,BladeLLM 是阿里巴巴 PAI 引擎团队开发的高性能推理引擎。BladeLLM 特别针对长序列预填充和解码进行了优化,通过内核性能、流水线并行性和调度算法的增强。为了帮助开源社区高效部署具有扩展上下文长度的 Qwen 模型,其中一些优化已经开源并将集成到 vLLM 中。
5.3.1 内核优化
5.3.1.1 稀疏注意力内核优化


为了缓解稀疏内存访问的开销,我们在从全局内存加载稀疏 KV 对时实施了多阶段流水线并行和密集的指令级优化。我们优化的稀疏注意力内核旨在利用各种 GPU 架构的能力,包括 NVIDIA 的 Ampere 和 Hopper 系列、AMD 的 MI300 系列及其他硬件平台。
我们的实验表明,BladeLLM 的优化内核在多个硬件平台上实现了显著的高计算效率,峰值 FLOPs 利用率高达 90%。如图 [fig:bench_spattn] 所示,在 A100 GPU 上,对于 1 百万标记的上下文,MInference 相比 FlashAttention 实现了 13.7 倍的速度提升,而在相同的稀疏配置下,BladeLLM 实现了 27.8 倍的速度提升。

MoE 内核的性能。
5.3.1.2 MoE 内核优化
Mixture-of-Experts(MoE)模型以其参数的稀疏激活和出色的准确性特别适合大规模部署。在优化我们 MoE 模型 Qwen2.5-Turbo 的性能时,我们发现解码性能受到内存访问速度的显著影响。特别是在处理批大小为 32 或更大的解码迭代时,每次解码迭代中对大模型参数的访问成为 MoE 层整体效率的关键瓶颈。因此,增强 MoE 内核中的内存访问效率对于实现峰值解码性能至关重要。
BladeLLM 通过多种优化技术增强了 MoE 内核的效率,包括针对内存受限场景优化的 Tensor Core 利用率和细粒度的 warp 专业化。在 H20 GPU 上,这些优化实现了峰值内存访问效率 3.4 TB/s,比 vLLM 中的 FusedMoE 内核提高了 55%。不同批大小下的性能结果如图 9 所示。
5.3.2 动态分块流水线并行
流水线并行是一种将模型划分为多个段的技术,允许模型的不同部分并发处理。这种方法相比张量并行显著减少了通信量,并且由于更密集的操作,其内核执行效率得到增强。在最近的行业实践中,分段流水线并行(分块流水线并行)已被用于加速预填充阶段。然而,在涉及广泛上下文长度的场景中,我们发现了一个问题:不同分块的历史长度(即过去 KV 缓存的长度)差异导致注意力计算时间存在巨大差异。这种差异导致了许多流水线气泡,如图 12 (a) 所示。
BladeLLM 在长上下文预填充中采用动态分块流水线并行(DCPP),根据注意力内核的计算复杂度动态调整分块大小,以确保每个分块的执行时间尽可能相等,从而最小化流水线气泡,如图 12 (b) 所示。

分块预填充中的流水线气泡动态分块流水线并行

BladeLLM 中的流水线并行优化。
5.3.3 调度
典型的 LLM 推理引擎可以分为以下几个组件:

  • API 服务器 :负责接收请求和发送响应。
  • 调度器 :负责请求调度、KV 缓存块分配等。
  • 模型运行器 :负责模型计算和采样。
  • 解码器 :负责将采样的 Token ID 转换为文本输出。

在早期主流推理引擎中,调度器、模型运行器和解码器以串行方式运行,如图 13 (a) 所示。在这种设置中,非 GPU 操作(如调度器和解码器)占据了大量解码时间,导致 GPU 利用率较低。

为了解决这些问题,BladeLLM 实现了一种完全异步的 LLM 推理架构,称为 Totally Asynchronous Generator (TAG),如图 13 (b) 所示。具体来说,这三个组件由三个独立的进程处理,其间无需同步。

  1. 调度器 :根据预期标记(通常是 1,但在推测性采样中可以更多)为下一个模型运行器步骤分配 KV 缓存,而不等待前一个模型运行器的结果。
  2. 模型运行器 :从调度器分配的队列中检索请求并进行处理。处理后,它将采样的 Token ID 直接放入解码器的队列中,并继续下一步计算。
  3. 解码器 :从队列中异步检索 Token ID,将其转换为文本,并发送给 API 服务器。

此外,BladeLLM 在其组件间使用共享内存以进一步减少进程间通信开销。通过这些方法,BladeLLM 显著减少了推理引擎中非 GPU 阶段的开销,大幅提升了解码效率。

早期主流推理引擎的串行执行管道Totally Asynchronous Generator (TAG)

BladeLLM 中的调度优化。

6 评估

为了全面评估 Qwen2.5-1M 系列模型的性能,我们将首先评估其在长上下文任务中的能力,突出通过专业长上下文优化实现的重大改进。接下来,我们将考察其在短上下文任务中的表现,并与 128k 版本的结果进行比较。最后,我们将展示模型的推理速度。

6.1 长上下文基准测试

我们首先在上下文长度为 1 百万标记的密钥检索任务上评估 Qwen2.5-1M 系列模型。如图 1 所示,Qwen2.5-14B-Instruct-1M 和 Qwen2.5-Turbo 模型均实现了完美准确率,成功识别了所有隐藏数字。较小的 Qwen2.5-7B-Instruct-1M 模型也表现出色,仅有少量小错误。这些结果突显了 Qwen2.5-1M 模型在处理长达 1 百万标记的上下文时的强大检索能力。

对于更高级的任务,我们使用三个基准测试来评估长上下文能力:

  • RULER :这是针尖在草堆中的扩展任务,RULER 挑战模型在无关上下文中找到多个“针”或回答多个问题,或识别文本中最频繁或最不频繁的单词。最大数据长度为 128K 标记。
  • LV-Eval :此基准测试模型同时理解多个证据片段的能力。我们改进了原始 LV-Eval 的评估指标,避免因过于严格的匹配规则导致的假阴性。最大数据长度为 256K 标记。
  • Longbench-Chat :这是一个评估长上下文任务中人类偏好对齐的数据集。最大数据长度为 100K 标记。
    作为基线,我们选择了 GLM-9B-Chat-1M 、Llama-3-8B-Instruct-Gradient-1048k 、Llama-3.1-70B-Instruct、GPT-4o-mini 和 GPT-4o。
    表 [tab:ruler] 和 [tab:lveval] 详细列出了三个基准测试的结果。显然,Qwen2.5-1M 系列模型在大多数长上下文任务中显著优于其 128k 对应版本,尤其是在超过 64k 标记的序列上。在 RULER 数据集中,Qwen2.5-1M 系列的所有模型甚至超过了 GPT-4,突显了其在长上下文检索任务中的卓越能力。
    值得注意的是,Qwen2.5-14B-Instruct-1M 模型在 128k 序列上的准确率为 92.2,这是 Qwen2.5 系列中首次突破 90 分大关。此外,它在多个数据集上持续超越 GPT-4o-mini,提供了一个强大的开源替代方案,适用于长上下文任务。
    Qwen2.5-Turbo 在长上下文基准测试中的表现介于 Qwen2.5-7B-Instruct-1M 和 Qwen2.5-14B-Instruct-1M 模型之间。它提供了更快的推理速度和更低的成本,使其成为一个更具成本效益和高效的选项。
    尽管 Qwen2.5-72B-Instruct 仅在最长 32k 标记的序列上训练,但在使用我们的长度外推方法 DCA+YaRN 后,它在 LV-Eval 基准测试中始终优于 Qwen2.5-14B-Instruct-1M 模型。这一结果强调了长度外推技术的巨大价值,同时也突显了较大模型在处理复杂长上下文任务中的固有优势。
    6.2 短上下文基准测试
    除了在长上下文任务中的性能改进,我们还对 Qwen2.5-1M 和其 128k 对应版本在短上下文任务中进行了全面比较。
    我们选择了广泛使用的基准测试,涵盖自然语言理解、编程、数学和推理。对于一般评估,我们使用了 MMLU-Pro 、MMLU-redux 和 LiveBench 0831 。对于科学和数学,我们评估了 GPQA 、GSM8K 和 MATH 。在编程方面,我们使用 HumanEval 、MBPP 、MultiPL-E 和 LiveCodeBench 2305-2409 进行评估。此外,我们使用 IFEval 测量指令跟随能力,报告严格提示级别的准确率。为了进一步评估人类偏好对齐和指令跟随性能,我们在 MT-Bench 和 Arena-Hard 上评估了模型。


如表 3 所示,Qwen2.5-7B-Instruct-1M 和 Qwen2.5-14B-Instruct-1M 在短文本任务上的表现与 128k 版本相似,确保其基本能力未因添加长序列处理能力而受损。与 GPT-4o-mini 相比,Qwen2.5-14B-Instruct-1M 和 Qwen2.5-Turbo 在短文本任务上实现了类似的性能,同时支持长达八倍的上下文。
6.3 速度对比


Qwen2.5-7B-Instruct-1M、Qwen2.5-14B-Instruct-1M 和 Qwen2.5-Turbo 在 H20 和 A100 GPU 上的首次标记生成时间(TTFT)。
为了展示我们最终解决方案在处理长序列时的加速效果,我们在 Nvidia H20 和 A100 GPU 上评估了不同上下文长度下的首次标记生成时间(TTFT)。实验配置如下:

  • 对于 Qwen2.5-14B-Instruct-1M 和 Qwen2.5-Turbo,我们采用了 8 路分区的张量并行。
  • 对于 Qwen2.5-7B-Instruct-1M,由于 Grouped Query Attention 机制的限制,我们使用了 4 路分区的张量并行。

在所有实验中,我们使用批大小为 1。

如图 14 所示,通过稀疏注意力和优化后的推理引擎,我们的方法在处理 1 百万标记上下文的不同模型尺寸和设备上实现了 3.2 到 6.7 倍的速度提升。例如,在 H20 GPU 上,Qwen2.5-14B-Instruct-1M 模型将推理时间从 12.2 分钟(全注意力)减少到仅 109 秒。同样,Qwen2.5-Turbo 模型将处理时间从 4.9 分钟减少到仅 68 秒。这些改进显著减少了长序列任务中的用户等待时间。

与开源的 Qwen2.5-1M 模型相比,Qwen2.5-Turbo 在短任务中表现出色,并在长上下文任务中实现了有竞争力的结果,同时提供了更短的处理时间和更低的成本。因此,它在性能和效率之间达到了极佳的平衡,具有高度的成本效益。

7 结论

在本技术报告中,我们介绍了 Qwen2.5-1M 系列模型,包括开源模型 Qwen2.5-7B-Instruct-1M 和 Qwen2.5-14B-Instruct-1M,以及 API 可访问的模型 Qwen2.5-Turbo。我们详细描述了这些模型是如何通过长上下文预训练和后训练扩展 Qwen2.5 Base 模型的。我们引入了数据合成和渐进式训练等技术,以较低的成本提高训练效果。

除了训练,高效的推理和部署对长上下文模型提出了重大挑战。我们实施了多种优化措施,包括无需训练的长度外推方法、稀疏注意力机制和推理引擎增强。这些优化显著提高了运行长序列模型的效率,并降低了运营成本,使其实际应用更加可行。我们已经开源了其中的一些优化措施,并坚信这是推动该领域进步的最有效方式。

我们认识到长上下文模型仍具有巨大的改进潜力。我们的重点是开发在短上下文和长上下文任务中都表现出色的模型,确保它们在现实世界中的长上下文场景中提供巨大价值。我们将继续探索更有效的训练策略、模型架构和推理方法,使它们能够在资源受限的环境中高效部署并表现出色。我们相信这些努力将大大扩展长上下文模型的应用范围。

### 关于Qwen2.5-7B-Instruct与Ollama的技术信息 #### Qwen2.5-7B-Instruct模型概述 Qwen2.5-VL-7B-Instruct是一款由阿里云开发的强大多模态预训练模型,具备处理复杂视觉任务的能力。此模型不仅能识别常见的物体类别如花、鸟、鱼等,而且对于文本、图表、图标以及更抽象的图形也展现出卓越的理解力[^2]。 #### 部署Qwen2.5-7B-Instruct模型的方法 为了部署这一先进的视觉理解工具,在实践中通常会借助vLLM框架来实现高效的服务端运行环境搭建。具体来说,可以通过设置`HF_HUB_ENABLE_HF_TRANSFER=1`并利用huggingface-cli命令行工具从Hugging Face Model Hub获取所需的权重文件完成初步安装工作;之后再启动vLLM服务以支持后续的应用调用需求[^1]。 ```bash # 设置环境变量以便加速下载过程 export HF_HUB_ENABLE_HF_TRANSFER=1 # 使用CLI客户端下载指定版本的Qwen2.5-VL-7B-Instruct模型 huggingface-cli download Qwen/Qwen2.5-VL-7B-Instruct # 启动基于vLLM架构构建的服务实例 python -m vllm.server --model-path ./path_to_downloaded_model/ ``` #### Ollama平台介绍及其关联性 Ollama是一个专注于AI驱动解决方案的企业级服务平台,旨在帮助企业快速集成和应用最新的机器学习成果到实际业务流程当中去。虽然官方文档并没有直接提及Qwen系列模型的支持情况,但由于其开放性和灵活性,理论上是可以兼容包括但不限于Qwen在内的多种高质量预训练模型来进行定制化的二次开发工作的。因此如果考虑将Qwen应用于特定场景下,则不妨探索一下如何结合Ollama所提供的API接口和服务特性来达成目标[^3]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Paper易论

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值