什么是 Milvus?

2025 年 1 月 6 日

作者

Matthew Kosinski

Enterprise Technology Writer

什么是 Milvus?

Milvus 是 Zilliz 开发的开源矢量数据库。Milvus 以为大量矢量嵌入提供可扩展的存储空间,以及支持矢量数据的高性能相似性搜索而闻名。

Zilliz 于 2017 年首次开发了 Milvus,并于 2020 年将该项目贡献给 Linux 基金会。Milvus 现在既可以作为 Apache License 2.0 下的开源软件使用,也可以作为 Zilliz 的云服务使用。

什么是矢量数据库,为什么它们很重要?

矢量数据库以矢量形式存储和管理数据集。它们可以帮助组织管理非结构化数据,对于高级人工智能 (AI) 和机器学习 (ML) 工作至关重要

矢量是表示复杂概念和对象(如文字和图像)的数字阵列。

非结构化数据(如文本、视频和音频)占当今企业数据的很大一部分,但传统数据库通常不适合组织和管理这些数据。

组织可以将这些数据提供给专门的深度学习嵌入模型,这些模型输出称为“嵌入”的矢量表示。例如,单词“cat”可能由矢量 [0.2, -0.4, 0.7] 表示,而单词“dog”可能由矢量 [0.6, 0.1, 0.5] 表示。

将数据转换为矢量使组织能够以共享格式将不同种类的非结构化数据存储在一个矢量数据库中。

矢量还可以帮助组织解锁这些数据在 AI 和 ML 中的价值。矢量捕获元素之间的语义关系,使得大型语言模型 (LLM) 和生成式 AI 工具能够进行有效处理。大多数先进的 AI 和 ML 应用程序今天依赖于矢量进行训练和内容生成。

与其他矢量数据库一样,Milvus 为组织提供了一种管理和组织嵌入矢量的方法。Milvus 矢量数据库的高度可扩展的存储空间和高效的矢量搜索功能使其成为检索增强生成、推荐系统和其他 AI 应用程序的热门选择。

小球在轨道上滚动的三维设计

最新的 AI 新闻 + 洞察分析

在每周的 Think 时事通讯中,发现专家精选的有关 AI、云等的洞察分析和新闻。 

Milvus 的架构

Milvus 是一个云原生矢量数据库,采用基于微服务的多层架构。Milvus 将存储和计算资源分离,使组织能够独立、水平地扩展每一层。

Milvus 兼容多种不同的嵌入模型。组织可以将他们的模型连接到 Milvus,Milvus 会采集嵌入以及元数据和其他相关信息。Milvus 支持流式和批量嵌入上传。

Milvus 有 4 层:

  • 访问层:这是面向外部的一层,接受来自用户和服务的输入并返回输出。

  • 协调器服务:Zilliz 将这一层称为系统的“大脑”,因为它负责协调负载平衡、数据管理、查询执行和其他重要任务。

  • 工作节点:该层执行查询、更新数据和构建索引。

  • 对象存储层:该层包括元数据存储、记录实时数据变更的日志代理,以及保存日志快照、索引文件和中间计算结果的对象存储。

Milvus 部署类型

  • Milvus Lite:一个 Python 库,让用户能够在本地环境中运行 Milvus。Milvus Lite 目前支持 Ubuntu 和 MacOS,但不支持 Microsoft Windows。

  • Milvus 单机版:完整的 Milvus 数据库,打包在单个 Docker 映像中,并在单个计算机上运行。

  • Milvus Cluster:分布式矢量数据库,可在 Kubernetes 集群中的节点组之间分布服务。

  • Zilliz Cloud:Milvus 的完全托管版本。
专家荟萃 | 播客

解码 AI:每周新闻摘要

加入我们的世界级专家团队,包括工程师、研究人员、产品负责人等,他们将穿透 AI 的喧嚣,为您带来最新的 AI 新闻和见解。

Milvus 的关键特征和功能

高级搜索功能

Milvus 支持高性能矢量相似性搜索,这是一种返回语义上与查询相似的结果的矢量搜索。相似性搜索的优点在于,它不像传统的关键字搜索那样仅限于完全匹配。

例如,关键词搜索“最好的披萨餐厅”只会返回包含“最好”、“披萨”和“餐厅”字样的结果。如果对同一关键词进行相似性搜索,即使内容中没有使用“最好的披萨餐厅”这样的精确词,也会找到任何被强烈推荐的披萨店的结果。

Milvus 支持多种相似性搜索类型,包括 top-k 近似最近邻 (ANN) 和范围 ANN。

Milvus 还支持混合搜索,将语义矢量搜索与元数据过滤或关键词搜索等其他标准结合起来。

