Ascend上的PageAttention

简介: PageAttention旨在解决大型语言模型(LLM)服务中的内存管理低效问题,如内存碎片化、利用率低及缺乏灵活的内存共享机制。通过借鉴操作系统中的虚拟内存和分页技术,PageAttention实现了块级别的内存管理和灵活的KV cache共享机制,显著提高内存利用率,降低延迟,提升模型处理速度和性能。相比传统注意力机制,PageAttention通过分段处理序列,有效解决了长序列处理时的计算效率低下和内存过度使用问题。

1 PageAttention引入的原因

PageAttention的引入主要是为了解决大型语言模型(LLM)在服务过程中遇到的内存管理低效问题,具体原因如下:

  • 内存碎片化:传统的KV cache(Key-Value cache)管理方式在处理不同长度的请求时,预分配连续的块内存给每个请求,导致内存碎片化和冗余复制,造成内存浪费。
  • 内存利用率低:在实际使用中,KV cache的利用率只有20.4%到38.2%,说明当前的内存管理机制没有充分利用可用的内存空间。
  • 缺乏灵活的内存共享机制:现有的系统没有实现有效的KV cache共享,而这是许多大模型解码算法中所需要的。

2 PageAttention的方案

为了解决这些问题,PageAttention借鉴了操作系统中的虚拟内存和分页技术,实现了以下架构和优化:

  • 块级别的内存管理:PageAttention将请求的KV cache放入块中,每个块可以存储固定数量tokens的attention keys和values,不需要连续的空间。这减少了内部的碎片化,同时也不需要为所有的请求都预留固定数目的内存大小。
  • 灵活的KV cache共享机制:通过虚拟内存的技术,PageAttention使得KV cache的存储更加灵活,提高了利用率,允许跨请求共享,进一步减少内存使用。
  • 高效内存管理:vLLM大模型服务系统实现了近乎零浪费的KV cache内存机制,通过PageAttention,内存管理变得更加高效,减少了内存浪费。
  • 高吞吐量和低延迟:实验结果显示,vLLM比流行的大模型有更低的延时,大概是2~4倍。此外,越长的句子,越大的模型,越复杂的decoding算法,相对提升更明显。

PageAttention的实现架构包括:

  • Paged KV Cache:将KV cache分割成多个页面,每个页面存储一定数量的tokens,允许非连续存储,减少内存碎片。
  • CUDA并行计算:在GPU上利用CUDA的并行计算能力,PageAttention可以在GPU上实现高效的矩阵运算和注意力计算,进一步提升模型的处理速度和性能。
  • V1和V2版本:vLLM中有两个版本的PageAttention,使用一个简单的启发式方法来决定是使用V1还是V2版本。V1适合长度小于8192或者num_seqs * num_heads>512的情况。

通过这些架构和优化,PageAttention显著提高了大型语言模型的服务效率,降低了延迟,提升了整体性能。

3 与标准注意力机制的区别

  • 标准注意力机制通常需要一次性处理整个序列,这在序列很长时可能导致计算效率低下和内存使用过多。
  • Paged Attention 通过将序列分段处理,减轻了这些问题,使得模型能够在更长的序列上工作,同时保持较低的计算成本。

Paged Attention 是一种较为高级的技术,它的实现通常需要在具体的应用框架中找到相关的API支持,或者自己编写代码来实现这种机制。在华为昇腾AI处理器的API文档中提到的 PagedAttentionOperation 就是这样一种操作,它提供了分页注意力机制的具体实现方式。

4 Ascend上的实现

ascend上的PagedAttention实现为,它是可通过atb算子实现。参考如下:
ATB中的PagedAttention算子

