11.RAG知识库的原理

目录

一.先看一个问题

1.痛点:大模型无法回答私有知识相关的问题

2.解决方案:搭建一个RAG知识库

二.什么是RAG知识库?

1.定义

2.RAG知识库的工作原理

①没挂RAG知识库的场景

②外挂RAG知识库的场景

3.我们应该关注哪些点?

三.向量数据库

1.为什么学习向量数据库?

2.向量数据库有哪些?

3.什么是向量?(高中知识,看看就行)

4.余弦相似度(要求不高,记住结论即可)

结论:余弦相似度越大,说明向量方向越接近

5.由二维向量,拓展到N维向量(道理相同,一点都不难)

四.如何使用向量数据库,存储数据?

1.流程图

2.举例

五.如何从向量数据库中,检索出和用户问题相关的文本片段?

1.流程图

2.举例

总结


一.先看一个问题

1.痛点:大模型无法回答私有知识相关的问题

当我们问大模型一些公司私有的东西,它并不能做出回答,尽管可以开放大模型的联网功能,查询网络上的相关信息,但是我所问的是公司内部的私有知识,网上也没有相关信息,所以大模型根本不可能回答出来这个问题。

2.解决方案:搭建一个RAG知识库

我们可以搜集这些私有的知识(比如公司手册、管理手册、内部文件等等内部资源),然后把这些知识存到一个地方(RAG知识库),从而供大模型后续参考,这样大模型就能回答公司的内部知识了。

二.什么是RAG知识库?

1.定义

RAG知识库(Retrieval-Augmented Generation Knowledge Base) 是一种结合了信息检索大语言模型生成能力 的智能系统。它的核心目标是让AI在回答问题时,能够从指定的、可靠的资料库中获取信息,而不是仅仅依赖训练时学到的通用知识,从而生成更准确、可靠且可追溯的答案

2.RAG知识库的工作原理

①没挂RAG知识库的场景

没挂RAG知识库时,我们只能问大模型一些通用的问题,而无法获取未公开的知识(比如公司内部架构、管理制度、内部系统使用方法等等)。因为你们公司内部的知识,大模型不可能知道,所以根本回答不了。

②外挂RAG知识库的场景

如下图,当用户问一些未公开的内部问题时,Java后端会先根据问题,去RAG知识库找响应的知识片段,然后java后端带着这些知识片段,再调用大模型,这样一来,大模型就知道未公开的知识了,也就可以回答你问的未公开的内部问题了。

3.我们应该关注哪些点?

如下图,灰色部分,langchain4j会替我们解决,我们无需关心。

我们要关注的就红圈的两点:

①RAG知识库如何搭建?

②如何根据用户的提问,从RAG知识库检索出相关的知识片段?

这两点后续文章会详细讲解。

三.向量数据库

1.为什么学习向量数据库?

我们可以使用向量数据库,来实现RAG知识库这个需求。

2.向量数据库有哪些?

3.什么是向量?(高中知识,看看就行)

在数学中,表示大小和方向的量。

4.余弦相似度(要求不高,记住结论即可)

如下图,θ是两个向量的夹角,那cosθ就是所谓的余弦相似度。

下面取两个极限情况:

①当两个向量重合,夹角为0,余弦相似度最大,为1

②当两个向量垂直,夹角为90°,余弦相似度最小,为0

结论:余弦相似度越大,说明向量方向越接近

5.由二维向量,拓展到N维向量(道理相同,一点都不难)

由于我们RAG知识库,存的知识片段,抽象成一个向量时,肯定不是二维的,而是几百~几千个维度的,但是无论多少个维度,道理都是相同的。如下:

四.如何使用向量数据库,存储数据?

1.流程图

①将公司内部的未公开的知识,存储到文档(Document)中

②借助文本分割器(Text Splitter),将文档分割成一个个小的文本片段(知识片段)

③借助于向量模型(专门用于将文本进行向量化的大模型),将文本片段(知识片段)转换成向量

④将每一个向量及其对应的文本片段(知识片段),存到向量数据库即可。

2.举例

五.如何从向量数据库中,检索出和用户问题相关的文本片段?

1.流程图

①将用户问的问题,使用向量模型,转化成向量

②拿着这个向量,和向量数据库中存储的向量进行比对,计算它们之间的余弦相似度

③把满足要求(比如余弦相似度必须大于0.6)的向量拿出来,得到对应的文本片段(知识片段)

④将用户的问题、检索出的文本片段(知识片段)结合,一块发给大模型,获取答案

2.举例

总结

以上就是本篇文章的全部内容,喜欢的话可以留个免费的关注呦~~~

相关推荐
小毅&Nora3 天前
【后端】【Redis】① Redis8向量新特性:从零开始构建你的智能搜索系统
redis·向量
weisian1516 天前
进阶篇-4-数学篇-3--深度解析AI中的向量概念:从生活到代码,一文吃透核心逻辑
人工智能·python·生活·向量
weisian1517 天前
进阶篇-3-数学篇-2--从线性代数到AI:向量、矩阵、张量的底层逻辑
人工智能·线性代数·矩阵·向量·张量
北京地铁1号线9 天前
2.3 相似度算法详解:Cosine Similarity 与 Euclidean Distance
算法·余弦相似度
Java后端的Ai之路10 天前
【AI大模型开发】-基于 Word2Vec 的中文古典小说词向量分析实战
人工智能·embedding·向量·word2vec·ai大模型开发
中草药z13 天前
【嵌入模型】概念、应用与两大 AI 开源社区(Hugging Face / 魔塔)
人工智能·算法·机器学习·数据集·向量·嵌入模型
小毅&Nora15 天前
【向量数据库】Milvus 向量数据库 ④ 向量索引的存储结构与查询执行模型:从 Faiss 到 Knowhere 的源码解剖
向量·milvus·faiss
程序员黄老师17 天前
主流向量数据库全面解析
数据库·大模型·向量·rag
乐嘉明1 个月前
自动推荐策略系统搭建指南
ai·向量