Automatic Prefix Caching
APC技术,遇到新prompt和老prompt前缀完全相等的,则复用老prompt的KV cache,避免重新计算。3. 只要前面有1个字符不同,后面完全相同的部分,也不能被视为公共前缀。2. prefill公共前缀较长,且decode output较短时,KV cache复用的威力才能发挥出来。则把长文档放到前面,可以复用KV cache。enable_prefix_caching,prompt
·
APC技术,遇到新prompt和老prompt前缀完全相等的,则复用老prompt的KV cache,避免重新计算。
VLLM代码实例:
# set enable_prefix_caching=True to enable APC
llm = LLM(
model='lmsys/longchat-13b-16k',
enable_prefix_caching=True
)
应用场景:
1. 长文档问答。给1个长文档,变换不同的query。则把长文档放到前面,可以复用KV cache。
2. 多轮聊天。多轮对话聊天历史,放到前面,可以复用KV cache。
我的实验:
1. fetch_count>1时,不管是否打开enable_prefix_caching,prompt的KV cache都会被复用。
2. prefill公共前缀较长,且decode output较短时,KV cache复用的威力才能发挥出来。
3. 只要前面有1个字符不同,后面完全相同的部分,也不能被视为公共前缀。因为2个prompt这部分的KV值不相等了。
火山引擎开发者社区是火山引擎打造的AI技术生态平台,聚焦Agent与大模型开发,提供豆包系列模型(图像/视频/视觉)、智能分析与会话工具,并配套评测集、动手实验室及行业案例库。社区通过技术沙龙、挑战赛等活动促进开发者成长,新用户可领50万Tokens权益,助力构建智能应用。
更多推荐
所有评论(0)