向量数据库调研

向量数据库的优势

数据库类型

适用场景

典型数据库举例

关系型数据库(RDBMS)

处理结构化数据,擅长OLTP,如财务、人事管理等。

MySQL,Oracle,SQL Server

非关系型数据库(NoSQL)

存储大量非结构化或半结构化数据,擅长点查,如大数据分析、人工智能等。

MongoDB,Redis,Cassandra

对象数据库

数据存储结构比较复杂的应用场景

Versant Object Database,ObjectStore,ZopeDB

列式数据库

需要快速进行按列查询的应用场景,擅长OLTP查询,如数据仓库。

HBase,Cassandra,Amazon DynamoDB

图形数据库

存储和处理大型图形数据,一般使用GraphQL如社交网络、物联网等场景。

Neo4j,ArangoDB,JanusGraph

向量数据库

快速处理向量数据的应用场景,擅长算法聚类等,如图像识别、音频处理、自然语言处理等

Milvus,Faiss,Hive-Vector-Storage

全文搜索引擎(search db)

处理全文搜索和日志存储等应用场景

Elasticsearch,Apache Solr,Sphinx

在 db engines rank中,向量数据在最近一段时间得到很强的关注和发展。

向量数据库横向对比

Milvus、Pinecone、Vespa、Weaviate、Vald、GSI 和 Qdrant

  1. 价值主张。让整个向量搜索引擎脱颖而出的独特之处是什么?
  2. 类型。该引擎的通用类型:向量数据库、大数据平台。托管/自托管。
  3. 架构。高级系统架构,包括分片、插件、可扩展性、硬件细节(如果可用)等方面。
  4. 算法。这个搜索引擎采用了什么算法来进行相似度/向量搜索,它提供了哪些独特的功能?
  5. 代码:它是开源的还是闭源的?

类型

代码

算法

Milvus

自托管

开源

允许多个基于 ANN 算法的索引:FAISS、ANNOY、HNSW、RNSG。

Pinecone

托管

闭源

由 FAISS 提供支持的 Exact KNN;ANN 由专有算法提供支持。支持所有主要距离度量:余弦(默认)、点积和欧几里得。

Vespa

托管/自托管

开源

HNSW(针对实时CRUD和元数据过滤进行了修改);一套重新排序和密集检索方法。

Weaviate

托管/自托管

开源

自定义实现的 HNSW,调整到规模,并支持完整的 CRUD。只要能做CRUD ,系统就支持插件ANN算法。

Vald

自托管

开源

基于最快算法:NGT,比很多强算法,如Scann和HNSW都要快。

GSI

ES OS的向量搜索硬件后端

闭源

保持神经散列的汉明空间局部性。

Qdrant

托管/自托管

开源

Rust 中的自定义HNSW 实现。

向量数据库依赖算法的优劣势

算法名称

算法优势

算法劣势

复杂度分析

Exact KNN

精确性高,可以保证正确性

对大型数据集的搜索较慢

搜索复杂度为O(N log N),其中N是数据库中向量的数量。对于高维数据和大量数据,复杂度可能会比较高

LSH

可以在大型数据集中实现快速近似KNN搜索

近似性较差,可能会导致搜索结果不够准确

查询复杂度主要是哈希函数的计算复杂度和哈希表的遍历复杂度,一般时间复杂度达到O(N^p),其中N是数据库中向量的数量。

Scann

快速和可扩展,特别适合大量高维向量的搜索

相比于精确KNN和其他近似KNN算法,精度可能会有所降低

预处理时间复杂度为O(N * D),其中N是数据库中向量的数量,D是向量的维度;查询复杂度为O(log N)。

KD树

计算快速,适合高维度空间的KNN搜索

对于包含稀疏数据的向量,性能可能会受到影响

预处理时间复杂度为O(N * log N),其中N是数据库中向量的数量;查询复杂度为O(log N)。

HNSW

可以在大型高维数据集中实现快速近似KNN搜索,且精度较高

查询速度较慢(不如LSH和SCANN)

构建时间复杂度为O(N * log N),其中N是数据库中向量的数量;查询复杂度为O(log N)。

RNSG

较快的最近邻搜索速度,且搜索结果较为准确

不适用于非欧几里得空间

时间复杂度主要是与K(最近邻数目)、N(向量数目)和D(向量空间维数)相关,因此时间复杂度能够低至O(log N)。

向量数据库分析

milvus

架构实现:Milvus 实现了四层:接入层、协调服务、工作节点和存储。这些层是独立的,以实现更好的可扩展性和灾难恢复。

产品优势:

  • 支持私有化部署
  • 多版本:单机版(standalone)、集群版(cluster),支持部署在CPU和GPU上,弹性可扩展。
  • 易运维:采用云原生架构,使用docker和k8s能够快速安装和运维。
  • 实现场景多:能快速实现图搜图、语音搜索语音、文搜文。

