2505.11271_Semantic Caching of Contextual Summaries for Efficient Question-Answering with Language Models¶
Abstract¶
本文探讨了大型语言模型(LLMs)在边缘计算与云计算平台中用于实时问答(QA)与检索增强生成(RAG)的应用。随着LLMs在这些场景中的广泛应用,处理长文本上下文在分布式系统中带来了高计算开销、高内存占用和高网络带宽消耗等挑战。
为了解决这些问题,本文提出了一种新颖的语义缓存方法,通过存储和重用中间上下文摘要,实现在相似查询中高效重用信息。该方法能够在保证回答准确性(与完整文档处理相当)的前提下,减少高达50-60%的冗余计算。实验在NaturalQuestions、TriviaQA以及一个合成的ArXiv数据集上验证了该方法的有效性。
此方法在计算成本与响应质量之间取得良好平衡,对于实时AI助手的部署具有重要意义。
重点内容强调¶
核心问题:长文本处理在分布式系统中的高资源消耗。
提出方法:语义缓存,用于存储和重用中间上下文摘要。
主要贡献:显著降低计算冗余,同时保持高回答准确性。
实验验证:在多个真实与合成数据集上取得良好效果。
应用场景:适用于需要实时响应的AI助手系统。
补充信息¶
本文是初步预印本,已被ICCCN 2025接收,最终版本将发表于IEEE ICCCN 2025会议论文集。
关键词涵盖了方法核心、应用场景与目标:语义缓存、大型语言模型、问答系统、检索增强生成、效率提升。
1 Introduction¶
1.1 现代大语言模型(LLMs)的应用与挑战¶
现代大语言模型(LLMs)在问答(QA)、摘要生成和助手类应用中取得了革命性进展。然而,从移动设备到云端数据中心的部署过程中,这些系统面临显著的挑战,包括延迟高、计算成本高、网络带宽消耗大等。
许多基于LLM的应用涉及多步骤、链式文本生成,其中包含中间输出。例如在 Microsoft Copilot 这样的工具中,用户请求会议摘要时,系统会通过一系列LLM调用来处理文档和聊天记录,最终生成回答。类似地,在问答场景中,系统通常会先对文档进行摘要(第一步LLM调用),再结合用户问题生成答案(第二步LLM调用)。随着模型和请求量的增长,这种系统在计算和资源方面的要求变得非常昂贵。
1.2 链式流程中的中间输出与缓存机会¶
图1展示了一个基于聊天的助手系统工作流程:用户提问(1)→ 系统检索相关文档(2)→ 生成文档摘要(3)→ 最终生成回答(4)。文档摘要可以是非上下文相关的(query-agnostic),也可以是上下文相关的(query-aware)。这类系统通常由多个步骤组成,其中中间输出会作为后续步骤的输入。
在这样的链式处理流程中,中间输出通常被丢弃,但事实上,它们可能对后续查询非常有价值。例如,文档处理过程中生成的摘要可以被多个用户请求复用。
1.3 现有优化方法与语义缓存¶
为了优化资源使用、降低成本和提升响应速度,已有多种方法被提出。其中,**语义缓存(Semantic Caching)被认为是一个有前景的方向。它通过将输入与LLM输出作为键值对(Key-Value Pairs)**存储,根据新输入的相似性进行检索和复用[[1,4,7]]。
目前大多数语义缓存方法关注的是端到端查询的缓存或完全匹配的缓存,而对多步骤流程中的中间数据共享关注较少。在链式流程中,中间结果的缓存具有独特优势,如:
灵活处理部分文档更新;
适应不同用户访问需求;
避免冗余计算;
降低延迟,提升效率,节省计算资源。
这些优点使得语义缓存特别适合高吞吐量应用或计算资源有限的环境。
1.4 语义缓存的应用场景¶
语义缓存具有广泛的应用潜力,包括:
客服系统:缓存常见问题的摘要,提高响应效率;
法律分析:缓存案例摘要,加快相关问题的解答;
个人助手:缓存用户偏好和行为模式,提升个性化交互;
教育工具:缓存学生问题的历史摘要,实现个性化学习。
在这些场景中,语义缓存通过减少重复处理和响应时间来提升系统性能。
1.5 本文的贡献¶
本文研究了语义缓存在文档问答任务中中间上下文摘要的潜力,主要贡献如下:
提出一种新的语义缓存机制,用于在多步骤问答流程中复用上下文摘要;
比较了不同摘要策略,包括非上下文摘要、上下文摘要和其他参考处理方式;
评估了语义缓存对效率与答案质量的影响,使用公开的QA数据集进行验证。
1.6 实验结果与结论¶
论文使用公开的文档问答数据集,模拟个人助手场景,用户提问后系统检索、摘要并生成回答。实验结果表明:
语义缓存能够在成本与效用之间取得平衡:
相比于每次都完整处理文档(高成本、高质量)或每次都生成上下文摘要(中等成本、中等质量);
也优于使用非上下文摘要(低成本、低质量);
例如,当使用余弦相似度阈值为0.8时,语义缓存的命中率在**0.2–0.3(问题多样时)和0.5–0.6(问题相似时)**之间,同时保持了与完整文档处理相当的答案质量。
1.7 实际意义与价值¶
通过在LLM流程中引入语义缓存,本文提供了一种可扩展的解决方案,用于降低计算需求和延迟,从而推动LLM系统在各种实际应用场景中的部署和使用。这对于资源受限的环境(如移动端或边缘计算)尤其重要。
总结来看,本文系统地探讨了语义缓存在多步骤文档问答中的潜力,并提出了实际有效的缓存机制,为LLM系统的优化提供了新的思路和方法。
2 相关工作¶
2.1 提示缓存(Prompt Caching,基于KV的方法)¶
本节主要介绍**基于键值缓存(KV-based)**的提示缓存方法。这类方法利用Transformer模型中已生成的注意力状态(KV缓存),以减少重复计算带来的计算开销和延迟。
Prompt Cache:通过识别常用文本(如系统提示、模板等)并预计算其KV状态,在后续出现相同文本时直接复用,以加速推理。使用Prompt Markup Language (PML) 来保持位置准确性,但对输入顺序依赖性强,不适合RAG系统。
CacheBlend:专为RAG设计,预计算文本块的KV状态,并在输入中出现时复用。虽然加速了预填充阶段,但需保持输入结构稳定,且对文档更新不敏感。
RAGCache:优化RAG系统的缓存机制,将KV状态分层存储并实现检索与推理并行。但其结构对输入顺序敏感,限制了在多步骤任务中的应用。
EPIC:引入位置无关上下文缓存(position-independent caching),解决了顺序依赖问题。但仍面临缓存大小与计算效率之间的平衡挑战。
这类方法虽然能加速重复计算,但忽视了语义层面的相似性,难以在语义相同但结构不同的情形下复用结果。
2.2 语义缓存(Semantic Caching)¶
语义缓存方法关注的是语义相似性,而非具体的KV状态或完全匹配的缓存键值。
GPTCache:基于查询嵌入相似性缓存完整的LLM响应。尽管通用性强,但存在三大问题:相似度阈值需手动调整、无法部分更新缓存、内存开销大。
MeanCache:在用户设备上缓存个性化响应,并利用联邦学习保护隐私。但只能在单用户设备上使用,无法共享知识,且仅适用于单轮交互。
SCALM:采用语义聚类动态调整缓存策略,提升缓存命中率和节约token。在聊天服务中表现良好,但在小众领域和文档类任务中效果不佳。
ContextCache:专注于法律问答场景,采用领域特定的嵌入训练。虽然提高命中率,但需要针对每个领域进行训练,难以扩展。
这些方法虽然在语义匹配方面有所改善,但仍存在泛化性差、更新机制不足等局限。
2.3 其他缓存方法¶
InstCache:预测用户指令并预存到缓存中,适用于用户指令具有重复性和可预测性的场景。但其依赖于预测算法,在动态环境中适应性差。
Cache-Augmented Generation (CAG):将所有知识预先加载到LLM的上下文窗口中,避免实时检索。适合知识库较小的场景,但随着知识库增长,效率下降明显。
2.4 本文方法与现有方法的比较¶
本文提出的方法在以下几个方面区别于现有方法:
应用场景:专注于基于RAG的文档问答任务,而非通用对话或单一领域任务。
缓存粒度:缓存压缩的中间语义摘要,而非完整的响应或底层KV状态。降低存储开销的同时保持推理准确性。
顺序无关性:支持任意结构的查询,克服了Prompt Cache和RAGCache等对输入顺序敏感的限制。
语义匹配机制:基于语义相似性判断缓存命中,并可根据领域特征自适应调整相似度阈值。
动态更新支持:能高效处理文档更新,避免因文档变化导致缓存失效,适合实际应用中频繁更新的场景。
扩展性优化:与CAG预加载所有知识不同,我们仅缓存最相关的摘要,实现可扩展性和效率的平衡。
表1总结了本文方法与现有方法在缓存粒度、顺序敏感性、语义匹配、RAG适应性、可扩展性和动态更新能力等方面的对比,突出了本文方法的优势。
总结¶
本文综述了目前主流的LLM缓存方法,从计算状态复用(Prompt Caching)和语义匹配(Semantic Caching)两个角度进行分类,并指出其各自的优缺点。最终提出了一种高效、灵活、适应RAG系统且支持动态更新的中间语义摘要缓存方法,在多个关键指标上优于现有方法。
3 System design and Methodology¶
3 系统设计与方法论¶
3.1 观察与系统设计¶
观察 1:余弦相似度能有效捕捉细微语义差异
研究表明,句子嵌入之间的余弦相似度在捕捉查询语义差异方面非常有效,通常优于基于词汇的度量方法。在本研究中,确定合适的相似度阈值对在缓存效率和响应准确性之间取得平衡至关重要。我们采用了一种自适应的方法来选择该阈值,具体包括以下步骤:(i) 设定可接受的性能下降幅度或成本降低目标;(ii) 收集具有代表性的文档和查询对以及验证答案(“真实标签”);(iii) 生成嵌入(可选:对编码器进行微调以适应特定领域)并计算查询间的余弦相似度;(iv) 比较使用缓存摘要的查询在不同相似度下的性能(或成本)与传统方法(使用完整文档或通用、非上下文的摘要)之间的差异。这一权衡将在第5.4节中展示。
观察 2:顺序无关性可提升缓存灵活性
基于KV缓存的方法依赖于token的顺序和位置,而我们的选择性语义缓存方法是顺序无关的。这种设计允许系统识别并缓存语义相似的内容,无论信息的顺序如何。这种灵活性对于处理多样化的查询结构至关重要,并增强了缓存的鲁棒性。
观察 3:应优先缓存用户查询内容而非静态部分
有效的语义缓存应关注动态生成的用户查询内容,而非静态系统提示。系统提示通常在不同查询中保持不变,因此缓存它们的效用有限,甚至可能稀释缓存效率。通过优先缓存用户特定的查询内容,系统可以捕捉到最可变和相关信息,从而提高缓存命中率和资源利用率。这种方法使系统能够更快地提供上下文相关的响应,无需重复处理固定的系统指令。
系统设计
基于以上三个观察,我们的系统设计如图1所示。当系统接收到用户查询(步骤1)时,它会检索相关文档(步骤2)。然后系统决定是使用缓存的摘要还是生成新的摘要(步骤3),并基于该摘要生成回答(步骤4)。具体来说,系统计算当前问题与之前问题之间的余弦相似度。如果相似度超过设定阈值(例如0.85),系统将使用缓存的摘要生成回答。如果没有找到相似的历史问题,系统将生成新的摘要并将其缓存,以供未来使用。这种方法节省了摘要生成时间,降低了响应延迟。
3.2 我们的语义缓存方法¶
在基于LLM的助手应用中,当用户提交查询时,系统首先搜索相关文档,然后生成摘要以回答问题。摘要可分为**查询无关(非上下文)和查询感知(上下文)**两类。查询无关的摘要不依赖特定查询,仅基于文档内容生成,提供一般性概述;而查询感知的摘要则根据用户查询和文档内容定制,以提供更精确和相关的结果。图1展示了系统的工作流程。
借鉴LLMLingua在提示压缩上的方法,我们将提示 𝐱 定义为系统指令 𝐱^ins、用户查询 𝐱^que 和附加材料 𝐱^doc_1,⋯,𝐱^doc_K 的组合。在我们的方法中,这些附加材料被其摘要版本 𝐱^sum_1,⋯,𝐱^sum_K 替代。我们不涉及文档的检索与排序,而是专注于一次只摘要一个文档。系统指令 𝐱^ins 不参与摘要生成过程,因此提示可简化为:
𝐱 = (𝐱^doc, 𝐱^que)
查询无关的摘要:仅基于文档内容生成,公式为:
𝐱^sum_i = f(𝐱^doc_i)
查询感知的摘要:基于文档和用户查询生成,公式为:
𝐱^sum_i = f(𝐱^doc_i, 𝐱^que)
此外,缓存的摘要按用户查询 𝐱^que 索引,而非完整提示(选择性缓存)。
示例提示指令¶
图2:生成非上下文摘要的提示指令
系统要求生成一个不依赖上下文的、200字的文档摘要。图3:生成查询感知摘要的提示指令
系统要求生成一个针对特定问题的摘要,摘要中必须包含文档中存在的、明确且详细的答案。图4:使用参考内容生成答案的提示指令
系统要求基于给定的参考内容(如摘要或完整文档)生成一个简洁的答案,若答案在文档中存在则输出。
4 Experimental setup¶
4 实验设计¶
4.1 模拟设计¶
本节的核心是通过模拟用户与问答助手的交互过程,来评估语义缓存(Semantic Caching)的有效性。实验流程借鉴了第3.1节中描述的问答系统工作流:对于每个输入问题,系统会“检索”文档,生成文档的摘要,再利用该摘要生成答案。
为了测试不同的回答策略,实验设计了五种不同的回答方法:
完整文档(Full document):每次直接使用整个文档生成答案,跳过摘要生成步骤。
无检索(No retrieval):不检索文档,仅依赖大语言模型(LLM)的内部知识生成答案。
非上下文摘要(Non-contextual summary):生成一个通用的、不依赖上下文的摘要,并重复使用该摘要回答所有问题。
上下文摘要(Contextual summary):根据用户问题生成针对性的摘要,或复用之前生成的缓存摘要。
基于提示的缓存(Cache the answer, indexed on the entire prompt):将每个完整提示(包含系统指令、文档和问题)生成的答案进行缓存,用于后续相似提示的问题。
实验中使用了 GPT 模型(通过 OpenAI API 和 LangChain 模块),生成摘要和答案的参数设置为温度 0、top-p 1,以确保结果的确定性和一致性。摘要长度包括 100、200、400 词,基于文档平均长度和信息压缩与保留的平衡考虑。摘要缓存使用 FAISS 库,基于问题嵌入向量进行索引。
4.2 数据集¶
实验使用了三个数据集,用于模拟真实世界中的问答场景:
TriviaQA:包含 20 篇文档,平均每篇 3423 字,每篇文档平均有 20 个问题。
NaturalQuestions:包含 83 篇文档,平均每篇 10824 字,每篇文档平均有 15 个问题。
ArXiv 合成数据集:包含 134 篇文档,平均每篇 4057 字,每篇文档固定生成 15 个问题。
所有问题为短问题(2-13 词),答案也较短(平均 2-3 词),以适应缓存策略的评估需求。文档长度差异较大,但都过滤掉了少于 800 字的文档,以确保内容足够丰富。
4.3 问题之间的相似性¶
为评估缓存的有效性,实验通过计算问题嵌入的余弦相似度(使用 all-MiniLM-L6-v2 和 all-mpnet-base-v2 模型)来量化问题之间的相关性。
结果显示,NaturalQuestions 中问题的平均相似度较高(0.74),中位数为 0.76,标准差为 0.18,说明许多问题具有相关性,缓存摘要具有潜力。但相似度范围广泛(0.32-0.99),表示对于差异较大的问题,缓存摘要可能不再有效,因此需采用动态缓存策略。
4.4 摘要¶
实验评估了不同长度的摘要(100、200、400 词)在 TriviaQA 上的表现。结果显示,基于固定词数的摘要更接近设定的压缩比例,而基于压缩率(如10%、50%)的摘要可能会与预期有较大偏差。
因此,实验中选择使用固定长度的摘要,以确保压缩效果可控。
4.5 评估指标¶
为了全面衡量语义缓存的效果,实验从以下四个维度进行评估:
效用(Utility):通过生成答案与真实答案之间的余弦相似度衡量。相似度越高,表示答案越准确和相关。
缓存命中率(Cache hit rate):缓存摘要可用的查询比例。命中率越高,说明缓存越有效,减少重复计算。
令牌使用量(Token usage):衡量生成答案的成本,包括输入令牌(含系统提示、文档、摘要)和输出令牌(答案和摘要)。
延迟(Latency):端到端生成答案所需的时间,反映系统的响应速度。
这些指标共同评估了语义缓存方法在准确性、效率、成本和速度方面的表现。
5 Results and discussion¶
以下是论文 “5 Results and discussion” 章节的总结,按照原文结构讲解,重点内容突出,次要部分精简:
5 实验结果与讨论¶
5.1 检索方法的比较分析¶
图 7 展示了在 TriviaQA、NaturalQuestions 和合成 ArXiv 数据集上,五种检索方法在相似度阈值为 0.8、摘要长度为 200 字时的表现,比较了 效用(Utility)、缓存命中率(Cache hit rate)、输入/输出 token 数量 和 延迟(Latency)。
上下文摘要方法(Contextual summaries) 的效用接近完整文档方法(Using the full document),表明其在回答用户问题时准确性高。
在 NaturalQuestions 数据集上,该方法甚至优于直接使用完整文档的 LLM,这可能是由于更聚焦的上下文提升了回答的相关性。
缓存命中率 初期较低,但随着重复查询增加而提高,尤其在相似问题多的数据集(如 ArXiv)中,命中率可达 0.5–0.6。
输入 token 数量显著减少,比完整文档方法平均低 50%。
输出 token 数量较高,但随着缓存命中率增加,输出 token 也逐渐减少。
延迟 随着缓存命中率提升而降低,因为系统可以跳过处理完整文档的步骤。
其他方法比较:
完整文档方法效用最高,但输入 token 消耗大。
无上下文摘要(Non-contextual summaries)初始延迟和 token 消耗高,但能快速稳定。
LLM API 缓存虽有高命中率和低延迟,但答案缺乏个性化。
不使用检索(No retrieval) 的效用在 TriviaQA 最高,NaturalQuestions 一般,ArXiv 最低,说明 LLM 未训练在最新的 ArXiv 数据上。
5.2 延迟细节¶
图 8 提供了不同方法在三个数据集下的延迟分解,包括 LLM API 调用时间、缓存查找时间 和 编码时间。
总延迟 几乎完全由 LLM API 调用主导(>99%)。
上下文摘要方法可能需要两次 API 调用(生成摘要和回答),因此延迟可能略高于单次调用的方法。
5.3 不同相似度阈值与摘要长度的影响¶
表 3 展示了不同相似度阈值和摘要长度下的性能变化:
效用 主要受相似度阈值影响,而摘要长度影响较小。
缓存命中率 随着相似度阈值增加而下降,但与摘要长度无关。
输入 token 数量 和 输出 token 数量 随相似度阈值和摘要长度增加而上升。
总延迟 也随着这两个参数增大而增加。
5.4 选择相似度阈值:效用与缓存命中率的权衡¶
图 9 展示了在 NaturalQuestions 数据集上,不同缓存命中率对应的端到端效用情况。
新鲜生成的上下文摘要 效用最高。
高相似度(>0.85) 的问题能够有效利用缓存摘要。
低相似度(<0.6) 时,缓存摘要效果不如一般摘要。
问题对的分布偏向高相似度,说明缓存策略在实际中很有效。
推荐阈值在 0.85–0.9 之间,此时系统可以达到 0.2 的缓存命中率,并将效用提升 4%。
5.5 影响回答生成的因素¶
实验表明:
问题本身 是决定回答内容的最关键因素。
上下文 次之,指令和格式 影响较小,但会影响回答的风格和连贯性。
LLM 大小、温度、token 长度 也会影响结果,但问题本身是主导因素。
5.6 对现实系统的影响¶
语义缓存方法(Semantic caching)对现实中的 LLM 应用具有重要意义,尤其在:
个人助手
客服系统
知识检索系统
随着系统持续运行和频繁访问某些文档,语义缓存可以:
显著降低输入 token 消耗,减少计算资源和成本。
提高响应速度,避免重复计算。
在处理重复或相似问题时,实现高效、高质量的回答生成。
5.7 挑战与限制¶
尽管语义缓存方法潜力巨大,但也存在以下挑战:
冷启动问题:新文档或不同类问题需要重新计算摘要。
阈值设定需调优:不同领域需不同阈值,难以通用。
系统扩展性:随着数据和查询复杂度增加,缓存管理变得困难。
隐私风险:缓存中可能包含敏感信息,多用户环境下需确保数据隔离与隐私保护。
总结¶
本章通过多维度实验验证了语义缓存方法在问答系统中的有效性。相较于传统方法,它在效用、资源消耗和响应速度上均表现优异,尤其适合处理重复或相似问题。尽管存在冷启动和阈值选择等挑战,但其在现实应用中展现出巨大潜力,是未来 LLM 系统优化的重要方向之一。
6 Conclusion and future work¶
6 结论与未来工作¶
在本研究中,我们证明了缓存中间语境摘要可以显著降低基于大语言模型(LLM)的问答系统的计算成本,同时保持准确性。通过选择性缓存实现效率与实用性的平衡,我们的方法为成本效益高且可扩展的LLM应用奠定了基础,尤其是在移动设备与云端服务器协同工作的环境中。
技术增强¶
未来的研究应开发自适应算法,根据查询模式优化相似度阈值,并探索先进的摘要技术以优化信息保留。这一部分是未来技术发展的核心,有助于进一步提升系统效率与性能。
可扩展性与实际部署¶
需要处理更大规模的数据集和多用户系统,并针对特定行业定制技术,以最大化信息的相关性。这部分研究对实际部署的可行性至关重要。
隐私问题¶
在多用户环境中,隐私问题不可忽视。应实现诸如差分隐私、用户专属缓存或加密摘要等机制,以保护用户数据隐私。这也是系统走向实际应用中必须解决的关键问题。
更广泛的应用¶
未来还可以访问企业数据集,模拟更真实的查询分布,并扩展系统以处理需要综合多个文档的查询。这类应用拓展将进一步证明该方法的实用性和广泛适用性。
选择性语义缓存中间输出具有变革LLM系统潜力,可以使基于LLM的系统在多种应用场景中实现高效、可扩展和自适应的解决方案。通过解决上述挑战,语义缓存有望发展为一个强大、稳健的框架,为实际部署带来显著优势。