Skip to main content
NetApp Solutions
简体中文版经机器翻译而成,仅供参考。如与英语版出现任何冲突,应以英语版为准。

向量数据库

贡献者

本节介绍了NetApp AI解决方案中矢量数据库的定义和使用。

向量数据库

向量数据库是一种专用的数据库类型、旨在使用机器学习模型中的内推数据处理、索引和搜索非结构化数据。它不是以传统的表格形式组织数据、而是将数据安排为高维向量、也称为向量内置。这种独特的结构使数据库能够更高效、更准确地处理复杂的多维数据。

矢量数据库的关键功能之一是使用生成型AI执行分析。这包括相似性搜索(数据库可识别与给定输入类似的数据点)和异常检测(可发现明显偏离标准的数据点)。

此外、向量数据库非常适合处理时间数据或带时间戳的数据。此类数据提供有关‘发生了什么’和发生时间、发生顺序以及给定IT系统中所有其他事件的相关信息。这种处理和分析时间数据的能力使向量数据库对于需要了解随时间变化的事件的应用程序特别有用。

ML和AI的矢量数据库的优势:

  • 高维搜索:矢量数据库在管理和检索高维数据方面表现出色、这些数据通常在AI和ML应用程序中生成。

  • 可扩展性:它们可以高效扩展以处理大量数据、从而支持AI和ML项目的增长和扩展。

  • 灵活性:向量数据库提供高度的灵活性、允许容纳不同类型的数据和结构。

  • 性能:它们提供高性能数据管理和检索、对于提高AI和ML操作的速度和效率至关重要。

  • 可自定义索引编制:向量数据库提供可自定义的索引编制选项、可根据特定需求优化数据组织和检索。

向量数据库和用例。

本节提供了不同的矢量数据库及其使用情形详细信息。

和ScaNN

它们是在矢量搜索领域中用作关键工具的库。这些库提供的功能有助于管理和搜索矢量数据、使其成为这一数据管理专业领域的宝贵资源。

Elasticsearch

它是一个广泛使用的搜索和分析引擎、最近加入了矢量搜索功能。这一新功能增强了其功能,使其能够更有效地处理和搜索矢量数据。

针酮

它是一个强大的矢量数据库,具有一组独特的功能。它的索引功能既支持密集向量、也支持稀疏向量、从而提高了其灵活性和适应性。其主要优势之一在于、它能够将传统搜索方法与基于AI的密集矢量搜索相结合、从而创建一种混合搜索方法、充分利用这两种环境的优势。

Pinecone主要基于云、专为机器学习应用程序而设计、可与各种平台完美集成、包括GCP、AWS、Open AI、GPT-3、 GPT-3.5、GPT-4、Catgt Plus、ElatcSearch、HayStack、 等等。需要注意的是、Pinecone是一个闭源平台、可作为软件即服务(Software as a Service、SaaS)产品提供。

鉴于Pinecone的高级功能、它特别适合网络安全行业、在该行业中、可以有效地利用其高维度搜索和混合搜索功能来检测和应对威胁。

色度

它是一个矢量数据库、具有具有四个主要功能的Core-API、其中一个功能包括内存文档矢量存储。它还利用Face Transformers库对文档进行向量化、从而增强其功能和多功能性。
Chroma设计用于在云端和内部环境中运行、可根据用户需求提供灵活性。特别是、它在音频相关应用程序中表现出色、是基于音频的搜索引擎、音乐推荐系统和其他音频相关用例的绝佳选择。

韦维瓦特

它是一个多功能矢量数据库、允许用户使用其内置模块或自定义模块对其内容进行矢量化、从而根据特定需求提供灵活性。它既提供完全托管的解决方案、也提供自行托管的解决方案、可满足各种部署首选项的要求。

We勤 威的主要功能之一是能够存储向量和对象、从而增强了数据处理能力。它广泛用于各种应用程序、包括ERP系统中的语法搜索和数据分类。在电子商务领域,它为搜索和推荐引擎提供支持。此外、Weanate还可用于图像搜索、异常检测、自动化数据协调和网络安全威胁分析、展示其在多个域中的多功能性。

Redis

Redis是一种高性能矢量数据库、以其快速内存存储而闻名、可为读写操作提供低延迟。因此、对于需要快速访问数据的推荐系统、搜索引擎和数据分析应用程序来说、它是一个绝佳的选择。

Redis支持向量的各种数据结构、包括列表、集和排序集。它还提供矢量操作,如计算矢量之间的距离或查找交点和联合。这些功能对于相似性搜索、集群和基于内容的建议系统尤其有用。

在可扩展性和可用性方面、Redis在处理高吞吐量工作负载方面表现出色、并提供数据复制功能。它还可以与其他数据类型(包括传统关系数据库(RDBMS))完美集成。
Redis包括用于实时更新的发布/订阅(发布/订阅)功能、这对于管理实时向量非常有用。此外、Redis的重量轻且易于使用、使其成为用于管理矢量数据的用户友好型解决方案。

Milvus

它是一个多功能向量数据库、提供类似于文档存储的API、与MongoDB非常相似。它因支持多种数据类型而脱颖而出、成为数据科学和机器学习领域的热门选择。

Milvus的独特功能之一是其多矢量化功能,它允许用户在运行时指定用于搜索的矢量类型。此外、它还利用位于其他库(如法斯库)之上的Knowwhere库来管理查询和向量搜索算法之间的通信。

由于与PyTorch和TensorFlow兼容、Milvus还可以与机器学习工作流无缝集成。这使得它成为一系列应用程序的出色工具、包括电子商务、图像和视频分析、对象识别、图像相似性搜索和基于内容的图像检索。在自然语言处理领域、Milvus用于文档集群、语义搜索和问题解答系统。

对于此解决方案、我们选择了Milvus进行解决方案验证。为了提高性能、我们使用了milvus和postgres (pgvedost.rs)。

为什么选择Milvus作为此解决方案?

  • 开源:Milvus是一个开源向量数据库、鼓励社区驱动的开发和改进。

  • AI集成:它利用嵌入的相似性搜索和AI应用程序来增强矢量数据库功能。

  • 大容量处理:Milvus能够存储、索引和管理由深度神经网络(DNN)和机器学习(ML)模型生成的超过十亿个嵌入矢量。

  • 用户友好型:易于使用、不到一分钟即可完成设置。Milvus还为不同的编程语言提供了SDK。

  • 速度:它提供极快的检索速度、速度是某些替代产品的10倍。

  • 可扩展性和可用性:Milvus具有高度可扩展性、可根据需要进行纵向和横向扩展。

  • 功能丰富:支持不同的数据类型、属性筛选、用户定义功能(UDF)支持、可配置的一致性级别和行程时间、使其成为适用于各种应用程序的通用工具。

Milvus架构概述

图中显示了输入/输出对话框或表示已写入内容

本节介绍了Milvus架构中使用的更高级别的组件和服务。
*访问层—由一组无状态代理组成、充当系统的前端层和用户端点。
*协调员服务——它将任务分配给工作节点并充当系统的大脑。它有三种协调者类型:根协调者、数据协调者和查询协调者。
*工作节点:它遵循协调者服务的指示并执行用户触发的DML/DDL commands.it有三种类型的工作节点,如查询节点、数据节点和索引节点。
*存储:它负责数据的持久性。它由元数据存储、日志代理和对象存储组成。ONTAP和StorageGRID等NetApp存储为Milvus提供对象存储和基于文件的存储、用于存储客户数据和矢量数据库数据。