ICML25|标点符号竟是LLM记忆核心!正确处理性能暴涨

AITNT-国内领先的一站式人工智能新闻资讯网站
# 热门搜索 #
ICML25|标点符号竟是LLM记忆核心!正确处理性能暴涨
5184点击    2025-07-29 12:29

ICML25|标点符号竟是LLM记忆核心!正确处理性能暴涨


一句话概括,SepLLM证明了标点符号在LLM眼里是“段落精华浓缩液”,丢掉多余内容只留这些“小逗号大作用”,结果速度飞起性能不掉(原论文题目见文末,点击阅读原文可直接跳转至原文链接, Published on ICML on 16 December 2024, by HKUDS, HKU.)


第一阶段:识别核心概念


论文的Motivation分析


近年来,大语言模型(LLM)的能力越来越强,但它们的“饭量”也越来越大。这个“饭量”主要体现在计算和内存上。当模型处理的文本越来越长时,一个叫做“自注意力(Self-Attention)”的核心机制会导致计算量呈平方级增长。这就像一个房间里的人开会,如果每个人都要和在场的其他所有人单独聊一遍,那么随着人数增加,总的对话次数会爆炸式增长。


这个巨大的开销,尤其是在推理(生成内容)时,会产生一个叫做 KV Cache 的东西,它会把之前所有内容的“关键信息”都存起来,导致内存占用非常大,处理速度变慢。


现有的一些解决方法,要么是彻底改变模型结构(比如用线性注意力),但这会让很多强大的预训练模型无法直接使用;要么是想办法压缩或丢弃一部分 KV Cache,但常常因为丢掉了重要信息而导致模型性能下降。


作者们在研究中发现了一个非常反直觉的现象:在模型进行注意力计算时,那些看起来“没啥意义”的标点符号(比如逗号、句号、换行符),获得的关注度(Attention Score)竟然异常地高,甚至超过了很多有实际语义的名词和动词。


这个发现就是这篇论文最核心的 Motivation。作者猜想:是不是这些标点符号(他们称之为“分隔符 Separator”)在无形中扮演了“信息枢纽”或“段落摘要”的角色?模型可能已经自发地学会了将一个句子或一个段落(Segment)的信息“压缩”并存储到它后面的那个分隔符里。如果这个猜想成立,那么只需要保留这些“摘要”性质的分隔符,就可以丢掉大量的中间内容,从而大大提高效率,同时又不会损失太多信息。


论文主要贡献点分析


  • 发现并验证了一个关键现象——分隔符(如标点符号)在LLM的注意力机制中扮演了至关重要的角色,它们获得了不成比例的高关注度。


  • 提出了SepLLM框架——一个新颖的、即插即用的稀疏注意力机制。它在计算注意力时,只关注三种类型的token:初始token(开头几个词,作为全局引导)、相邻token(当前词附近几个词,处理局部依赖)和所有分隔符token


  • 验证了SepLLM的多场景有效性——该方法不仅在“免训练(Training-Free)”的推理加速上有效,还能无缝整合到“从头训练(Training-from-Scratch)”和“后续微调(Post-Training)”中,解决了许多推理优化方法与训练阶段不一致的问题。


  • 设计了为流式应用(Streaming)优化的KV Cache策略——针对无限长对话或文档处理场景,设计了一套精巧的缓存管理机制,使模型能处理超长序列(如400万token)。


  • 支撑这些创新的关键技术或方法


  • 数据依赖的稀疏注意力掩码(Data-Dependent Sparse Attention Mask):这是支撑SepLLM的核心技术。与以往固定的稀疏模式(如滑窗)不同,SepLLM的注意力模式是根据输入文本中“分隔符”的位置动态生成的。一个token能关注哪些历史信息,取决于文本自身的结构。


  • 专门的KV Cache管理策略:在推理时,只保留初始、相邻和分隔符token的KV Cache,其他token的KV Cache用完即弃。在流式场景下,这个策略进一步细化为四个缓存区(初始缓存、分隔符缓存、过去窗口缓存、本地窗口缓存)的动态管理,以控制内存的无限增长。


  • 显著性结果


  • 性能与效率的平衡:最显著的结果是,在使用 Llama-3-8B 模型时,SepLLM能够在数学推理(GSM8K-CoT)等复杂任务上,**将KV Cache的占用减少超过50%**,而性能几乎没有损失。这证明了其“压缩信息到分隔符”的假设是成立且高效的。


  • 对既有观念的挑战:这项工作在某种程度上挑战了“内容为王”的直觉。它表明在LLM的内部世界里,结构化的“分隔符”可能和语义化的“内容词”同等重要,甚至在信息检索中扮演着更关键的枢纽角色。


  • 理论联系实际:论文不仅提出了一个新颖的视角,还通过实现高效的计算核(Kernel)和开源代码,证明了其在实际应用中的加速效果,具备很强的工程价值。


