OA0 = Omni AI 0
OA0 是一个探索 AI 的论坛
现在注册
已注册用户请  登录
OA0  ›  代码  ›  Milvus — 全球领先的云原生向量数据库

Milvus — 全球领先的云原生向量数据库

 
  branch ·  2026-02-28 11:20:00 · 48 次点击  · 0 条评论  

milvus banner

license docker-pull-count fully-managed-milvus fully-managed-milvus tutorials slack discord twitter

Milvus 是什么?

🐦 Milvus 是一个专为大规模应用设计的高性能向量数据库。它通过高效组织和搜索海量非结构化数据(如文本、图像和多模态信息),为 AI 应用提供强大动力。

🧑‍💻 Milvus 使用 Go 和 C++ 编写,通过 CPU/GPU 硬件加速实现业界领先的向量搜索性能。得益于其完全分布式和 K8s 原生架构,Milvus 可以水平扩展,在数十亿向量上处理成千上万的搜索查询,并通过实时流式更新保持数据新鲜。Milvus 也支持单机部署的独立模式Milvus Lite 是一个轻量级版本,适合通过 pip install 在 Python 中快速上手。

想零配置使用 Milvus?免费试用 Zilliz Cloud ☁️。Milvus 在 Zilliz Cloud 上作为全托管服务提供,包含无服务器专属集群自带云选项。

关于如何使用 Milvus 的问题,请加入 Discord 社区获取帮助。报告问题、提交 Bug 和功能请求,请在 GitHub Issues 中提交,或在 Discussions 中提问。

Milvus 开源项目隶属于 LF AI & Data Foundation,采用 Apache 2.0 许可证分发,Zilliz 是其主要贡献者。

快速开始

$ pip install -U pymilvus

这将安装 pymilvus,即 Milvus 的 Python SDK。使用 MilvusClient 创建客户端:

from pymilvus import MilvusClient
  • 你也可以通过安装 pymilvus[milvus-lite] 来尝试 Milvus Lite 以快速上手。要创建本地向量数据库,只需使用本地文件名实例化一个客户端以持久化数据:

python client = MilvusClient("milvus_demo.db")

python client = MilvusClient( uri="<自托管_milvus_或_zilliz_cloud_的端点>", token="<用户名和密码_或_zilliz_cloud_api密钥>")

使用客户端,你可以创建集合:

client.create_collection(
    collection_name="demo_collection",
    dimension=768,  # 本演示中使用的向量维度为 768
)

插入数据:

res = client.insert(collection_name="demo_collection", data=data)

执行向量搜索:

query_vectors = embedding_fn.encode_queries(["Who is Alan Turing?", "What is AI?"])
res = client.search(
    collection_name="demo_collection",  # 目标集合
    data=query_vectors,  # 一个或多个查询向量的列表,支持批量
    limit=2,  # 返回多少结果 (topK)
    output_fields=["vector", "text", "subject"],  # 返回哪些字段
)

为什么选择 Milvus

Milvus 专为大规模向量搜索而设计。它存储向量(非结构化数据的表示)以及其他标量数据类型(如整数、字符串和 JSON 对象)。用户可以进行高效的向量搜索,并支持元数据过滤或混合搜索。以下是开发者选择 Milvus 作为 AI 应用向量数据库的原因:

大规模高性能与高可用性
* Milvus 采用分布式架构,将计算存储分离。Milvus 可以水平扩展并适应不同的流量模式,通过独立增加查询节点来处理读密集型工作负载,增加数据节点来处理写密集型工作负载,从而实现最佳性能。K8s 上的无状态微服务允许快速故障恢复,确保高可用性。对副本的支持通过在多个查询节点上加载数据段,进一步增强了容错能力和吞吐量。查看性能基准测试进行性能比较。

支持多种向量索引类型和硬件加速
* Milvus 将系统与核心向量搜索引擎分离,使其能够支持所有主流的向量索引类型,这些索引针对不同场景进行了优化,包括 HNSW、IVF、FLAT(暴力搜索)、SCANN 和 DiskANN,以及基于量化的变体和内存映射。Milvus 针对高级功能(如元数据过滤范围搜索)优化了向量搜索。此外,Milvus 实现了硬件加速以提升向量搜索性能,并支持 GPU 索引,例如 NVIDIA 的 CAGRA

灵活的多租户与热/冷存储
* Milvus 通过数据库、集合、分区或分区键级别的隔离来支持多租户。这种灵活的策略允许单个集群处理数百到数百万个租户,同时确保优化的搜索性能和灵活的访问控制。Milvus 通过热/冷存储提高了成本效益。频繁访问的热数据可以存储在内存或 SSD 中以获得更好的性能,而较少访问的冷数据则保存在速度较慢但成本效益更高的存储上。这种机制可以在保持关键任务高性能的同时显著降低成本。

