EFIM: Efficient Serving of LLMs for Infilling Tasks with Improved KV Cache Reuse
作者: Tianyu Guo, Hande Dong, Yichong Leng, Feng Liu, Cheater Lin, Nong Xiao, Xianwei Zhang
分类: cs.CL
发布日期: 2025-05-28 (更新: 2025-05-29)
备注: 31st International European Conference on Parallel and Distributed Computing (Euro-Par 2025 Oral)
🔗 代码/项目: GITHUB
💡 一句话要点
EFIM:通过改进KV缓存复用,高效服务于LLM的文本填充任务
🎯 匹配领域: 支柱九:具身大模型 (Embodied Foundation Models)
关键词: 文本填充 大型语言模型 KV缓存复用 提示工程 模型推理优化
📋 核心要点
- 文本填充任务中,LLM的KV缓存复用受限于前缀-后缀结构的提示格式,导致缓存失效,效率低下。
- EFIM通过转换提示格式,优化KV缓存复用,但引入了子token生成问题,需要新的训练方法。
- 实验表明,EFIM能显著降低延迟并提高吞吐量,同时保持LLM的文本填充能力。
📝 摘要(中文)
大型语言模型(LLMs)常用于文本填充任务,即预测或生成给定文本中缺失的信息。这些任务通常需要与相似的上下文进行多次交互。为了减少重复历史token的计算,跨请求的键值(KV)缓存复用已成为多轮交互服务中的关键技术,它存储并重用中间计算结果。然而,在文本填充任务中,KV缓存复用常常受到提示格式结构的阻碍,该格式通常由相对于插入点的前缀和后缀组成。具体而言,由于另一部分(后缀或前缀)的增量生成,前缀或后缀部分的KV缓存经常失效。为了解决这个问题,我们提出了EFIM,一种转换后的FIM提示格式,以释放KV缓存复用的性能潜力。虽然转换后的提示可以解决效率问题,但它暴露了当前LLM中的子token生成问题,即它们难以准确生成部分单词。因此,我们引入了一种片段token化训练方法,该方法在数据处理期间将文本分割成多个片段,然后再进行token化。在两个具有代表性的LLM上的实验表明,使用EFIM的LLM服务可以将延迟降低52%,并将吞吐量提高98%,同时保持原始的文本填充能力。EFIM的源代码已在https://github.com/gty111/EFIM上公开。
🔬 方法详解
问题定义:论文旨在解决大型语言模型在文本填充任务中,由于传统提示格式(前缀-后缀结构)导致的KV缓存复用效率低下的问题。现有方法在处理此类任务时,由于需要频繁地生成和更新前缀或后缀部分的KV缓存,造成了大量的冗余计算,降低了推理速度和吞吐量。
核心思路:论文的核心思路是通过转换提示格式,使得LLM在生成文本填充内容时,能够更有效地复用KV缓存。具体来说,通过重新排列输入文本的顺序,减少前缀和后缀的频繁切换,从而最大化KV缓存的命中率。同时,针对转换后的提示格式可能导致的子token生成问题,提出了一种新的训练方法。
技术框架:EFIM的技术框架主要包含两个部分:一是转换后的提示格式(Transformed Prompt Format),二是片段token化训练方法(Fragment Tokenization Training Method)。首先,输入文本经过重新排列,形成新的提示格式。然后,LLM基于新的提示格式进行文本填充。为了解决子token生成问题,论文提出了一种新的数据预处理方法,在token化之前将文本分割成多个片段。
关键创新:论文的关键创新在于提出了EFIM,一种针对文本填充任务的优化框架,它包含了一种新的提示格式和一种新的训练方法。与现有方法相比,EFIM能够更有效地利用KV缓存,从而显著提高LLM在文本填充任务中的推理效率。此外,片段token化训练方法有效地解决了转换提示格式带来的子token生成问题。
关键设计:关于提示格式的转换方式,具体细节未知,但核心目标是减少前缀和后缀的频繁切换。片段token化训练方法中,关键在于如何选择合适的片段分割策略,以及如何调整LLM的训练目标,使其能够更好地生成部分单词。损失函数和网络结构方面,论文可能使用了标准的语言模型训练方法,但具体细节需要参考论文的详细描述。
🖼️ 关键图片
📊 实验亮点
实验结果表明,使用EFIM的LLM服务可以将延迟降低52%,并将吞吐量提高98%,同时保持原始的文本填充能力。这些结果表明,EFIM能够显著提高LLM在文本填充任务中的推理效率,具有很强的实用价值。具体的实验设置和对比基线未知,但提升幅度非常显著。
🎯 应用场景
EFIM可应用于各种需要频繁进行文本填充的场景,例如代码补全、文本编辑、对话生成等。通过提高LLM的推理效率,EFIM能够降低服务成本,提升用户体验,并为更复杂的文本生成任务提供支持。该研究对于推动LLM在实际应用中的普及具有重要意义。
📄 摘要(原文)
Large language models (LLMs) are often used for infilling tasks, which involve predicting or generating missing information in a given text. These tasks typically require multiple interactions with similar context. To reduce the computation of repeated historical tokens, cross-request key-value (KV) cache reuse, a technique that stores and reuses intermediate computations, has become a crucial method in multi-round interactive services. However, in infilling tasks, the KV cache reuse is often hindered by the structure of the prompt format, which typically consists of a prefix and suffix relative to the insertion point. Specifically, the KV cache of the prefix or suffix part is frequently invalidated as the other part (suffix or prefix) is incrementally generated. To address the issue, we propose EFIM, a transformed prompt format of FIM to unleash the performance potential of KV cache reuse. Although the transformed prompt can solve the inefficiency, it exposes subtoken generation problems in current LLMs, where they have difficulty generating partial words accurately. Therefore, we introduce a fragment tokenization training method which splits text into multiple fragments before tokenization during data processing. Experiments on two representative LLMs show that LLM serving with EFIM can lower the latency by 52% and improve the throughput by 98% while maintaining the original infilling capability. EFIM's source code is publicly available at https://github.com/gty111/EFIM.