爆火的本地知识库项目是什么?什么是RAG?本地知识库与大模型的关系 原创
“ 本地知识库就相当于大模型的外部资料库。”
很多人应该都听过本地知识库项目,它是当今人工智能领域爆火的项目之一,那么到底什么是本地知识库?它和大模型有什么关系?怎么构建本地知识库?
01、为什么需要本地知识库?
其实本地知识库和大模型本身没有什么直接关系,可以说它们是两个完全独立的技术。
但因为大模型的幻觉问题和大模型的数据更新迟缓,因此才把知识库技术与大模型技术相结合,产生了大模型知识库技术。
什么是知识库?
知识库简单来说就是资料库,比如国家图书馆收录了我国几千年来的历史书籍和资料;每家企业都会有一些内部数据;各个领域都有自己领域内的数据和资料。
而怎么管理这些资料和数据,就是知识库技术,知识库的核心有两点,一是数据的存储,二是数据的检索。
在互联网技术出现之前,知识库都是以档案室或资料室的形式存在;而计算机技术出现之后,特别是大数据技术出现之后,知识库就可以从线下走到了线上。
而大数据技术也为处理大量复杂数据提供了可能。
大模型技术是当前人工智能领域爆火的技术之一,但它有一个致命的缺陷就是,它的训练数据是有时间限制的,比如chatGPT的数据还是两年前的,它对近两年的情况就什么都不知道了。
解决这个问题其实有多种方式,比如用最新的数据对大模型进行重新训练,或者使用微调技术比如lora,用最新的数据进行微调。
但这两种方式一来成本太高,二来门槛太高,对很多小公司是不可接受的。其次就是,哪怕重新训练出来的大模型,在一些垂直领域的问题上经常会出现“幻觉”问题。
所以,大模型知识库技术就出现了,大模型就类似于一个大学生;它有足够的基础知识,然后在一些没有接触过的领域或者不懂的问题,就去图书馆查资料。
更形象的表达应该是类似于学生期末考试之前,会发考前资料,然后告诉你考试内容在资料里。
这样既解决了大模型的时间限制问题,也解决了成本和门槛问题,也大大减少了幻觉的产生。
02、怎么实现大模型知识库?
实现大模型知识库理论上很简单,就是在问大模型的时候,带上“资料”,大模型根据资料内容进行回答。
但这里需要解决几个问题:
第一,资料的加载问题,随着技术的发展资料的类型也是多种多样,比如有文本文档,图片,视频,声音等等;文本文档还有txt,word,excel等多种格式,还有很多格式化及非格式化数据,因此文档的加载是一个非常麻烦的事情。
第二,资料的存储问题,有了资料之后,需要把资料进行加载然后统一处理,而如果这些资料是给人看,那么只需要把文档按照原本的格式保存即可。但因为大模型只认识向量格式的数据,因此需要把文档转化为向量格式存储,而这就是向量数据库。
第三,数据的检索问题,数据加载到向量数据库之后,应该怎么检索就是一个问题。因为如果资料库比较小问题还不大,如果资料库很庞大,怎么快速的检索,也是一个值得思考的问题。
大模型知识库的使用流程
大模型知识库加载流程如下:
文档加载,通过加载工具把各种格式的文档加载到向量数据库中;其次,需要对文档进行转换拆分,比如按照固定长度进行拆分;然后,通过embedding大模型,把拆分后的文档根据语义转换为向量格式;最后存储到向量数据中。
然后使用的时候,从向量数据库中检索数据。
embedding模型的作用是为了把文档进行有意义的语义转换,否则文档数据直接存储到数据库中就会出现资料错误的问题。
流程如下图所示:
上一步加载完文档之后,就可以进行使用了。
使用的步骤是,用户对大模型进行提问,然后通过embedding把用户提问转化为向量格式,然后根据提问从向量数据库中检索和提问内容有关的资料。如下图8-11步所示。
检索到资料之后,根据用户提问和检索资料,构建prompt template(提示词模板),最后输入到大模型中,获得结果。
整个知识库的流程如下图所示:
本文转载自公众号AI探索时代 作者:DFires