矢量数据库是什么?他们有什么区别 您所在的位置:网站首页 apus是什么软件 矢量数据库是什么?他们有什么区别

矢量数据库是什么?他们有什么区别

2023-04-08 18:38| 来源: 网络整理| 查看: 265

0 分享至

用微信扫码二维码

分享至好友和朋友圈

Milvus, Pinecone, Vespa, Weaviate, Vald, GSI和Qdrant的详细比较

在撰写这篇博文时,我有幸与所有搜索引擎的关键开发人员/领导层进行了交流:Bob van Luijt和Etienne Dilocker(Weaviate),Greg Kogan(Pinecone),Pat Lasserre,George Williams(GSI Technologies Inc),Filip Haltmayer(Milvus),Jo Kristian Bergum(Vespa),Kiichiro Yukawa(Vald)和Andre Zayarni(Qdrant)。

我们已经接近在搜索引擎体验的基本层面上涉及机器学习:在多维多模态空间中对对象进行编码。这与传统的关键词查询不同(即使用同义词/语义来加强)--有很多有趣的方式:

有一个几何相似性的概念,作为语义学的一个组成部分,而不仅仅是原始对象的特定属性(在文本的情况下--其关键词/术语)。

多模态:对任何对象进行编码 - 音频、视频、图像、文本、基因组、 软件病毒,一些复杂的对象(如 代码),对于这些对象,你有一个编码器和一个相似性度量,并且可以在这些对象之间进行无缝搜索。

同时,关键词可以与相似性搜索相结合,相互补充,特别是当你面临长尾零点击率的问题时(这可能是相当大的,比如在电子商务空间)。

这篇博文在强调7个矢量数据库的共同点和差异方面做了独立的尝试,每个数据库都提供商业云支持。7个中的5个提供了他们的代码作为开放源码供你自己托管。该文章不包括神经搜索框架(如 Jina.AI, FAISS或deepset的 Haystack),这些都值得他们自己的博文。另外,它并不关注大型云厂商的垂直搜索引擎,如Bing的或Google的矢量搜索引擎。算法基准超出了范围,因为你可以随时求助于 https://github.com/erikbern/ann-benchmarks来查找关于单个算法性能和权衡的细节。

我冒昧地从以下五个角度考虑每个搜索引擎:

价值主张:使整个矢量搜索引擎脱颖而出的独特功能是什么?

类型:该引擎的一般类型:矢量数据库,大数据平台。管理/自我托管。

架构:高级别的系统架构,包括分片、插件、可扩展性、硬件细节(如有)等方面。

算法:这个搜索引擎对相似性/矢量搜索采取了什么算法方法,它提供了什么独特的能力?

代码:是开源还是闭源?

每个搜索引擎都伴随着元数据:

链接到描述该技术的主要网页

类型:自我托管和/或管理

在有源代码的地方有代码链接

Milvus

链接: https://milvus.io/

类型:自我托管的矢量数据库

代码: 开放源代码

价值主张:注意整个搜索引擎的可扩展性:如何有效地索引和重新索引矢量数据;如何扩展搜索部分。独特的价值是能够用多种ANN算法对数据进行索引, 多个ANN算法来索引数据来比较它们在你的用例中的性能。

架构:

Milvus 四个层次:访问层、协调者服务、工作节点和存储。这些层是独立的,以获得更好的可扩展性和灾难恢复。

算法:允许多种基于ANN算法的指数:Faiss, Annoy, Hnsw, RNSG.

Pinecore

链接: https://www.pinecone.io/

类型:托管的向量数据库

代码: 闭源

价值主张:完全托管的矢量数据库,支持你的非结构化搜索引擎之旅。近期 2.0版本带来了单阶段过滤能力:在一次查询中搜索你的对象(毛衣)并通过元数据(颜色、尺寸、价格、可用性)过滤。

架构:

Pinecone是一个管理的矢量数据库,采用Kafka进行流处理,采用Kubernetes集群实现高可用性,并采用blob存储

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

Vespa

链接: https://vespa.ai/

