SGLang-Prefix Prompt Cache设计
Paper
SGLang: Efficient Execution of Structured Language Model Prpgrams
Motivation
多轮对话中,由于Prompts存在大量相同前缀,因此 Prefix prompt cache
的复用就显得很重要:需要考虑:efficient prefix search
,reuse
,insertion
,eviction
已经对应的cache aware scheduing
。
Key Points
SGLang采用了 prefix tree
的数据结构来进行Cache的数据存储,基础特点:
- 前缀压缩:相同前缀的多个键只存储一次,减少重复存储。
- 动态扩展:支持增删查操作,适应符号集合或规则的动态变化。
- 快速查询:查找复杂度接近 O(k) ,其中 k 是键的平均长度。
- 稀疏存储:仅存储有效路径,优化内存占用。
另外,Scheduling策略上,以匹配的prefix-length作为最高优先级。
VLLM结合PA和Prefix Cache,通过 hash(prefix tokens + block tokens)
来定义对应的KV Block,通过hash-mapping的方式来实现prefix-cache和physical block的mapping:
Statistics
multi-call
下的性能收益: