大模型长文本性能狂飙91%!vLLM V1混合模型引爆

2025-11-06AI动态

Image

大型语言模型(LLM)的飞速发展,正在以前所未有的方式重塑我们的数字世界。然而,随着模型规模的不断扩大和应用场景的日益复杂,传统的注意力机制开始遭遇瓶颈。特别是当模型需要处理超长上下文时,内存消耗和计算延迟的问题变得尤为突出。新媒网跨境获悉,业界正在积极探索创新的解决方案,其中“混合模型”正成为解决这一难题的关键路径。

混合模型,顾名思义,巧妙地融合了注意力机制与其他替代方案,例如Mamba或线性注意力等,旨在在保持出色模型性能的同时,实现更高效的长序列推理。Qwen3-Next、Nemotron Nano 2、MiniMax-Text-01和Granite 4.0等一系列前沿架构,正是这一技术趋势的杰出代表。这些模型通过机制的混合,不仅保留了核心的建模能力,更显著提升了处理超长文本的效率。在vLLM社区的持续努力下,混合模型已从最初的实验性探索,逐步演变为vLLM V1版本中的“一等公民”,获得了全面的支持。接下来,我们将深入探讨这一转变的背景、意义,以及开发者在vLLM V1上部署混合模型时所能期待的性能提升。
Throughput improvement when moving from vLLM V0 to V1 for a representative hybrid model: granite-4.0-h-tiny, which is a 7B parameter model with 1B active

注意力机制:真的无所不能吗?

长期以来,注意力机制被誉为大型语言模型的核心支柱,它在捕捉自然语言中的复杂依赖关系方面表现出了卓越的能力。vLLM及其依赖的FlashInfer和FlashAttention等推理引擎,在现代GPU上对注意力机制进行了深度优化。这些优化包括:精巧的分页KV缓存机制、高效的平铺和在线softmax核函数、充分利用张量核心的计算能力、集成张量内存加速器(TMA),以及广泛采用量化技术来压缩内存并提升吞吐量。

尽管工程技术取得了诸多进步,但注意力机制在扩展到处理超长序列时,依然面临着两大根本性限制。首先,KV缓存的内存消耗与序列长度和批处理大小呈线性增长关系。每生成一个新词元,就会追加新的键值向量。当序列长度达到数十万甚至更高时,KV缓存会迅速成为GPU上最主要的内存消耗者之一。其次,预填充阶段(prefill),即生成第一个词元所需的时间(TTFT),与提示(prompt)长度呈二次方关系。对于128k或更长的提示,预填充的延迟会急剧增加,有时甚至会使推理变得不切实际。尽管注意力机制在许多方面仍是行业领先的技术,但这些扩展性瓶颈正是研究人员和工程师积极探索混合模型的主要原因。

为何长序列处理至关重要?

长序列的处理能力并非抽象的学术追求,而是现实世界应用场景的迫切需求。一个典型的例子是检索增强生成(RAG)模型。在这种模式下,用户的查询会与多个检索到的相关文档进行匹配,这些文档随后会被附加到原始提示中。根据检索到的文档数量和它们的长度,提示的整体长度很容易从几千个词元膨胀到数万甚至数十万个词元。

另一个驱动因素来源于“智能体”(Agentic)模式。在这些工作负载中,模型在一个循环中运行:它首先生成一些输出,然后与外部工具或系统进行交互,接着将交互结果整合回上下文,以便进行进一步的推理。每一次交互都会延长提示的长度,随着工具调用次数的增加,序列长度会迅速达到非常大的规模。

最后,推理模式本身也明确鼓励长序列。那些指示模型“一步步思考”或生成中间推理链的提示,会将所有这些中间词元保留在上下文中。这种结构化的推理方法虽然能显著提高准确性,但同时也会极大地扩展提示的尺寸。
Illustrations of RAG queries, agentic tool loops, and reasoning traces, each showing how the context length expands in different ways.

