一篇文搞懂RAG和向量数据库

一、RAG(检索增强生成)

RAG技术的基座是向量数据库向量数据库不仅可以提供对向量化知识的存储,还支持高效的相似性检索,结合Prompt,可有效提升大模型回答的质量。

我们通过一个实例来理解RAG的大致工作原理,以一个智能聊天机器人为例:

假设您是车企高管,您希望为公司创建一个客户支持聊天机器人以回答用户,关于产品规格、故障排除、保修信息等方面的问题。用户提出了一个有关汽车中控显示屏出现故障的问题,客服机器人借助RAG技术准确回答了用户的问题——其原理是?

img

当用户提出问题时,系统先把用户问题转换成计算机能理解的向量。这就像把句子翻译成数学密码,方便后续搜索。随后在向量数据库中进相似性搜索向量数据库中储存的是外部知识库信息,这些信息往往是大模型原生状态下无法知晓的。例如公司的内部产品信息、特定项目的专属资料等。

当系统检索出相关信息后,接着对这些关联信息进行精细排序,把最相关的排前头,然后对排好序的内容剪裁,组合成提示词,就像把找到的资料编排成参考资料包,大模型根据整理好的资料包,结合自身推理能力给出最终回答。

img

二、RAG流程

我们上面简述了RAG的基础工作原理,下面详细介绍RAG的工作流程,以下面流程图为例,我们把RAG简述为4个步骤。

img

总体流程可分为四步;

● 构建外部知识库:对各类格式(如:PDF、Word等)的文档进行切片处理,将切片后的文本块(Text Chunk)利用嵌入模型转为嵌入向量,存储到向量数据库中。

● 检索(Retrieval): 将用户输入的问题利用嵌入模型转换为向量,到向量数据库中进行相似性搜索。

● 增强(Augment):把知识库中检索到的上下文“注入”提示词。

● 生成(Generation):大模型根据输入的上下文信息,生成连贯、准确且信息丰富的回答或文本。

下面针对以上步骤进行逐一拆解分析。

1、 构建外部知识库

在RAG流程中,对知识库文档进行分割是一个至关重要的步骤,文档分割的质量很大程度上影响了检索的准确性,将文本按照固定规则分割成“块”的过程,叫做切片。它能显著改善信息检索和内容生成效果,提供更精准、相关的结果。这些切片将交由**Embedding Model(嵌入模型)**转换为向量。

向量嵌入

向量嵌入是用一组数值表示的数据对象,在多维空间中捕捉文本、图像或音频的语义和关联,可以让机器学习算法能够更轻松地对其进行处理和解读。

比如:I love Tennis.我们先把I love Tennis.转换为几个token,再用Embeddings Model嵌入模型来生成embeddins。比如:单词I就转换为向量嵌入,所谓向量就是一个数字数组。其中每个数值表示对象在特定维度上的特征或属性,这就是I love Tennis.这句话的Vector Embeddings。

img

那么这些Embeddings可以用来干嘛?

因为向量嵌入能够以数值形式捕捉对象间的语义关系,所以我们可以通过向量搜索(也称为相似性搜索)。在向量空间中查找相似对象,这是一个查询向量(Query)。我们在向量空间中寻找与之距离最近的邻居,这些邻居便是与查询向量最相似的对象。

img

相似性搜索例子:

给定三个词Cat、kitty、Apple,将这三个词转换为向量,可以看到,语义相近的Cat、kitty向量值比较接近,而Apple与其他词值相差较大,体现在向量空间中,语义相近的对象距离更近。

img

OpenAI三维可视化示例:

在向量空间中包含了动物、运动员、电影、交通工具、村庄等多个类别的向量,这些不同的类别在向量嵌入空间中形成了五个清晰的簇。相似的对象在向量空间中会靠的更近,而不相似的对象则会分散的更远。在这个例子中,与动物相关的数据点聚集在一起,与运动员相关的数据点也形成了一个独立的聚集区域,那么这些Embeddings存储在哪里呢?它们存储在向量数据库中。

img

什么是向量数据库?

向量数据库是一种专门用于存储和检索高维向量数据的数据库。它们主要用于处理与相似性搜索相关的任务。向量数据库能够存储海量的高维向量,这些向量可以表示数据对象的特征。

