Prompt Caching in LLMs: Intuition

Prompt Caching in LLMs: Intuition

缓存在基于注意力的模型中的工作原理的简要概述

Prompt caching最近成为减少计算开销、延迟和成本的一项重大进步,特别是对于经常重复使用prompt的应用程序。

当有一个很长的静态预提示 (上下文) 并不断向其添加新的用户问题。每次调用 API 模型时,它都需要完全重新处理整个 prompt。

什么是Prompt caching?

Prompt caching是一种存储提示部分(例如系统消息、文档或模板文本)以供有效重用的技术。这样可以避免重复重新处理相同的提示结构,从而提高效率。

有多种方法可以实现 Prompt Caching,因此技术可能因提供商而异,但我们将尝试从两种流行的方法中抽象出概念:

整个过程如下:

  1. 当接收到prompt时,它会经过标记化、矢量化和完整的模型推理(通常是 LLMs)。
  2. 系统将相关数据(标记及其嵌入)存储在模型外部的缓存层中。标记的数值向量表示形式存储在内存中。
  3. 在下一次调用时,系统会检查新提示的一部分是否已存储在缓存中(例如,基于嵌入相似性)。
  4. 在缓存命中时,将检索缓存的部分,跳过分词化和完整模型推理。

img

缓存到底是什么?

在最基本的形式中,可以根据方法应用不同级别的缓存,范围从简单到复杂。这可能包括存储tokens、token嵌入,甚至内部状态,以避免重新处理:

  • Tokens:下一个级别涉及缓存 prompt 的标记化表示,避免需要重新标记重复的输入。
  • Token Encodings:缓存这些允许模型跳过重新编码以前看到的输入,只处理提示的新部分。
  • Internal States::在最复杂的级别上,缓存内部状态(如键值对)(见下文)会存储令牌之间的关系,因此模型只计算新的关系。

缓存键值状态

在 transformer 模型中,令牌成对处理:KeysValues

  • Key:帮助模型决定每个 Token 应该给予其他 Token 多少重要性或 “关注度”。
  • Values:表示令牌在上下文中提供的实际内容或含义。

例如,在句子 “Harry Potter is a wizard, and his friend is Ron” 中,“Harry” 的 Key 是一个向量,它与句子中的每个其他单词都有关系:

["Harry", "Potter"], ["Harry"", "a"], ["Harry", "wizard"], etc...

KV 提示缓存的工作原理

  1. Precompute and Cache KV States(预计算和缓存 KV 状态):模型计算和存储常用提示的 KV 对,使其能够跳过重新计算并从缓存中检索这些对以提高效率。
  2. Merging Cached and New Context (合并缓存和更新上下文):在新提示中,模型检索以前使用的句子的缓存 KV 对,同时计算其他新句子的新 KV 对。
  3. Cross-Sentence KV Computation (句子间 KV 计算):模型计算新的 KV 对,这些 KV 对将缓存的标记从一个句子链接到另一个句子中的新标记,从而能够全面理解它们之间的关系。

img

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值