【万字长文】大模型上下文工程全解析:RAG技术、记忆策略与动态管理!!大模型学习
文章全面介绍了大模型上下文工程的核心技术,重点讲解了RAG(检索增强生成)的原理、工作流程及高级模式,包括混合检索、重排序等。同时详细阐述了记忆架构、工具集成推理和动态上下文管理策略(写入、选择、压缩、隔离、组装),以及如何评估系统性能。这些技术能有效解决上下文过载问题,提高大模型响应质量和事实准确性,是构建高效大模型应用的关键。
简介
文章全面介绍了大模型上下文工程的核心技术,重点讲解了RAG(检索增强生成)的原理、工作流程及高级模式,包括混合检索、重排序等。同时详细阐述了记忆架构、工具集成推理和动态上下文管理策略(写入、选择、压缩、隔离、组装),以及如何评估系统性能。这些技术能有效解决上下文过载问题,提高大模型响应质量和事实准确性,是构建高效大模型应用的关键。
核心技术
更长的上下文并不一定会产生更好的响应,上下文过载可能会导致应用程序以意想不到的方式失败,上下文可能会变得有害、分散注意力、令人困惑或产生冲突。
- • 上下文污染(Context Poisoning):当幻觉或其他错误内容进入上下文并被反复引用时。
- • 上下文干扰(Context Distraction):当上下文变得太长时,模型会过度关注上下文,而忽略在训练期间学到的内容。
- • 上下文混淆(Context Confusion):当模型使用上下文中的多余信息来生成低质量的响应时。
- • 上下文冲突(Context Clash):当上下文中的部分内容相互矛盾时。
以上问题都与信息管理有关,可以使用以下技术进行解决。
检索增强生成(RAG)
基础理论
在上下文工程的众多技术中,检索增强生成(Retrieval-Augmented Generation, RAG)占据了核心地位。它是一种基础性框架,旨在通过将LLM与外部的知识源相连接,来解决模型知识陈旧和产生“幻觉”的根本性问题。
- • 概念: RAG是一个AI框架,它通过首先从外部知识库中检索相关信息,然后将这些信息作为上下文提供给LLM以增强其生成过程,从而优化LLM的输出。
- • 标准工作流: 一个典型的RAG系统包含以下几个关键步骤
- • 数据注入与索引 (Ingestion & Indexing): 首先,需要准备外部知识源,这些数据可以来自文档(PDF、Word)、数据库、或API。系统将这些数据进行预处理,将其分割成更小的、有意义的“块”(chunks),然后使用嵌入模型(embedding model)将每个块转换为高维向量。这些向量捕获了文本的语义信息,并被存储在一个专门的向量数据库中以供快速检索。
- • 检索 (Retrieval): 当用户提出一个查询时,系统首先使用相同的嵌入模型将该查询也转换为一个向量。然后,它在向量数据库中执行相似性搜索(如余弦相似度或点积),找出与查询向量最接近的文本块向量。这些对应的文本块被认为是与查询最相关的信息。
- • 增强与生成 (Augmentation & Generation): 最后,系统将检索到的相关文本块与原始的用户提示拼接在一起,形成一个“增强的提示”。这个增强后的提示被发送给LLM。LLM可以利用这些实时提供的、高度相关的上下文信息来生成一个有事实依据的、内容丰富的回答。
- • 核心优势:
- • 访问最新信息: LLM的知识受限于其训练数据的截止日期。RAG通过连接实时更新的知识源,使模型能够使用最新的信息。
- • 提高事实准确性,减少幻觉: 通过将模型的回答“锚定”在检索到的具体事实上,RAG显著降低了模型捏造信息的可能性。
- • 增强用户信任: RAG系统可以提供其回答的来源引用,允许用户验证信息的出处,这对于建立用户信任至关重要。
- • 成本效益高的领域适应性: 相比于通过昂贵的微调(fine-tuning)或重新训练来向模型灌输新知识,RAG提供了一种更经济、更快捷的方式来使模型适应特定领域或企业的专有知识。
高级模式
随着RAG应用的成熟,简单的“检索-生成”模式已演化出多种更复杂的“高级RAG”模式,以应对现实世界中的挑战。这些高级模式标志着RAG从一个单一技术演变为一个丰富的工程领域,其发展轨迹与经典信息检索系统的成熟过程遥相呼应。
- • 混合检索 (Hybrid Search): 这种模式结合了传统的关键词检索(如BM25算法)和现代的语义向量检索。关键词检索在处理包含特定术语、首字母缩写或产品代码的查询时表现出色,而向量检索则擅长理解查询的潜在意图和语义。通过融合两种检索的结果,混合检索能够取长补短,提供更鲁棒和准确的检索结果。
- • 重排序 (Re-ranking): 这是一个两阶段的检索过程。第一阶段,使用一个快速但可能不太精确的检索器(如向量搜索)从海量文档中召回一个较广泛的候选集。第二阶段,使用一个更强大、但计算成本也更高的重排序模型(通常是另一个LLM)对这个小得多的候选集进行精细化排序,以确定与查询最相关的文档。这种策略在效率和精度之间取得了很好的平衡。
- • 多跳RAG / 复杂RAG (Multi-hop RAG): 适用于需要综合来自多个文档或数据源信息才能回答的复杂问题。例如,“比较A公司和B公司在最新财报中关于AI投入的异同”。系统会执行一个初始检索,分析返回的结果,然后根据分析生成后续的、更具针对性的查询(例如,分别查询A和B公司的财报),直到收集到所有必要的信息片段,最后再进行综合生成。
- • 智能体RAG (Agentic RAG): 这是RAG的最前沿形态,其中RAG流程被嵌入到一个自主智能体的推理循环中。智能体可以根据任务的进展和当前状态,自主决定是否需要检索信息、何时检索、以及如何构建检索查询。它能够反思检索结果的质量,如果信息不足,它会主动发起新一轮的检索,直到它认为拥有了足够的上下文来解决问题。这使得检索过程本身变得动态和目标导向。
常见陷阱与缓解策略
挑战 | 陷阱 | 缓解策略 |
---|---|---|
检索质量不佳 | 这是最常见的失败根源。如果检索到的文档不相关、不完整或包含错误信息,LLM的生成质量将大打折扣。其原因可能包括:数据源质量差,含有大量噪声或重复内容;分块策略不当,导致关键上下文被割裂;或使用的通用嵌入模型未能捕捉特定领域的语义细微差别 | 实施严格的数据注入流水线,包括数据清洗、去重和标准化。采用更先进的分块技术,如基于文档结构(标题、段落)的“语义分块”,以保持上下文的完整性。在特定领域,考虑对嵌入模型进行微调,以提高其对专业术语的理解能力 |
“大海捞针”或“迷失在中间”问题 | 研究表明,即使上下文窗口很长,LLM也常常难以准确回忆起深埋在大量文本中间的信息。如果最相关的文档被不那么相关的内容所包围,模型可能会忽略它 | 使用重排序(Re-ranking)技术,将最相关的文档块置于上下文的开头或结尾,以最大化模型的注意力。同时,应用上下文压缩技术,在将检索结果送入LLM之前,先进行一次筛选或摘要,去除噪声 |
延迟与可扩展性 | 检索步骤不可避免地会增加应用的端到端延迟。随着知识库规模的增长,检索时间可能会成为性能瓶颈 | 选择为大规模、低延迟查询而优化的向量数据库。利用近似最近邻(ANN)搜索算法,它通过牺牲极小的精度来换取检索速度的大幅提升。此外,可以实施缓存策略,对于频繁出现的查询,直接返回缓存的检索结果。采用微服务架构也能提高系统的灵活性和可扩展性 |
评估的复杂性 | 评估一个RAG系统的性能是复杂的,因为它涉及到对检索器和生成器两个组件的综合评估。传统的NLP指标(如BLEU)无法衡量事实一致性或上下文相关性 | 采用专为RAG设计的评估框架,如RAGAs。这类框架提供了一套细粒度的指标,可以独立评估检索质量(如上下文精确率/召回率)和生成质量(如忠实度),从而能够准确定位系统瓶颈 |
记忆架构
LLM天生是无状态的,这意味着它们没有记忆。每一次交互都是独立的,除非我们将过去的交互信息明确地放入当前的上下文窗口中。现代LLM记忆架构采用复杂的层次化设计,克服固定上下文窗口限制。
三层记忆架构
- • 短期记忆 (Short-Term Memory): 通常实现为一个对话缓冲区,保存当前会话的历史记录。为了防止上下文窗口被无休止的对话历史填满,通常会采用滚动窗口缓冲区(只保留最近的N轮对话)或摘要缓冲区(定期用LLM对旧对话进行摘要)等策略。
- • 长期记忆 (Long-Term Memory): 这是实现个性化和持续学习的关键,它允许信息跨会话持久化。
- • 实现方式: 长期记忆通常通过一个外部向量数据库来实现。智能体可以将关键信息(如用户偏好、重要事实、会话摘要)作为记忆条目存入该数据库。在新的会话中,智能体可以像RAG一样,根据当前对话内容检索相关的长期记忆,并将其注入上下文,从而“记起”过去的事情。
- • 记忆的生成: LLM本身可以被用来自动生成和更新长期记忆。例如,在一次会话结束时,可以触发一个LLM调用,让其对本次交互进行总结,并将总结存入长期记忆库。
- • 暂存区 (Scratchpads): 这是一种专为单个复杂任务设计的工作记忆。当智能体需要执行一个多步骤的计划时,它可以将中间的思考过程、计算结果或观察“写”到暂存区中。这个暂存区存在于主上下文窗口之外,智能体可以在后续步骤中选择性地“读回”需要的信息。这避免了用冗长的“思想链”来污染主上下文,同时保留了完整的推理轨迹。
记忆增强智能体
个性化记忆
- • 用户偏好学习:通过交互历史学习用户偏好
- • 交互历史分析:分析用户行为模式和需求
- • 个性化推荐生成:基于记忆的个性化服务
任务记忆
- • 任务状态跟踪:记录任务执行的各个阶段
- • 中间结果缓存:保存计算中间结果以提高效率
- • 错误经验学习:从失败中学习并避免重复错误
这份完整版的大模型 AI 学习和面试资料已经上传CSDN,朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费】
八种记忆策略
01 全量记忆
- • 核心原理:每轮对话都保留,全部发送给模型
- • 架构设计:把用户输入和模型回复按时间顺序追加到一个 list,下次推理时整包塞给 LLM
- • 优点:
- • 实现零门槛,不丢任何细节
- • 调试时一眼能看到全部历史
- • 缺点:
- • 上下文长度爆炸,GPT-4 128k 也顶不住长聊
- • 费用指数级上涨,延迟肉眼可见
- • 适用场景:仅适用于对话轮次很少或者内容短的场景,比如简单QA或一次性问答
- • 调参锦囊:上线前务必加“紧急熔断”:token 数 > 阈值直接拒绝
02 滑动窗口记忆
- • 核心原理:保留最近N轮对话,旧的自动淘汰
- • 架构设计:维护一个定长队列,新消息进来,旧消息出队
- • 优点:
- • 实现简单,token 数可控
- • 无外部依赖,适合嵌入式场景
- • 缺点:
- • 一旦滑出窗口,永别!
- • 窗口大小难拍脑袋:3 轮太少,20 轮又浪费
- • 适用场景:适用于短对话场景或对历史依赖不强的任务。例如FAQ助手、简单闲聊机器人等
- • 调参锦囊:
- • 对客服场景可设 10~15 轮;闲聊机器人 5 轮即可
- • 建议在前端加个“展开历史”按钮,用户可手动查看更早对话
03 相关性过滤记忆
- • 核心原理:根据“重要性”打分保留高分内容,清除低分记忆
- • 架构设计:每条记忆算一个 relevance score,只保留高分。评分维度:
- • 与最新问题的余弦相似度
- • 是否包含实体(姓名、地点、订单号)
- • 用户是否说“记住/重要”等关键词
- • 优点:重要信息不易丢,比滑动窗口“聪明”
- • 缺点:
- • 评分函数需要持续迭代,否则误杀
- • 对中文关键词、实体识别要求高,轻量模型容易翻车
- • 适用场景:适合信息密集且需要筛选的场景,如知识型对话机器人或研究助理工具
- • 调参锦囊:
- • 先用规则+轻量模型跑通 MVP,再逐步引入大模型打分
- • 每周抽样 100 条对话人工 review,F1 < 0.8 就调
04 摘要压缩记忆
- • 核心原理:将旧内容生成摘要保留,代替原始文本
- • 架构设计:当对话长度达到阈值,用 LLM 把早期内容提炼成 1~2 句摘要,再与近期对话拼接
- • 优点:长期记忆近乎无限,只要摘要一直叠加
- • 缺点:
- • 摘要错误会污染后续所有对话
- • 每次摘要都要调 LLM,成本≈多一次推理
- • 适用场景:适用于长对话且需要保留上下文要点的场景
- • 调参锦囊:
- • 摘要长度 50~80 tokens 通常最稳
- • 对中文口语可强制要求“保留所有数字、专有名词”
05 向量数据库记忆
- • 核心原理:对对话进行嵌入,存入向量库,按语义检索
- • 架构设计:把文本转成向量,存进向量库;查询时按最近邻召回
- • 优点:
- • 百万级记忆也能毫秒召回
- • 语义匹配比关键词精准
- • 缺点:
- • 需要运维向量库,磁盘占用随对话增长
- • 对嵌入模型敏感,换模型需全部重扫
- • 适用场景:需要长期记忆的对话系统,如个性化助理等
- • 调参锦囊:
- • 自建库记得开
Mmap=True
,否则内存爆 - •
TopK 的设置建议,K=3
是通用起点,FAQ 类可拉到 K=5
06 知识图谱记忆
- • 核心原理:将实体、属性、关系结构化成图谱,并进行图上检索和推理
- • 架构设计:把“实体-关系-属性”抽成三元组,存成图,查询时可多跳推理
- • 优点:
- • 可解释,关系一目了然
- • 支持复杂推理:A→B→C→D
- • 缺点:
- • 抽取准确率决定上限;中文实体识别尤其难
- • 图大了后查询慢,需要 Neo4j 等专业库
- • 适用场景:适合知识密集型应用和需要跨事件推理的智能体
- • 调参锦囊:
- • 先用规则+大模型冷启动,后期人工修正图谱
- • 关系权重可存图属性,便于排序
07 分层记忆
- • 核心原理:同时维护短期滑动窗口与长期语义记忆,部分内容自动“提升”到长期存储
- • 架构设计:
- • 工作记忆:滑动窗口,最近 2~3 轮
- • 长期记忆:向量库,跨会话
- • 晋升机制:出现“记住/总是/我生日”等关键词或高相关性即写入长期库
- • 优点:兼顾实时性与持久性
- • 缺点:
- • 晋升规则需要反复 A/B 测试
- • 两层召回合并时,顺序与权重需调
- • 适用场景:适合需要长期上下文感知的智能体系统
- • 调参锦囊:
- • 晋升词:先列 50 个高频“记住/生日/密码”,每周 TF-IDF 补新词
- • 窗口:客服 8–12 轮,闲聊 3–5 轮
- • 融合权重:长期 0.4 +短期 0.6 起步,前言不搭后语就涨长期
08 类OS内存管理
- • 核心原理:类似计算机内存管理,将旧内容 page out到外部,必要时 page in 进入上下文
- • 架构设计:把当前上下文当 RAM,超量内容 Swap 到磁盘;查询触发“缺页中断”再拉回
- • 优点:与操作系统思想一致,易理解
- • 缺点:
- • 关键词召回太粗会换错页;需升级向量召回
- • Swap 文件需定期清理,防止磁盘爆炸
- • 适用场景:适用于上下文窗口受限但又需要长期记忆的智能体系统。它能够在保持对话响应速度的同时,保留大量历史信息,适合低延迟对话、时间跨度较大的任务型助手,以及需要随时回溯旧信息的场景
- • 调参锦囊:
- • RAM 留 20k token,其余 Swap;关键词命中率< 60% 就加词
- • Swap 文件 7 天无访问自动删;Page Faul t> 2 次/对话就扩容 SSD
工具集成推理
函数调用机制
核心概念: 工具集成推理是现代AI系统的重要能力,它使得语言模型能够通过调用外部工具和API来扩展其能力边界。这种机制不仅提高了系统的实用性,还增强了其解决复杂问题的能力。
函数调用流程:
-
- 工具识别与选择:
- • 意图理解:分析用户请求,识别需要使用的工具类型
- • 工具匹配:从可用工具库中选择最适合的工具
- • 参数提取:从用户输入中提取工具调用所需的参数
-
- 参数验证与处理:
- • 类型检查:验证参数类型是否符合工具要求
- • 范围验证:检查参数值是否在有效范围内
- • 格式转换:将参数转换为工具所需的格式
-
- 工具执行与结果处理:
- • 安全执行:在受控环境中执行工具调用
- • 错误处理:处理工具执行过程中的异常情况
- • 结果解析:解析工具返回的结果并进行格式化
技术实现架构
工具注册与管理:
安全与隔离机制:
- • 沙箱执行:在隔离环境中执行工具调用,防止恶意代码影响系统
- • 权限控制:基于角色的访问控制,限制工具的使用权限
- • 资源限制:设置CPU、内存、网络等资源的使用上限
- • 审计日志:记录所有工具调用的详细信息,便于安全审计
训练方法与数据系统
训练数据构建:
-
- 工具使用示例收集:
- • 真实场景数据:收集用户在实际使用中的工具调用案例
- • 合成数据生成:基于工具文档和规范生成训练样本
- • 多样性保证:确保训练数据覆盖各种工具使用场景
-
- 标注质量控制:
- • 专家标注:由领域专家进行高质量标注
- • 多轮验证:通过多轮标注和交叉验证确保质量
- • 一致性检查:使用自动化工具检查标注的一致性
训练策略优化:
- • 渐进式训练:从简单工具开始,逐步增加复杂度
- • 多任务学习:同时训练多种工具使用能力
- • 强化学习:通过与环境交互优化工具使用策略
工具选择增强
智能工具推荐:
-
- 上下文感知选择:
- • 任务类型分析:根据任务特征推荐合适的工具
- • 历史使用模式:基于用户的历史使用习惯进行推荐
- • 工具组合优化:推荐最优的工具组合方案
-
- 动态适应机制:
- • 实时性能监控:监控工具的执行性能和成功率
- • 自适应调整:根据性能反馈动态调整工具选择策略
- • 负载均衡:在多个相似工具间进行负载分配
工具链编排:
- • 依赖关系管理:处理工具间的依赖关系和执行顺序
- • 并行执行优化:识别可并行执行的工具调用,提高效率
- • 错误恢复机制:在工具链执行失败时提供恢复策略
自我改进范式
反馈驱动优化:
-
- 执行结果分析:
- • 成功率统计:跟踪各种工具的执行成功率
- • 错误模式识别:分析常见的错误类型和原因
- • 性能瓶颈定位:识别影响性能的关键因素
-
- 策略自动调整:
- • 参数优化:基于历史数据优化工具调用参数
- • 选择策略更新:根据反馈调整工具选择策略
- • 新工具集成:自动发现和集成新的有用工具
持续学习机制:
- • 在线学习:在系统运行过程中持续学习和改进
- • 知识蒸馏:将专家系统的知识转移到工具使用模型中
- • 元学习:学习如何快速适应新的工具和任务
动态上下文管理
工作原理:根据对话进展动态调整信息,识别并保留关键信息,丢弃不相关的内容,确保大模型始终能关注到最重要的信息。
实际例子 - 在线医疗咨询:
[流程图]
上下文工程的常见管理策略:
- • **写入:**像做笔记一样保存关键信息,建立AI的"工作记忆"
- • **选择:**精准提取相关内容,避免信息过载
- • **压缩:**在有限空间最大化信息密度,保留精华,去除冗余
- • **隔离:**为不同任务提供专属信息环境,支持多Agent协作
上下文写入
将信息保存在上下文窗口之外,以帮助智能体执行任务,分为:便签处理和记忆处理两种方式。
- • 便签(Scratchpads)
当人类解决问题时,我们会做笔记并记住事情,以便用于未来的相关任务。智能体也在获得这些能力!通过“便签”做笔记是一种在执行任务时持久化信息的方法。其想法是将信息保存在上下文窗口之外,以便智能体可以使用。Anthropic 的多智能体研究员举了一个清晰的例子:
主研究员首先思考方法,并将其计划保存到内存中以持久化上下文,因为如果上下文窗口超过200,000个标记,它将被截断,而保留计划非常重要。
便签可以通过几种不同的方式实现。它可以是一个工具调用,简单地将信息写入文件。它也可以是运行时状态对象中的一个字段,在会话期间持久化。无论哪种情况,便签都允许智能代理保存有用的信息,以帮助它们完成任务。
- • 记忆(Memories)
便签有助于智能体在给定会话(或线程)内解决任务,但有时智能体从多个会话中记住事情也会受益!智能体定期从过去的智能体反馈中合成记忆。
上下文选择
将上下文拉入上下文窗口,以帮助智能体执行任务,分为:便签处理、记忆处理、工具处理、知识处理四种方式。
- • 便签(Scratchpads)
从便签中选择上下文的机制取决于便签的实现方式。如果是工具,则智能体可以通过工具调用来读取它。如果是智能体的运行时状态的一部分,则开发人员可以选择在每一步将状态的哪些部分暴露给智能体。这为在后续回合中将便签上下文暴露给 LLM 提供了细粒度的控制。
- • 记忆(Memories)
智能体需要能够选择与它们正在执行的任务相关的记忆。可能会选择少量样本(情景记忆 episodic memories)作为期望行为的示例,选择指令(程序记忆 procedural memories)来引导行为,或者选择事实(语义记忆 semantic memories)作为任务相关的上下文。
一个挑战是确保选择了相关记忆。一些流行的智能体简单地使用一组文件,这些文件总是被拉入上下文。比如:许多代码智能体使用特定文件来保存指令(“程序”记忆),或者示例(“情景”记忆)。Claude Code 使用 CLAUDE.md,Cursor 和 Windsurf 使用规则文件。
- • 工具(Tools)
智能体选择使用工具时,如果提供过多工具,会导致大模型对使用哪个工具感到困惑。参考论文“ RAG-MCP: Mitigating Prompt Bloat in LLM Tool Selection via Retrieval-Augmented Generation ”中的方法,将 RAG 应用于工具描述,以便选择最相关的工具。
- • 知识(Knowledge)
通过RAG获得智能体的每一步请求需要的上下文知识。
上下文压缩
上下文窗口的有限容量以及与token数量成正比的成本,使得上下文压缩成为一项必不可少的技术。其核心目标是浓缩信息,在不丢失关键信号的前提下,尽可能减少噪声和冗余。
上下文摘要
调用LLM对检索到的信息生成一个简洁的摘要,然后将这个摘要而不是原文放入上下文。这种方法能极大地减少token数量,并能综合多个文档的信息。但其风险在于,摘要过程可能会丢失重要的细节或引入错误的概括。
上下文修剪
上下文修剪是删除不相关或不需要的信息,可以使用 Provence 或类似的函数来精简文档或整个上下文,以此去除多余的内容。
Provence 快速、准确、简单易用,而且体积相对较小。可以用几行代码调用它,如下所示:
from transformers import AutoModel
provence = AutoModel.from_pretrained("naver/provence-reranker-debertav3-v1", trust_remote_code=True)
# Read in a markdown version of the Wikipedia entry for Alameda, CA
withopen('alameda_wiki.md', 'r', encoding='utf-8') as f:
alameda_wiki = f.read()
# Prune the article, given a question
question = 'What are my options for leaving Alameda?'
provence_output = provence.process(question, alameda_wiki)
基于模型的先进压缩技术
- • Gisting: 该技术通过训练,将复杂的指令或上下文压缩成几个特殊的“要点tokens”(gist tokens)。这些tokens可以作为注意力机制的前缀,高效地引导LLM的行为,而无需在每次调用时都重复完整的指令。推理时效率非常高,适用于可被“蒸馏”的重复性任务。
- • In-Context Former (IC-Former): 这是一种创新的、轻量级的压缩方式。它利用交叉注意力机制将长上下文浓缩成“摘要向量”(digest vectors),并且其运行独立于主LLM,因此压缩速度极快,效率极高。
上下文隔离
隔离上下文涉及将其拆分,以帮助智能体执行任务,分为:多智能体、沙箱化、状态隔离三种方式。
- • 多智能体(Multi-agent)
隔离上下文的最流行方法之一是将其拆分到子智能体中,每个子智能体都有特定的工具集、指令和自己的上下文窗口,可以同时探索问题的不同方面。
- • 沙箱化(Sandboxing)
这是一种有效的上下文隔离技术。工具调用在一个独立的“沙箱”环境中执行。执行完毕后,不是将原始的、可能非常冗长的输出直接返回给LLM,而是只将一个简洁的摘要或结构化的元数据(例如,{“status”: “success”, “lines_changed”: 12})注入到上下文中。HuggingFace的CodeAgent是应用此技术的一个重要例子。这种方法既通知了LLM工具执行的结果,又避免了无关细节对模型的干扰。
- • 状态隔离(State Isolation)
这种架构思想是将智能体的内部状态设计成一个结构化的对象(例如,使用 Pydantic 模型定义的类),而不是一个扁平的文本列表。在智能体的每个推理步骤中,只将当前步骤所需的状态字段选择性地注入到提示中。这为开发者提供了对LLM“所见”内容的细粒度控制,类似于为智能体的“RAM”实现了选择性内存访问和保护机制。
上下文组装
动态上下文组装是上下文工程的核心技术之一,它决定了如何在有限的上下文窗口内最优地组织和呈现信息:
- • 上下文组件优先级排序: 基于多维度评估体系进行智能排序,确保最重要和最相关的信息优先进入上下文窗口。
- • 任务相关性:与当前任务的直接关联度,通过语义相似度、主题匹配、关键词重叠等多种方法计算。这个维度确保上下文中的信息能够直接支持当前任务的完成,避免无关信息的干扰。评估时需要考虑任务的具体类型、复杂度和用户意图。
- • 时间新鲜度:信息的时效性权重,对于时间敏感的信息给予更高的优先级。这个维度特别重要于新闻、股价、天气等实时性要求较高的应用场景。时间衰减函数通常采用指数衰减或线性衰减模型,根据信息的类型和应用需求进行调整。
- • 信息质量:来源可靠性和准确性评估,包括信息来源的权威性、内容的准确性、数据的完整性等多个子维度。高质量的信息源(如权威机构、专业期刊、官方文档)会获得更高的权重,而质量存疑的信息则会被降级或过滤。
- • 用户偏好:个性化的信息偏好学习,通过分析用户的历史行为、反馈模式和交互习惯,建立个性化的偏好模型。这种学习是持续的和自适应的,能够随着用户行为的变化而动态调整,提供越来越精准的个性化服务。
- • 信息融合策略: 将多源、多类型的信息有机整合,形成连贯、完整的上下文。
- • 时间序列融合:按时间顺序组织信息,保持事件的时间逻辑和因果关系。这种策略特别适用于需要理解事件发展过程的场景,如新闻报道、项目进展、历史分析等。时间序列融合需要处理时间粒度的差异、时区转换和时间冲突等技术挑战。
- • 重要性权重融合:基于重要性分数的加权组合,根据每个信息片段的重要性分数分配相应的权重和位置。重要性高的信息会被放置在更显著的位置,获得更多的上下文空间。权重计算需要综合考虑多个因素,包括信息的核心程度、稀缺性和影响力。
- • 语义聚类融合:将相似信息进行聚合处理,避免重复和冗余,同时保持信息的完整性。通过语义相似度计算和聚类算法,将表达相同或相似概念的信息组织在一起,形成主题明确的信息块。这种方法既能减少信息冗余,又能增强信息的结构化程度。
- • 多模态信息处理: 将多模态数据进行统一信息表示
- • 文本信息:直接处理。
- • 图像信息:通过视觉模型转换为文本。
- • 音频信息:通过语音识别转换为文本。
- • 视频信息:通过视频理解转换为文本。
- • 结构化数据:转换为自然语言描述。
迭代优化
通过多轮迭代和反馈循环,能够不断提升上下文的质量和适用性:
- • 自我反思与错误纠正:通过内部验证机制发现和纠正错误,这是一个多层次的质量控制过程。系统首先进行内容一致性检查,识别逻辑矛盾和事实错误;然后进行相关性验证,确保所有信息都与当前任务相关;最后进行完整性评估,检查是否遗漏了关键信息。这种自我监督的机制能够在没有外部干预的情况下提高输出质量。
- • 渐进式上下文改进:基于反馈的持续优化过程,系统通过分析用户反馈、任务执行结果和性能指标,识别上下文组装中的薄弱环节。改进过程采用渐进式策略,每次只调整一个或少数几个参数,避免大幅度变化带来的不稳定性。这种方法确保了系统的稳定性和可预测性。
- • 反馈驱动的适应性调整:根据用户反馈动态调整策略,建立用户反馈与系统参数之间的映射关系。系统能够识别不同类型的反馈(正面、负面、中性),并相应地调整上下文组装策略、信息权重分配和检索参数。这种适应性使系统能够更好地满足个性化需求。
效果评估
上下文管理的关键指标
- • 技术指标
- • 上下文准确性 (Context Accuracy): 智能体对所提供上下文的理解和利用是否精确无误。
- • 上下文相关性/精确率 (Context Relevance/Precision): 在检索到的所有上下文中,真正与用户查询相关的部分所占的比例。高精确率意味着信噪比高。
- • 上下文完整性/召回率 (Context Completeness/Recall): 回答用户查询所需的所有关键信息,是否都已成功地从知识库中检索出来。高召回率意味着信息覆盖全面。
- • 上下文时效性 (Context Freshness): 上下文中的信息是否为最新的。这对于处理动态变化知识的系统至关重要。
- • 上下文效率 (Context Efficiency): 上下文窗口中有效信息(对生成答案有贡献的tokens)与总tokens的比率。高效率意味着更低的成本和延迟。
- • 业务指标
- • 用户满意度:用户反馈评分。
- • 任务完成率:成功解决问题的比例。
- • 使用频率:用户的活跃度。
- • 成本效益:投入产出比。
RAG基准测试与评估
RAG基准
- • RAGBench:检索增强生成系统综合评估平台,提供了多维度的RAG系统评估框架,包括检索质量、生成质量、端到端性能等多个评估维度。该基准涵盖了不同领域和复杂度的任务,支持RAG系统的全面性能评估和对比分析。
- • RGB:RAG系统的生成质量基准,专注于评估检索增强生成系统的文本生成质量。RGB提供了标准化的评估协议和指标体系,包括事实准确性、逻辑一致性、语言流畅性等多个维度的评估标准。
- • CRUD:上下文理解和推理数据集,专门设计用于评估系统对复杂上下文的理解和推理能力。该数据集包含需要多步推理、常识应用和逻辑分析的复杂任务,是评估上下文工程系统高级能力的重要基准。
RAG评估框架(RAGAs)
一个RAG系统的失败可能源于检索阶段(未能找到正确信息)或生成阶段(未能正确利用找到的信息),因此需要能够区分这两种失败模式的细粒度评估方法。
为了系统性地解决RAG评估难题,社区开发了专门的评估框架,其中RAGAs(Retrieval-Augmented Generation Assessment)是最具代表性的之一。
RAGAs的创新之处在于,它能够在很大程度上实现无参考答案评估,即无需为每个测试问题都准备一个人工编写的“标准答案”,而是通过巧妙的LLM调用来自动化评估过程,这极大地降低了评估成本,加快了迭代速度。
RAGAs提供了一套针对RAG不同组件的指标:
- • 评估检索组件:
- • 上下文精确率 (Context Precision): 回答“检索到的上下文是信噪比高还是充满噪声?”。它通过让一个LLM判断检索到的文本中有多少句子与原始问题直接相关来计算得分。
- • 上下文召回率 (Context Recall): 回答“我们是否找到了回答问题所需的全部信息?”。它通过分析一个理想的“黄金标准”答案中的每句话,能否在检索到的上下文中找到依据来计算得分。
- • 评估生成组件:
- • 忠实度 (Faithfulness): 回答“模型的回答是否忠实于其所获得的上下文,还是在捏造信息?”。它通过让LLM将生成答案分解为多个独立的陈述,然后逐一验证每个陈述是否能被给定的上下文所支持来计算。
- • 答案相关性 (Answer Relevancy): 回答“生成的答案是否切题?”。它通过让LLM根据生成的答案反向推断出可能的用户问题,然后计算这些推断出的问题与原始问题之间的语义相似度来评估。
- • 端到端评估(需要参考答案):
- • 答案语义相似度 (Answer Semantic Similarity): 计算生成的答案与“黄金标准”答案之间的语义相似度。
- • 答案正确性 (Answer Correctness): 综合语义和事实两个维度,评估生成的答案与“黄金标准”答案的一致性。
工具基准测试与评估
- • 评估维度
- • 功能正确性:
- • 工具选择准确率:评估选择正确工具的比例
- • 参数提取精度:评估从输入中正确提取参数的能力
- • 执行成功率:评估工具调用的成功执行比例
- • 效率指标:
- • 响应时间:从请求到结果返回的时间
- • 资源消耗:CPU、内存、网络等资源的使用情况
- • 并发处理能力:系统同时处理多个请求的能力
- • 标准化基准
- • ToolBench:工具使用能力的综合评估平台
- • API-Bank:大规模API调用数据集
- • ToolLLM:工具增强语言模型的评估框架
- • 实际应用评估
- • 用户满意度:收集用户对工具使用体验的反馈
- • 任务完成质量:评估使用工具完成任务的质量
- • 学习曲线分析:分析系统在新工具上的学习效果
智能体基准测试与评估
- • AgentBench:智能体系统综合评估平台,提供了多任务、多环境的智能体评估框架。该平台支持对智能体的规划能力、执行能力、学习能力和适应能力进行全面评估,涵盖了从简单任务到复杂多步骤任务的各种场景。
- • ToolBench:工具使用能力评估数据集,专门评估智能体使用外部工具和API的能力。该数据集包含了各种类型的工具使用场景,从简单的单工具使用到复杂的多工具协作,全面评估智能体的工具集成和使用能力。
- • WebArena:网络环境中的智能体评估平台,模拟真实的网络环境,评估智能体在复杂网络环境中的导航、信息获取和任务执行能力。该平台提供了丰富的网络场景和任务类型,是评估智能体实际应用能力的重要基准。
AI大模型从0到精通全套学习大礼包
我在一线互联网企业工作十余年里,指导过不少同行后辈。帮助很多人得到了学习和成长。
只要你是真心想学AI大模型,我这份资料就可以无偿共享给你学习。大模型行业确实也需要更多的有志之士加入进来,我也真心希望帮助大家学好这门技术,如果日后有什么学习上的问题,欢迎找我交流,有技术上面的问题,我是很愿意去帮助大家的!
如果你也想通过学大模型技术去帮助就业和转行,可以扫描下方链接👇👇
大模型重磅福利:入门进阶全套104G学习资源包免费分享!
01.从入门到精通的全套视频教程
包含提示词工程、RAG、Agent等技术点
02.AI大模型学习路线图(还有视频解说)
全过程AI大模型学习路线
03.学习电子书籍和技术文档
市面上的大模型书籍确实太多了,这些是我精选出来的
04.大模型面试题目详解
05.这些资料真的有用吗?
这份资料由我和鲁为民博士共同整理,鲁为民博士先后获得了北京清华大学学士和美国加州理工学院博士学位,在包括IEEE Transactions等学术期刊和诸多国际会议上发表了超过50篇学术论文、取得了多项美国和中国发明专利,同时还斩获了吴文俊人工智能科学技术奖。目前我正在和鲁博士共同进行人工智能的研究。
所有的视频由智泊AI老师录制,且资料与智泊AI共享,相互补充。这份学习大礼包应该算是现在最全面的大模型学习资料了。
资料内容涵盖了从入门到进阶的各类视频教程和实战项目,无论你是小白还是有些技术基础的,这份资料都绝对能帮助你提升薪资待遇,转行大模型岗位。
智泊AI始终秉持着“让每个人平等享受到优质教育资源”的育人理念,通过动态追踪大模型开发、数据标注伦理等前沿技术趋势,构建起"前沿课程+智能实训+精准就业"的高效培养体系。
课堂上不光教理论,还带着学员做了十多个真实项目。学员要亲自上手搞数据清洗、模型调优这些硬核操作,把课本知识变成真本事!
如果说你是以下人群中的其中一类,都可以来智泊AI学习人工智能,找到高薪工作,一次小小的“投资”换来的是终身受益!
应届毕业生:无工作经验但想要系统学习AI大模型技术,期待通过实战项目掌握核心技术。
零基础转型:非技术背景但关注AI应用场景,计划通过低代码工具实现“AI+行业”跨界。
业务赋能 突破瓶颈:传统开发者(Java/前端等)学习Transformer架构与LangChain框架,向AI全栈工程师转型。
👉获取方式:
😝有需要的小伙伴,可以保存图片到wx扫描二v码免费领取【保证100%免费】🆓
更多推荐
所有评论(0)