阅读 https://arxiv.org/abs/2311.04934 并想知道我是否会从提示缓存中获得任何收益。
我的用例是有具有重叠前缀的提示(主要是一些大的)。我已经使用 vllm 分页注意力。
假设我只想要缓存前缀的键值状态(而不是像论文中那样定位在某个地方)。
那么缓存注意力前缀状态是否有任何收益,或者分页注意力和 vllm 确实已经在这样做了吗?
论文:
Paged attention also demonstrates simple prefix sharing,
where different prompts with an identical prefix share
KV Cache
目标:
shared inputs with prompt1
|
|
+---------------------------------+ +-----+------+--------------------+
| | ... | ////|///// | |
+---------------------------------+ +------------+--------------------+
prompt 1 prompt 2
request 1 request 2
- store prefix->kvs
- request
- find shared inputs
- assert_kv_cache(prefix-kvs)
Any gain from this idea?
那么在使用分页注意力时,我们是否已经跳过了共享输入的注意力,还是有其他额外的好处可以从缓存前缀键值对中获得?
如果它已经在跨请求缓存,那么是什么机制可以防止 kv-cache 条目被破坏?
想知道是否仍然有可能进行调整,以确保某些前缀保持在 kv-cache
中。
4条答案
按热度按时间vaj7vani1#
同样的问题。有任何更新吗?
gdrx4gfi2#
Is it related to the PR?
#1669
isr3a4wc3#
谢谢!@franklyd,但是有没有关于这个机制的详细文档/API?例如,它们是如何存储前缀的,它将持续多长时间,如何匹配等。我是vllm的新用户:)
yvfmudvl4#
我相信这个问题可以通过这个#2614解决!(它昨天也合并了)