knowledge-vault/sources/references/AI学习笔记/RAG.md

1.7 KiB
Raw Blame History

RAG

RAG能干啥也这个就不用特意解释就是给整个LLM系统它其实也干不了别的。

  • 加没有的数据,尤其是实时性。

  • 减少幻觉 但是这两项还是很有用的但是大家实际用起来吐槽很多因为没那么好用从难用的角度上说RAG已死没什么毛病。 吐槽的主要原因是经常提出的问题和你的答案库里匹配度不高大多数RAG的基本原理就是余弦距离匹配计算出来的东西余弦距离最高的还真不一定是正确答案。

  • 改进1加BM25做关键字查找作为补充这个问题是查的慢但是多少能提升一些准确性

  • 改进2加知识图谱其实和BM25实现不一样解决问题的思路都一样

  • 改进3把前面这些所有的东西加一起然后rerank个答案的排序。能进一步提升准确性。

一个简单的解决办法是通过预生成QA对来搞这个事情因为问题和答案的相似性永远不可能比问题和问题的相似性高因为余弦的作用机制所以我们把每个chunk通过prompt engineer让GPT预先生成了一堆针对这个chunk提出的问题然后做2级查找结构比如刚才的那个场景我们在生成QA对的时候就有可能被GPT的深层推理推出来其中一个Q是"男职工的陪产假有多少天"

但是它存在一个问题就是由于Q变多和2级查找的原因会让你的查询变慢另外一个也很依仗你生成QA对的运气你要倒霉正好没生成合适的Q那也没办法。 现在解决问题的思路其实我们定义为Agentic RAG 什么叫Agentic RAG就是由Agent驱使的RAG系统。