在上述所有场景中,混合模型的目标都是通过将注意力层与在内存和时间方面具有更好扩展性的替代方案(如Mamba或线性注意力)相结合,来提升整体效率。

状态空间模型简史

状态空间模型(SSM)拥有悠久而丰富的历史,曾在控制理论和动态系统等领域取得了成功。尽管它们在历史上主要在连续时间域中进行表述,但也能采用离散形式应用于词元序列,这正是我们通常在LLM推理中处理的情况。我们从2021年出现的典型SSM——S4的离散形式谈起。S4算法的工作原理如图3所示,它通过一个内部潜在状态h,将长度为T的输入序列x映射到输出序列y。与需要二次方计算复杂度的注意力机制不同,S4的计算复杂度与序列长度呈线性关系,处理长度为T的序列仅需T次更新。更重要的是,潜在状态h具有固定的维度N,它不随序列长度的增加而增长。这使得S4的表示非常高效,特别是对于KV缓存成本呈指数级增长的长序列而言。
S4 recurrence diagram showing per-timestep update with matrices A, B, C, and latent state h.

然而,S4在需要选择性复制词元或进行上下文推理的任务上表现不佳。其循环结构虽然能捕捉依赖关系,但缺乏处理这些能力的灵活性。于是,2023年Mamba-1应运而生,它通过允许矩阵A、B和C在每个时间步进行变化来扩展S4的公式。这使得Mamba-1能够选择性地关注不同的词元,从而极大地提升了在选择性复制和推理任务上的表现。

尽管如此,Mamba-1的推理性能在现代GPU上仍落后于注意力机制,因为它在并行实现中并未广泛使用矩阵乘法,因此无法有效利用张量核心。这一问题在Dao和Gu于2024年发布里程碑式的Mamba-2论文时得到了解决。这篇论文指出,SSM实际上可以被公式化为从输入序列到输出序列的矩阵变换(而不是图3中所示的循环结构),并且通过在矩阵A中引入更多结构,可以实现非常高效的实现。更令人惊喜的是,Mamba-2实际上与另一种注意力变体——线性注意力(linear attention)是等价的。线性注意力机制最早由Katharopoulos等人在2020年提出,他们展示了将softmax近似为核特征图的线性点积,能够引出一种新型的注意力机制:其计算复杂度不再随序列长度呈二次方增长。这一发现引发了大量研究,并催生了许多基于核心思想的变体和改进。近期值得关注的线性注意力变体包括Lightning Attention和Gated Delta Net,它们分别被Minimax-Text-01模型和Qwen3-Next模型所采用。

混合模型:vLLM V1中的生态图景

随着这些机制的成熟和到位,业界涌现出了一大批混合架构,它们将全注意力机制与Mamba或线性注意力的变体相结合。这种设计理念是清晰而有力的:保留全注意力机制在建模方面的强大优势,同时通过引入Mamba或线性层来大幅提升模型在扩展性上的效率。
Table of hybrid models supported in vLLM V1, highlighting attention, Mamba variants, linear attention, and MoE usage.

图4展示了vLLM V1目前支持的全部混合模型列表,其中详细指明了每种模型所使用的SSM或线性注意力机制。这些模型充分表明,混合架构并非小众的实验性探索,而是各机构在模型设计中积极而主流的选择。

混合模型的状态管理难题

在vLLM中支持混合模型,需要对模型状态进行精心的管理。注意力层依赖于一种分页式的KV缓存,它被组织成16个词元的块,每个块大约消耗64 KiB的内存。相比之下,Mamba层为每个序列维护一个固定大小的内部状态,大约2.57 MiB,这个状态是在原地更新的,而不是像KV缓存那样不断追加。
KV cache blocks in attention, showing 16-token groups of ~64 KiB each. Numbers computed based on NVIDIA-Nemotron-Nano-12B-v2
Mamba state structure, showing one large per-sequence state updated in place. Numbers computed based on NVIDIA-Nemotron-Nano-12B-v2

