前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >你知道RAG?它是如何高效检索向量的?

你知道RAG?它是如何高效检索向量的?

原创
作者头像
潋湄
发布于 2025-03-30 09:50:10
发布于 2025-03-30 09:50:10
2060
举报

在历时一个半月的笔试面试后,我又回来分享知识了,后续应该只能一周一更了,要去公司当牛马了,不过好在结果顺利,收获了三个offer,已经打算去鹅厂实习了

好了,言归正传,我们今天来介绍一下RAG

RAG检索增强生成

RAG(Retrieval-Augmented Generation,检索增强生成),其核心模块在于检索生成,其实其本质还是一个知识库系统,只不过是通过向量聚合手段,提升了检索的高效与正确性:

RAG工作大致流程
RAG工作大致流程

RAG通过将收集的多源数据分割为文本块,使用嵌入模型将文本转化为多维向量,用户在进行查询时,实际输入是按照向量来组织,通过向量之间的相似度来查找匹配度最高的知识片段

而这里面要解决的核心问题是,如何从庞大的向量数据库中找到目标文本对应相似向量,这里不仅仅要考虑到搜索速度,还需要考虑内存占用开销:

向量数据库搜索算法

余弦相似度

思想很简单,就是通过依次遍历计算查找文本向量与当前向量的余弦相似度,最大的对应向量即为目标向量:

余弦相似度算法
余弦相似度算法

优点:查询向量肯定为最匹配向量

缺点:需要依次与每个向量比较,时间复杂度太高

K-means聚类算法

按照数据库向量的某种特征,对彼此相近的向量组进行划分,每次要查询某个相似向量时,先查找与之最匹配的一个或者几个聚类中心点,之后查找对应聚类组范围的向量即可:

聚类中心点是指一个聚类组中,与所有节点距离范围最均衡的点

K-meas聚类算法
K-meas聚类算法

好处:查询时只需要查询对应聚类组的向量即可

坏处:需要维护聚类中心点与聚类组范围里每个向量的映射表,在多维空间下,映射表内存占用极高

PQ压缩聚类检索算法

针对于聚类算法带来的映射表开销,PQ检索算法优化了这一点,它解决的核心思想在于:

将高维向量分解为低维向量,对每组低维向量进行聚类分析,提炼出每个低维向量的聚类中心点,这样一个高维向量可以由多个聚类中心点所表示

其实这种思想可以类比为,如果我要存储256位数字的值,需要2^256,而如果将256位拆分为8部分,那么总共需要8*2^8,实际上就是将原本的乘法转化为了加法

PQ向量压缩聚类分析手段
PQ向量压缩聚类分析手段

好处:通过将高维向量转为低维存储,节省了内存存储空间

坏处:需要额外维护映射表开销

其实我们平时熟知的图片马赛克也是类似的处理手段,每个图片都是由三维像素点RGB组成的,而可以对图片的不同区域进行划分,一个区域只用一个像素点代理,因此就做到了最后的图片内存压缩但原型还在的样子

HNSW压缩算法

在介绍HNSW之前,先来介绍一下NSW算法,在Facebook推出的一项研究中表明,如果你要与一个陌生人联系,通过平均3.57个人的介绍彼此就能互相沟通,而NSW就是借鉴了这种思想

其实庞大数据量对应的文本在数据库中,就是一个个的点,而查询就是通过点之间的路径实现高效查询,因此上面理论的延伸也就启发了我们,可以通过合适的建图策略来提升我们的搜索策略,而NSW就是这种思想

建图流程:依次将所有点放入图中连接边,每次连接距离当前节点最近三个节点的边,以此类推,这样不仅能够保存点与点之间的最近向量,同时也保存了与远处点的直接连接

NSW建图过程
NSW建图过程

但是在大数据量情况下,即使查询的某个点与远处某个点已经建立了连接,但可能还是要途径很多边才能建立连接,因此查询效率会大打折扣,而HNSW的诞生就是为了解决这一点:

HNSW分层图结构
HNSW分层图结构

如图,HNSW通过对所有点建立分层图机制,越上层图建立的节点数越小,这样上层搜索就能过滤掉很大一部分节点范围,从而大大加快了搜索效率

好处:搜索效率大大加快,类似于Redis的跳表机制(类比迁移)

坏处:由于要存储多个分层图数据,因此维护分层图带来的内存开销比较大

以上介绍了向量数据库检索的几个方法,在大数据量的时代下,通过向量数据库进行相似度查询会比以前的关系型数据库准确匹配更高效,而合适的检索算法也能大大加快查询速率,减少内存开销

附上相关论文,感兴趣的小伙伴可以钻研一下:

https://arxiv.org/pdf/2412.01940

