Milvus向量数据库入门指南

一、Milvus简介

Milvus是一个开源的向量数据库,专为AI应用和向量相似度搜索而设计,以加速非结构化数据的检索。自2019年创建以来,Milvus专注于存储、索引和管理由深度神经网络和其他机器学习模型生成的海量嵌入向量。其能够处理万亿级别的向量索引任务。

Milvus的核心优势在于其高效的索引机制,它支持多种索引类型,包括FLAT、IVF_FLAT、IVF_SQ8、IVF_PQ和HNSW等。这些索引类型适用于不同的应用场景,如图像识别、自然语言处理、推荐系统等。Milvus还提供了灵活的API接口,方便开发者集成和使用。

Milvus向量数据库入门指南_第1张图片

二、Milvus关键概念

非结构化数据

非结构化数据指的是那些没有固定格式和结构的数据,比如图像、视频、音频等数据都是非结构化数据。这类数据不遵循任何预定义的模型,且无法用二维的数据结构来定义其数据内容。但这种数据占据了世界数据的80%,为了挖掘和分析此类数据可以通过各种人工智能或机器学习模型将其转化为向量数据后进行处理。

嵌入向量

嵌入向量又被称为embedding vector,在大模型应用开发领域经常提到embedding,指的就是将非结构化数据(如音视频、ppt文档、图片等)转成向量化表示。

向量化表示可以理解为是非结构化数据的特征抽象表达,在数学的表达式中,向量是一个由浮点数或二进制数组成的n纬数组。

相似度搜索

相似度搜索是指将目标对象与向量数据库中的数据进行比对,找到与其最相似的结果;向量的相似度检索是通过embedding算法将非结构化数据转成vector,并使用最近邻搜索(ANN)算法计算出与其距离最相近的向量。同理,召回的原数据也是最相似的。

三、Milvus优势

简单易用:Milvus向量数据库可以让用户在几分钟内轻松搭建大型向量相似性搜索服务,提供多种语言的SDK,操作简单直观。

快速高效:Milvus有效节省硬件资源,并提供多样的索引算法。Milvus性能出色,向量召回速率极高。

高可用性:Milvus向量数据库受上千家企业信赖,适用于多种用例场景。Milvus系统组件相互独立、隔离,能充分确保系统弹性和可靠性。

高可扩展性:Milvus的分布式架构和高吞吐量特性使其非常适合处理大规模向量数据。
云原生:Milvus是一款云原生的向量数据库,采用存储与计算分离的架构设计,支持灵活扩展。

丰富功能:Milvus支持多种数据类型,提供数据过滤、多种数据一致性等级、Time Travel等丰富的功能。

存储计算分离:Milvus采用共享存储架构,存储计算完全分离,计算节点支持横向扩展,各个层次相互独立,独立扩展和容灾。

硬件感知优化:Milvus针对多种硬件架构和平台优化了其性能,包括AVX512、SIMD、GPU和NVMe SSD。

高级搜索算法:Milvus支持多种内存和磁盘索引/搜索算法,包括IVF、HNSW、DiskANN等,所有这些算法都经过了深度优化。

四、Milvus支持的索引类型

FLAT
● 特点:FLAT索引适用于需要100%召回率且数据规模相对较小(百万级)的向量相似性搜索应用。它不对向量进行压缩,因此是唯一能保证搜索结果完全准确的索引。
● 适用场景:适合数据集较小且对搜索精度要求极高的情况

IVF_FLAT
● 特点:IVF_FLAT是一种基于量化的索引,将向量数据划分为多个聚类单元,通过调节nprobe在召回率与查询速度之间找到平衡。
● 适用场景:适合需要较高召回率和快速查询的场景。

IVF_SQ8
● 特点:IVF_SQ8也是一种基于量化的索引,标量量化(SQ)将每个浮点数(4字节)压缩为1字节,减少内存占用。
● 适用场景:适合内存资源有限,允许轻微的召回率下降的场景。

IVF_PQ
● 特点:IVF_PQ结合IVF和PQ(乘积量化),进一步压缩数据存储需求,适用于追求高查询速度、低准确性的场景。
● 适用场景:适合内存资源有限,允许较大召回率下降,适合极高速查询的场景。

HNSW
● 特点:HNSW使用多层结构的导航小世界图(NSW)进行搜索,适用于追求高查询效率的场景。
● 适用场景:适合高精度和快速查询,适合内存资源充足的场景。

ANNOY
● 特点:ANNOY是基于树的索引,适用于追求高召回率的场景,特别是在低维向量空间中。
● 适用场景:适合追求高召回率的场景,尤其是在低维向量空间中。

你可能感兴趣的:(milvus,数据库,人工智能)