用于全文搜索和混合搜索的稀疏向量
* 除了通过稠密向量进行语义搜索外,Milvus 还原生支持使用 BM25 进行全文搜索,以及学习到的稀疏嵌入,如 SPLADE 和 BGE-M3。用户可以在同一集合中存储稀疏向量和稠密向量,并定义函数来对来自多个搜索请求的结果进行重新排序。查看语义搜索 + 全文搜索的混合搜索示例。

数据安全与细粒度访问控制
* Milvus 通过实施强制用户认证、TLS 加密和基于角色的访问控制(RBAC)来确保数据安全。用户认证确保只有拥有有效凭据的授权用户才能访问数据库,而 TLS 加密则保护网络内的所有通信。此外,RBAC 允许根据用户的角色分配特定权限,实现细粒度的访问控制。这些特性使 Milvus 成为企业应用的稳健且安全的选择,保护敏感数据免受未经授权的访问和潜在破坏。

Milvus 受到 AI 开发者的信赖,用于构建文本和图像搜索、检索增强生成(RAG)和推荐系统等应用。Milvus 为初创公司和企业的许多关键业务提供动力。

演示与教程

以下是一些演示和教程,展示如何使用 Milvus 构建各种类型的 AI 应用:

你可以探索全面的教程概览,涵盖检索增强生成(RAG)、语义搜索、混合搜索、问答系统、推荐系统以及各种快速入门指南等主题。这些资源旨在帮助你快速高效地入门。

教程 用例 相关 Milvus 特性
使用 Milvus 构建 RAG RAG 向量搜索
高级 RAG 优化 RAG 向量搜索,全文搜索
使用 Milvus 进行全文搜索 文本搜索 全文搜索
使用 Milvus 进行混合搜索 混合搜索 混合搜索,多向量,稠密嵌入,稀疏嵌入
使用 Milvus 进行图像搜索 语义搜索 向量搜索,动态字段
使用多向量进行多模态搜索 语义搜索 多向量,混合搜索
使用 Milvus 进行电影推荐 推荐系统 向量搜索
使用 Milvus 进行图 RAG RAG 图搜索
使用 Milvus 进行上下文检索 快速入门 向量搜索
向量可视化 快速入门 向量搜索
使用 Milvus 进行 HDBSCAN 聚类 快速入门 向量搜索
使用 ColPali 与 Milvus 进行多模态检索 快速入门 向量搜索
图像搜索 RAG 药物发现

生态系统与集成

Milvus 与一套全面的 AI 开发工具集成,例如 LangChain、LlamaIndex、OpenAI 和 HuggingFace,使其成为检索增强生成(RAG)等 GenAI 应用的理想向量存储。Milvus 适用于开源嵌入模型和嵌入服务,涵盖文本、图像和视频模态。Milvus 还提供了一个便捷的工具 pymilvus[model],用户可以使用简单的包装代码将非结构化数据转换为向量嵌入,并利用重排序模型来优化搜索结果。Milvus 生态系统还包括用于基于 GUI 管理的 Attu、用于系统调试的 Birdwatcher、用于监控的 Prometheus/Grafana、用于数据同步的 Milvus CDC、用于数据迁移的 VTS 以及用于构建搜索管道的数据连接器,如 SparkKafkaFivetranAirbyte

查看 https://milvus.io/docs/integrations_overview.md 获取更多详情。

文档

有关安装、使用、部署和管理的指南,请查阅 Milvus 文档。有关技术里程碑和增强提案,请查看 GitHub 上的 issues

贡献

Milvus 开源项目欢迎所有人的贡献。有关提交补丁和开发工作流程的详细信息,请参阅贡献指南。查看我们的社区仓库以了解项目治理并访问更多社区资源。

从源代码构建 Milvus

要求:

  • Linux 系统(推荐 Ubuntu 20.04 或更高版本):
    bash Go: >= 1.21 CMake: >= 3.26.4 && CMake < 4 GCC: 9.5 Python: > 3.8 and <= 3.11

  • 使用 x86_64 的 MacOS 系统(推荐 Big Sur 11.5 或更高版本):
    bash Go: >= 1.21 CMake: >= 3.26.4 && CMake < 4 llvm: >= 15 Python: > 3.8 and <= 3.11

  • 使用 Apple Silicon 的 MacOS 系统(推荐 Monterey 12.0.1 或更高版本):
    ```bash
    Go: >= 1.21

48 次点击  ∙  0 人收藏  
登录后收藏  
目前尚无回复
0 条回复
About   ·   Help   ·    
OA0 - Omni AI 0 一个探索 AI 的社区
沪ICP备2024103595号-2
Developed with Cursor