MiniCache: 通过小模型接口实现可重用的程序缓存,提升大语言模型推理效率

arXiv cs.AI 论文

摘要

MiniCache 是一个程序缓存框架,通过参数化思维程序(Program-of-Thought)来复用相似请求间的计算,使用小模型进行语义变量提取和推测性草拟,从而提高大语言模型推理效率。

arXiv:2607.20507v1 公告类型:新 摘要:大语言模型(LLM)越来越多地用于程序辅助推理、智能体决策和结构化任务执行,但这些应用往往带来高昂的推理成本。我们提出 MiniCache,一个可重用的程序缓存框架,它将思维程序(PoT)转化为参数化缓存对象,从而在不同请求间复用结构相似的计算。MiniCache 在缓存命中请求上复用同一个小模型进行语义变量提取,并在目标 LLM 生成过程中进行推测性草拟,从而减少昂贵的目标 LLM 调用,同时保持任务质量。在购物类请求数据集、WebShop、Formula 和 CodeTAT-QA 上的实验表明,MiniCache 改进了推理延迟、缓存复用率和准确性之间的权衡,在并行服务下实现了最高 3.1 倍的延迟降低和 2.8 倍的吞吐量提升。这些结果表明,小模型最有效的用途并非替代大模型,而是作为轻量级接口模型,实现可靠高效的可重用程序缓存。
查看原文
查看缓存全文

缓存时间: 2026/07/24 05:04

# MiniCache:利用小模型接口实现高效LLM推理的可重用程序缓存
来源:https://arxiv.org/html/2607.20507

###### 摘要

大型语言模型(LLM)越来越广泛地应用于程序辅助推理、智能体决策制定和结构化任务执行,但这些应用往往产生高昂的推理成本。我们提出MiniCache,一个可重用程序缓存框架,将“思维程序”(PoT)程序转换为参数化缓存对象,从而在结构相似的请求之间实现可重用计算。MiniCache将同一个小模型用于两个互补的角色:缓存命中时的语义变量提取,以及为目标LLM生成提供推测性草稿。通过将可重用的计算逻辑与特定请求的变量分离,该框架在提高缓存有效性的同时,减少了对昂贵的目标LLM调用。在购物风格请求数据集、WebShop、Formula和CodeTAT-QA上的实验表明,与现有的缓存和生成基线相比,MiniCache在推理延迟、缓存重用和任务质量之间的权衡上持续改进,实现了高达3.1倍的延迟加速和2.8倍的并行服务吞吐量提升。这些结果表明,在LLM推理系统中,小模型最有效的角色并非取代大模型,而是作为轻量级的接口模型,支持可靠且高效的可重用程序缓存。

MiniCache:利用小模型接口实现高效LLM推理的可重用程序缓存

Jingquan Chen Jinghua Piao Jie Feng Shaogang Hu Yong Li

## 1 引言