尽管单一的KV缓存块比Mamba的状态要小,但在长上下文场景下,这种关系会发生逆转。对于一个128k词元的序列,KV缓存的内存占用可能比Mamba状态大近200倍,这充分说明了混合方法为何如此具有吸引力。

vLLM V0中的混合状态管理:权宜之计

在vLLM V0版本中,对混合模型的支持是通过一种实用但略显脆弱的“权宜之计”来实现的。KV缓存的分配被高效地管理为块,但Mamba的状态却是单独分配的。每个Mamba层为每个活跃序列都拥有一个状态张量,其大小由用户定义的参数max_num_seqs决定。
V0 architecture showing paged KV cache for attention and separate per-sequence Mamba state tensors.

这种方法强迫用户必须猜测这个参数的合适值,以避免系统崩溃。如果设置过高,则可能导致CUDA内存不足错误;如果设置过低,则会降低并发性。结果就是可用性差,新混合模型开发者经常抱怨使用不便。

vLLM V1中的统一状态管理:优雅升级

在vLLM V1版本中,对混合模型的支持围绕一个全新的统一分配器进行了重构,该分配器能够同时管理KV缓存和Mamba状态。这一设计不仅体现了工程上的优雅,更重要的是,它为前缀缓存、KV缓存传输以及预填充/解码分离等高级功能奠定了基础。通过将混合模型支持纳入V1,它们现在也能受益于诸如torch.compile和改进的调度机制等一系列新的优化。

然而,对于基于Mamba的混合模型,统一状态管理并非一蹴而就。尽管V1通过混合内存分配器已经提供了对“混合”状态的支持,但它最初仅支持那些混合了全注意力层和滑动窗口注意力层的模型,例如Gemma 3、Llama 4和gpt-oss。
Example of KVCacheGroups in V1, where groups of similar layers share cache tensors to simplify memory management.

混合内存分配器的工作方式如图8所示,对于一个同时包含全注意力层(A)和滑动窗口注意力层(SWA)的模型,分配器会将相同类型的层归入KVCacheGroups。每个KVCacheGroups的状态都以交错的方式存储在多个KVCacheTensors中,形成一个块。关键在于,不同组对应的块会共享相同的KVCacheTensors。为了简化内存管理,我们必须确保所有KVCacheGroups的块大小(以词元计)和页大小是相同的。

为Mamba调整分配器:突破兼容壁垒

Mamba模型的加入,使得情况变得复杂起来,因为其状态页的大小远大于注意力块。为了实现两者的统一,我们必须放宽“所有组使用相同块大小”的严格要求。解决方案是:自动增加注意力块的大小,使其与Mamba的页大小对齐。同时,Mamba的页也会进行轻微的填充,以确保页大小完全相等。这一页对齐过程,以NVIDIA-Nemotron-Nano-12B-v2这个代表性模型为例,在图10和图11中得到了清晰的展示。
Before page alignment – attention page size is dramatically smaller than mamba page size
After page alignment – attention page size and mamba page size are exactly equal

尽管像每注意力块672个词元这样的非标准块大小可能看似效率低下,但经验测试表明,它对性能的影响微乎其微。这可能是因为当Mamba或线性层占据主导地位时,注意力对运行时开销的贡献较小。此外,一些注意力核函数支持任意块大小(例如Triton注意力后端提供的核函数),但另一些,如FlashInfer提供的TRT-LLM核函数则不支持。为了克服这一限制,我们最近实现了将KV缓存管理所使用的块大小与核函数所看到的块大小解耦的功能。这使得我们能够以整洁的方式管理混合状态,同时仍然可以使用TRT-LLM核函数在Blackwell GPU上获得最佳性能。

步步为营,追求完美:解决内存交错问题