理解难点识别


  • 理解论文的关键概念/方法


  • KV Cache:必须先理解它是什么,为什么它会成为瓶颈。
  • 稀疏注意力(Sparse Attention):需要明白它和标准的全注意力(Full Attention)的区别。
  • “信息被压缩到分隔符中”:这是最核心也最抽象的概念。它不是指数据压缩算法那种压缩,而是一种功能上的“浓缩”或“摘要”。如何理解这个过程是关键。
  • 流式处理中的四缓存机制(Tailored Streaming Design):这是核心思想的一个高级应用,其内部逻辑(如图4所示)比较复杂,需要细致地拆解。


  • 最具挑战性的部分


  • 最具挑战性的部分无疑是理解 “信息压缩到分隔符” 这一核心机制。读者很容易在这里产生困惑:一个小小的逗号,它本身的向量表示是如何承载一个完整句子的信息的?这背后并没有一个显式的“压缩”步骤,而是在模型的训练和推理过程中,通过注意力机制“涌现”出的特性。


  • 需要重点解释的核心概念


  • 基于以上分析,需要重点解释的核心概念是:基于分隔符的稀疏注意力机制(Separator-based Sparse Attention)以及其背后的“信息压缩”原理。这是整个SepLLM的基石,理解了它,其他所有贡献点和实验结果就都顺理成章了。


概念依赖关系


  • 核心概念之间的关系


  1. 切入点:从所有LLM使用者都能感受到的痛点——处理长文本时的内存和速度瓶颈(KV Cache问题)——开始。
  2. 建立基础:简单解释什么是注意力机制KV Cache
  3. 引出核心思想:介绍论文的关键发现——分隔符的高关注度,并自然地过渡到 SepLLM的核心思想:只关注重要的“路标”(分隔符),忽略大部分“沿途的风景”(普通内容词)。
  4. 深入解释:使用一个生活化的比喻,详细拆解SepLLM的稀疏注意力机制是如何工作的,以及“信息压缩”到底是怎么回事。


第二阶段:深入解释核心概念


设计生活化比喻:一场高效的董事会会议


想象一下,你需要向一位新加入公司的董事汇报过去一整年的项目进展。这场汇报就是模型处理长文本的过程,而这位新董事就是模型当前需要生成下一个词的“决策者”。


  • 传统LLM的工作方式(全注意力): 你把一整年来所有的会议记录、邮件往来、聊天记录、项目文档,全部堆到新董事面前。这份材料巨细无遗,但新董事需要从头到尾阅读每一个字,才能了解全局。这非常耗时(计算量大),并且需要一个巨大的会议室来堆放这些材料(内存/KV Cache占用大)。


  • SepLLM的工作方式(基于分隔符的稀疏注意力): 你换了一种更聪明的方式。你为新董事准备了一份“精华汇报包”。这份包里只包含三样东西:


  1. 会议的开场白(Initial Tokens):由CEO发表的年度目标和战略方向。这能让新董事迅速把握全局基调。
  2. 你汇报前最后几句对话(Neighboring Tokens):这能让他无缝衔接当前正在讨论的话题。
  3. 每个季度末的项目总结PPT(Separator Tokens):每个季度结束后,项目经理都会写一份总结报告,提炼出这个季度的关键成果、遇到的问题和下一步计划。这份总结就是“分隔符”,它虽然只有几页,但浓缩了一个季度(Segment)的所有信息。