向量数据库可以作为AI系统的长期记忆库。向量存储在向量数据库中,这些向量主要是由非结构化数据通过嵌入模型(Embedings Model)转化而来的。非结构化数据,如文本、视频和音频,占全球数据的大约80%,它们通常来源于人类生成的内容,不易以预定义格式存储,这类数据可以通过转换为向量嵌入,有效地存储在向量数据库中。以便进行管理和检索而结构化数据则以表格形式存在,与非结构化数据形成对比,对于这些非结构化数据,可以基于语义相似度进行相似性搜索(Similarity Search)

img

向量数据库和传统数据库有什么区别

传统数据库主要用于存储结构化数据,数据通常以行和列的形式组织,适用于存储明确的数据类型,如整数、字符串、日期等。向量数据库专注于存储和检索高维向量数据,通常用于处理非结构化数据,如图像、文本和声音经过特征提取后的向量表示。向量数据库则重于相似性搜索,它通过语义理解来检索相关结果,不依赖精确匹配来检索相关搜索结果,对拼写错误和同义词有较好的包容性。而传统数据库通过精确匹配关键词来检索数据,适用于结构化数据的高效查询。

向量数据库关系数据库
数据类型存储高维向量数据结构化数据
查询方式相似性搜索精确匹配和范围查询
应用场景AI相关管理系统等
代表数据库Milvus、Elasticsearch等MySQL、Oracle等

2、 检索(Retrieval)

检索本质上是在向量空间中寻找与查询向量最相似的邻居。这一过程,通过计算“查询向量”与数据库中其他向量之间的距离,找到距离最近的邻居,从而返回最相关的对象。

img

例子:

要找到与“Kitten”(幼猫)这个词相似的词,我们可以为这个查询词生成一个向量嵌入,也称为查询向量,并检索其所有最近邻。显然,它跟Cat和Dog靠的更近,离apple、banana等更远。

img

如何衡量向量嵌入的相似性?

怎样计算两个向量之间的距离来确定它们是否相似?

最常用的是余弦相似度

余弦相似度计算的是两个向量在多维空间中投影后夹角的余弦值,这一度量的优势在于,即使两份文档因为长度不同而在欧氏距离上相距甚远,它们之间的夹角可能仍然很小,从而具有较高的余弦相似度
余弦相似度的值范围从-1到1,1表示两个向量完全相同,0表示它们正交(也就是没有相关性),-1表示它们方向相反,接近1的值,则表明向量之间有很高的相似性。

img

假设我们有“狼”、“狗”和“鸭子”的“向量嵌入”。“狗”和“狼”向量之间的夹角比“狗”和“鸭子”向量之间的夹角要小。如果我们计算狗和狼向量之间的余弦相似度,可能会得到一个较高的值(这个值接近1),因为它们是相似的。然而,狗和鸭子之间的余弦相似度可能会较低(这个值更接近0),因为它们代表的是具有不同特征的不同动物。

img

总结一下,夹角越小,余弦值越高,表示相似性越大!

3、增强

ReRanking(重新排序)

例如,系统从向量数据库中检索到了10个相关的候选文本块,但它们的初始排序可能并不是最优的,这10个文本块会被送入重排序模型(re-rangking model),重新进行排序,进而优化它们与用户查询的相关性适配程度。在已完成重新排序的文本块里,筛选出排名靠前的Top_N个文本。在这个例子中,原先排名第7和第10的文本块,经过重新排序后成功进入了TOP5,这些重新排序过的文本,之后将作为“上下文相关信息”(context)发送给大模型。

通过ReRanking系统可以更准确地挑选最合适的片段,从而提升整体响应质量。

img

4、生成(Generation)

大模型根据提示词(Prompt)将前面检索到的知识作为上下文,生成回答。

提示词模版:

例如:“请参照知识库检索信息回答用户问题,如果没办法依据给出的信息来回答的话,请回复‘我不知道’”。知识库检索信息:{{context}}。

img

总结