相关文章
|
并行计算 TensorFlow 调度
推荐场景GPU优化的探索与实践:CUDA Graph与多流并行的比较与分析
RTP 系统(即 Rank Service),是一个面向搜索和推荐的 ranking 需求,支持多种模型的在线 inference 服务,是阿里智能引擎团队沉淀多年的技术产品。今年,团队在推荐场景的GPU性能优化上又做了新尝试——在RTP上集成了Multi Stream,改变了TensorFlow的单流机制,让多流的执行并行,作为增加GPU并行度的另一种选择。本文详细介绍与比较了CUDA Graph与多流并行这两个方案,以及团队的实践成果与心得。
|
6月前
|
机器学习/深度学习 缓存 人工智能
MoE模型加速秘籍:vLLM混合KV缓存管理解析​
vLLM是高效分布式大模型推理引擎,采用分页注意力、连续批处理等技术实现高吞吐与低延迟。本文详解其架构设计与关键技术,包括KV缓存管理、调度机制、推测解码与分布式扩展等,助你深入理解性能优化原理。
1154 1
|
6月前
|
存储 机器学习/深度学习 算法
​​LLM推理效率的范式转移:FlashAttention与PagedAttention正在重塑AI部署的未来​
本文深度解析FlashAttention与PagedAttention两大LLM推理优化技术:前者通过分块计算提升注意力效率,后者借助分页管理降低KV Cache内存开销。二者分别从计算与内存维度突破性能瓶颈,显著提升大模型推理速度与吞吐量,是当前高效LLM系统的核心基石。建议收藏细读。
1165 125
|
3月前
|
负载均衡 Docker Python
vLLM-Ascend 安装部署与环境配置指南
vLLM-Ascend 是 vLLM 项目专为华为昇腾 NPU 设计的硬件插件,支持主流大模型与多模态架构,提供高性能推理能力。项目结构清晰,涵盖核心算子、工具脚本与容器化部署方案,兼容单/多节点环境,助力高效构建昇腾上的 AI 推理服务。
1317 1
|
10月前
|
存储 机器学习/深度学习 缓存
vLLM 核心技术 PagedAttention 原理详解
本文系统梳理了 vLLM 核心技术 PagedAttention 的设计理念与实现机制。文章从 KV Cache 在推理中的关键作用与内存管理挑战切入,介绍了 vLLM 在请求调度、分布式执行及 GPU kernel 优化等方面的核心改进。PagedAttention 通过分页机制与动态映射,有效提升了显存利用率,使 vLLM 在保持低延迟的同时显著提升了吞吐能力。
5542 20
vLLM 核心技术 PagedAttention 原理详解
|
存储 缓存 人工智能
Ascend上的FlashAttention实现
FlashAttention是优化Transformer模型计算效率和内存使用的技术,通过减少存储访问开销提升性能。它采用Tiling、Recomputation、分块SoftMax等策略,减少HBM访问,加速计算,并在昇腾AI处理器上实现了显著的性能提升。
|
5月前
|
存储 缓存 调度
vLLM 吞吐量优化实战:10个KV-Cache调优方法让tokens/sec翻倍
十个经过实战检验的 vLLM KV-cache 优化方法 —— 量化、分块预填充、前缀重用、滑动窗口、ROPE 缩放、后端选择等等 —— 提升 tokens/sec。
1770 10
|
缓存 自然语言处理 API
Ascend推理组件MindIE LLM
MindIE LLM是基于昇腾硬件的大语言模型推理组件,提供高性能的多并发请求调度与优化技术,如Continuous Batching、PageAttention等,支持Python和C++ API,适用于高效能推理需求。其架构包括深度定制优化的模型模块、文本生成器和任务调度管理器,支持多种模型框架和量化方式,旨在提升大规模语言模型的推理效率和性能。
|
5月前
|
存储 机器学习/深度学习 缓存
85_多轮对话:上下文管理与压缩
在大语言模型(LLM)的应用场景中,多轮对话已经成为最核心的交互模式之一。随着2025年LLM技术的快速发展,用户对持续、连贯、个性化的对话体验要求越来越高。然而,多轮对话面临着严峻的技术挑战:首先,LLM的上下文窗口长度虽然在不断扩展(如GPT-5已支持100K tokens),但依然是有限资源;其次,随着对话轮次增加,历史信息不断累积,导致token消耗激增;第三,过长的上下文可能导致模型对早期信息的关注度下降,影响回复质量。

热门文章

最新文章