RAG (Retrieval Augmented Generation)简介

1. 背景

目前大模型很多,绝大部分大模型都是通用型大模型,也就是说使用的是标准的数据,比如wikipedia,百度百科,。。。。 中小型企业一般都有自己的知识库,而这些知识库的数据没有在通用型的大模型中被用到或者说训练到。如果中小型企业要适合自己本身业务需要的大模型,当然理想的方法是重新训练数据,而这些数据有其自身业务场景的数据。 现实是自身训练无论是人力成本,数据成本,计算成本都是不可行的。那么一种基于通用大模型,并外挂本地知识库的人工智能方法RAG(Retrieval Augmented Generation)就运用而生。通过这种方法,中小型企业可以用很少的人力,物力,在不改动通用大模型的情况下,就能结合自身需要,为自己的业务场景服务。

2. 框架图和简单介绍

接下来,我们就来介绍RAG。我们先看标准的RAG流程或框架图,然后在下面的文字中介绍两种优化的RAG,我们还会给出处于研究中或朦胧状态的新的RAG的出处或文献参考。本文是基于下面的LLM或RAG课程的总结。【1】【2】【3】。

2.1 入库

那么现在,让我们先看标准的RAG流程或框架图:先是第一步入库,入库就是把原始分本分割,然后每个分割后的短文本,进行分词(chunk),然后向量映射(embedding),最后入库。

RAG 第一步入库

图 1

图1 是RAG的第一步,文本入库。库可以是一般数据库,文件系统都可以,我们这里用向量数据库作为例子。像目前的智能客服机器人,一般就是使用向量数据库。 2.1.1 分本分割 其中,文本分割是因为背景提示窗口大小的限制,一般只有几千个Token。Token是指最小的单词,字符和词组的向量。

2.1.1 分本分割

其中,文本分割是因为背景提示窗口大小的限制,一般只有几千个Token。Token是指最小的单词,字符和词组的向量。

图 2

我们的原始文件很长,但提示窗口一般只容纳几千个Token,所以,要将文本分割,这个就是文本分割。图2中,我们将一篇长文分割成4篇小文。

2.2 RAG 查询

入库成功以后,就是查询,然后就是augmented,augmented在这里是指将查询和向量数据库查出的结果合成作为一个新的提示,然后查询LLM(大语言模型)。

图3

从图3中,我们看出框架图组件有向量数据库(Vector Database)和大模型。向量数据库存储着中小企业的业务场景的本地知识库,用户先从向量数据库,就是本地知识库查询,然后将查询的结果作为大模型的输入,进行查询。

2.2.1 提示查询

当我们开始查询时,我们先查询本地知识库,就是向量数据库,然后向量数据库抽取数据,回复提问。就是图3中的第1,2,3步骤。

2.2.2 合成答复和查询

当向量数据库回复后,我们将查询向量数据库的问题和向量数据库的回答合成一个提示,再查询大语言模型。就是图3中的4,5步骤。

2.2.3 大模型回复/completion

合成后的提示输入到大模型中,得到回复/completion,就完成了一次RAG。

3. 高级/优化的RAG

A. Query expansion

待下文发表

B. Cross-encoding DeRank

待下文发表

4. 处于朦胧时期的高级RAG

图 4

  1. 参考资料

1\]. coursera.org:Generative AI with large language model \[2\]. deepLearning.ai:Advanced Retrieval for AI with Chroma \[3\]. deep learning.ai: Building and Evaluating Advanced RAG Applications \[4\] 领英LLM的一些专栏 沈建军于上海 2024年2月14日周三 发布于CSDN,作者自己搬到掘金作为备份 2)2024年2月15日小修改

相关推荐
新智元1 小时前
65 岁图灵巨头离职创业!LeCun 愤然与小扎决裂,Meta 巨震
人工智能·openai
机器之心1 小时前
全球第二、国内第一!钉钉发布DeepResearch多智能体框架,已在真实企业部署
人工智能·openai
新智元1 小时前
翻译界的 ChatGPT 时刻!Meta 发布新模型,几段示例学会冷门新语言
人工智能·openai
机器之心2 小时前
TypeScript超越Python成GitHub上使用最广语言,AI是主要驱动力
人工智能·openai
mortimer5 小时前
faster-whisper本地转录简单方案
开源·github·openai
机器之心19 小时前
李飞飞最新长文:AI的下一个十年——构建真正具备空间智能的机器
人工智能·openai
机器之心19 小时前
豆包编程模型来了,我们用四个关卡考了考它!
人工智能·openai
新智元1 天前
李飞飞万字长文爆了!定义 AI 下一个十年
人工智能·openai
新智元1 天前
谢赛宁 × 李飞飞 ×LeCun 首次联手!寒武纪 - S「空间超感知」AI 震撼登场
人工智能·openai
郁大锤1 天前
OpenAI responses使用教程(三) ——Responses create python SDK 介绍
人工智能·python·ai·openai