内容提要
本文介绍上下文工程在AI应用中的重要性,强调组装指令、知识、工具、记忆和状态对模型回答质量的影响。文章指出上下文顺序、令牌预算和新鲜度是关键,常见失败模式包括上下文腐烂和缺失输入。Redis Iris作为实时上下文引擎,提供低延迟检索、记忆和语义缓存,帮助优化组装层,提升响应速度和降低成本。
延伸解读
上下文顺序影响模型表现
文章指出,模型对输入开头和结尾的信息利用更好,中间部分容易被忽略。在测试中,当答案位于20个文档的第10个时,GPT-3.5-Turbo准确率降至52.9%,甚至低于无文档时的56.1%。这意味着,即使检索到正确内容,如果放在长提示词中间,效果可能不如不检索。因此,组装上下文时,应将稳定内容放在前面,动态内容(如检索结果、历史)放在后面,既符合注意力模式,也有利于KV缓存,降低成本。
令牌预算与工具膨胀
在代理系统中,工具定义可能占据大量上下文窗口。文中提到一个案例:58个工具消耗约55K令牌,其中单个Jira服务器就占约17K。这挤压了检索、记忆和历史的可用空间。为应对,团队采用按需工具发现、对话压缩和提供商提示缓存(如Anthropic缓存读取仅按基础输入价格10%计费)等策略。这些决策在生成前就已锁定,影响最终响应质量。
上下文腐烂与缺失输入
上下文腐烂指随着上下文增长,模型性能下降,即使检索完全正确,性能仍可能下降13.9%–85%,干扰项在长上下文中影响更大。缺失输入则是另一个常见问题:代理耗尽有效上下文窗口,被迫截断历史,导致模型基于不完整信息回答。这两种失败模式表明,仅靠扩大窗口或改进检索无法解决,需要将上下文组装视为独立系统进行架构设计。
组装层性能瓶颈
上下文组装在每次请求的热路径上运行,其延迟直接影响响应速度。文中引用基准:检索占RAG服务首令牌时间的45%–47%,远程向量存储查询增加50–300毫秒网络延迟。因此,低延迟存储至关重要。Redis Iris作为实时上下文引擎,提供亚毫秒级检索、记忆和语义缓存,旨在解决这一瓶颈,但具体效果需结合实际场景验证。
Q&A
什么是上下文工程?
上下文工程是在推理过程中策划和维护模型正确令牌集的做法,包括提示词之外进入上下文窗口的所有内容。它决定了模型在回答前能知道什么,而提示词工程只塑造其中的文字。
上下文组装通常包含哪些输入?
上下文组装通常包含五类输入:指令、知识、工具、记忆和状态,再加上用户的查询。这些输入在每次请求时从存储中检索并拼接在一起。
为什么上下文顺序很重要?
模型对输入开头和结尾的信息利用得更好,中间部分利用较差,形成U形性能曲线。将关键信息放在中间可能导致性能下降,甚至比不检索还差。此外,将稳定内容放在前面、动态内容放在后面有助于KV缓存,降低成本。
上下文腐烂是什么?
上下文腐烂是指随着上下文增长,LLM的有效性下降,即使任务简单,干扰项在长上下文中的破坏作用更大。即使模型能完美检索所有相关信息,性能仍会下降13.9%–85%。
如何管理有限的上下文窗口?
常见方法包括:按需工具发现(只加载相关工具)、压缩(总结对话并开启新窗口)、以及利用提供商提示缓存(如Anthropic的缓存读取费用仅为基本输入价格的10%)。
Redis Iris如何帮助优化上下文组装?
Redis Iris是一个实时上下文引擎,运行在Redis内存操作上,提供亚毫秒级延迟的检索、记忆和语义缓存。它整合了向量数据库、缓存、记忆和会话存储,帮助降低延迟和成本,提升响应速度。
上下文组装中的常见失败模式有哪些?
常见失败模式包括:上下文腐烂(上下文增长导致性能下降)、缺失输入(有效上下文窗口耗尽,被迫截断历史)、以及检索到错误数据等。