深圳Yolo 视觉
深圳
立即加入
词汇表

PagedAttention

了解 PagedAttention 如何优化 LLM 内存管理和 KV 缓存效率。探索其对吞吐量的影响以及与 Ultralytics YOLO26 性能的比较。

PagedAttention 是一种高效的内存管理算法,旨在优化 大语言模型(LLMs) 的推理速度和吞吐量。该技术灵感来源于传统操作系统中的虚拟内存和分页概念,解决了文本生成过程中与键值缓存(通常称为 KV 缓存)相关的巨大内存消耗问题。通过将缓存所需的连续内存块分解成更小、非连续的“页”,PagedAttention 有效消除了内部和外部内存碎片。这使得 AI 服务器能够同时批量处理更多请求,最大化 GPU 利用率。

PagedAttention 与 Flash Attention

虽然这两种技术都优化了神经网络性能,但它们针对不同的瓶颈。Flash Attention 是一种计算层面的优化,通过最小化 GPU 层级中的慢速内存读写来加速 注意力机制 本身。相比之下,PagedAttention 是一种内存分配策略。它纯粹关注 上下文窗口 的内存如何组织和存储,允许动态扩展,而无需预先分配大量浪费的内存块。

实际应用

PagedAttention 带来的内存效率改变了大规模生成模型在生产环境中的部署方式。

  1. High-Throughput API Serving: 生产系统在服务类似于GPT-4的模型时,通过vLLM等框架利用PagedAttention。通过在不同用户请求之间共享内存块,服务提供商可以在相同的硬件上服务多达四倍的用户,从而大幅降低运行基于云的AI服务的成本。
  2. 复杂解码策略:当 AI 模型一次生成多个潜在响应(例如在束搜索或并行采样中)时,PagedAttention 允许这些并行序列安全地共享相同的基本内存页面。这可以防止系统复制冗余内存,从而显著加快复杂推理任务的速度。

计算机视觉中的内存效率

尽管 PagedAttention 主要用于自然语言处理,但严格内存优化的基本原则在 计算机视觉(CV) 中同样关键。将模型部署到硬件受限的边缘设备时,避免内存膨胀至关重要。Ultralytics YOLO26 通过采用端到端、NMS-free 的架构,原生实现了 实时推理 效率,绕过了对繁重缓存管理的需求。

对于希望无缝处理 目标检测 流水线内存和导出需求的开发者,Ultralytics Platform 提供了自动化部署工具,可将模型打包以实现最佳硬件执行。

代码示例

PagedAttention 在服务框架的底层运行,用优化的 CUDA 内核替换标准注意力函数。下面是一个概念性示例,演示了如何在 PyTorch 中定义标准注意力,像 vLLM 这样的系统会在 模型部署 期间自动拦截并使用分页进行优化。

import torch
import torch.nn.functional as F

# Simulated Key, Query, and Value tensors for a standard attention block
batch_size, num_heads, sequence_length, head_dim = 1, 8, 1024, 64
query = torch.randn(batch_size, num_heads, sequence_length, head_dim)
key = torch.randn(batch_size, num_heads, sequence_length, head_dim)
value = torch.randn(batch_size, num_heads, sequence_length, head_dim)

# Standard attention computation (often replaced by PagedAttention kernels in production LLM servers)
attention_output = F.scaled_dot_product_attention(query, key, value)

print(f"Computed attention shape: {attention_output.shape}")

通过利用先进的内存分配策略,AI 行业不断突破可能性的边界,确保大规模基础模型能够在全球范围内高效扩展和访问。

让我们一起共建AI的未来!

开启您的机器学习未来之旅