Milvus 是一款开源的向量数据库(Vector Database) ,专门设计用于存储、索引和管理由深度学习模型生成的海量向量嵌入(Embeddings)。
它是目前全球最受欢迎的向量数据库之一,由 Zilliz 公司发起并开源,目前是 LF AI & Data 基金会的毕业项目。
以下是对 Milvus 的详细介绍:
1. 为什么需要 Milvus?(核心背景)
在传统的 SQL 数据库(如 MySQL)中,我们搜索的是结构化数据 (如数字、字符串)。但在 AI 时代,大部分数据是非结构化的(图片、视频、文本、语音)。
- 过程:通过深度学习模型(如 CLIP、BERT、GPT),这些非结构化数据会被转化为一串数字向量(Embedding)。
- 挑战 :传统的数据库无法高效处理这种"在高维空间寻找最相似点"的计算(即近邻搜索 ANN)。
- 解决:Milvus 专门为这种高维向量的**近似搜索(Approximate Nearest Neighbor Search)**而生,能够处理万亿级规模的数据。
2. Milvus 的核心特性
- 高性能:在进行大规模向量搜索时,响应时间通常在毫秒级。
- 云原生架构 :采用了存储与计算分离的设计。这意味着你可以根据需求独立扩展计算节点或存储节点,非常适合 Kubernetes 环境。
- 高可靠性:支持多副本伸缩、容灾恢复,适合企业级生产环境。
- 混合搜索(Hybrid Search) :
- 它不仅支持向量搜索,还支持标量过滤(例如:搜索"与这张图片相似"的图片,但限制条件是"价格在 100 元以内")。
- 支持多种索引算法 :内置了多种成熟的向量索引技术,如 HNSW 、IVF 、Flat 、以及专门针对磁盘优化的 DiskANN。
3. Milvus 的逻辑结构
为了方便理解,可以将其与传统数据库做类比:
- Collection(集合) ≈ 表(Table)
- Entity(实体) ≈ 行(Row)
- Field(字段) ≈ 列(Column)
- Vector(向量) ≈ 核心数据列(关键字段)
4. 典型应用场景
- RAG(检索增强生成) :
- 这是目前最火的应用。将企业文档存入 Milvus,当用户询问大模型(如 ChatGPT/Claude)时,先从 Milvus 中检索出最相关的片段给模型参考,从而解决模型"胡说八道"的问题。
- 图片/视频相似度搜索 :
- 以图搜图、短视频去重、物体识别。
- 个性化推荐系统 :
- 根据用户的行为向量,快速匹配其可能感兴趣的内容、商品或好友。
- 智能客服/语义搜索 :
- 超越关键词匹配,根据语义理解来回答问题。
- 异常检测 :
- 将正常行为模式向量化,实时检测偏离正常范围的异常数据(如信用卡诈骗检测)。
5. Milvus 的三种部署版本
- Milvus Standalone:单机版,适合开发测试和小型应用。
- Milvus Distributed:分布式版本,支持大规模集群部署,处理海量数据。
- Zilliz Cloud:Milvus 的托管版本(SaaS),无需自己维护基础设施,开箱即用。
6. 生态集成
Milvus 拥有非常完善的生态圈,支持几乎所有主流 AI 工具:
- 编程语言:Python, Java, Go, Node.js。
- AI 框架:LangChain, LlamaIndex, Towhee。
- 模型库:PyTorch, TensorFlow, HuggingFace。
总结
如果说大模型(LLM)是 AI 的大脑 ,那么 Milvus 就像是 AI 的长期记忆库。它解决了 AI 如何在大规模知识海洋中快速、准确地找到所需信息的问题,是构建现代 AI 应用不可或缺的基础设施。
项目官网 : milvus.io 代码仓 : github.com/milvus-io/m...