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

上下文压缩

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

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

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

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

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

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

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

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

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

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

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

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

知识库更新

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

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

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

相关推荐
三更两点2 分钟前
AI拉呱-2026年06月10日AI技术洞察简报
人工智能
jinglong.zha3 分钟前
LScript-从零基础到商业变现的AI自动化学习平台
运维·学习·自动化
领麦微红外4 分钟前
ATT01-从出风口测温到感知头发温度
人工智能·智能家居
土星云SaturnCloud5 分钟前
边缘计算赋能智慧工地:从“看得见“到“管得住“的智能化升级
服务器·人工智能·ai·边缘计算
UXbot9 分钟前
AI网页开发工具能替代工具吗?5大平台对比
前端·人工智能·低代码·ui·原型模式·web app
mit6.8249 分钟前
Ralph Loops: 用简单循环替代复杂AI工作流
人工智能
DXM052113 分钟前
第9期|从机器学习到深度学习:AI遥感解译的进化逻辑
人工智能·算法·计算机视觉
木申21 分钟前
我用瑞幸 CLI 点了一杯咖啡,踩了 3 个坑
人工智能·trae
闪闪发亮的小星星23 分钟前
STK_00 学习方案路线
学习
用户51914958484523 分钟前
CVE-2025-0282 Ivanti 远程命令执行漏洞利用工具
人工智能·aigc