1RAG长什么样
RAG(Retrieval Augmented Generation)是一种大模型Agent框架,一个典型的RAG框架如下,包含2大组件8个步骤
![](https://img.haomeiwen.com/i6301972/e32a0c1cf4d07058.png)
2个组件:
- 向量数据库:利用向量相似度来查询,按向量方式来存储数据。
- LLM:通用大模型
8个步骤:
- ① 提取语料,从文档(PDF、PPT、Excel)、网页,通过大模型或者工具提取语料。
- ② 将语料进行分片,大模型对于Token大小是有限制的,因此需要分片
- ③ 将分片存入向量数据库,向量数据库存储结构可以是图数据库(知识图谱)
- ④ 用户提问,可能需要通过大模型或者工具,将提问中的关键词提取出来,然后把关键词作为向量数据库的输入
- ⑤ 向量数据库根据检索算法进行检索,通过关键词和向量数据库的key进行向量计算
- ⑥ 将向量相似度进行排序,一般会去相似度最高的N个值或1个值
- ⑦ 将检索出的内容放入预置好的提示词模版
- ⑧ 通过提示词输入给LLM,得到大模型回答
这些步骤也就是围绕向量数据库和通用大模型构建,并且每个步骤都可以利用工具或者大模型进行。
2 为什么用RAG
为什么是RAG,我们要通过和大模型微调对比来说明。首先要介绍一下微调。
大模型通过预训练后,会获取到训练领域方面的通用能力,如果想加强某方面的能力,需要通过微调来进行(投喂标记数据),一旦进行微调,大模型某方面的能力就会增强,而某方面的能力就会减弱。
那么我们为什么不用微调而用RAG,或者为什么不用RAG用微调呢,至少有2个简单的因素可进行决策:
- 效率,如果要求高效率,那么用微调,因为微调就是大模型马上返回结果,而RAG则要经过上图很长的调用链来进行。
- 成本,RAG将专业知识交给使用人自己构造存入向量数据库,而自身只使用通用模型。相反微调要投入更多的成本。
网友评论