Milvus 二

发布于:2024-06-16 ⋅ 阅读:(22) ⋅ 点赞:(0)

Milvus支持的数据格式主要包括向量数据和标量数据,具体可以分为以下两大类:

  1. 向量数据
    • 稠密向量(Dense Vectors):Milvus支持稠密向量的存储和计算,这些向量的数据类型包括float32、float64、int8、int16和int32等。这些向量通常用于表示复杂的特征空间,如文本嵌入、图像特征等。
    • 稀疏向量(Sparse Vectors):Milvus也支持稀疏向量的存储和计算,主要采用压缩技术,如Growing Neural Gas(GNG)和Compressed Sparse Row(CSR)等。稀疏向量在某些场景下更加有效,特别是当数据的非零元素很少时。
  2. 标量数据
    • Milvus还支持传统的标量数据类型,如布尔值、字符串、整数和浮点数等。这些数据类型可以与向量数据混合使用,实现更复杂的查询和分析功能。

此外,Milvus还支持混合搜索,即可以在一个查询中同时处理向量数据和标量数据。这使得用户可以在海量数据集中同时根据向量相似性和传统标量属性进行搜索和过滤。Milvus通过支持多种向量和标量数据类型,以及混合搜索功能,为用户提供了强大的数据处理和分析能力。这些功能使得Milvus在图像识别、自然语言处理、推荐系统等领域具有广泛的应用前景。

Milvus支持的向量维度上限为32768。但为了获得更好的性能,推荐的最大维度为1024。这一数据基于参考文章2和参考文章3中的信息。在实际应用中,用户可以根据具体的数据特征和业务需求选择合适的向量维度。例如,在使用ResNet50模型时,由于其产生的向量维度不会特别大,因此更加方便使用Milvus进行存储和检索。

在创建集合时,用户可以通过设置参数来指定向量的维度。例如,在参考文章1中,通过param字典中的'dimension'键来设置向量的维度。同时,用户还需要考虑其他参数,如集合名称、索引文件大小、距离度量方式等,以确保Milvus能够满足其业务需求。

需要注意的是,高维度的向量虽然能够表示更复杂的特征空间,但也会带来更高的计算复杂度和存储需求。因此,在选择向量维度时,用户需要权衡其业务需求、计算资源和存储成本等因素。

Milvus的补充知识点可以归纳如下:

一、Milvus基本概念

  1. 定义:Milvus是一款开源的向量数据库,由Zilliz开发,旨在帮助开发者和数据科学家在各种应用中快速、高效地处理大规模向量数据。
  2. 支持的数据类型:支持包括图像、视频、音频、文本在内的多种数据类型,并使得向量搜索成为可能。
  3. 应用领域:广泛应用于推荐系统、计算机视觉、自然语言处理等领域。

二、Milvus架构与特性

  1. 云原生向量数据库:Milvus是一款云原生向量数据库,具备高可用、高性能、易拓展的特点,用于海量向量数据的实时召回。
  2. 向量搜索库:基于FAISS、Annoy、HNSW等向量搜索库构建,核心解决稠密向量相似度检索的问题。
  3. 功能:支持数据分区分片、数据持久化、增量数据摄取、标量向量混合查询、time travel等功能。
  4. 存储与计算:采用共享存储架构,存储计算完全分离,计算节点支持横向扩展。
  5. 架构层次:遵循数据流和控制流分离,整体分为接入层、协调服务、执行节点和存储层四个层次。

三、Milvus向量数据库与AI的关系

  1. 赋能大模型:向量数据库拓展了大模型的边界,包括时间边界和空间边界,使得大模型具有长期记忆。
  2. 实时更新:在推荐系统中,通过向量数据库可以实时更新用户和产品的特征向量,为大模型提供最新信息。

四、Milvus使用与操作

  1. 环境搭建:支持在多种操作系统(如Linux、Windows、macOS)上安装和运行,也支持通过Docker容器运行。
  2. 数据类型:支持主键字段类型如INT64、VARCHAR等。
  3. 索引构建:支持多种索引类型,如FLAT、IVF_FLAT、IVF_SQ8等,不同的索引类型适用于不同的查询场景。
  4. 查询操作:用户可以通过向量数据定义查询条件,Milvus会根据索引和查询条件快速返回与查询向量相似的数据。

五、Milvus的部署与扩展

  1. 部署建议:通常建议使用Kubernetes部署Milvus,以获得最佳可用性和弹性。
  2. 路由与网关:支持数据和索引的路由,可以将数据和索引分布到多个服务器上,提高系统性能和可靠性。网关是客户端与Milvus集群交互的接口,负责接收客户端的请求,并将请求路由到相应的服务器上执行。


网站公告

今日签到

点亮在社区的每一天
去签到