类型:管理/自我托管的矢量数据库

代码: 开放源代码

价值主张:援引 官方文件:"Vespa是一个在大型数据集上进行低延迟计算的引擎。它存储和索引你的数据,这样就可以在服务时间内对数据进行查询、选择和处理。功能可以通过Vespa内托管的应用组件进行定制和扩展"。Vespa提供面向数据科学等深度学习的深度数据结构,例如Tensors。

架构:

Vespa的鸟瞰图

算法:HNSW(为实时CRUD和元数据过滤而修改);一套重排和密集检索的方法。 相关视频.

Weaviate

链接: https://www.semi.technology/developers/weaviate/current/

类型:托管的/自我管理的矢量数据库

代码: 开放源代码

价值主张:丰富的查询语法,支持类似Graphql的接口。这使得你可以在丰富的实体数据上运行探索性的数据科学查询。该产品最重要的元素是结合了矢量搜索、对象存储和用于布尔关键词搜索的倒置索引,以避免不同数据库之间的数据漂移和延迟,将矢量数据与对象/倒置索引分开存储。哗众取宠:有一个令人印象深刻的问题回答组件 - 这可以为演示新的搜索功能带来惊喜,作为你现有或新产品的一部分。

架构:

这里是Weaviate的系统级架构图。它显示了索引的构成:你可以存储矢量、对象和倒置的索引数据,以混合和匹配适合你使用情况的搜索功能。支持用于不同任务的模块,如问答。

系统层面概述

算法:自定义实现的HNSW,经过调整以达到规模,并支持完整的CRUD。该系统支持 插件ANN算法,只要它们能做CRUD。

Vdaas

链接: https://vald.vdaas.org/

类型:自我托管的矢量搜索引擎

代码: 开放源代码

价值主张:Vald的使用规模为10亿矢量,提供了一个云原生架构。从 官方文件:"Vald有自动的矢量索引和索引备份,以及水平扩展,这使得从数十亿的特征矢量数据中搜索。"该系统还允许插入你的自定义重排/过滤算法与Egress过滤器。奖励:可以直接安装在macOS上。

架构:

Vald运行在Kubernetes集群之上,以利用其HPA和分布式能力。

算法:基于最快的算法: NGT,它比许多强势算法,如Scann和HNSW都要快。

用于Elasticsearch和OpenSearch的GSI APU

链接: https://www.gsitechnology.com/APU

类型:矢量搜索硬件后端,弹性搜索

代码: close source

价值主张:一个十亿级的搜索引擎后端,扩展你的 Elasticsearch/ 的能力,将您的Elasticse/OpenSearch的能力到相似度搜索。你可以实现一个时间效率高的多模态搜索,增强你的关键词检索。它是作为一个企业内部的 APU板以及通过插件与Elasticsearch/OpenSearch部署相连接的托管云后端。

架构:

GSI APU驱动的Elasticsearch架构(截图由 GSI技术)

APU板的特点

算法:Hamming Space Locality Preserving Neural Hashing.

Qdrant

链接: https://qdrant.tech/

类型:管理/自我托管的矢量搜索引擎和数据库

代码: 开放源代码

价值主张:具有扩展过滤支持的矢量相似性引擎。Qdrant完全用Rust语言开发,实现了动态查询规划和有效载荷数据索引。矢量有效载荷支持大量的数据类型和查询条件,包括字符串匹配、数字范围、地理位置等。有效载荷过滤条件允许你建立几乎任何自定义的业务逻辑,应该在相似性匹配之上工作。

架构:

收集级架构

算法: 自定义用Rust实现HNSW。

这篇博文为你简明扼要地总结了目前市场上正在积极开发的7种矢量搜索引擎。随着我对这些系统的进一步研究,我将增加更深入的研究的链接。

本文由闻数起舞翻译自https://towardsdatascience.com/milvus-pinecone-vespa-weaviate-vald-gsi-what-unites-these-buzz-words-and-what-makes-each-9c65a3bd0696

特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。

Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.

/阅读下一篇/ 返回网易首页 下载网易新闻客户端


【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有