大型语言模型(LLM)在复杂推理、代码生成、工具使用和智能体任务执行方面展现了强大的能力。这一进展与模型规模、训练数据和计算量的扩展密切相关(Brown et al., 2020(https://arxiv.org/html/2607.20507#bib.bib23);Kaplan et al., 2020(https://arxiv.org/html/2607.20507#bib.bib24);Hoffmann et al., 2022(https://arxiv.org/html/2607.20507#bib.bib25))。最近的系统通过大型密集模型和稀疏混合专家架构延续了这一趋势,例如Llama 3和DeepSeek-V3(Grattafiori et al., 2024(https://arxiv.org/html/2607.20507#bib.bib27);DeepSeek-AI, 2024(https://arxiv.org/html/2607.20507#bib.bib28))。然而,更大的目标LLM也带来了更高的推理延迟、内存压力和服务成本。许多程序辅助推理任务、结构化任务执行和智能体工作流涉及相关的请求,这些请求虽然在特定变量、约束或上下文方面有所不同,但共享相似的计算结构、操作模板或变量关系。因此,系统无需为每个请求生成新程序,而是可以重用先前生成程序中的计算逻辑。

我们聚焦于在这种可重用程序场景中小模型能够提供价值的地方。与响应级别的缓存不同,可重用程序缓存并非简单地返回先前的答案;相反,它必须通过新请求与缓存程序之间的中间操作,将现有程序逻辑适应到新的输入。这些操作通常边界清晰、成本较低,且比完整任务求解更容易约束。同时,小模型调用成本更低、响应更快,适合本地结构化任务,因此自然适用于此类辅助操作,而非独立解决整个复杂任务。

现有的LLM推理优化方法从不同方向降低推理成本。程序辅助推理方法,包括思维程序(PoT)和程序辅助语言模型(PAL),将自然语言问题转化为可执行程序,并提高了计算密集型任务的可靠性(Chen et al., 2023b(https://arxiv.org/html/2607.20507#bib.bib2);Gao et al., 2023(https://arxiv.org/html/2607.20507#bib.bib3))。然而,它们通常需要目标LLM为每个请求生成新的程序。更重要的是,这些一次性程序往往将计算逻辑与特定请求的变量纠缠在一起,甚至可能在生成的代码中硬编码具体的值或条件。因此,它们很难直接缓存并用于同一任务家族中的新请求。基于缓存的复用方法,如GPTCache和GenCache,可以减少重复推理,但其质量取决于缓存匹配和变量绑定的可靠性(Bang, 2023(https://arxiv.org/html/2607.20507#bib.bib13);Chakraborty et al., 2025(https://arxiv.org/html/2607.20507#bib.bib16))。推测性解码和推测性采样通过草稿-验证机制加速单次目标模型生成,但未能直接利用跨请求的计算同质性(Leviathan et al., 2023(https://arxiv.org/html/2607.20507#bib.bib5);Chen et al., 2023a(https://arxiv.org/html/2607.20507#bib.bib6))。

代表性方向包括用于程序辅助推理的PoT和PAL、用于草稿-验证加速的推测性解码和推测性采样,以及用于基于缓存复用的GPTCache和GenCache。表1(https://arxiv.org/html/2607.20507#S1.T1)从任务准确性、速度和资源利用率角度总结了这些方法。PoT风格的方法主要提高了复杂计算任务的准确性,但往往牺牲了速度和资源利用率。推测性解码方法主要提高了生成速度,但其资源利用率的优势是有条件的,因为它们引入了额外的草稿模型。基于缓存的复用可以提高速度和资源利用率,但其准确性取决于缓存命中的可靠性。相比之下,我们的目标是在统一的推理框架中组织程序推理、缓存复用和小模型加速。

表1:代表性推理优化方法的定性比较。资源利用指减少目标LLM的计算量。为了解决这一差距,我们提出一个以可重用程序缓存为核心的LLM推理优化框架。关键思想是将PoT风格的程序从一次性推理产物转化为参数化缓存对象,从而将计算逻辑与特定请求的数据解耦。每个缓存条目包含一个变量提取模板和一个参数化程序:模板指定从新请求中提取哪些变量,而程序则存储跨请求的可重用计算逻辑。对于缓存命中请求,系统使用一个小模型提取语义变量,并将它们绑定到缓存程序上执行。对于缓存未命中请求和缓存生成,目标LLM生成新的模板和程序,同时同一个小模型作为推测性草稿生成器,以降低生成成本。

这种设计将小模型分配给轻量级、结构化的操作,这些操作是可重用程序缓存的核心。语义变量提取使得缓存程序能够适应语义相关但结构不同的新请求。推测性草稿生成降低了在缓存未命中推理和缓存构建期间仍然需要的目标LLM调用的成本。通过这种方式,小模型支持可重用程序缓存,不是通过独立解决完整任务,而是通过执行更容易验证且执行成本更低的辅助操作。

我们在GenCache(Chakraborty et al., 2025(https://arxiv.org/html/2607.20507#bib.bib16))介绍的购物风格请求数据集、WebShop、来自FinLoRA的Formula(Wang et al., 2025(https://arxiv.org/html/2607.20507#bib.bib29))以及来自BizBench的CodeTAT-QA(Krumdick et al., 2024(https://arxiv.org/html/2607.20507#bib.bib22))上评估我们的方法,并进一步分析其在长上下文和并行服务下的鲁棒性。在一个计算结构稳定的金融推理任务上,我们的方法在保持PoT风格级别准确性的同时,实现了约3.1倍的延迟加速。在并行服务实验中,相比于PoT风格,吞吐量提升了约2.8倍。这些结果表明,在大型模型推理系统中,小模型的理想定位并非独立解决复杂任务,而是执行轻量级、结构化且可验证的辅助操作。111匿名化实现和实验制品可在https://anonymous.4open.science/r/cache-31E4获取。主要贡献总结如下:

- • 我们提出了一个以可重用程序缓存为核心的LLM推理优化框架。该框架将PoT风格的程序转化为参数化缓存对象,实现跨请求复用;将计算逻辑与特定请求的数据解耦;并在一个推理系统中统一了程序推理、缓存复用和生成加速。
- • 我们设计了一个双角色的小模型复用机制。同一个小模型在缓存命中路径上作为语义变量提取器,使缓存程序能够适应结构不同但语义相关的请求;在目标LLM生成期间作为推测性草稿生成器,降低缓存未命中推理和缓存构建的成本。
- • 我们在购物风格请求数据集、WebShop、Formula和CodeTAT-QA上进行了大量实验,并在长上下文输入和并行服务下进行了额外分析。结果表明,我们的方法在保持竞争性任务质量的同时,有效降低了推理延迟并提高了缓存复用。

## 2 相关工作

#### 程序辅助推理。

程序辅助推理通过使用显式的中间推理步骤或可执行程序,提高了LLM在复杂推理任务上的可靠性(Wei et al., 2022(https://arxiv.org/html/2607.20507#bib.bib1);Chen et al., 2023b(https://arxiv.org/html/2607.20507#bib.bib2);Gao et al., 2023(https://arxiv.org/html/2607.20507#bib.bib3);Yao et al., 2023(https://arxiv.org/html/2607.20507#bib.bib4))。思维链提示暴露了中间推理步骤,而思维程序和PAL则将自然语言问题转化为可由外部解释器处理的可执行代码(Wei et al., 2022(https://arxiv.org/html/2607.20507#bib.bib1);Chen et al., 2023b(https://arxiv.org/html/2607.20507#bib.bib2);Gao et al., 2023(https://arxiv.org/html/2607.20507#bib.bib3))。ReAct进一步扩展了这一思路到交互式设置,通过将推理轨迹与任务特定动作交织(Yao et al., 2023(https://arxiv.org/html/2607.20507#bib.bib4))。尽管这些方法提高了准确性,但它们通常为每个请求生成新的程序,当请求共享相同的计算模式但仅在变量或表面形式上有所不同时,会导致重复的延迟和标记成本。

#### 推测性解码。

推测性解码通过草稿-验证范式减少了自回归生成的延迟,其中一个小型或更快的模型提出候选标记,目标LLM并行验证它们(Leviathan et al., 2023(https://arxiv.org/html/2607.20507#bib.bib5);Chen et al., 2023a(https://arxiv.org/html/2607.20507#bib.bib6))。最近的变体通过不同的验证结构、草稿机制、自推测和前向解码改进了这一范式(Miao et al., 2024(https://arxiv.org/html/2607.20507#bib.bib7);Cai et al., 2024(https://arxiv.org/html/2607.20507#bib.bib8);Li et al., 2024(https://arxiv.org/html/2607.20507#bib.bib9);Zhang et al., 2024(https://arxiv.org/html/2607.20507#bib.bib11);Fu et al., 2024(https://arxiv.org/html/2607.20507#bib.bib10))。这些方法加速了单次目标模型的生成,但它们未能直接利用相关请求之间的可重用计算结构,并且一些变体需要额外的草稿模型、辅助头或模型特定的修改。

#### 基于缓存的复用。

基于缓存的复用通过重用先前的输出、语义相似的查询或模型状态,减少了冗余的LLM推理(Bang, 2023(https://arxiv.org/html/2607.20507#bib.bib13);Gill et al., 2024(https://arxiv.org/html/2607.20507#bib.bib15);Gim et al., 2024(https://arxiv.org/html/2607.20507#bib.bib14);Chakraborty et al., 2025(https://arxiv.org/html/2607.20507#bib.bib16))。现有方法包括响应级别和语义缓存,以及重用提示片段或注意力状态的模型状态缓存(Bang, 2023(https://arxiv.org/html/2607.20507#bib.bib13);Gill et al., 2024(https://arxiv.org/html/2607.20507#bib.bib15);Gim et al., 2024(https://arxiv.org/html/2607.20507#bib.bib14))。GenCache更接近我们的场景,因为它研究了结构相似提示的生成式复用,并解决了在请求变化下精确匹配和纯语义缓存的局限性(Chakraborty et al., 2025(https://arxiv.org/html/2607.20507#bib.bib16))。然而,程序辅助推理不仅需要匹配相似的请求,还需要构建可重用的程序或模板,并从新的输入中可靠地提取和绑定变量,这使得程序级别的稳健复用具有挑战性。

#### 统一的小模型复用。

PoT风格的推理、推测性解码和GenCache风格的缓存分别从程序生成、生成加速和结构复用的角度优化LLM推理(Chen et al., 2023b(https://arxiv.org/html/2607.20507#bib.bib2);Leviathan et al., 2023(https://arxiv.org/html/2607.20507#bib.bib5);Chen et al., 2023a(https://arxiv.org/html/2607.20507#bib.bib6);Chakraborty et al., 2025(https://arxiv.org/html/2607.20507#bib.bib16))。然而,这些机制通常被分开研究,它们如何统一以及小模型在何处发挥最大杠杆作用尚未得到充分探索。我们认为,PoT风格的程序不仅可以用作一次性推理产物,还可以作为面向计算任务的可重用缓存对象。在这种观点下,小模型既可以支持用于可靠缓存执行的语义变量提取,也可以支持用于高效缓存构建的推测性草稿生成。

## 3 方法

### 3.1 概述

我们提出了一个以可重用程序缓存为核心的LLM推理优化框架,如图1(https://arxiv.org/html/2607.20507#S3.F1)所示。对于每个输入请求,该框架首先执行请求路由。如果匹配的组具有有效的程序缓存,则请求进入缓存命中分支,其中可重用的小模型提取变量,然后可执行的缓存程序产生输出。否则,请求进入缓存未命中分支,目标LLM生成答案、代码或程序,并使用推测性解码(SpecDec)以降低生成成本。当请求组累积了足够的示例时,该框架尝试构建新的程序缓存以供将来复用。

请参考图注图1:所提出的推理框架概述。带编号的箭头表示:(1) 可重用小模型进行语义变量提取,(2) 同一个小模型作为推测性草稿生成器,(3) 经SpecDec加速的目标LLM调用,(4) 用于答案和缓存构建的PoT风格程序生成。该框架遵循面向复用的设计。目标LLM生成的程序从一次性推理产物转化为可执行的缓存对象,同一个小模型在缓存命中路径上用于语义变量提取,在目标LLM生成期间用于推测性草稿生成。通过这种方式,小模型通过两个轻量级操作支持可重用程序缓存:语义变量提取(决定缓存可用性)和推测性草稿生成(降低剩余目标LLM生成的成本)。

### 3.2 路由与程序缓存

由于主要的...

相似文章

多层级MoE缓存

Reddit r/LocalLLaMA

讨论MoE模型的多层级缓存策略,通过将频繁激活的专家保留在GPU上来提升推理速度,参考了PowerInfer和llama.cpp分支等现有实现。

LMCache/LMCache

GitHub Trending (daily)

LMCache 是一个开源的KV缓存管理层,用于LLM推理,通过支持跨推理引擎持久化存储和复用KV缓存,减少首Token延迟并提升吞吐量。