什么是 Prefix Cache

💡 原文中文,约2700字,阅读约需7分钟。
📝

内容提要

Prefix Cache 是一种通过检测请求公共前缀来复用计算结果的缓存机制,旨在提升推理性能。使用 Radix Tree 构建缓存时,建议将不变部分放在前面。测试结果显示启用缓存后性能有所提升,但缓存命中率仍需进一步优化。

🎯

关键要点

  • Prefix Cache 是一种通过检测请求公共前缀来复用计算结果的缓存机制,旨在提升推理性能。
  • Prefix Cache 利用 Prompt 的公共前缀,避免重复计算,适用于多次请求场景。
  • 建议将不变部分放在前面,变动部分放在后面,以提高缓存效率。
  • 使用 vLLM 的 OpenAI API Server 镜像来启动环境,便于使用内置的 benchmark 工具。
  • 提供了禁用和启用 prefix cache 的推理服务启动命令。
  • 测试结果显示启用 prefix cache 后性能有所提升,但缓存命中率仍需进一步优化。
  • 在禁用 prefix cache 的情况下,测试结果显示缓存命中率为 0%。
  • 在启用 prefix cache 的情况下,测试结果显示缓存命中率有所提高,但仍然较低,需优化推理框架。

延伸问答

Prefix Cache 的主要功能是什么?

Prefix Cache 通过检测请求的公共前缀来复用计算结果,旨在提升推理性能。

如何提高 Prefix Cache 的缓存效率?

建议将不变部分放在前面,变动部分放在后面,以提高缓存效率。

在启用 Prefix Cache 的情况下,性能测试结果如何?

启用 Prefix Cache 后,性能有所提升,但缓存命中率仍然较低,需进一步优化。

如何启动启用 Prefix Cache 的推理服务?

使用命令 `python3 -m vllm.entrypoints.openai.api_server --enable-prefix-caching` 启动服务。

禁用 Prefix Cache 的情况下,缓存命中率是多少?

在禁用 Prefix Cache 的情况下,缓存命中率为 0%。

Prefix Cache 是如何构建的?

Prefix Cache 利用哈希、基数树等结构检测请求的公共前缀,在 prefill 阶段复用之前的计算结果。

➡️

继续阅读