Agent学习-RAG--上下文压缩与知识库的更新

上下文压缩

当做完知识库检索后,返回来的内容虽然匹配度比较高,但是这并不代表质量就很高可以拿来给agent生成内容了。RAG返回的检索内容通常都会包括以下问题:

  • 相关但不必要的信息(一个文档块里只有一点点内容匹配到,但是由于返回的都是文档块,会返回很多无用的内容)

  • 完全无关的噪声(检索器误召回)

  • 重复信息(返回了多个块但是讲的实则还是同一个概念)

如果我们不处理直接把几百个块拼进 prompt,会导致:

  • 上下文窗口爆炸:即使是模型的上下文窗口有128k 也会被撑满,成本飙升。

  • 注意力稀释:LLM 需要在大量噪声中找信号,容易忽视真正有用的部分。

  • 幻觉风险:噪声中的错误信息可能被 LLM 当成事实。 我们平时在各大平台使用模型时,如果有看深度思考的内容的话,有时候在经过很多轮问答后,会出现一个"正在压缩上下文内容"的标识,这样做的目的是保留检索文档中与查询最相关的信息,一般会用以下这三种方法:

  1. 用一个小模型(比如BERT)给每次Q&A或者每个句子打分,只保留高分的句子,适合在与模型交流、梳理知识点时用

  2. 用一个语言模型(比如 GPT-3.5)直接生成针对查询的总结。

  3. 把检索结果中与当前任务最相关的部分增强比重,这样做比较适合在解决一个个任务时,让模型动态检索需要哪些内容

总的来说,压缩这一步主要是为了避免检索到的文档里,内容参差不齐和噪声多的问题

知识库更新

我们之前提到,HNSW不能每种情况都用的其中一个原因就是因为知识库更新时,节点删除后会留下一个"僵尸节点"污染图结构,维护的成本会很重。

那么如果真的要维护的话(毕竟不管怎么样,维护的核心逻辑不会变),比较常见的是构建双索引并定期重构索引:构建一个主索引一个增量索引,主索引的内容比较全,且更新频率比较慢,每周或每月更新一次;增量索引则负责存储新增或者修改的内容,可以实时更新。然后在查询时合并两个索引的结果再去重,这样就可以保证搜索到原来的内容的同时,还能搜索到更新后的内容。

不过这样做的缺点是增量索引更新时不一定能真的做到实时同步,有延迟,但是实际应用时依然会这么做,理由很简单,只需要把控好更新的时间点,比如放在半夜或用户少的时候,我们有时候看到的停服更新就是这个道理

相关推荐
Rocky Ding*9 分钟前
【三年面试五年模拟】2026-10-26 携程 AI Agent一面面经全解析
论文阅读·人工智能·深度学习·机器学习·aigc·ai-native·ai agent
Zhao-Jichao11 分钟前
AI Prompting for Everyone 课程笔记 - 02 预训练知识 Pretrained knowledge
人工智能
ai_xiaogui14 分钟前
PanelAI项目实战:从AI一键生成到企业级AI基础设施操作系统PPT手搓复盘与架构落地
人工智能·架构·一键部署·panelai·企业级ai基础设施操作系统·ai智能底层操作系统·算力变现
lucas_AI17 分钟前
NPU 算力不再注水:拿量产世界模型实测芯片,700 TOPS 里 98.7% 真能干活
人工智能
CAIE研习社23 分钟前
30岁以后学习AI应用,证书能起到什么作用?
人工智能·学习
Dawson Zhu25 分钟前
【Runtime推理引擎①】Runtime架构设计:从Session到Graph Executor的完整骨架
人工智能·语言模型·架构·aigc·agi
长不大的杨瑞杰30 分钟前
OpenCode v2 LSP 实战:内置语言服务器、自定义配置与诊断闭环
java·人工智能·typescript·lsp·opencode
在所不辞兄31 分钟前
【零基础学智能仿真-68】本地仿真助手的工具调用
人工智能·机器学习
郝学胜-神的一滴33 分钟前
AI 编程智能体 20:技术栈选型与架构落地全攻略
人工智能·python·架构·langchain·1024程序员节·智能体
叼烟扛炮35 分钟前
Linux 学习笔记(四十五):Web 安全基石——Cookie、Session 与 HTTPS 原理解析
linux·前端·网络·笔记·学习·tcp/ip·安全