大模型检索增强生成之向量数据库的问题 原创

发布于 2024-12-23 14:37
浏览
0收藏
“ 向量数据库的核心在于向量相似度计算 ”


作为技术人员我想大家或多或少应该都接触过数据库技术,数据库技术的历史可以说是由来已久了;但数据库的发展也是一路曲折,特别是随着互联网体量的快速增加,对数据库的要求也变得越来越多。

而且为了适应各种不同的业务场景,数据库系统也是紧跟潮流发展出多种类型的数据库;比如说传统的关系型数据库,缓存数据库,以及大数据处理的数据库;直到今天的向量数据库。

关系型和缓存数据库就不用说了,今天我们就来聊聊向量数据库系统。

大模型检索增强生成之向量数据库的问题-AI.x社区

向量数据库

向量数据库,顾名思义就是以向量结构为主体的数据库;同样具备传统数据库的CRUD等功能。

但是,因为是以向量为主,而不是以传统的字符匹配为主;因此,向量数据库在使用的过程中就面临着很多之前没遇到的问题。

现如今向量数据库主要应用于与人工智能特别是大模型相关的技术领域,比如RAG技术,就是严重依赖于向量数据库。当然,向量数据库的应用场景远不止RAG一家,比如还有推荐系统,图像识别等多种不同的领域。

向量数据库相对于传统数据库的优点在于,其可以通过对不同模态数据的向量化,计算数据之间的向量关系,以此来描述不同数据之间的“语义”相关性。

也就是说,向量数据库主要描述的不是字符之间的确定关系,而是从语义的角度来描述数据关系。而计算这种关系的算法叫做相似度计算,具体的有欧式距离,余弦相似度等算法。

大模型检索增强生成之向量数据库的问题-AI.x社区

因此,向量数据库有两个重点,一个是数据向量化;二是向量相似度计算。在大模型技术领域,数据向量化也叫做嵌入,需要使用专门的嵌入模型对数据进行向量化处理。

对向量数据库来说,数据向量化解决的是数据从那来的问题,而向量相似度计算解决的是相似度搜索问题,也就是数据该怎么使用的问题。

数据向量化,也就是嵌入模型需要加载数据,并对数据进行切分,分词等操作;最后再进行向量化处理,也就是把不同模态的数据统一转化成向量的格式。

至于相似度搜索问题,就是把你需要搜索的数据同样转化为向量格式,然后向量数据库引擎,把你的搜索向量与数据库中存在的向量进行匹配,这个就是相似度计算,也就做度量计算;比如欧式距离,余弦相似度,内积等。最后计算得到的结果就是搜索结果。

向量数据库的搜索问题与传统数据库的查询没有本质上的不同,区别就是传统数据库使用的是字符匹配的方式;而向量数据库使用的是相似度计算的方式。

但这里有一个问题就是,由于向量相似度需要大量的运算才能获得结果;因此,在面对大量向量数据时,搜索性能与搜索结果的准确性就需要做一个权衡。

还有一点就是,不同于传统的字符匹配的方式,一就是一,二就是二;向量相似度搜索是基于相似度计算得到的相似值;而不是绝对值,因此就存在搜索结果的不确定性。

比如说,在具体的实践过程中,在一个向量化的四大名著之西游记的向量数据库中;输入林黛玉进行检索竟然可以检索到相似数据;而这在具体的应用场景中是不可接受的。

大模型检索增强生成之向量数据库的问题-AI.x社区

之所以能在西游记中搜索到与林黛玉有关的内容,原因就在于这个相似度计算;因为林黛玉是女的,西游记中也是女的;可能西游记和红楼梦中部分关于女性的描述,在向量层面是相似的,也就是相似度计算的值比较接近,最终才导致这种结果。

这就是向量相似度搜索的不确定性,但又很难完全避免;毕竟前面也说了,效率与准确率总要牺牲一个。

所以,基于向量数据库的检索结果,还需要在结果出来之后做一层到多层到数据筛选,才有可能完全获取想要的结果。


本文转载自公众号AI探索时代 作者:DFires

原文链接:​​https://mp.weixin.qq.com/s/XhYxpUl8L6aFy9Tjx9xDPQ​

©著作权归作者所有,如需转载,请注明出处,否则将追究法律责任
收藏
回复
举报
回复
相关推荐