https://www.sciencedirect.com/science/article/pii/S0925231224003035?dgcid=rss_sd_all&#sec2

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
【向量检索研究系列】快速入门
随着互联网的不断发展,产生了各种各样的海量数据,比如图片、文本、视频和语音等非结构化数据,这些数据可以通过人工智能技术提取出特征向量,然后通过对这些特征向量的计算和检索来实现对非结构化数据的分析和检索,如何对非结构化的向量数据进行高效检索即为向量检索技术的核心问题。
码之有理
2022/06/30
3.3K4
【向量检索研究系列】快速入门
向量数据库?那咱们就浅谈一下吧
今年自己做了不少业余的 LLM demo/PoC 级的应用,前前后后使用了几种向量数据库(Vector Database),包括尚不能称之为向量数据库的 FAISS,玩票性质的 redisearch 和 pgvector,闭源的 SAAS 服务 pinecone,以及使用 Rust 构建的 qdrant 和 lancedb。这些向量数据库各有千秋,支持的索引技术不尽相同,但它们都试图解决传统数据库或者搜索引擎在搜索高维度信息时的力不从心的问题。
tyrchen
2023/09/27
2.6K0
向量数据库?那咱们就浅谈一下吧
基于磁盘量身定制,十亿规模高效向量检索方案
“SPANN: Highly-efficient Billion-scale Approximate Nearest Neighbor Search”[1]是发表于 2021 年人工智能领域全球顶会 NeurIPS 的一篇关于近似最近邻检索(ANNS)的论文,提出了高效的内存-磁盘混合索引和搜索方案 SPANN。
Zilliz RDS
2022/01/05
6790
基于磁盘量身定制,十亿规模高效向量检索方案
解读向量索引
向量嵌入是从图像、文本和音频等数据源转换而来的数字表示,旨在通过为每个项目创建一个数学向量来捕捉其语义或特征。这种表示方式使得计算系统更容易理解这些数据,并且与机器学习模型兼容,从而能够识别不同项之间的关系和相似性。
半吊子全栈工匠
2024/11/07
6070
解读向量索引
大模型RAG向量检索原理深度解析
常规的知识库检索通常使用的是关键字与词条匹配,随着AGI的爆发,越来越多的知识库检索开始使用向量检索技术,特别是在RAG领域,增强型的生成式问答检索正在大面积应用和推广。
大脚攀爬
2024/04/18
1.9K0
大模型RAG向量检索原理深度解析
美团外卖基于GPU的向量检索系统实践
随着大数据和人工智能时代的到来,向量检索的应用场景越来越广泛。在信息检索领域,向量检索可以用于检索系统、推荐系统、问答系统等,通过计算文档和查询向量之间的相似度,快速地找到与用户需求相关的信息。此外,在大语言模型和生成式AI场景,向量索引做为向量数据的底层存储,也得到了广泛的应用。
美团技术团队
2024/04/15
4640
美团外卖基于GPU的向量检索系统实践
检索算法小结
上一篇文章介绍了大模型应用利器--RAG。在RAG中当然少不了检索。检索算法在信息检索、搜索引擎和推荐系统等领域中扮演着至关重要的角色。它们的核心任务是根据用户查询从大量数据中找出最相关的信息。本文就对检索算法进行以下小结。
languageX
2024/07/01
3400
向量数据库基础:HNSW
了解分层可导航小世界索引,包括其优缺点以及如何通过 pgvector 在 PostgreSQL 中使用它们。
云云众生s
2024/08/16
2850
向量数据库基础:HNSW
关于向量搜索一定要预先知道的事情
计划为你的项目采用向量数据库?正如你可能已经发现的,这是一项值得但并不容易的壮举。
云云众生s
2024/04/04
1890
关于向量搜索一定要预先知道的事情
ChatGPT 都推荐的向量数据库,不仅仅是向量索引
导读:在 AIGC 的时代背景下向量数据库井喷式发展。不少人理解向量数据库就是在传统数据库之上新增一个向量索引,然而随着大模型应用逐渐拓展到核心业务领域,通过复杂代码工程来拼接大模型、向量索引和结构化数据分析结果会阻碍规模化复制。同时并发查询性能、数据一致性、高可靠和弹性伸缩等特性会变得越发重要。阿里云 AnalyticDB 锚点未来 5 年企业数据架构智能化升级需求,全自研了企业级向量数据库,它也是国内云厂商中唯一被 ChatGPT 和 LangChain 推荐的向量引擎。本文带大家一起了解阿里云 AnalyticDB 技术负责人姚奕玮在 QCon 全球软件开发大会(北京站)2023 上的精彩演讲,解密 AnalyticDB 全自研企业级向量数据库核心技术,以及新一代向量数据库在云原生存算分离和 AI 原生上的技术演进路线。 完整幻灯片下载: https://qcon.infoq.cn/202309/beijing/presentation/5454
深度学习与Python
2023/09/18
6830
ChatGPT 都推荐的向量数据库,不仅仅是向量索引
腾讯大数据基于 StarRocks 的向量检索探索
AI 和大模型无疑是当前的热门话题,作为从事数据工作的我们,也希望能够紧跟这一趋势,探索如何与 AI 实现更紧密的结合。这正是我们最初的诉求。随着大模型的兴起,推动了公司在这一背景下对向量检索场景的深入探索,也为我们进一步拓展在 StarRocks 上的应用提供了新的机遇。
StarRocks
2025/03/03
1210
腾讯大数据基于 StarRocks 的向量检索探索
13 种高维向量检索算法全解析!数据库顶会 VLDB 2021 论文作者干货分享
以图搜图、商品推荐、社交推荐等社会场景中潜藏了大量非结构化数据,这些数据被工程师们表达为具有隐式语义的高维向量。为了更好应对高维向量检索这一关键问题,杭州电子科技大学计算机专业硕士王梦召等人探索并实现了「效率和精度最优权衡的近邻图索引」,并在数据库顶会 VLDB 2021 上发表成果。
Zilliz RDS
2021/10/08
2.5K0
Elasticsearch:普通检索和向量检索的异同?
《Elasticsearch 向量搜索的工程化实战》文章一经发出,收到很多留言。读者对向量检索和普通检索的区别充满了好奇,所以就有了今天的文章。
铭毅天下
2022/02/09
4.9K0
向量检索(RAG)之向量数据库研究
研究内容主要包括:是否开源,支持的功能有哪些(是否支持暴力检索,支持哪些索引),是否有可视化界面,是否支持标量过滤。
码之有理
2025/03/05
9600
Faiss: 选择合适的索引Index
向量相似性搜索彻底改变了搜索领域。它允许我们高效地检索从GIF到文章等各种媒体,即使在处理十亿级别数据集时,也能在亚秒级时间内提供令人印象深刻的准确性。
用户3578099
2024/06/19
1.2K0
Faiss: 选择合适的索引Index
小程序近邻检索:基于B+树的HNSW外存实现
在小程序中,我们有许多近邻检索的场景:例如,在海量的小程序里为用户推荐潜在意图的小程序;在同样海量的小程序内容页面中,快速找到同一主题的下的资讯、视频、知识、商品等各类内容... 随着表示学习技术(Representation Learning)的不断发展,我们有了各种趁手的向量化工具,可以将海量的数据表示为高维图空间的顶点,他们的关系加上特点的距离测度则构成了图的边。那么问题就转化为如何在高维空间里实现快速近邻检索?这个问题有许多的解法,限于篇幅今天我们主要介绍基于HNSW的方法。 1. 前言 进入正题
腾讯知文实验室
2020/07/07
1.8K1
RAG实战|向量数据库LanceDB指南
LanceDB是一个开源的用 Rust 实现的向量数据库(https://github.com/lancedb/lancedb),它的主要特点是:
用户1904552
2025/03/31
2150
RAG实战|向量数据库LanceDB指南
开源向量数据库比较:Chroma, Milvus, Faiss,Weaviate
语义搜索和检索增强生成(RAG)正在彻底改变我们的在线交互方式。实现这些突破性进展的支柱就是向量数据库。选择正确的向量数据库能是一项艰巨的任务。本文为你提供四个重要的开源向量数据库之间的全面比较,希望你能够选择出最符合自己特定需求的数据库。
deephub
2024/04/25
23.3K1
开源向量数据库比较:Chroma, Milvus, Faiss,Weaviate
ChatGPT盛行的当下,向量数据库为大模型配备了一个超级大脑
你是否有过这样的经历:你在网上看到一张壁纸,画面中的雪山和湖泊令人心驰神往,你想知道这是哪个国家的美景,却不知道如何搜索;或者,在阅读一篇文章时,你想深入了解这个话题,寻找更多的观点和资料,却不知道该如何精确描述;又或者,当你在聆听一首歌曲时,你想寻找更多同样风格或情感的歌曲,却不知道如何分类。这时,你需要的是一个能够理解你的意图,为你提供最相关的结果,让你轻松找到你想要的信息的工具。
机器之心
2023/08/08
5170
ChatGPT盛行的当下,向量数据库为大模型配备了一个超级大脑
解读向量数据库
不论是RAG,还是Agent,几乎每个LLM 驱动的应用程序都可能会用到向量数据库。那么,向量数据库是什么?与传统数据库有何不同? 又如何选择向量数据库呢? 本文是老码农关于向量数据库的学习笔记。
半吊子全栈工匠
2023/11/27
1.9K0
解读向量数据库
相关推荐
【向量检索研究系列】快速入门
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档