RAG(检索增强生成) 的核心价值在于通过动态知识检索机制显著提升大模型生成质量,其核心优势体现在三个方面:首先,通过实时检索外部知识库为模型提供最新信息源,将生成结果锚定在事实性数据上,有效减少大模型的幻觉现象;其次,对比传统微调方案具备更强的经济性,能以不足20%的成本实现跨领域知识快速迁移;再者,支持即时的知识更新,省去重复训练的算力消耗。

向量化处理技术作为RAG的基石在其中发挥着关键作用:通过语义编码模型将文本转化为高维向量,构建可扩展的向量数据库(如使用FAISS/HNSW索引),使得十亿级文档可实现亚秒级语义检索。该技术突破不仅实现多路召回(MMR)与重排序的高效协同,还能捕捉深层语义关联,如通过余弦相似度匹配准确识别96%的潜在相关段落,从而确保输入大模型的知识片段兼具相关性与多样性。当前典型应用中,RAG+向量化组合方案已在金融分析、医疗诊断等场景实现准确率15-30%的提升,证实其在高实时性、高准确性需求场景的技术优越性。

如何学习大模型 AI ?

由于新岗位的生产效率,要优于被取代岗位的生产效率,所以实际上整个社会的生产效率是提升的。

但是具体到个人,只能说是:

“最先掌握AI的人,将会比较晚掌握AI的人有竞争优势”。

这句话,放在计算机、互联网、移动互联网的开局时期,都是一样的道理。

我在一线互联网企业工作十余年里,指导过不少同行后辈。帮助很多人得到了学习和成长。

我意识到有很多经验和知识值得分享给大家,也可以通过我们的能力和经验解答大家在人工智能学习中的很多困惑,所以在工作繁忙的情况下还是坚持各种整理和分享。但苦于知识传播途径有限,很多互联网行业朋友无法获得正确的资料得到学习提升,故此将并将重要的AI大模型资料包括AI大模型入门学习思维导图、精品AI大模型学习书籍手册、视频教程、实战学习等录播视频免费分享出来。

这份完整版的大模型 AI 学习资料已经上传优快云,朋友们如果需要可以微信扫描下方优快云官方认证二维码免费领取【保证100%免费

https://img-blog.csdnimg.cn/img_convert/05840567e2912bcdcdda7b15cba33d93.jpeg

在这里插入图片描述

第一阶段(10天):初阶应用

该阶段让大家对大模型 AI有一个最前沿的认识,对大模型 AI 的理解超过 95% 的人,可以在相关讨论时发表高级、不跟风、又接地气的见解,别人只会和 AI 聊天,而你能调教 AI,并能用代码将大模型和业务衔接。

  • 大模型 AI 能干什么?
  • 大模型是怎样获得「智能」的?
  • 用好 AI 的核心心法
  • 大模型应用业务架构
  • 大模型应用技术架构
  • 代码示例:向 GPT-3.5 灌入新知识
  • 提示工程的意义和核心思想
  • Prompt 典型构成
  • 指令调优方法论
  • 思维链和思维树
  • Prompt 攻击和防范

第二阶段(30天):高阶应用

该阶段我们正式进入大模型 AI 进阶实战学习,学会构造私有知识库,扩展 AI 的能力。快速开发一个完整的基于 agent 对话机器人。掌握功能最强的大模型开发框架,抓住最新的技术进展,适合 Python 和 JavaScript 程序员。

  • 为什么要做 RAG
  • 搭建一个简单的 ChatPDF
  • 检索的基础概念
  • 什么是向量表示(Embeddings)
  • 向量数据库与向量检索
  • 基于向量检索的 RAG
  • 搭建 RAG 系统的扩展知识
  • 混合检索与 RAG-Fusion 简介
  • 向量模型本地部署

第三阶段(30天):模型训练

恭喜你,如果学到这里,你基本可以找到一份大模型 AI相关的工作,自己也能训练 GPT 了!通过微调,训练自己的垂直大模型,能独立训练开源多模态大模型,掌握更多技术方案。

到此为止,大概2个月的时间。你已经成为了一名“AI小子”。那么你还想往下探索吗?

  • 为什么要做 RAG
  • 什么是模型
  • 什么是模型训练
  • 求解器 & 损失函数简介
  • 小实验2:手写一个简单的神经网络并训练它
  • 什么是训练/预训练/微调/轻量化微调
  • Transformer结构简介
  • 轻量化微调
  • 实验数据集的构建