在调试最初的V1集成时,我们发现了一个微妙的问题,它源于Mamba KVCacheGroups与注意力 KVCacheGroups共享相同的 KVCacheTensors。每个组对同一张量持有不同的视图,而这些视图看起来却大相径庭,如图12所示。
Before changing strides: attention and Mamba views are not compatible

每个注意力页由键张量和值张量组成。当使用FlashInfer后端时,键和值在GPU显存中以交错方式存储,使得数据以块对块(block-by-block)的形式排列。然而,Mamba页则由卷积状态(Conv)和状态空间模型状态(SSM)组成,并且默认情况下,它们是交错存储的。这意味着我们会先存储所有块的Conv状态,然后存储所有块的SSM状态。这样一来,通过Mamba视图写入一个块,可能会导致注意力视图中另一个不同块的数据损坏。为了解决这个问题,我们改变了Mamba状态张量的步幅(stride)方式,以确保这两个视图完全兼容。图13展示了这种方法。我们可以看到,注意力块和Mamba块现在完美对齐,数据损坏的风险得以彻底消除。
After changing strides: attention and Mamba views are not compatible

一些注意力后端,如FlashAttention,实际上并不以上述图示的块对块方式存储键和值。然而,我们发现可以通过再次修改步幅,这次是针对注意力视图,来确保FlashAttention也能作为混合模型的后端使用。FlashAttention在许多情况下是vLLM的默认注意力后端,因此这是朝着废弃V0迈出的又一个重要步骤。

工程优化:告别V0,迈向卓越

为了完全废弃V0版本对混合模型的支持,还需要进行其他多项改动。大量的模型代码被重构,并实施了一系列性能优化,以确保我们能够超越V0的性能表现。值得一提的是,许多Mamba和线性注意力的变体都是使用Triton核函数实现的。Triton在开发这些新模型方面表现出色,因为它能提高生产力并在不同平台间良好运行,但其已知存在CPU启动开销问题。在低延迟场景下(例如,小批量和/或激活参数较少的模型,其词元间延迟),这些开销可能会严重影响性能。

为了克服这一挑战,我们在Mamba后端实现了分阶段的CUDA Graph支持:从最初的即时执行(eager execution),逐步发展到分段图(piecewise graphs),再到仅用于解码批次的全图(full graphs for decode-only batches),最终形成了一种混合方案,将解码的全图与混合批次的分段图相结合(FULL_AND_PIECEWISE)。这项最终优化使我们能够恢复V0的性能,并在某些场景下显著超越它。通过默认启用FULL_AND_PIECEWISE,我们最终得以将V1作为混合模型的默认版本,并开始逐步移除V0的代码。此外,现在使用Mamba-2的混合模型也已支持前缀缓存,尽管目前仍处于实验阶段。如果您对此感兴趣,欢迎尝试并反馈任何问题。

基准测试设置:数据说话

为了进行公正的性能评估,我们在vLLM v0.10.2版本上执行了基准测试。这是最后一个同时支持V0和V1混合模型的版本,因此能进行直接的比较。服务器部署在H100 GPU上,客户端生成长度为32k的随机输入,并要求输出128个词元,同时扫测不同的并发级别。

测试命令如下所示:

vllm serve $MODEL --trust-remote-code
 vllm bench serve \
  --model $MODEL \
  --dataset-name random \
  --random-input-len 32768 \
  --random-output-len 128 \
  --max-concurrency $MAX_CONCURRENCY \
  --num-prompts $((10 * $MAX_CONCURRENCY)) \
   --ignore-eos --seed $MAX_CONCURRENCY

我们选择了两款具有代表性的模型进行基准测试:NVIDIA Nemotron-Nano-12B-v2和IBM granite-4.0-h-tiny。选择它们的原因是这两款模型都同时受vLLM V0和V1支持,而近期新增的模型(如Qwen3-Next和Kimi Linear)则仅支持V1。有关V1支持的完整混合模型列表,请参阅前文图4的详细信息。