参考资料

链接

  • 7个向量数据库对比:Milvus、Pinecone、Vespa、Weaviate、Vald、GSI 和 Qdrant - 墨天轮
  • 强大的向量数据库:Milvus - 知乎
  • Installation · milvus-io/milvus Wiki · GitHub
  • B站

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/315252.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

java 纯代码导出pdf合并单元格

java 纯代码导出pdf合并单元格 接上篇博客 java导出pdf(纯代码实现) 后有一部分猿友叫我提供一下源码,实际上我的源码已经贴在帖子上了,都是同样的步骤,只是加多一点设置就可以了。今天我再次上传一下相对情况比较完整…

系列一、如何正确的获取Spring Cloud Alibaba Spring Cloud Spring Boot之间的版本对应关系

一、正确的获取Spring Cloud Alibaba & Spring Cloud & Spring Boot之间的版本对应关系 1.1、概述 Java发展日新月异,Spring Cloud Alibaba 、 Spring Cloud 、 Spring Boot在GitHub上的迭代也是异常的频繁,这也说明其社区很活跃,通…

性能优化-OpenMP基础教程(一)

本文主要介绍OpenMP并行编程技术,编程模型、指令和函数的介绍、以及OpenMP实战的几个例子。希望给OpenMP并行编程者提供指导。 🎬个人简介:一个全栈工程师的升级之路! 📋个人专栏:高性能(HPC&am…

前端框架变迁史

前端框架变迁史 过去的前端 JQuery 简单的选择器和链式操作跨浏览器兼容性强大的动画功能简单的 Ajax 支持插件系统 MVVM 模式 什么是 MVVM 什么是 MVVM ? 现在的前端 主流技术 react VUE angular 作为现代前端框架,有如下 4 个共有的特点&…

操作细节无遗漏:上海迅软DSE如何精准记录用户不规范行为

企业在部署加密软件后,虽然数据信息得到了加密保护,但难免会发生内部人员滥用管理身份职权,随意解密、外发文件等情况,造成明明对数据加密了,却还是无法完全掌控数据使用情况的现象发生,因此审计功能变得尤…

抖店和商品橱窗有什么区别?新手应该选哪个?

我是电商珠珠 临近年底了,有的人已经开始为下一年筹谋,有的去抖音做账号做直播带货,不会直播带货的就想尝试做下抖店,来为以后的经济打基础。 刚想要接触却对这类有些迷糊,发现商品橱窗和抖店都可以卖货,…

天融信TOPSEC安全管理系统存在远程命令执行漏洞

文章目录 产品简介漏洞概述指纹识别漏洞利用修复建议 产品简介 天融信TopSec 安全管理系统,是基于大数据架构,采用多种技术手段收集各类探针设备安全数据,围绕资产、漏洞、攻击、威胁等安全要素进行全面分析,提供统一监测告警、集…

MySQL基础学习: linux系统mysql 密码插件 validate_password安装

1、没有安装mysql密码插件,执行命令:SHOW VARIABLES LIKE ‘validate_password%’; 2、安装mysql密码插件,执行命令:install plugin validate_password soname ‘validate_password.so’; 3、再次执行:SHOW VARIABLE…

嵌入式视频播放器(mplayer)

1.文件准备: MPlayer-1.0rc2.tar.bz2 libmad-0.15.1b.tar.gz 直接Git到本地 git clone https://gitee.com/zxz_FINE/mplayer_tarball.git 2.文件夹准备: src存放解压后的源码文件,target_Mplayer存放编译安装的目标文件 mkdir src targe…

通过CANopen转Modbus TCP网关的伺服系统

通过开疆CANopen转Modbus TCP网关的伺服系统,我们能够实现CANopen协议与Modbus TCP协议之间的无缝转换,从而为伺服电机的通讯和控制带来更大的便利和灵活性。 首先我们可以通过CANopen协议与伺服电机进行通讯。CANopen协议是一种先进的、高效的通讯协议&…

7+WGCNA+机器学习+泛癌生信思路,非肿瘤也能结合泛癌分析

今天给同学们分享一篇生信文章“Analysis and Experimental Validation of Rheumatoid Arthritis Innate Immunity Gene CYFIP2 and Pan-Cancer”,这篇文章发表在Front Immunol期刊上,影响因子为7.3。 结果解读: DEG筛选和数据预处理 数据在…

舞动指尖的代码之旅

嗨,伟大的程序员们! 随着2023年的尾声临近,我回顾这一年的使用 Vim 的心得体会,愿与你分享我的点滴成长。 初尝 Vim 之苦与乐 在开始使用 Vim 时,曾有过一些困惑和挫折。但正是在不断的摸索中,我领略到了…