趋近智
随着分布式检索增强生成(RAG)系统接收并处理文档语料库,大型语言模型(LLM)经常面临大量检索到的信息。尽管现代LLM拥有越来越大的上下文窗口,但简单地将这些窗口填满通常并非最佳做法,并可能带来显著的操作和性能问题。因此,有效处理来自大规模检索数据集的长上下文,是优化这些系统中LLM的一个主要内容。这不仅仅是将数据放入模型中;它需要复杂的策略,以确保LLM接收到最相关的信息,并以易于理解的形式呈现,同时平衡信息的全面性与计算效率和响应质量。
核心问题在于LLM有限的处理能力,无论是就令牌限制而言,还是就其从噪声中识别重要信息的能力而言。简单地连接大量检索到的文档可能导致以下问题:
应对这些挑战需要多方面的方法,侧重于如何选择、组织上下文并将其呈现给LLM。
与其将LLM的上下文窗口视为被动接收器,不如说专业的RAG实践者会主动地设计上下文。这包括几种技术:
检索到的信息呈现的顺序能明显影响LLM的性能。为抵消“中间丢失”效应,通常有利的做法是将最相关的文档或文本块放置于上下文的开头或末尾。
对于极大规模的检索文档集,喂入完整文本可能不切实际。取而代之的是,中间处理步骤可以提炼信息:
下面的图表显示了一种分层方法,在此方法中,来自大规模检索集中的单个文档首先被处理或摘要,然后再组合成一个更易于管理、供主要LLM使用的上下文。
一种分层处理流程,用于处理大规模检索数据集。每份文档(或文档组)都经过初步的处理或摘要步骤。然后将输出结果汇集起来,为主要LLM形成上下文。
当检索到的上下文信息量极大时,可以为LLM构建一个更小、高度相关的“焦点窗口”。这包括积极地只选择最重要的数据片段。这可以与允许LLM在初始焦点窗口不足时“请求”更多细节或“放宽视野”到更广泛上下文的机制相结合,这种技术接近代理RAG行为。
选择LLM以及了解其架构优势和劣势也是长上下文管理的一部分。
一些LLM专门设计用于更高效地处理更长的序列。这些模型通常采用优化的注意力机制(例如FlashAttention、稀疏注意力变体)或其他架构创新,以减少标准Transformer注意力机制的二次复杂度。 尽管这些模型提供更大的原始令牌限制(例如32k、128k、200k甚至1M+令牌),但需要记住的是:
下面的图表显示了推理延迟和相对成本可能随上下文长度增加的普遍趋势。具体数字是示例性的,并因模型和硬件而异。
LLM上下文长度、推理延迟和相对运营成本之间的示例性关系。随着上下文长度增加,延迟和成本都倾向于明显上升。
对于可分解的任务,map-reduce模式可以高效。
当精心整理的上下文仍然超出LLM的实际限制时,截断是必需的。然而,简单的截断(在令牌限制处切断文本)通常并非最佳做法。
对于处理极长单个文档或在持续对话RAG系统中保持上下文,可以使用滑动窗口方法。
有效长上下文管理直接影响分布式RAG系统的几个重要方面:
几个进阶要点与专业实践者相关:
通过经验评估您选择的LLM和上下文管理策略能多好地识别并使用嵌入在长上下文(“干草堆”)中的特定信息(“针”)是重要的。这涉及创建合成测试用例,已知事实被放置在长文档内的不同位置,然后查询RAG系统,看它是否能检索并使用该事实。此类测试的结果可以为模型选择和上下文工程决策提供信息。
当多个文档或来源组合成单个上下文时,明确划分这些来源可能有利。这可能涉及使用特殊分隔符令牌或结构化格式(例如,类似XML的标签、Markdown),以帮助LLM区分来自不同来源的信息。这可以防止“信息混淆”,即一个文档的属性或事实被错误地关联到另一个文档。
最佳上下文长度和构成可以根据用户查询的性质而变化。
在分布式RAG中管理长上下文并非一概而论的问题。它需要充分理解LLM的行为、对输入LLM的数据管道进行细致的工程设计以及持续评估。通过策略性地整理、压缩和组织检索到的信息,工程师可以大幅提升大规模RAG系统的性能、效率和可靠性,确保LLM组件即使面对大量数据也能最佳运行。
简洁的语法。内置调试功能。从第一天起就可投入生产。
为 ApX 背后的 AI 系统而构建
这部分内容有帮助吗?
© 2026 ApX Machine Learning用心打造