AI和大模型—向量数据库
一、引入大家设想这样一个场景在传统的数据库中存入了不少的图片。但图片的名字不记得了或者说只能记得图片上的内容比如过生日吹蜡烛、湖边野营等等。那么这时候查找相关的图片的困难是相当大的。这和在相册里翻找一张过去的照片的难度是一样的。正所谓有需求就有解决方案。传统的的数据库和相册中只能通过搜索进行模糊的如日期、大小等进行搜索。而向量数据库的引入则从根本上解决了这类问题。图片等 非结构化数据 嵌入 非传统的关系型数据库 如何“像”二、向量数据库人类查找图片的过程其实是一个相似度查找的过程。大家有没有这种经历找一张图片结果发现一张和其类似的图片点击了进去。也就是说人类是通过一定的相似特征来定位要查找的图片的然后才会具体限制更多的条件来定位是否准确。那么人类的查找方式是不是也可以被数据库系统借鉴呢这就使用到了前面反复提到的向量。向量可以表示特征那么用不同的向量来表征不同的图片不就可以用来搜索图片了吗而且向量是一种数据在搜索里可以被精确的匹配或者说找到匹配的概率。通过概率来返回查找的类似图片。这就会大大的缩小查找的范围。那么什么是向量数据库呢向量数据库是一种专门为存储、管理和高效检索高维向量数据而设计的数据库系统。看到名字没有它是一个检索系统。向量数据库存储的不是传统的数据本身而是首先要把传统数据向量化将其转为高维空间向量并将语义相似的数据向量存储在相近的位置。然后建立索引形成一个高效的检索系统最后再利用相似性搜索技术将用户的查询数据与系统内的向量数据进行匹配然后得到“距离最近”或者说“最像”的数据。也就是说向量数据的检索是通过计算向量间的距离来判断相似度的如余弦相似度、欧氏距离等等。三、索引算法和查找算法既然向量数据库是一个检索系统而向量数据又不是传统的字符串或数字。那么索引组织的算法就不能使用传统的索引算法。在向量数据库中使用的是HNSW、IVF-PQ等算法。同样其查找算法也有所不同。索引算法向量数据库的索引算法包括暴力搜索FLAT直接存储原始向量不做索引。数据索引精确但效率太低。只适合于小数据量的向量存储倒排文件索引IVF有过网页检索经验的可能会好理解。通过聚类缩小范围然后再精确定位。通用检索常用乘积量化PQ一种压缩算法降低内存占用及加快计算速度。适合于内存有限或计算速度有要求的场景分层可导航小世界HNSW基于图的高性能算法有点类似于跳表。对速度和召回率要求高且内存充足的情况DiskAnn一种磁盘存储优化索引算法适合海量数据且内存不再是主要的限制条件查找算法精确查找一般使用Brute-Force KNN方式无它遍历向量计算距离返回距离最近的所有向量近似查找ANN Search听名字就知道最近查找只要相似度足够高就可以。它可以使用IVF也可以使用HNSW更多的往往是混合一起使用。粗查阶段使用IVF或PQ算法细查阶段使用HNSW算法向量数据库的索引和查找算法都是建立 在近似最近邻ANN探索的基础之上。在精确率和效率间进行平衡实现了海量数据库的毫秒级响应四、AI和大模型中的应用向量数据库出现的并不晚但真正发力则是在AI应用的发展才开始的。了解AI一些技术的都知道AI处理数据的过程其实就是向量数据不断被运算加工的过程。AI的向量数据从低维到高维成海海量的存在而这也恰恰是向量数据库的优势所在。它可以认为是专门为AI发展而创建的数据库。它解决了AI和大模型中的记忆问题让AI能够始终保持对数据的长期记忆和准确快速的检索的能力。在AI中最主要的应用就是RAG前面分析过不再赘述为大模型提供了外部知识库有效的解决了大模型的幻觉问题。进而可以为AI Agent提供记忆相关的一系列支持。另外它还可以作为智能客服和AI机器人的知识库解决客户的提问问题。五、扩展分析需要说明的是向量数据库是无法替换传统数据库的。它们应用的场景不同只是应对不同的应用场景罢了。那么在向量数据库还有哪些其它的常见应用场景呢推荐系统电商网站中经常为客户提供类似的喜欢产品就是典型的应用多模态搜索就象本文开头提出的图片内容搜索或文字对应商品等等都可以实现但是无论是在AI还是在传统行业的应用向量数据库有自己的优势也有自己的不足。作为一种较新数据库技术其系统的应用时间短导致与现有系统的整合有很大的复杂性增加了成本。而且这种数据库的更新删除处理相对麻烦还需要进一步的发展。最后就是这种向量数据库的对检索的支持是一种精度与速度的平衡取舍的过程不能用传统的数据库查找来对比。六、常见向量数据库正如前面分析一样向量数据库有一个发展的过程。所以它会有专业的向量数据库和传统数据库支持向量数据的扩展专用向量数据库这种向量数据库是专门用来处理向量数据的数据库提供了相关的专业的设计和向量检索组织常见的有Chroma、Milvus、Pinecone、Weaviate等传统数据库向量化扩展可以认为是为了适应向量化数据的存储一些原有的传统数据库增加了相关的插件可以对向量数据进行处理。常见的有PostgreSQL数据库中的pgvector、Elasticsearch、MongoDB及Redis等七、总结新技术的出现一个重要的原因是出现了新问题新的应用场景传统的技术解决不了。正如经典力学解决不了量子力学的问题一样。所以不要总是把新出现的技术当成对旧技术的替代也很有可能是一种扩展或者新领域。
上一篇/下一篇内容由系统自动关联
返回资讯列表 →