译者 | 布加迪
审校 | 重楼
向量数据库具有一系列广泛的好处,特别是在生成式人工智能方面,更具体地说,是在大语言模型(LLM)方面。这些好处包括先进的索引和精确的相似度搜索,有助于交付强大的先进项目。
本文将对三种开源向量数据库:Chroma、Milvus和Weaviate进行如实的比较。我们将探讨它们的用例、关键特性、性能指标及支持的编程语言等,以便全面公正地概述每种数据库。
就最简单的定义而言,向量数据库将信息存储为向量(向量嵌入),向量是数据对象的数值版本。
正因为如此,向量嵌入是针对非常大的非结构化或半非结构化数据集进行索引和搜索的强大方法。这些数据集可以由文本、图像或传感器数据组成,向量数据库将这些信息排序为易于管理的格式。
向量数据库使用高维向量工作,高维向量可能含有数百个不同的维度,每个维度又都与数据对象的特定属性相关联,因此带来了无与伦比的复杂性。
不要与向量索引或向量搜索库相混淆,向量数据库是一种完整的管理解决方案,用于以下列方式存储和过滤元数据:
开源向量数据库提供了许多优于替代数据库的优点,比如:
我们已经了解了向量数据库的定义以及开源解决方案具有的好处,现在不妨考虑一下市场上最流行的一些选择。我们将重点介绍Chroma、Milvus和Weaviate的优势、功能和用途,然后进行直接的面对面比较,以确定最适合您需求的选择。
Chroma旨在帮助各种规模的开发人员和企业创建LLM应用程序,提供构建复杂项目所需的所有资源。Chroma确保项目具有高度可扩展性,并以最佳方式工作,以便高维向量可以快速地存储、搜索和检索。
它之所以越来越受欢迎,是由于它是一种极其灵活的解决方案,有广泛的部署选项。此外,Chroma可以直接部署在云上,也可以在现场运行,使其成为任何企业的可行选择,无论其IT基础设施如何。
Chroma还支持多种数据类型和格式,因而适合几乎任何应用程序。然而,Chroma的主要优势之一是它支持音频数据,这使得它成为基于音频的搜索引擎、音乐推荐应用程序和其他基于声音的项目的首选。
Milvus在机器学习和数据科学领域获得了很高的声誉,在向量索引和查询方面拥有出色的能力。利用功能强大的算法,Milvus提供闪电般的处理和数据检索速度以及GPU支持,即使在处理非常庞大的数据集时也是如此。Milvus还可以与PyTorch和TensorFlow等其他流行的框架集成,从而允许将其添加到现有的机器学习工作流中。
Milvus以其在相似性搜索和分析方面的能力而出名,广泛支持多种编程语言。这种灵活性意味着开发人员并不局限于后端操作,甚至可以在前端执行通常为服务器端语言保留的任务。比如说,您可以使用JAVAScript生成PDF,同时利用来自Milvus的实时数据。这为应用程序开发开辟了新的途径,特别是针对教育内容和专注于可访问性的应用程序。
这种开源向量数据库可以应用于一系列广泛的行业和大量的应用环境。另一个突出的例子涉及电子商务,Milvus可以支撑准确的推荐系统,根据客户的偏好和购买习惯来建议产品。
它还适用于图像/视频分析项目,协助图像相似性搜索、对象识别以及基于内容的图像检索。另一个关键用例是自然语言处理,提供文档聚类和语义搜索功能以及为问答系统提供基础功能。
接受比较的第三种开源向量数据库是Weaviate,它出现在自托管的解决方案和完全托管的解决方案中。无数企业使用Weaviate来处理和管理大型数据集,因为它具有出色的性能、简单性和高度可扩展性。
Weaviate能够管理众多数据类型,非常灵活,可以存储向量和数据对象,这使得它非常适合需要一系列搜索技术的应用环境(比如向量搜索和关键字搜索)。
就使用而言,Weaviate非常适合企业资源规划软件或牵涉以下方面的应用软件中的数据分类等项目:
现在我们对每种向量数据库的功能有了一番简单的了解,不妨考虑更具体的细节,它们在下面便捷的比较表中将每种开源解决方案区分开来。
比较表
|
Chroma |
Milvus |
Weaviate |
开源状态 |
有,Apache-2.0许可证 |
有,Apache-2.0许可证 |
有,BSD-3-Clause许可证 |
发布日期 |
2023年2月 |
2019年10月 |
2021年1月 |
用例 |
适合众多应用环境,支持多种数据类型和格式。 擅长基于音频的搜索项目和图像/视频检索。 |
适合众多应用环境,支持多种数据类型和格式。 极适合电子商务推荐系统、自然语言处理及图像/视频分析。 |
适合众多应用环境,支持多种数据类型和格式。 极适合企业资源规划软件中的数据分类。 |
关键特性 |
极易于使用。 开发、测试和生产等环境都使用Jupyter笔记本上的同一API。 强大的搜索、过滤 和密度估计功能。 |
使用内存中存储和持久性存储来提供高速查询和插入性能。 为大规模向量数据处理提供自动化的数据分区、负载均衡和容错。 支持众多向量相似性搜索算法。 |
提供基于GraphQL的API,与知识图交互时提供灵活性 和高效率。 支持实时数据更新,确保知识图在最新变化后仍然最新。 模式推理功能使定义数据结构的过程实现了自动化。 |
支持的编程语言 |
Python/ target=_blank class=infotextkey>Python或JavaScript |
Python、Java、C++和Go |
Python、Javascript和Go |
社区和行业知名度 |
强大社区,提供Discord频道,可回答实时查询。 |
Github、Slack、Reddit和Twitter上有活跃的社区。 1000多企业用户。 丰富的说明文档。 |
专门的论坛和活跃的Slack、 Twitter和LinkedIn社区。 外加定期播客和新闻简报。 丰富的说明文档。 |
性能指标 |
没有 |
https://weaviate.io/developers/ weaviate/benchmarks/ann |
|
GitHub星标 |
9000 |
23500 |
7800 |
这篇比较指南中每种开源向量数据库都很强大、易于扩展,并且完全免费。这可能会使选择完美的解决方案变得有点困难,但如果了解您从事的具体项目和所需的支持水平,这个过程可以变得更容易。
Chroma是最新的解决方案,在社区支持方面不如其他两个,但是其易用性和灵活性使它成为一个很好的选择,特别是对于涉及音频搜索的项目。
Milvus拥有最高的GitHub星级评级和强大的社区支持,有数量惊人的企业信任这个向量数据库来满足需求。因此,Milvus很适合自然语言处理和图像/视频分析项目。
最后,Weaviate提供自托管和完全管理的解决方案,并提供详细的说明文档和支持。一个关键的用例是企业资源规划软件中的数据分类,但这款解决方案对于众多项目来说堪称完美。
原文标题:An Honest Comparison of Open Source Vector Databases,作者:Nahla Davies