混合搜索可以提高搜索效率、相关性更高。考虑将关键字搜索和矢量搜索相结合的搜索。搜索可以首先使用特定关键字来基于完全匹配来筛选结果,然后使用矢量相似性搜索在这些筛选结果中搜索语义最相关的内容。

索引

Milvus 支持多种索引类型,包括分层可导航小世界 (HNSW)、倒排文件 (IVF) 和基于 GPU 的索引。

索引矢量可以帮助加快搜索速度。例如,在索引构建过程中,HNSW 将相似的矢量聚类在一起,从而更容易更快地找到相关结果

可扩展性

Milvus 的层可以相互独立扩展,这可以为组织提供一种经济高效和资源有效的方式来处理大量矢量数据和密集搜索。

整合与兼容性

Milvus 提供大量软件开发套件 (SDK),以支持各种语言的开发,包括 Python (pymilvus)、Java 和 Go。

Milvus 还可以与 Apache Spark 等分析工具、LangChain 等框架以及 IBM watsonx、Meta 的 Llama 和 OpenAI 的 GPT 模型等生成式 AI 模型集成。

开放式源代码

大型开源社区为 Milvus 的 GitHub 存储库贡献了修复、更新和其他增强功能。

Milvus 与其他矢量数据库

Milvus 与 Pinecone

Pinecone 和 Milvus 都提供低延迟搜索和可扩展存储,但 Pinecone 是专有的矢量数据库,仅作为托管服务提供。

Milvus 与 Weaviate

与Milvus一样,Weaviate也是开源的,支持混合搜索。一个关键区别是,Milvus提供的索引类型比 Weaviate 多。

Milvus 与 Qdrant

Qdrant 是另一个开源矢量数据库,以其强大的功能而闻名。虽然 Qdrant 非常适合中等规模用途,但 Milvus 通常可以处理更多的矢量数据。

Milvus 与 Chroma

Chroma 注重易用性和快速本地部署。Chroma 没有分布式架构,因此可扩展性较差。虽然 Chroma 通常用于原型设计和测试,但 Milvus 可以支持更广泛的用例。

常见 Milvus 用例

组织使用 Milvus 支持众多 AI 应用场景,包括:

  • 检索增强生成 (RAG)

  • 推荐系统

  • 媒体搜索

  • 异常和欺诈检测

检索增强生成 (RAG)

RAG 是一种架构,可将 AI 模型与外部知识库连接起来,帮助模型提供相关性更高、更准确的结果。

Milvus 在 RAG 实现中很常见,因为它支持高效的混合搜索。通过将语义搜索的上下文理解与关键字搜索和元数据过滤的精确性相结合,Milvus 可以帮助从 RAG 源中获取相关文档、代码片段和其他信息。

CacheGPT,是 Zilliz 开发的 LLM 开源语义缓存,也有助于 Milvus 支持 RAG 实现。CacheGPT William 将来自生成式 AI 应用程序的响应存储为矢量嵌入。

互联服务(如 RAG 接口)无需为每次搜索都向生成式 AI 进行 API 调用。而是可以先检查缓存,仅在答案不存在时才调用生成式 AI。

推荐系统

Milvus 在根据过去行为将内容、产品和广告与用户相匹配的推荐系统中很受欢迎。

用户的偏好可以用矢量表示,通过相似性搜索可以找出与用户偏好接近的产品、广告和内容的矢量表示。

媒体搜索

Milvus 的相似性搜索功能可以帮助简化图像搜索、音频搜索、视频搜索和其他媒体搜索。

异常和欺诈检测

Milvus 可通过比较产品图像矢量和代表产品正常形态的矢量,帮助发现产品缺陷。矢量之间的差异可能表明存在缺陷。

Milvus 还可以帮助发现其他环境中的异常情况。在网络安全领域,代表授权网络活动的矢量可与代表已知恶意活动的矢量进行比较。同样,在金融领域,可以分析表示交易的矢量,以识别可能表明欺诈的偏差。

相关解决方案
IBM watsonx.ai

使用面向 AI 构建器的新一代企业级开发平台 IBM watsonx.ai,可以训练、验证、调整和部署生成式 AI、基础模型和机器学习功能。使用一小部分数据,即可在很短的时间内构建 AI 应用程序。

了解 watsonx.ai
人工智能 (AI) 解决方案

借助 IBM 业界领先的人工智能专业知识和解决方案组合,让人工智能在您的业务中发挥作用。

深入了解人工智能解决方案
AI 咨询与服务

通过增加 AI 重塑关键工作流程和运营,最大限度提升体验、实时决策和商业价值。

深入了解人工智能服务
采取后续步骤

一站式访问跨越 AI 开发生命周期的功能。利用用户友好型界面、工作流并访问行业标准 API 和 SDK,生成功能强大的 AI 解决方案。

深入了解 watsonx.ai 预约实时演示