论文
相同的请求,不同的答案:量化放大了 LLM 服务中缓存引起的差异
Same Request, Different Answer: Quantization Amplifies Cache-Induced Divergence in LLM Serving
摘要
前缀缓存(服务引擎在请求之间重用共享提示前缀的键和值张量)在主要开源堆栈中默认启用,并被视为透明优化。我们测量了再现性的成本,发现成本随着权重量化而急剧上升。保持模型、解码参数、种子和请求顺序固定,并以批量大小 1 串行发出每个请求,我们运行了一个 80 集多轮代理工具使用工作负载,并在两个引擎和四种权重格式中启用和禁用缓存。启用缓存在 16 位精度下改变了 36.2% 的事件轨迹,在 4 位精度下改变了 75.0% 的事件轨迹,这一梯度在受控缓存配置下能够经受住重新测量。禁用缓存后,每个配置中的重复执行都是相同的,800 个情节中只有 0 个,这将其他不确定性来源限制在 0.5%。重复启用缓存的运行确实出现了分歧,三个实验找到了原因:单个服务器级提示缓存设置将运行间差异移动了 37.5 个百分点,执行顺序仅在该设置处于活动状态时起作用,并且恢复缓存状态使缓存和重新计算路径各自在 40 个项目中的 40 个项目上重现,但在 14 个项目上仍然彼此不同。缓存服务在给定缓存状态的情况下是确定性的,并且在实践中是不可重现的,因为请求中不存在该状态并且默认情况下永远不会重置。单轮衔接实验显示了在不改变总体精度的情况下达到任务结果的差异。我们发布了工具、日志和分析管道。