前言
RAG 全称 Retrieval-Augmented Generation,翻译成中文是检索增强生成。这一年多,在大模型应用领域,RAG频繁地出现。为什么它这么热?需要怎么理解看待RAG?
1、为什么需要RAG
虽然大模型有丰富的知识和理解生成能力,但它的信息量并不够,比如企业的私域信息,它并不知道,有些最新的信息出现在训练完成之后,它也不掌握。如果要针对这些信息提问,就需要把相关的信息也一并交给它,让它结合内容回答。有点命题作文的意思。
这里边有些场景比较简单,比如针对论文,可以把问题和论文一起送给大模型,然后大模型根据论文的内容,把问题的答案输出出来,比较完整。
但实际上,私域的信息量非常大,远超过一次能够提交给模型的内容,这时候,就需要一种技术,把跟问题相关的内容准确的提取出来,送给模型。可以说,内容提取的质量,直接决定大模型的回答质量。
2、向量搜索
向量搜索(Vector Search)也叫矢量搜索。它是用机器学习的方法来捕获非结构化数据(包括文本和图像)的含义和上下文,并将其转换为数字化表示形式。向量搜索常用于语义搜索,通过利用相似最近邻 (ANN) 算法来找到相似数据。与传统的关键字搜索相比,向量搜索产生的结果相关度更高,执行速度也更快。
简单地说,向量搜索有两个关键动作,一个是向量化,就是把一段文本,或图形音频等,通过某种编码格式,变成一个矩阵,这个编码动作,叫Embedding(嵌入)。第二个是搜索,一般用相似最近邻(ANN)算法,来找到距离最近的结果。这个距离最近的结果,就是含义最相近的结果。向量搜索也叫语义搜索。
以上动作,理解过程并记住名字就可以了。为什么距离最近含义就相似,让数学家和算法专家去搞吧,一般人整不明白这个,知道怎么回事就行了。
注:Embedding非常复杂,它不是一个简单的算法,而是用专门的Embedding模型。
下图就是一个比较简单的过程。
3、基于向量搜索的RAG架构
以下是一个最简单的向量搜索RAG架构示意图:
该架构关键有两个:
- 预处理文档。将文档的文本抽取出来(最初的大模型只能处理文本,所以只抽文本),分段,然后针对每一段作embedding存入向量数据库。
- 查询时,先把问题作Embedding,然后在向量数据库里把和问题最相关的内容(一般取Top K)取出来,将这些内容和原始问题结合,生成新的Prompt送给大模型,由大模型生成答案。
下面这个图更详细,包括了搜索的结果和重新生成prompt的例子
RAG方案,解决了大模型数据不足的问题,而处理数据是个核心需求,所以,备受重视。
实际发展中,针对文档的处理一直在进化。最初的分段(chunks)简单粗暴,就是把文本按长度截取,有些带格式的文档,比如word,pdf,分栏的时候,直接物理抽取,有时候内容就不伦不类,当然,基于这样的分段,大模型的回答也会比较乱。后来,针对各种文档抽取,图形结合的能力不断进步,效果也进步迅速。
4、图搜索RAG
向量搜索的方法一直在进步,但问题也一直在。虽然向量搜索技术能找到相似度很好的,但它无法进一步地理解私有数据中各个有效信息的关系,从而构成自己的知识网络,因此难以提供综合性的见解,也无法全面理解多个私有文献甚至单个文档的全部内容,因此往往无法回答抽象或总结性问题,自然也无法给大模型提供足够好的信息。
当前解决这些问题的办法,是知识图谱。
知识图谱:是结构化的语义知识库,用于描述物理世界中的概念及其相互关系。
知识图谱通过对错综复杂的文档的数据进行有效的加工、处理、整合,转化为简单、清晰的“实体,关系,实体”的三元组,最后聚合大量知识,从而实现知识的快速响应和推理。
原理表达是这样的:
一个具体的例子:
知识图谱已经发展了一些年,如何用于RAG?
微软最近开源了一个新的基于知识图谱构建的 RAG 系统——GraphRAG。Graphrag 框架旨在利用大型语言模型从非结构化文本中提取结构化数据,进而构建具有标签的知识图谱,以支持数据集问题生成、摘要问答等多种应用场景。GraphRAG 的一大特色是利用图机器学习算法针对数据集进行语义聚合和层次化分析。(详见论文1)
它的主要过程是这样的:
相对向量搜索,它在分段后,加入了元素和关系的一系列处理,形成答案,这个答案,已经不是原始内容,而是经过图搜索以后总结内容。
基于图搜索的RAG架构与向量搜索非常相似,只是搜索过程变了一下。
目前看,基于图搜索的RAG有点火,但后续进展,还需要观察。
5、更复杂一点的RAG
上边是一些RAG的简单的原理性的图,比较简单直接。这种简单架构,称之为Naive RAG(朴素RAG,天真RAG?)。实际上,RAG针对不同问题,有不同的解决方案,有一些是复杂一些的,一般叫高级RAG(Advanced RAG),比如下边这个:
它把查询做了更复杂的路由处理,以期取得更好的效果。
下边这个,把向量搜索和图搜索结合在一起:
下图中间的Advaned RAG,进行了检索后处理。检索到相关上下文后,将其与查询有效集成至关重要。后检索过程中的主要方法包括 rerank chunks 和 context compressing。重新对检索到的信息进行排名,将最相关的内容重新定位到提示的边缘是一项关键策略。
RAG 的三种范式之间的比较。(左)Naive RAG 主要由三个部分组成:索引、检索和生成。(中)Advanced RAG 围绕 pre-retrieval 和 post-retrieval 提出了多种优化策略,其过程类似于 Naive RAG,仍然遵循链状结构。(右)模块化 RAG 继承并发展自以前的范式,总体上表现出更大的灵活性。(详见论文2)
6、总结
RAG解决了一个大模型无法实时获取外部数据的问题,是一个非常大的进步。
但RAG方案真的很好吗?我觉得不够好。
打个比方,这个外部查询数据再送给大模型的方法,有点类似于一个教授在写论文,但它依靠的输入是一个小学生查的资料,并且这个资料它还必须用。你说教授能写出好论文?
但当前也没有更好的方案来解决这个问题。所以,在没有更好的方案之前,它仍然是最好的。
如何系统的去学习大模型LLM ?
大模型时代,火爆出圈的LLM大模型让程序员们开始重新评估自己的本领。 “AI会取代那些行业
?”“谁的饭碗又将不保了?
”等问题热议不断。
事实上,抢你饭碗的不是AI,而是会利用AI的人。
继科大讯飞、阿里、华为
等巨头公司发布AI产品后,很多中小企业也陆续进场!超高年薪,挖掘AI大模型人才! 如今大厂老板们,也更倾向于会AI的人,普通程序员,还有应对的机会吗?
与其焦虑……
不如成为「掌握AI工具的技术人
」,毕竟AI时代,谁先尝试,谁就能占得先机!
但是LLM相关的内容很多,现在网上的老课程老教材关于LLM又太少。所以现在小白入门就只能靠自学,学习成本和门槛很高。
针对所有自学遇到困难的同学们,我帮大家系统梳理大模型学习脉络,将这份 LLM大模型资料
分享出来:包括LLM大模型书籍、640套大模型行业报告、LLM大模型学习视频、LLM大模型学习路线、开源大模型学习教程
等, 😝有需要的小伙伴,可以 扫描下方二维码领取🆓↓↓↓
一、LLM大模型经典书籍
AI大模型已经成为了当今科技领域的一大热点,那以下这些大模型书籍就是非常不错的学习资源。
二、640套LLM大模型报告合集
这套包含640份报告的合集,涵盖了大模型的理论研究、技术实现、行业应用等多个方面。无论您是科研人员、工程师,还是对AI大模型感兴趣的爱好者,这套报告合集都将为您提供宝贵的信息和启示。(几乎涵盖所有行业)
三、LLM大模型系列视频教程
四、LLM大模型开源教程(LLaLA/Meta/chatglm/chatgpt)
LLM大模型学习路线 ↓
阶段1:AI大模型时代的基础理解
-
目标:了解AI大模型的基本概念、发展历程和核心原理。
-
内容:
- L1.1 人工智能简述与大模型起源
- L1.2 大模型与通用人工智能
- L1.3 GPT模型的发展历程
- L1.4 模型工程
- L1.4.1 知识大模型
- L1.4.2 生产大模型
- L1.4.3 模型工程方法论
- L1.4.4 模型工程实践
- L1.5 GPT应用案例
阶段2:AI大模型API应用开发工程
-
目标:掌握AI大模型API的使用和开发,以及相关的编程技能。
-
内容:
- L2.1 API接口
- L2.1.1 OpenAI API接口
- L2.1.2 Python接口接入
- L2.1.3 BOT工具类框架
- L2.1.4 代码示例
- L2.2 Prompt框架
- L2.3 流水线工程
- L2.4 总结与展望
阶段3:AI大模型应用架构实践
-
目标:深入理解AI大模型的应用架构,并能够进行私有化部署。
-
内容:
- L3.1 Agent模型框架
- L3.2 MetaGPT
- L3.3 ChatGLM
- L3.4 LLAMA
- L3.5 其他大模型介绍
阶段4:AI大模型私有化部署
-
目标:掌握多种AI大模型的私有化部署,包括多模态和特定领域模型。
-
内容:
- L4.1 模型私有化部署概述
- L4.2 模型私有化部署的关键技术
- L4.3 模型私有化部署的实施步骤
- L4.4 模型私有化部署的应用场景
这份 LLM大模型资料
包括LLM大模型书籍、640套大模型行业报告、LLM大模型学习视频、LLM大模型学习路线、开源大模型学习教程
等, 😝有需要的小伙伴,可以 扫描下方二维码领取🆓↓↓↓