语言人工智能指南

KV缓存

KV 缓存存储转换器已经为之前的标记计算的键和值向量,因此它不必为它生成的每个新单词重新计算它们。

概述

KV 缓存存储转换器已经为之前的标记计算的键和值向量,因此它不必为它生成的每个新单词重新计算它们。这是文本生成速度快的最大原因,也是长时间对话期间消耗 GPU 内存的主要原因。

KV Cache 是语言 AI ​​堆栈的一部分,用于大规模读取、生成、分类和转换文本和语音。

深入探讨

Transformer 一次生成一个 token 的文本,每个新 token 的注意力层需要与每个先前的 token 进行比较。注意力机制将每个标记转换为查询、键和值向量。如果没有缓存,生成令牌数量 1,000 将意味着在每一步都重新计算所有 999 个早期令牌的键和值 - 二次方,浪费工作。 KV 缓存在首次计算并重用这些键和值向量后保存这些向量,因此每个新步骤仅计算单个最新令牌的向量并参与存储的缓存。这将每个令牌的成本从随序列长度缩放到大致恒定。权衡是内存:缓存随着上下文长度、层数和注意力头线性增长,通常成为长上下文服务中的主要内存消耗者。

技术洞察

在“预填充”阶段,模型处理整个提示并填充缓存;在“解码”期间,它会在每一步附加一个令牌的 K/V 并重新参与。缓存大小按所选精度缩放为 2(K 和 V)× 层数 × 头数 × head_dim × 序列长度 × 批次。为了解决这个问题,现代模型使用分组查询或多查询注意力来跨头共享键/值,并且像 vLLM 这样的服务系统使用 PagedAttention 在非连续块中分配缓存,从而减少碎片和浪费。

掌握KV缓存

KV 缓存存储转换器已经为之前的标记计算的键和值向量,因此它不必为它生成的每个新单词重新计算它们。这是文本生成速度快的最大原因,也是长时间对话期间消耗 GPU 内存的主要原因。 KV Cache 是语言 AI ​​堆栈的一部分,用于大规模读取、生成、分类和转换文本和语音。为了建立深入的理解,请将 KV Cache 视为一种操作模型,而不是单一功能:定义期望的结果,澄清假设,并将系统可以可靠地执行的操作与仍需要专家判断的操作分开。

在实践中,使用 KV Cache 的强大团队将提示、检索和审查循环设计为一个集成的通信系统。他们记录明确的成功标准,根据实际数据和工作流程进行测试,并根据观察到的失败模式而不是一次性基准测试胜利进行迭代。这就是理论理解转变为跨产品、政策和运营的持久能力的地方。

语言工作流程可以在不牺牲一致性的情况下更快地移动。与此同时,幻觉事实可以悄悄地进入报告、支持流程或研究成果。最具弹性的方法是将实验速度与治理规则结合起来:运行试点、捕获证据、发布决策日志,并随着模型行为、用户期望和监管要求的发展不断更新保障措施。

战略影响

语言工作流程可以在不牺牲一致性的情况下更快地移动。

语言工作流程可以在不牺牲一致性的情况下更快地移动。在高质量部署中,这会转化为可衡量的操作规则、所有权边界和定期审查仪式,以便团队可以增强信心,而不是扩大模糊性。

它扩展了跨语言和沟通方式的访问。

它扩展了跨语言和沟通方式的访问。在高质量部署中,这会转化为可衡量的操作规则、所有权边界和定期审查仪式,以便团队可以增强信心,而不是扩大模糊性。

团队可以花更多时间进行判断,而自动化则可以处理重复。

团队可以花更多时间进行判断,而自动化则可以处理重复。在高质量部署中,这会转化为可衡量的操作规则、所有权边界和定期审查仪式,以便团队可以增强信心,而不是扩大模糊性。

KV缓存的未来

随着上下文窗口扩展到数十万个令牌,KV 缓存成为中心瓶颈,因此创新非常激烈:缓存量化到 8 或 4 位、丢弃低重要性令牌的逐出策略、跨请求前缀共享以及卸载到 CPU 或磁盘。诸如多头潜在注意力之类的架构转变会压缩缓存本身。预计注意力变体和记忆系统将继续共同设计,旨在以低成本和高吞吐量服务很长的上下文。

现实世界的实施

通过重用对话历史记录中缓存的键/值而不是每轮重新处理它来加快聊天机器人的回复速度。

前缀缓存可在多个用户之间共享长系统提示的缓存,从而降低成本和延迟。

vLLM 的 PagedAttention 以块的形式管理 KV 缓存,以便在一个 GPU 上高效地服务许多并发请求。

将 KV 缓存量化为较低精度,以将较长的上下文放入有限的 GPU 内存中。

实施模式

KV缓存实践

通过重用对话历史记录中缓存的键/值而不是每轮重新处理它来加快聊天机器人的回复速度。

通过重用对话历史记录中缓存的键/值而不是每次都重新处理来加速聊天机器人的回复当团队预先定义质量阈值、为边缘情况保留人工升级路径并随着时间的推移跟踪生产力增益和错误成本时,通常会获得更好的结果。

KV缓存实践

前缀缓存可在多个用户之间共享长系统提示的缓存,从而降低成本和延迟。

前缀缓存可在许多用户之间共享长时间系统提示的缓存,从而降低成本和延迟当团队预先定义质量阈值、为边缘情况保留人工升级路径并跟踪一段时间内的生产力提升和错误成本时,通常会获得更好的结果。

KV缓存实践

vLLM 的 PagedAttention 以块的形式管理 KV 缓存,以便在一个 GPU 上高效地服务许多并发请求。

vLLM 的 PagedAttention 以块的形式管理 KV 缓存,以便在一个 GPU 上高效地服务许多并发请求。当团队预先定义质量阈值、为边缘情况保留人工升级路径并随着时间的推移跟踪生产力增益和错误成本时,通常会获得更好的结果。

KV缓存实践

将 KV 缓存量化为较低精度,以将较长的上下文放入有限的 GPU 内存中。

量化 KV 缓存以降低精度,以将更长的上下文放入有限的 GPU 内存中 团队在预先定义质量阈值、为边缘情况保留人工升级路径并跟踪一段时间内的生产力提升和错误成本时,通常会获得更好的结果。

风险与防护栏

!

幻觉的事实可以悄悄地进入报告、支持流程或研究成果。

!

及时的敏感性可能会在类似的请求中产生不一致的结果。

!

如果访问控制薄弱,敏感文本数据可能会暴露。

实施路线图

1

在推出之前定义输出格式、语气和质量标准。

在推出之前定义输出格式、语气和质量标准。将每个步骤视为证据门:如果不满足标准,则暂停推出,缩小差距,然后再扩大使用。

2

当准确性很重要时,请使用可信来源进行地面响应。

当准确性很重要时,请使用可信来源进行地面响应。将每个步骤视为证据门:如果不满足标准,则暂停推出,缩小差距,然后再扩大使用。

3

为高风险输出保留人工审查检查点。

为高风险输出保留人工审查检查点。将每个步骤视为证据门:如果不满足标准,则暂停推出,缩小差距,然后再扩大使用。

4

跟踪故障模式并定期重新训练提示或工作流程。

跟踪故障模式并定期重新训练提示或工作流程。将每个步骤视为证据门:如果不满足标准,则暂停推出,缩小差距,然后再扩大使用。

不断探索