微信扫码
添加专属顾问
我要投稿
RAG效果不佳?10个上下文处理技巧帮你提升性能,让AI更懂你的需求。核心内容: 1. 上下文工程的本质与框架解析 2. 长上下文处理等10个实用优化技巧 3. 行业最新探索与系统级优化方案
RAG效果不及预期,试试这10个上下文处理优化技巧
对大部分开发者来说,搭一个RAG或者Agent不难,怎么把它优化成生产可用的状态最难。
在这个过程中,检索效率、准确性、成本、响应速度,都是重点关注问题。
那么,如何对其进行优化?业内一致看好Context Engineering也就是上下文工程。
本系列文章,将从上下文工程的不同环节(上下文处理与生成、上下文处理、上下文管理)最新的行业探索与进展,进行解读。本文为系列第一篇,上下文处理篇。
备注:本文翻译自论文https://arxiv.org/html/2507.13334v1
上下文工程的本质是通过动态构建、优化LLM推理时的信息负载(含查询、外部知识、历史对话等,比“提示词”更宽泛),提升系统长期性能与效率。它是算法驱动的系统级优化,涵盖提示词工程、RAG、多智能体等技术,
从框架来看,上下文工程分为基础组件(信息生命周期核心模块)和复杂系统实现(组件的高级集成应用),二者可灵活组合适配不同场景。
上下文检索与生成:从提示词、外部知识库等获取原始信息,通过动态组装形成适配任务的上下文
上下文处理:通过压缩、摘要、结构化转换等技术,精炼原始信息,适配模型理解与推理
上下文管理:构建内存层次、运用压缩技术,在资源约束下高效存储、调度上下文信息
检索增强生成(RAG):结合信息检索与LLM生成,从外部知识库获取“证据”,解决知识陈旧和幻觉问题,含模块化、智能体、图增强等架构
记忆系统:管理运行过程中的动态“经验”,分短期/长期记忆,支撑持久交互与长期学习
工具集成推理:赋予LLM调用外部工具/API的能力,扩展任务边界,需处理工具数据与上下文更新
多智能体系统:多个具备专业能力的智能体协作,通过通信协调完成复杂任务,需管理共享上下文与全局状态
构成上下文工程的三大核心技术支柱:上下文检索与生成、上下文处理以及上下文管理。这些技术方法是实现高效、智能上下文系统的具体手段。
其中,上下文处理是上下文工程的第二个核心组件,它专注于对获取到的上下文信息进行转换和优化,以克服LLM在处理复杂信息时面临的挑战,并最大化信息的效用。
以下为行业关于上下文处理所做出的一些行之有效的探索。
处理超长序列上下文是LLM面临的一个根本性挑战,主要源于Transformer自注意力机制O(n²)的计算复杂度,这导致了随着序列长度增加而急剧增长的计算和内存瓶颈。例如,将Mistral-7B的输入从4K tokens增加到128K tokens,计算量会增加122倍。Llama 3.1 8B在处理128K tokens的请求时,可能需要高达16GB的内存。为了解决这些问题,研究者们从架构创新、位置插值和优化技术等多个角度进行了探索。
为了从根本上解决Transformer的二次复杂度问题,研究者们提出了一系列创新的模型架构。
状态空间模型(State Space Models, SSMs) :SSMs通过使用固定大小的隐藏状态,实现了线性的计算复杂度和恒定的内存需求。像Mamba这样的模型提供了高效的循环计算机制,其扩展性远优于传统的Transformer。
扩张注意力(Dilated Attention) :以LongNet为代表的方法,采用随着token距离增加而指数级扩张的注意力域,实现了线性的计算复杂度,同时保持了token之间的对数依赖性,使其能够处理超过十亿tokens的序列。
托普利茨神经网络(Toeplitz Neural Networks, TNNs) :TNNs使用相对位置编码的托普利茨矩阵来建模序列,将时空复杂度降低到对数线性级别,并实现了从512个训练tokens到14,000个推理tokens的有效外推。
线性注意力(Linear Attention) :通过将自注意力表示为核特征映射的线性点积,线性注意力机制将复杂度从O(N²)降低到O(N),在处理极长序列时实现了高达4000倍的加速。
对于已经预训练好的模型,直接扩展其上下文窗口长度是一个挑战。位置插值技术通过在推理时智能地重新缩放位置索引,而不是外推到未见过的位置,从而实现了对更长序列的处理。
神经正切核(Neural Tangent Kernel, NTK)方法:YaRN(Yet another RoPE-based Interpolation method)结合了NTK插值、线性插值和注意力分布校正,为上下文扩展提供了数学上更严谨的框架。
两阶段扩展方法:LongRoPE通过两阶段方法实现了2048K tokens的上下文窗口:首先将模型微调至256K长度,然后进行位置插值以达到最大上下文长度。
无需微调的技术:Self-Extend等技术允许LLM在不进行任何微调的情况下处理长上下文,它通过采用双层注意力策略——分组注意力和邻近注意力——来捕获远距离和相邻token之间的依赖关系。
在不改变模型基本架构的前提下,研究者们还开发了多种优化技术来提高长上下文处理的效率。
分组查询注意力(Grouped-Query Attention, GQA) :GQA将查询头分组,每组共享键和值头,在多查询注意力和多头注意力之间取得了平衡,显著降低了解码过程中的内存需求。
FlashAttention:FlashAttention利用GPU内存层次结构的不对称性,实现了线性的内存扩展,而不是二次方增长。其后续版本FlashAttention-2通过减少非矩阵乘法操作和优化工作分配,实现了约两倍的速度提升。
稀疏注意力(Sparse Attention) :通过只计算部分token之间的注意力权重,稀疏注意力技术可以大幅降低计算量。例如,BigBird结合了局部注意力、全局token和随机连接,能够高效处理比以往长8倍的序列。StreamingLLM则通过保留关键的“注意力汇聚”(attention sink)token和最近的KV缓存条目,实现了对无限长序列的处理,在处理400万tokens的序列时,速度比滑动窗口重计算快22.2倍。
内存管理与压缩:H₂O(Heavy Hitter Oracle)提出了一种高效的KV缓存驱逐策略,基于观察到少数token贡献了大部分注意力值的原理,在提高吞吐量的同时降低了延迟。Infini-attention则将压缩记忆整合到 vanilla attention 中,结合了掩码局部注意力和长期线性注意力,使得处理无限长输入时的内存和计算都是有界的。
上下文自我精炼与适应是一种让大型语言模型模仿人类修订过程,通过循环反馈机制自主改进其输出的技术范式。
与依赖外部奖励模型的强化学习方法不同,自我精炼主要通过模型自身的自我评估和对话式交互来实现,通常利用精心设计的提示词工程来引导模型进行迭代优化。
这种方法的核心思想是,对于一个给定的任务,识别并修正错误往往比一次性生成完美解决方案更容易。通过赋予模型自我批判和修正的能力,可以显著提升其在复杂推理、代码生成、创意写作等任务上的表现,并使其能够更好地适应新的任务和环境。
一系列基础框架为上下文自我精炼提供了具体的实现路径。Self-Refine框架是一个典型的代表,它使用同一个LLM同时扮演生成器(generator)、反馈提供者(feedback provider)和精炼器(refiner)的角色。
模型首先生成一个初始解决方案,然后对自己的输出提供具体的、可操作的反馈,最后根据这些反馈对解决方案进行精炼。这个过程可以循环多次,直到达到满意的结果。
Reflexion框架则更进一步,它引入了“反思文本”(reflective text)的概念,将模型在任务执行过程中的失败经验和教训以自然语言的形式存储在情节记忆缓冲区(episodic memory buffer)中。
这些反思文本在后续的任务中可以被检索出来,作为指导模型决策的上下文,从而避免重复犯错。然而,研究也表明,简单的提示词往往不足以实现可靠的自我修正,因此需要更结构化的引导。
例如,N-CRITICS框架采用基于集成(ensemble-based)的评估方法,让多个不同的模型或同一个模型的不同实例对初始输出进行评估,并汇总它们的反馈来指导精炼过程,从而获得更全面、更独立的评价。
上下文自我精炼的高级阶段是元学习(Meta-Learning)和自主进化(Autonomous Evolution),其目标是让模型不仅学会解决具体任务,更学会如何学习(learning to learn)。
SELF框架通过少量示例教会LLM元技能,如自我反馈和自我精炼,然后让模型通过生成和筛选自己的训练数据来进行持续的自我进化。自奖励(Self-rewarding) 机制则让模型通过迭代式的自我评判来自主提升,模型同时扮演执行者(performer)和评判者(judge)的角色,通过最大化自己给自己分配的奖励来优化行为。
Creator框架将这种范式扩展到工具使用,使LLM能够自主地创建和使用自己的工具,通过一个包含创建、决策、执行和识别的四模块流程来完成复杂任务。
而Self-Developing框架则代表了最高度的自主性,它使LLM能够自主地发现、实现和精炼自己的改进算法,通过迭代循环生成算法候选者作为可执行代码,从而实现真正的自我发展。这些框架共同指向了一个长期演变方向,即LLM将不再是静态的工具,而是能够持续学习和进化的智能体。
多模态上下文工程旨在将大型语言模型的能力从纯文本领域扩展到能够理解和处理包含视觉、听觉、3D环境等多种数据类型的复杂现实世界场景。
通过将不同模态的信息整合到统一的上下文表示中,多模态大型语言模型(MLLMs)能够执行图像描述、视觉问答、视频理解等更为复杂的任务。
然而,这种扩展也带来了新的挑战,包括如何有效地融合不同模态的信息、如何进行跨模态的推理,以及如何高效地处理长序列的多模态数据。该领域的研究致力于构建能够像人类一样,综合利用多种感官信息来理解世界的智能系统。
模态融合是多模态上下文处理的核心,其目标是将来自不同来源(如图像、文本、音频)的信息整合成一个连贯、统一的表示。
基础的融合方法通常是将视觉输入通过专门的编码器(如CLIP)转换为一系列离散的token,然后与文本token拼接,共同输入到LLM中。然而,这种简单的拼接可能无法实现深度的语义融合。
更先进的策略,如交叉模态注意力机制(cross-modal attention) ,允许模型在LLM的嵌入空间内直接学习文本token和视觉token之间的细粒度依赖关系,从而增强对图像编辑等任务的理解。
为了处理长序列输入,分层设计(hierarchical designs) 将不同模态的处理分阶段进行,以确保可扩展性。
此外,一些研究尝试绕过对纯文本LLM的适配,采用从一开始就联合预训练多模态数据和文本语料的统一训练范式,以从根本上缓解模态对齐的挑战。跨模态推理则要求模型不仅能理解每个模态,还能推断它们组合后的整体含义,例如理解一张图片和一段文字共同表达的讽刺意味。
实现多模态融合的关键技术组件是外部的多模态编码器和连接它们与LLM主干的对齐模块(alignment modules) 。
目前,主流的架构范式是使用专门的多模态编码器来处理特定类型的数据,例如使用CLIP(Contrastive Language-Image Pre-training)模型来处理视觉信息,或使用CLAP(Contrastive Language-Audio Pre-training)模型来处理音频信息。
这些编码器将原始的多模态数据(如像素、声波)转换为高维的特征向量。接下来,对齐模块负责将这些特征向量映射到LLM的嵌入空间中,使其能够与文本token进行交互。
常见的对齐模块包括简单的多层感知机(MLP)和更复杂的Q-Former(Querying Transformer)。Q-Former通过一个可学习的查询token集合来从视觉编码器的输出中提取与文本最相关的视觉特征,从而实现更精细的模态对齐。这种模块化的设计允许独立地更新多模态编码器,而无需对整个LLM进行重新训练,提供了极大的灵活性。
大型语言模型在处理表格、数据库、知识图谱等关系型和结构化数据时面临着根本性的限制。
其主要原因在于LLM的输入是基于线性序列的文本,而结构化数据内部蕴含着复杂的、非线性的关系和层次结构。将结构化数据简单地线性化(例如,将表格的每一行转换成一句话)往往会丢失关键的结构性信息,导致模型性能下降,尤其是在信息分散在上下文不同位置时。
为了克服这一挑战,研究者们探索了多种方法,旨在将结构化信息以一种LLM能够有效利用的方式编码和整合,从而提升模型在需要复杂推理和事实核查的任务上的表现。
知识图谱(Knowledge Graphs, KGs)作为一种强大的结构化知识表示形式,其与LLM的集成是当前研究的热点。
一种直接的方法是利用知识图谱嵌入(Knowledge Graph Embeddings) ,将图谱中的实体和关系转换为低维的数值向量。这些嵌入向量可以被整合到LLM的输入或内部表示中,为模型提供结构化的背景知识。
更进一步的集成方式是引入图神经网络(Graph Neural Networks, GNNs) 。GNNs能够直接在图结构上进行计算,捕捉实体之间复杂的多跳(multi-hop)关系。一些混合架构,如GraphFormers,将GNN组件嵌套在Transformer块中,实现了语言上下文和图结构信息的深度交互。例如,GreaseLM模型在所有模型层中促进了语言上下文表示和结构化世界知识之间的双向交互,使得两者能够相互增强。
QA-GNN则通过构建联合图和基于图的消息传递机制,实现了问答上下文和知识图谱之间的双向注意力连接。
文字化(Verbalization) 是一种将结构化数据(如知识图谱三元组、表格行、数据库记录)转换为自然语言句子的技术。
这种方法的优势在于,它无需对现有的LLM架构进行任何修改,即可将结构化信息无缝地整合到语言系统中。例如,一个知识图谱三元组 (Albert Einstein, bornIn, Ulm) 可以被转换成句子“阿尔伯特·爱因斯坦出生于乌尔姆”。
然而,简单的文字化可能无法完全保留原始数据的结构和关系。因此,研究者们也探索了使用编程语言(如Python或SQL)来表示结构化数据。研究表明,在复杂的推理任务中,使用Python实现知识图谱或SQL查询数据库,其性能优于传统的自然语言表示,因为它们能够更好地利用数据固有的结构性。
此外,一些方法还利用LLM自身的能力来提取结构化信息,并将其表示为图、表格或关系模式,从而实现对输入文本的多层次结构化。
为了更有效地处理结构化数据,研究者们设计了多种混合架构,将LLM与专门处理图结构的模块相结合。
GraphToken 是一个典型的例子,它通过引入参数高效的编码函数,显式地将结构信息表示为特殊的token,在图推理任务上取得了高达73个百分点的性能提升。
Heterformer 等混合GNN-LM架构则在统一的模型中执行上下文相关的文本编码和异构图结构编码,解决了扩展这些集成系统时面临的计算挑战。这些混合架构通常遵循不同的集成范式。
例如,K-BERT 在预训练阶段就将知识图谱三元组注入到模型中,使模型内化事实知识。而KAPING等推理时(inference-time)方法则通过检索相关事实并将其前置到提示词中,实现了无需重新训练模型的实时知识访问。
更复杂的实现,如通过适配器模块和交叉注意力机制将知识图谱衍生的表示直接嵌入到模型的潜在空间中,实现了更深度的融合。
53AI,企业落地大模型首选服务商
产品:场景落地咨询+大模型应用平台+行业解决方案
承诺:免费POC验证,效果达标后再合作。零风险落地应用大模型,已交付160+中大型企业
2025-11-26
深度解析 RAG 索引:决定检索质量的核心机制与六大策略
2025-11-26
RAG 知识库的四个段位
2025-11-25
基于 RAG 的 AI 搜索技术实践
2025-11-25
深入探索RAPTOR:构建知识森林,突破RAG语义检索瓶颈的技术解析
2025-11-25
AAAI-26 | Cog-RAG:用双超图,重构RAG的认知流程
2025-11-24
涌现观点|从 RAG 到文件系统:Agent 记忆的“逆向进化”
2025-11-23
RAG的进化之路:从DrQA流水线到LLM的即时上下文服务
2025-11-23
RAG知识库迎来大洗牌:GraphRAG如何让机器真正读懂世界?
2025-09-15
2025-09-02
2025-09-08
2025-09-03
2025-09-10
2025-09-10
2025-10-04
2025-09-30
2025-10-11
2025-10-12
2025-11-23
2025-11-20
2025-11-19
2025-11-04
2025-10-04
2025-09-30
2025-09-10
2025-09-10