什么是RAG
-
知识局限性:大模型的知识来源于训练数据,而这些数据主要来自于互联网上已经公开的资源,对于一些实时性的或者非公开的,由于大模型没有获取到相关数据,这部分知识也就无法被掌握。
-
数据安全性:为了使得大模型能够具备相应的知识,就需要将数据纳入到训练集进行训练。然而,对于企业来说,数据的安全性至关重要,任何形式的数据泄露都可能对企业构成致命的威胁。
-
大模型幻觉:由于大模型是基于概率统计进行构建的,其输出本质上是一系列数值运算。因此,有时会出现模型“一本正经地胡说八道”的情况,尤其是在大模型不具备的知识或不擅长的场景中。
检索增强生成(Retrieval Augmented Generation, RAG),引入外部知识,使大模型能够生成准确且符合上下文的答案,同时能够减少模型幻觉的出现。
1概览:一个完整的RAG链路
从上图可以看到,大模型接收到用户query后,RAG会先进行检索。
检索(Retrieval):检索 Chunks 和 query 一并输入到大模型,进而回答用户的问题。
Chunks:query和离线文档经过parser和splitter(orc)向量化(或称索引)——>到Datebase然后和query一起进行Retrieval——>检索到相关的Chunks
第二次Retrieval——>输入query和相关的Chunks然后得到reanked的Chunks输入到LLM后得到Answer
query:在第一次Retrieval和第二次Retrieval的时候输入
为了完成检索,需要离线将文档(ppt、word、pdf等)经过解析、切割甚至OCR转写,然后进行向量化存入数据库中。 接下来,我们将分别介绍离线计算和在线计算流程。
1.1离线计算流程
文件(pdf、word、ppt等,这些 文档
documents)——解析parser——>切割为较短的Chunk——清洗和去重。
- 知识库中知识的数量和质量决定了RAG的效果,因此这是非常关键且必不可少的环节。