1.7 KiB
1.7 KiB
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系统。