新董事拿到这份“精华汇报包”,不再需要阅读海量的原始记录。他只需要看看开场白,听听当前的对话,然后快速翻阅每个季度的总结PPT,就能对全年进展了如指掌,并据此做出明智的决策(预测下一个词)。


这里的“信息压缩”就体现在:项目经理的总结PPT(分隔符)本身并不包含季度内所有的细节讨论,但它的存在和内容是整个季度工作的成果和体现。新董事通过查阅这份总结,就等效于理解了这个季度。


建立比喻与实际技术的对应关系


ICML25|标点符号竟是LLM记忆核心!正确处理性能暴涨


深入技术细节


从比喻过渡到实际的技术和公式。SepLLM的核心是通过一个特殊的注意力掩码(Attention Mask)来实现的。


ICML25|标点符号竟是LLM记忆核心!正确处理性能暴涨


原始数学形式(公式 1 & 2)


ICML25|标点符号竟是LLM记忆核心!正确处理性能暴涨


符号替换版本


ICML25|标点符号竟是LLM记忆核心!正确处理性能暴涨


技术实现的关键步骤


当模型要计算第 个token的输出时:


ICML25|标点符号竟是LLM记忆核心!正确处理性能暴涨


将技术细节与比喻相互映射


ICML25|标点符号竟是LLM记忆核心!正确处理性能暴涨


比喻的局限性


这个比喻非常贴切,但有一个细微的差别。在比喻中,项目经理是“主动地”去写总结。在LLM中,这个过程是“被动”且“涌现”的。模型并没有一个叫“总结模块”的东西,而是整个注意力网络在海量数据和稀疏注意力的约束下,自发形成的这种高效的信息处理模式。


总结


  • 核心联系SepLLM的稀疏注意力机制就像是为LLM准备了一份高效的“精华汇报包”
  • 关键作用:这份汇报包通过只保留开场白(初始token)、最后几句对话(相邻token)和关键的章节总结(分隔符token),极大地减轻了模型的“阅读负担”(计算和内存开销)。
  • 数学原理的精髓:其数学核心在于一个动态生成的掩码矩阵M,它像一个智能过滤器,强制模型只能在这些关键信息点上分配注意力,从而在训练中学会将长段落的信息“浓缩”进这些作为信息枢纽的分隔符中。


第三阶段:详细说明流程步骤


以一个典型的应用场景——基于长篇文章的问答或摘要生成——为例,描述其详细工作流。


假设我们的输入是一段长文本,模型需要阅读它,然后回答一个问题(或者在自回归模式下,续写文本)。整个流程分为两个主要阶段:预填充(Pre-filling)阶段生成(Generation)阶段


流程详解


输入:


ICML25|标点符号竟是LLM记忆核心!正确处理性能暴涨


第一步:预填充(Processing the Prompt)


此阶段的目标是让模型“阅读”并“理解”提供的长文本(Prompt),并构建一个初始的、稀疏的KV Cache。


ICML25|标点符号竟是LLM记忆核心!正确处理性能暴涨


ICML25|标点符号竟是LLM记忆核心!正确处理性能暴涨


第二步:生成(Autoregressive Generation)


现在,模型需要根据上文内容开始生成新的token。


ICML25|标点符号竟是LLM记忆核心!正确处理性能暴涨


第四阶段:实验设计与验证分析