性能成果:NVIDIA Nemotron-Nano-12B-v2表现亮眼

对于NVIDIA Nemotron-Nano-12B-v2这款密集型混合模型,V1版本通常在首词元生成时间(TTFT)和词元间延迟(ITL)方面均优于V0。尽管两个版本之间不同的调度机制有时会导致性能上的权衡,但吞吐量的提升却是持续可见的,范围从2%到18%。唯一的例外是在极低并发度下,此时Mamba核函数中的CPU开销导致启用PIECEWISE的V1表现反而不如V0。然而,我们注意到,启用FULL_AND_PIECEWISE的V1版本完美解决了这个问题,展现出其优越性。
Nemotron-Nano-12B-v2 benchmark results comparing V0 and V1 with PIECEWISE and FULL_AND_PIECEWISE CUDA Graphs.

性能成果:granite-4.0-h-tiny显著飞跃

granite-4.0-h-tiny是一款参数规模为70亿的专家混合(MoE)模型,其活跃参数约为10亿。对于这类模型,它们通常能在相对较低的延迟下运行,因此CUDA Graph的优化变得更为关键。在低并发度场景下,V1 PIECEWISE的性能明显劣于V0,但V1 FULL_AND_PIECEWISE却持续带来了显著的吞吐量提升,在某些情况下高达91%,同时还降低了TTFT和ITL的延迟。
granite-4.0-h-tiny benchmark results showing substantial throughput gains when using FULL_AND_PIECEWISE

总结:混合模型,未来已来

如今,混合模型已不再是边缘化的技术探索,而是大型语言模型推理领域的主流趋势。随着vLLM V1的推出,它们被完全集成到推理引擎中,能够充分利用统一内存分配、CUDA Graph优化等先进技术,并兼容前缀缓存和KV传输等高级功能。

对于广大开发者而言,结果显而易见:混合架构能够有效地扩展到更长的上下文,而无需耗尽宝贵的内存资源。通过将混合模型升级为V1的“一等公民”,我们成功地降低了预填充和解码的延迟,并显著提升了吞吐量,尤其对于包含专家混合(MoE)层的模型,效果更为突出。新媒网跨境认为,混合模型现已成为构建企业级人工智能系统的实用工具,能够为各行各业带来全新的应用机遇。通过使混合模型成为一等公民,vLLM确保了开源社区能够紧跟新一代大规模、长上下文工作负载的发展步伐,共同推动人工智能技术的繁荣与进步。

新媒网(公号: 新媒网跨境发布),是一个专业的跨境电商、游戏、支付、贸易和广告社区平台,为百万跨境人传递最新的海外淘金精准资讯情报。

本文来源:新媒网 https://nmedialink.com/posts/llm-long-context-91-perc-faster-v1-hybrid.html

评论(0)

暂无评论,快来抢沙发~
【快讯】当前,大型语言模型(LLM)在处理超长上下文时面临传统注意力机制的内存与计算瓶颈。为解决此难题,业界正积极探索“混合模型”,巧妙融合注意力机制与Mamba、线性注意力等高效方案。新媒网跨境报道,vLLM V1版本已全面支持混合模型,通过统一状态管理和CUDA Graph优化,显著提升了模型在长序列推理中的吞吐量和延迟表现。Nemotron-Nano-12B-v2和granite-4.0-h-tiny等代表性混合模型在V1上性能卓越。混合模型已成为解决AI长上下文挑战、构建企业级人工智能系统的关键技术。
发布于 2025-11-06
查看人数 167
人民币汇率走势
CNY
亚马逊热销榜
共 0 SKU 上次更新 NaN:NaN:NaN
类目: 切换分类
暂无数据
暂无数据
关注我们
新媒网跨境发布
本站原创内容版权归作者及NMedia共同所有,未经许可,禁止以任何形式转载。