Part.1
欢迎来到我们的新开的专题,通俗易懂说AI之RAG,在开始这篇文章的正文之前还是需要先简单的讲述下为什么会有这个系列?主要的原因有以下:(1)智能体在25年开始变得越发的火爆;(2)各种大模型日新月异;(3)大模型相关的技术也越来越多的进入人们的视野中,其中当仁不让的就是RAG;
RAG这个概念在前几年大模型刚出来的时候,就有各种各样的开源工具帮助大家可以在本地快速的实现自己的系统,比如很经典的客服机器人;
作为大模型来说,在发布的那一刻就代表了这个模型已经学习到的知识有一个截止时间,比如ChatGPT的知识截止时间是2021年9月份
对于ChatGPT的来说,问他巴黎奥运会的的开幕时间,他肯定就会回答错;所以引出了大模型的一个弊端,就是发布的时间赶不上实际生活的热点,跟现实一定存在一些时间差,这对于需要用大模型帮我们解决各类问题的我们来说,这是不可接受的!
Part.2
看到这里我相信你也产生了第一个疑问,那如何来解决这个问题呢?
解决方案其实小白也可以想到,最简单的解决方案可能有:不断的发布大模型,追赶大模型跟现实时间的,但这个是不现实的;因为大模型的训练成本非常高,根据百度AI给出来的答案需要数百万到数亿美元不等;
Part.3
那RAG到底是什么呢?根据维基百科的解释:
RAG全称Retrieval-augmented generation,检索增强生成技术;赋予大模型信息检索的能力;大模型可以根据一组文件回复用户的查询;检索增强生成技术促使大模型能够使用特定领域或者更新后的数据;
https://zh.wikipedia.org/wiki/檢索增強生成
其中特定领域可以是企业的内部资产、行业资料等;更新后的数据更偏向于信息的迭代更新;
那大模型还可以给我们解决其他问题吗?
答案一定是肯定的;
大模型概括的来说由很多的神经网络构成,神经网络异常复杂,那势必就会造成大模型训练过程是个黑盒,大模型发布之后也一样是一个黑盒,这里说的是哪些方面的黑盒呢?主要是大模型根据用户询问生成回复的过程是黑盒的,比如下图
1、大模型的知识更新问题;
2、大模型回复的不可解释性,RAG具有更强的解释性,现在的大模型基本都给予transformer的解码器结构,因此存在对大模型回复信息的不可解释性问题;
3、大模型的隐私问题;
4、大模型训练成本,庞大的参数量意味着更大的训练成本
Part.4
RAG系统一般包含3个部分,分别是数据准备,数据召回,答案生成;
数据准备也比较好理解,说直白点就是需要准备相关的数据源信息(Word文档、PDF文档、代码、其他材料),在这个过程中一般涉及到识别数据源,提取数据,数据清洗以及数据存储到数据库中,因为对于人来说,他可能是不同类型的文档,但是对于机器来说,需要把对应的数据存储到数据库中,便于大模型检索;
但大模型对于所有类型的数据也不是都一视同仁,还是需要根据不同类型的数据源选择合适的数据库,不同的数据库对于数据的提取、清洗、存储都不尽相同;
比如faiss向量数据库涉及到为数据源创建向量并存储;如果是es涉及到把数据索引到搜索引擎;如果是neo4j则涉及到为数据创建点和边,并存储到图数据库中;图数据库以节点和边存储数据,适用于文档以及表格;
在大模型中有一个之前可能大家接触比较少的数据库类型,比如上文提到的faiss向量数据库,它是由Meta公司研发开源的;
向量数据库适合存储非结构化数据,比如图片,音频,文本等,根据语义的相似性搜索数据,向量模型用于给数据生成向量进行存储,类似语义的数据向量数据比较靠近;
由于上下文长度的原因,文档不可能是一整个文档的形式进行向量化;数据在存储的时候会被切成更小的块进行存储,比如文本被切成多个段,代码被切换成函数;
当向量数据库收到用户的查询时,查询也会被转换成向量数据,用于检索向量数据库中类似语义(类似位置)的数据,向量数据库会返回与查询向量最详尽的候选数据。
搜索引擎在RAG的检索阶段使用搜索引擎检索跟用户查询最相关的文档,可以把多个类型的数据库结合起来返回更实用的数据。
数据召回最重要的作用就是返回与用户查询相关的数据,一般来说召回的数据量越多,召回的正确率越高,但同样因为上下文长度的限制,召回的数据量越多也同时会面临模型上下文长度问题;
需要特别注意如果你采用chatgpt早期4096个token的大模型上下文长度,假设你的一个数据召回是2048 那就只能召回两个数据块,所以需要考虑如何在两个召回的数据块中做到召回率最优;这个在后续章节会展开描述一些相关的技术
一旦检索到用户问题相关的数据片段,RAG系统就把数据片段以及用户提问一起传给大模型,大模型给用户生成输出,用户就可以看到大模型结合RAG技术给他带来的变化;
同时在大模型的选择上,推荐选择幻觉比较少的模型,比如Qwen-chat;
Part.5
综合RAG为我们解决的问题,总结来说,RAG技术的主要优点在于
1、生成高质量的回答,降低模型的幻觉
2、可扩展性更强,只要用户给了最新的文档,RAG系统就可以自动更新知识
3、可解释性更好,由于RAG的特性,我们可以从大模型给的回复中知道他是从哪些地方提取这些信息的
4、成本友好,主要企业有用一定数据量的数据可以使用RAG代替给大模型作微调,让大模型可以在某一个领域更好地完成任务,成本更低效果更好
5、数据隐私好,本地部署的大模型加上RAG的方案更好的消除了客户对于数据泄露的担忧
但一个技术有优点同样也会存在缺点,相关的内容欢迎收到【通俗易懂说AI之RAG系列】,码字不易,请“赞”加“在看”,谢谢!
本文由于笔者知识存储有限,如果错误请联系,我会及时修改。
原文始发于微信公众号(Kali渗透测试教程):【通俗易懂说AI之RAG系列】RAG基础概念科普
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论