第四阶段(20天):商业闭环

对全球大模型从性能、吞吐量、成本等方面有一定的认知,可以在云端和本地等多种环境下部署大模型,找到适合自己的项目/创业方向,做一名被 AI 武装的产品经理。

  • 硬件选型
  • 带你了解全球大模型
  • 使用国产大模型服务
  • 搭建 OpenAI 代理
  • 热身:基于阿里云 PAI 部署 Stable Diffusion
  • 在本地计算机运行大模型
  • 大模型的私有化部署
  • 基于 vLLM 部署大模型
  • 案例:如何优雅地在阿里云私有部署开源大模型
  • 部署一套开源 LLM 项目
  • 内容安全
  • 互联网信息服务算法备案

学习是一个过程,只要学习就会有挑战。天道酬勤,你越努力,就会成为越优秀的自己。

如果你能在15天内完成所有的任务,那你堪称天才。然而,如果你能完成 60-70% 的内容,你就已经开始具备成为一名大模型 AI 的正确特征了。

这份完整版的大模型 AI 学习资料已经上传优快云,朋友们如果需要可以微信扫描下方优快云官方认证二维码免费领取【保证100%免费

https://img-blog.csdnimg.cn/img_convert/05840567e2912bcdcdda7b15cba33d93.jpeg

### RAG模型概述 RAG(Retrieval-Augmented Generation,检索增强生成)是一种结合了外部知识库的大规模语言模型技术。这种技术通过引入外部数据源,在生成过程中动态检索相关信息并将其融入到模型的上下中,从而有效缓解传统大模型可能出现的知识过时或“幻觉”问题[^2]。 具体来说,RAG的核心思想是在生成阶段实时从外部知识库中提取相关的信息片段,并将这些信息与模型自身的参数化知识相结合,以提高生成内容的质量准确性。这种方法不仅能够显著减少模型错误率,还能扩展其对新领域或特定主题的理解能力[^1]。 --- ### RAG的技术实现流程 以下是RAG系统的典型工作流: #### 1. 查询编码器 输入用户的查询请求后,系统会先通过一个预训练好的编码器对其进行处理,得到该查询对应的嵌入表示(embedding)。这个过程可以看作是对自然语言描述的一种数值转换操作[^3]。 ```python query_embedding = query_encoder.encode(query_text) ``` #### 2. 向量数据库检索 接着,上述获得的查询向量会被用来搜索预先构建好的大规模档向量存储——即所谓的向量数据库。这里的目标是从海量的历史资料或者专业知识集合里找到最贴近当前提问的一组候选答案段落。 ```python retrieved_docs = vector_db.search(query_embedding, top_k=5) ``` #### 3. 上下融合与重写Prompt 一旦获取到了若干条高度匹配的结果记录之后,下一步就是把这些额外提供的背景材料附加至原始询问之上形成一个新的提示词序列(prompt),以便让下游的语言生成模块更好地理解任务需求以及所需依据的具体细节[^4]。 ```python new_prompt = f"Given the following context:\n{retrieved_docs}\nAnswer this question: {query_text}" ``` #### 4. 本生成 最后一步便是调用强大的LLM接口完成最终的回答创作活动啦!此时经过前面几步精心准备后的综合型prompts将会被送入指定的服务端API入口处执行推理计算得出结果返回给前端展示出来供用户查看阅读学习参考借鉴等等用途哦😊👍🎉👏✨🌟🌈! ```python response = llm_api(new_prompt) return response ``` --- ### 示例应用案例分析 假设我们正在开发一款医疗健康咨询类聊天机器人服务项目,则可以通过部署一套完整的RAG架构来提升用户体验满意度水平。例如当患者提出关于某种罕见病症状表现特征方面的疑问时,我们的后台程序就会自动前往权威医学期刊论资源池里面快速定位关联度最高的几篇章摘要节选下来作为补充说明素材交给GPT系列这样的高级别人工智能助手进一步加工润色成易于普通人接受理解的形式呈现出来。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值