1. 主实验设计解读:核心论点的验证


  • 核心主张:SepLLM可以在大幅降低KV Cache占用的同时,保持与原始全注意力模型相当的性能,并且优于其他KV Cache优化方法。


  • 实验设计:作者选择了两个极具代表性的基准测试:


  • GSM8K-CoT:一个需要多步逻辑推理的小学数学问题集。这个任务对模型的推理链(Chain-of-Thought)的连贯性要求极高。
  • MMLU:一个涵盖了57个不同学科的大规模多任务知识理解基准,全面评估模型的综合知识和理解能力


  • 选择的合理性分析


  • 数据集:GSM8K和MMLU都是各自领域的黄金标准(Benchmark),组合起来能非常全面地检验一个方法的性能。
  • 评价指标:除了任务本身的准确率,作者引入了相对KV Cache使用率(r.KV %),直接量化了方法的效率提升,完美地回答了“在节省多少资源的情况下,性能表现如何”的核心问题。
  • 基线方法 (Baselines):Vanilla:即原始的、使用全注意力的Llama-3模型,是性能的"天花板"。StreamingLLM:一个非常有代表性的强基线,可以看作是"没有分隔符概念的SepLLM"。将SepLLM与它对比,能最直接地突显出"保留分隔符"这一创新点的价值。


  • 结果如何支撑核心贡献


  • 结论:如Table 1所示,SepLLM (n=256) 在GSM8K和MMLU上的性能几乎与Vanilla模型持平(例如MMLU上64.68% vs 65.72%),但KV Cache使用率却骤降至**44%-47%**。这强有力地证明了SepLLM成功地用一半的资源实现了几乎无损的性能。
  • 同时,在相似的KV Cache使用率下,SepLLM的性能显著优于StreamingLLM(MMLU上64.68% vs 63.39%)。这直接表明,SepLLM丢弃的内容是冗余的,而StreamingLLM丢弃的内容(包含了分隔符)则是至关重要的


