4 min read

精炼上下文:大型语言模型长文本处理的六大策略

大型语言模型(LLM)在处理长上下文时常遭遇“上下文失败”,这包括信息污染、过度关注长上下文导致模型忽视训练知识、冗余信息引发低质响应,以及新旧信息冲突。这些问题本质上是信息管理不善,遵循“垃圾进,垃圾出”的原则。

为应对此挑战,业界已发展出多种策略。检索增强生成(RAG)通过选择性地注入相关信息来优化LLM响应,即使在模型上下文窗口不断增大的趋势下,其重要性依然不减。工具加载(Tool Loadout)则强调为特定任务仅选择最相关的工具定义,通过RAG技术优化工具描述,可显著提升工具选择的准确性,尤其在工具数量超过30个时,这种方法能避免模型因描述重叠而产生的混乱,并带来更短的提示和更高的准确率。研究表明,即使是较小的模型,在工具数量增加时也会遇到上下文混乱而非上下文窗口限制的问题,动态工具选择方法能有效提升模型表现并带来显著的能耗和速度优势。

上下文隔离(Context Quarantine)通过将上下文分散到独立的线程中,将任务分解为小型、隔离的作业,以避免上下文过长或包含无关内容,这在处理广泛查询时尤其有效,能显著提升信息收集和提炼的效率与质量。

上下文修剪(Context Pruning)是移除上下文中不相关或不必要信息的过程,可以由主LLM执行,或借助专门的LLM工具完成。该技术有悠久的历史,旨在解决NLP领域的上下文长度瓶颈,通过智能地裁剪文本,可以大幅缩减内容,保留最核心的信息,同时保持较低的计算资源消耗。

上下文摘要(Context Summarization)是将累积的上下文压缩为精炼摘要,这不仅能应对有限的上下文窗口,也能解决因上下文过长导致模型“上下文分心”的问题。虽然摘要的优化具有挑战性,但将其作为独立阶段处理,有助于收集评估数据并直接优化该过程。

上下文卸载(Context Offloading)则通过工具将信息存储在LLM上下文之外,例如使用“思考”工具作为便笺,为模型提供一个独立空间来记录不干扰主上下文的笔记和进展。此方法在处理长链式工具调用、策略繁多或顺序决策等场景下尤为有效,能显著提升模型表现,尤其是在需要仔细处理工具输出、遵循详细指南或进行代价高昂的顺序决策时。

总而言之,管理LLM的上下文并非易事,所有上下文内容都会影响模型行为。现代LLM虽提供巨大的上下文窗口,但这并非可以随意懈怠信息管理的借口。 agent设计者需持续审视上下文中的每一项内容是否物有所值,并灵活运用上述策略优化信息管理。

How to Fix Your Context
6 tactics for fixing your context and shipping better agents. As Karpathy says, building LLM-powered apps means learning to ‘pack the context windows just right’—smartly deploying tools, managing information, and maintaining context hygiene.
订阅情报