百川RAG知识库-让学习更高效
作者: 兰州大学萃英在线 来源: 兰州大学萃英在线
你是否曾为这些问题所困扰?
在电脑庞杂的硬盘中查找自己曾保存过的作业,明明记得大概的内容,但用名字搜就是找不到,最后发现文件名和内容没多大关系;或者写论文的时候记得有篇文献支持你的某个观点,但光凭文献标题不足以让你从文献管理工具中找到它,只能一篇篇把可能的都再看一遍,花费了大量时间;又或者你忘记了某个知识点,但那个知识点在厚厚的教科书或老师几百页的ppt中,你用记忆中的名字搜,明明你确定就在里面但就是找不到。
现在,这些问题都不再是问题,让人工智能来帮你。
PART.1
什么是RAG知识库?
RAG(Retrieval Augmented Generation,增强式信息检索生成)知识库是基于文本向量化和大语言模型的自然语言处理应用,其目的是克服自然语言模型上下文限制,从海量信息中找到和用户提问最相关的答案,并用大语言模型进行信息的整理,输出准确、高信息量的回答。
相比于传统的搜索技术,其优点在于与语义结合得更为紧密,本地化部署性更高。所谓语义,就是句子的含义。若传统的搜索引擎是基于字符(模式匹配)来查找与查询语句相符的结果,那么增强式信息检索则是基于“意思”来匹配查询语句与结果。同时语言模型可以将零散的信息进行归纳整理,直接将最贴切最通顺的答案送到用户眼前。此外,知识库还可以进行本地部署,帮助用户归纳整理自己电脑上的文件,这是网络搜索引擎比如百度所不具备的。
有了RAG知识库,我们可以用写的作业word、老师的ppt、参考的文献、教科书,甚至网页链接、微信文章,构建自己的知识库,帮助我们更好地整理所学,提高我们地学习和科研效率。
示例一:名词解释
以前,每当写名词解释的作业,我都得在老师那长达几百页的PPT中费力地翻找。
现在将课程ppt全部录入知识库,以问答的形式就能轻松地找到想要的信息,同时给出出处,可以知道对应的内容在哪一章。
示例二:文献阅读
在某些情况下,我们需要在极短的时间内迅速阅读文献,以准确地找到相关的科学问题。将文献录入知识库,即使是在含专业术语的情况下,用中文对英文文章进行总结性的提问,回答也基本正确且完整。
PART.2
RAG知识库原理
RAG知识库分为三个模块。第一个模块是文本拆分模块,对输入的文件进行分块处理,即把长段的文本分为多个短段落,降低定位内容的难度。第二个模块是词嵌入(Embedding)模块,将离散、不定长的文本转化为连续、定长的向量,然后输入向量数据库中进行增删查改等操作。第三个模块是大语言模型模块(LLM),将知识库中的信息归纳整理,格式化输出给用户。
LangChain-chatchat架构图
RAG模型最重要的功能实现源于词嵌入模块。如何评价两个句子语义的相似度?比较相同的字符和语法是一个好方法,但许多场景并不适用,比如说“我是一个开心的人”和“我是一条开心的狗”,这两个句子只差了两个字,语法一致,语气也相似,但意义则完全不同。又或者“你说的对”和“啊对对对,你说的对”,后者只是在前者的基础上加了几个相同意义的字,但表达的意思完全相反。从以上两个例子中可以看出,我们不仅要考虑到每个字的意思,更要考虑到每个字之间的关系,这就是大模型中常提到的“注意力”。
词嵌入模型将不定长的文本,转换为定长的向量。并且使得语义相近的文本,转换的向量之间的距离也相近。也就是说,用向量的相似度衡量句子的相似度。常用的相似度包括余弦相似度、欧式距离等。然而,词嵌入模型不是万能的,而是受限于训练的文本和模型结构,一些模型可能无法处理隐喻的情况,比如上文所提到的“你说的对”和“啊对对对,你说的对”。
Bert模型输入表示
这三个模块都会影响RAG知识库的性能。对于文本拆分模块,最为常用的方法是定长拆分,每隔一段就将文本做一次切分,这种方法的优点是简单好用、速度快,同时性能足以满足大部分场景的需要。此外还有语义分割法、语法分割法等,其中语义分割法速度最慢,但效果最好。对于词嵌入模块,最重要的性能是模型的语义相关性和重排序性能,在选择模型时,可以参考MTEB榜单,根据应用需要选择模型。一般来讲,综合排名靠前的模型均能满足需求。最后对于大语言模型,能力越强的模型总结能力也就越强。
PART.3
如何选择RAG知识库产品
目前,人工智能应用尚处快速发展阶段,市面上尚无非常成熟的知识库应用。目前,RAG知识库应用可以分为两种,一种是企业整合好的产品,用户只需要到网站上登陆即可使用,比如FastGPT。其优点是使用非常便捷简单,基本上只是在传统竞品的基础上做了体验的升级;缺点是价格高昂,需要联网使用。另一种是开源可本地部署的项目,用户将软件安装到自己的电脑上,可以调用云端API,也可以完全在本地完成计算,比如LangChain-chatchat。其优点是无需联网使用,速度和安全性有保证;缺点是需要一定的动手能力,部分应用对电脑的配置要求较高。最后也可以自己写一个,对于有兴趣了解人工智能应用的同学,RAG知识库是一个很好的”hello world”(初次练手)项目,实现起来并不困难。
每一次技术迭代都是对生产力的提高,近年来,“AI+”逐步走入我们的视野。“AI+”的本质,就是利用新的工具,更快更好地解决现有和新出现的问题,学习和科研当然也可以尝试使用新方法和新工具。但无论是传统的学习方法,笔记、思维导图,还是新颖的知识库,本质都是学习的辅助工具,只有适合自己的才是最好的。
最后,小萃祝大家,学业有成,一展宏图!
图片来源:
Langchain-Chatchat: 基于 Langchain 与 ChatGLM 等语言模型的本地知识库问答,fork from github:https://github.com/chatchat-space/Langchain-Chatchat (gitee.com)
[1810.04805] BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding (arxiv.org)
供稿 | 百川网络文化工作室
制作 | 梁家豪 王保洋
编辑 | 梁家豪
校对 | 李祥龙 梁家豪 姚亚薇
张庆庆 罗子越 覃佳乐
审核 | 关程睿 第五琪琪
主编 | 朱佳君
向下滑动查看
更多AI工具,参考Github-AiBard123,国内AiBard123