2. 消融实验分析:内部组件的贡献


  • 分隔符的重要性 (Separators' Role):


  • 被消融的部分:分隔符token。
  • 如何实现:通过对比 SepLLM (n=64) 和 StreamingLLM (n=64)(见Table 2)。
  • 结果证明:在各项任务上,SepLLM的性能都优于StreamingLLM。这定量地证明了保留分隔符对于维持模型性能是至关重要的


  • 相邻窗口大小的重要性 (Neighboring Token Benefits):


  • 被消融/改变的部分:相邻窗口的大小 n
  • 如何实现:对比 SepLLM (n=64) 和 SepLLM (n=128)(见Table 2)。
  • 结果证明:将窗口 n 从64增加到128,模型的性能有普遍提升,验证了保留充足的局部上下文是必要的


  • 初始Token的重要性 (Initial Tokens):


  • 被消融的部分:初始token,即Attention Sinks。
  • 如何实现:在Table 8中,对比了有无初始token的性能。
  • 结果证明:移除初始token后,模型的困惑度(ppl)急剧恶化(从13.1飙升至192.7)。这清晰地表明,初始token作为全局“锚点”,对于维持长距离依赖和模型稳定性是不可替代的


  • 分隔符选择的重要性 (Separator Choices):


  • 被消融的部分:分隔符集合的丰富度。
  • 如何实现:在Table 16中,尝试了使用不同数量和种类的分隔符。
  • 结果证明:随着分隔符集合的缩小,模型性能平稳下降。这证明了分隔符的压缩效果不是偶然,而是普遍存在的,并且使用的分隔符种类越全越好


3. 深度/创新性实验剖析:洞察方法的内在特性


  • 可视化分析 (Visualization Analysis):


  • 实验目的:直观地展示“分隔符获得高关注度”这一核心发现。
  • 实验设计:在Figure 2中可视化了Llama-3模型处理文本时的注意力图。
  • 实验结论:图中清晰可见,在代表逗号(,)和句号(.)的列上存在非常明显的亮线,表明这些分隔符持续接收到高额注意力。这个可视化结果是整篇论文的起点和最有力的直觉证据。


  • 探究性实验:固定间隔 vs 语义分隔 (Fixed-Interval Variant):


  • 实验目的:回答一个关键问题:SepLLM的成功,是因为语义功能的“分隔符”,还是仅仅因为实现了通用的“稀疏采样”
  • 实验设计:设计了一个新的基线 FixLLM,它以固定间隔保留token,而不是根据标点符号。
  • 实验结论:在Table 17中,SepLLM的性能显著优于FixLLM。这雄辩地证明了,起作用的不是“稀疏”本身,而是“在何处稀疏”。模型确实在利用标点符号作为“语义摘要”的特殊功能。


  • 压力测试:大海捞针 (Needle in a Haystack):


  • 实验目的:测试模型在极长文本中检索关键信息的能力,这是对信息压缩是否“有损”的终极考验。
  • 实验设计:在一个非常长的文档中插入一句不相关但包含特定事实的话(Needle),然后提问模型关于这个“针”的问题。
  • 实验结论:在Appendix F的图中,SepLLM依然能够在绝大多数情况下成功“捞到针”,而StreamingLLM则表现不佳。这惊人地表明,即使包含事实的原文token被丢弃,其信息也已经被成功地“压缩”并传递到了后续的分隔符中


  • 泛化能力测试:不同模型和规模 (Generalization):


  • 实验目的:证明SepLLM是一个通用的方法。
  • 实验设计:在Appendix D中,将SepLLM应用到了不同架构(Pythia, Falcon)和不同大小(6.9B, 12B, 40B)的模型上。
  • 实验结论:在所有测试的模型上,SepLLM都展现出了一致的效率提升和性能保持能力,证明了其方法的普适性


文章来自于“Tensorlong 看天下”,作者“沈公子今天读什么”。

AITNT-国内领先的一站式人工智能新闻资讯网站
AITNT资源拓展
根据文章内容,系统为您匹配了更有价值的资源信息。内容由AI生成,仅供参考
1
AI工作流

【开源免费】字节工作流产品扣子两大核心业务:Coze Studio(扣子开发平台)和 Coze Loop(扣子罗盘)全面开源,而且采用的是 Apache 2.0 许可证,支持商用!

项目地址:https://github.com/coze-dev/coze-studio


【开源免费】n8n是一个可以自定义工作流的AI项目,它提供了200个工作节点来帮助用户实现工作流的编排。

项目地址:https://github.com/n8n-io/n8n

在线使用:https://n8n.io/(付费


【开源免费】DB-GPT是一个AI原生数据应用开发框架,它提供开发多模型管理(SMMF)、Text2SQL效果优化、RAG框架以及优化、Multi-Agents框架协作、AWEL(智能体工作流编排)等多种技术能力,让围绕数据库构建大模型应用更简单、更方便。

项目地址:https://github.com/eosphoros-ai/DB-GPT?tab=readme-ov-file



【开源免费】VectorVein是一个不需要任何编程基础,任何人都能用的AI工作流编辑工具。你可以将复杂的工作分解成多个步骤,并通过VectorVein固定并让AI依次完成。VectorVein是字节coze的平替产品。

项目地址:https://github.com/AndersonBY/vector-vein?tab=readme-ov-file

在线使用:https://vectorvein.ai/付费

2
RAG

【开源免费】graphrag是微软推出的RAG项目,与传统的通过 RAG 方法使用向量相似性作为搜索技术不同,GraphRAG是使用知识图谱在推理复杂信息时大幅提高问答性能。

项目地址:https://github.com/microsoft/graphrag

【开源免费】Dify是最早一批实现RAG,Agent,模型管理等一站式AI开发的工具平台,并且项目方一直持续维护。其中在任务编排方面相对领先对手,可以帮助研发实现像字节扣子那样的功能。

项目地址:https://github.com/langgenius/dify


【开源免费】RAGFlow是和Dify类似的开源项目,该项目在大文件解析方面做的更出色,拓展编排方面相对弱一些。

项目地址:https://github.com/infiniflow/ragflow/tree/main


【开源免费】phidata是一个可以实现将数据转化成向量存储,并通过AI实现RAG功能的项目

项目地址:https://github.com/phidatahq/phidata


【开源免费】TaskingAI 是一个提供RAG,Agent,大模型管理等AI项目开发的工具平台,比LangChain更强大的中间件AI平台工具。

项目地址:https://github.com/TaskingAI/TaskingAI

3
微调

【开源免费】XTuner 是一个高效、灵活、全能的轻量化大模型微调工具库。它帮助开发者提供一个简单易用的平台,可以对大语言模型(LLM)和多模态图文模型(VLM)进行预训练和轻量级微调。XTuner 支持多种微调算法,如 QLoRA、LoRA 和全量参数微调。

项目地址:https://github.com/InternLM/xtuner

4
prompt

【开源免费】LangGPT 是一个通过结构化和模板化的方法,编写高质量的AI提示词的开源项目。它可以让任何非专业的用户轻松创建高水平的提示词,进而高质量的帮助用户通过AI解决问题。

项目地址:https://github.com/langgptai/LangGPT/blob/main/README_zh.md

在线使用:https://kimi.moonshot.cn/kimiplus/conpg00t7lagbbsfqkq0