15 种高级 RAG 技术,值得收藏!
15 种高级 RAG 技术
1. 增加信息密度
利用LLM来处理、清理并标记原始数据,把信息密度提上去。这样一来,下游生成模型需要的上下文窗口就小多了,既省钱又准。说白了,就像备考时把一本教材浓缩成几页思维导图——只保留最关键的知识点,复习起来自然高效。
2. 应用分层索引检索
通过文档摘要构建多层索引,系统会优先检索最相关的摘要部分,再深入到详细文档。这就像先扫一眼书的目录,找到感兴趣的章节,再细读。远远比逐字逐句翻完整本书来得快。
3. 改善检索对称性
为每个文档生成假设的问答对,然后拿这些问答对作为检索的嵌入对象。这样做能让查询和文档之间语义更匹配,减少信息丢失。可以理解为:在提问之前,你已经大致知道可能的答案长什么样,检索时自然更容易命中。
4. 使用LLM去重信息
让LLM对嵌入空间中的数据块进行去重,把重复的内容凝练成更少、更有价值的片段。结果就是响应质量上去了,数据量反倒下来了。
5. 测试和优化分块策略
没有放之四海而皆准的分块方案。要根据具体情况调整数据块大小、重叠率等参数,不断测试优化。这和深度学习里调参是一个道理——得试出适合自己场景的那一套。
6. 优化搜索查询
在对话系统中尤为关键。系统可以利用LLM,根据用户的原始问题自动生成更精准的搜索关键词。好比有个懂搜索引擎的助手,帮你把模糊的提问改写成搜索引擎能理解的最佳形式。
7. 使用假设文档嵌入修正查询与文档的非对称性
在真正开始检索前,先生成一个与用户查询相关的假设文档,用这个文档的嵌入来替代用户查询进行语义搜索。这解决了查询短、文档长这种天然不对称的问题。
8. 实施查询路由或RAG决策模式
当系统对接多个数据源时,让LLM来判断:这次查询应该去哪个数据库?甚至要不要做RAG检索?就像去陌生城市,根据目的地选择最快捷的路线,而不是每次都先绕到中央车站再说。
9. 重新排名以优化搜索结果
检索结果出来后,再用重排模型把最相关的文档排到最前面。做过电商搜索的人都有体会:用户只看前几页,所以排序质量几乎决定了最终体验。
10. 使用上下文压缩优化搜索结果
让LLM对检索到的信息进行压缩或重格式化,只保留生成最终响应所需的关键信息。目标是:要点清晰,废话少。
11. 使用纠正RAG对检索文档打分和过滤
用一个专门训练的模型对RAG返回的结果进行打分,把不相关或错误的文档直接过滤掉。相当于请了个专家帮你做第二轮筛选,只留真正有用的。不是把所有召回的文档都拼进去。
12. 通过链式思维提示屏蔽噪音
利用链式思维提示来提高系统在面对噪音或无关信息时给出正确答案的概率。推理过程本身就自带过滤能力。
13. 让系统具备自我反思能力
通过训练模型生成“反思标记”,让系统自己判断是否需要检索、是否需要修正刚生成的内容。这和人脑的思考方式很像——先想想是不是漏了什么,再确认之前的判断有没有问题,最后才拍板。
14. 通过微调忽略无关上下文
针对特定垂直领域微调模型,让它学会自动忽略无关信息,只聚焦于真正有用的上下文。微调不仅注入领域知识,还能塑造输出风格和约束。
15. 使用自然语言推理让LLM更好地应对无关上下文
用NLI模型来过滤无关上下文,只有问题和LLM生成的答案在语义上被判定为“蕴含”关系时,才会使用检索到的上下文。把质量门槛卡得死死的。
一些简单的结论
- :用GPT-4处理后,信息量大幅压缩。原始HTML有55,000个令牌,去标签后剩下1,500个,再用GPT-4提炼后只剩下330个。
信息密度
- :层次索引检索和假设问题索引显著提升了速度和相关性。
检索效率
- :1,000字符分块+200字符重叠的组合表现最佳,得分4.34。
分块策略
- :有效提高了语义搜索的准确性。
假设文档嵌入
- :能识别出无需检索的查询,避免浪费计算资源。
查询路由和RAG决策模式
- :两者联合使用,显著提升了生成响应的质量与效率。
重新排序和压缩
- :采用T5-Large模型进行评分过滤后,响应准确性明显提高。
评分和过滤
-
- 关于宇宙的好的网名有哪些
- 角色扮演 | 1
- 网名