技术指南

PagedAttention 和 vLLM

PagedAttention 是一种内存管理技术,它将语言模型的注意力缓存存储在可重用的小块中,而不是一个大的连续块中。

概述

PagedAttention 是一种内存管理技术,它将语言模型的注意力缓存存储在可重用的小块中,而不是一个大的连续块中。它为 vLLM 提供支持,vLLM 是一个开源服务引擎,可显着提高单个 GPU 可以处理的请求数量。

PagedAttention 和 vLLM 是一个技术构建块,会大规模影响模型质量、基础设施成本、延迟和可靠性。

深入探讨

当语言模型生成文本时,它会为它看到的每个标记保留一个“KV 缓存”(键和值向量),以便下一个标记可以处理完整的上下文。传统上,每个请求都会保留一大片连续的 GPU 内存,其大小与其最大可能长度相同,当序列较短或长度不同时,会浪费大量内存。 PagedAttention 是加州大学伯克利分校 2023 年 vLLM 论文中引入的,它借鉴了操作系统虚拟内存分页的思想:它将 KV 缓存分割成固定大小的块,这些块可以驻留在内存中的任何位置并按需分配。查找表将逻辑令牌位置映射到物理块。这几乎消除了内存碎片并允许共享块,例如在同一提示的多个输出之间共享块。

技术洞察

KV 缓存被分成固定大小的页面,每个页面保存一定数量的令牌的键和值。每个序列的块表将逻辑位置映射到物理页位置,因此序列的缓存不需要是连续的。由于相同的前缀(共享系统提示符或波束搜索分支)可以通过写时复制指向相同的物理页面,因此内存被重用而不是重复,从而将浪费从 60% 以上削减到几个百分点。

掌握 PagedAttention 和 vLLM

PagedAttention 是一种内存管理技术,它将语言模型的注意力缓存存储在可重用的小块中,而不是一个大的连续块中。它为 vLLM 提供支持,vLLM 是一个开源服务引擎,可显着提高单个 GPU 可以处理的请求数量。 PagedAttention 和 vLLM 是一个技术构建块,会大规模影响模型质量、基础设施成本、延迟和可靠性。为了建立深入的理解,请将 PagedAttention 和 vLLM 视为一种操作模型,而不是单一功能:定义期望的结果,澄清假设,并将系统可以可靠地执行的操作与仍需要专家判断的操作分开。

在实践中,强大的团队使用 PagedAttention 和 vLLM 根据可靠性和成本优化架构、数据和基础设施选择。他们记录明确的成功标准,根据实际数据和工作流程进行测试,并根据观察到的失败模式而不是一次性基准测试胜利进行迭代。这就是理论理解转变为跨产品、政策和运营的持久能力的地方。

多年来,架构决策决定着性能和运营成本。与此同时,优化一个基准测试可以隐藏更广泛的系统弱点。最具弹性的方法是将实验速度与治理规则结合起来:运行试点、捕获证据、发布决策日志,并随着模型行为、用户期望和监管要求的发展不断更新保障措施。

战略影响

多年来,架构决策决定着性能和运营成本。

多年来,架构决策决定着性能和运营成本。在高质量部署中,这会转化为可衡量的操作规则、所有权边界和定期审查仪式,以便团队可以增强信心,而不是扩大模糊性。

技术教育帮助团队选择正确的堆栈,而不仅仅是最新的堆栈。

技术教育帮助团队选择正确的堆栈,而不仅仅是最新的堆栈。在高质量部署中,这会转化为可衡量的操作规则、所有权边界和定期审查仪式,以便团队可以增强信心,而不是扩大模糊性。

更好的工程选择可以减少生产中的可靠性事故。

更好的工程选择可以减少生产中的可靠性事故。在高质量部署中,这会转化为可衡量的操作规则、所有权边界和定期审查仪式,以便团队可以增强信心,而不是扩大模糊性。

PagedAttention 和 vLLM 的未来

vLLM 已成为默认的开源推理主干,PagedAttention 的想法现在出现在大多数服务堆栈中。期望更深入的前缀缓存(跨用户重用缓存的系统提示)、在单独的机器上进行分解的预填充和解码、更智能的逐出策略以及与量化和推测解码的紧密集成。随着上下文窗口增长到数百万个令牌,高效的分页 KV 管理对于保持服务负担得起变得更加重要。

现实世界的实施

托管开源 LLM API,其中 vLLM 通过一个 GPU 以高吞吐量为许多并发聊天用户提供服务

通过前缀缓存在数千个请求之间共享较长的系统提示,以便处理一次,而不是重复处理

运行波束搜索或多个采样完成,通过写时复制共享 KV 块以实现公共提示

减少碎片造成的 GPU 内存浪费,以便提供商可以将更多并发会话打包到同一硬件上

实施模式

PagedAttention 和 vLLM 的实践

托管开源 LLM API,其中 vLLM 通过一个 GPU 以高吞吐量为许多并发聊天用户提供服务。

托管开源 LLM API,其中 vLLM 通过一个 GPU 以高吞吐量为许多并发聊天用户提供服务 当团队预先定义质量阈值、为边缘情况保留人工升级路径并跟踪一段时间内的生产力提升和错误成本时,通常会获得更好的结果。

PagedAttention 和 vLLM 的实践

通过前缀缓存在数千个请求之间共享较长的系统提示,以便处理一次,而不是重复处理。

通过前缀缓存在数千个请求中共享较长的系统提示,以便处理一次,而不是重复处理。当团队预先定义质量阈值、为边缘情况保留人工升级路径并随着时间的推移跟踪生产力增益和错误成本时,通常会得到更好的结果。

PagedAttention 和 vLLM 的实践

运行波束搜索或多个采样完成,通过写入时复制共享公共提示的 KV 块。

通过写时复制运行波束搜索或多个采样完成,共享 KV 块以获取常见提示。当团队预先定义质量阈值、为边缘情况保留人工升级路径并随着时间的推移跟踪生产力增益和错误成本时,通常会获得更好的结果。

PagedAttention 和 vLLM 的实践

减少碎片造成的 GPU 内存浪费,以便提供商可以将更多并发会话打包到同一硬件上。

减少 GPU 内存碎片浪费,以便提供商可以将更多并发会话打包到同一硬件上。当团队预先定义质量阈值、为边缘情况保留人工升级路径并跟踪一段时间内的生产力提升和错误成本时,通常会获得更好的结果。

风险与防护栏

!

优化一项基准测试可以隐藏更广泛的系统弱点。

!

基础设施和维护成本常常被低估。

!

随着系统变得更加复杂,安全性和可观察性差距可能会扩大。

实施路线图

1

在实施之前定义延迟、质量和成本目标。

在实施之前定义延迟、质量和成本目标。将每个步骤视为证据门:如果不满足标准,则暂停推出,缩小差距,然后再扩大使用。

2

在实际负载和数据条件下进行基准测试。

在实际负载和数据条件下进行基准测试。将每个步骤视为证据门:如果不满足标准,则暂停推出,缩小差距,然后再扩大使用。

3

仪器监控错误、漂移和用户影响。

仪器监控错误、漂移和用户影响。将每个步骤视为证据门:如果不满足标准,则暂停推出,缩小差距,然后再扩大使用。

4

在扩展之前准备回滚和事件响应路径。

在扩展之前准备回滚和事件响应路径。将每个步骤视为证据门:如果不满足标准,则暂停推出,缩小差距,然后再扩大使用。

不断探索