向量数据库 Milvus 简介

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 元以内")。
  • 支持多种索引算法 :内置了多种成熟的向量索引技术,如 HNSWIVFFlat 、以及专门针对磁盘优化的 DiskANN

3. Milvus 的逻辑结构

为了方便理解,可以将其与传统数据库做类比:

  • Collection(集合) ≈ 表(Table)
  • Entity(实体) ≈ 行(Row)
  • Field(字段) ≈ 列(Column)
  • Vector(向量) ≈ 核心数据列(关键字段)

4. 典型应用场景

  1. RAG(检索增强生成)
    • 这是目前最火的应用。将企业文档存入 Milvus,当用户询问大模型(如 ChatGPT/Claude)时,先从 Milvus 中检索出最相关的片段给模型参考,从而解决模型"胡说八道"的问题。
  2. 图片/视频相似度搜索
    • 以图搜图、短视频去重、物体识别。
  3. 个性化推荐系统
    • 根据用户的行为向量,快速匹配其可能感兴趣的内容、商品或好友。
  4. 智能客服/语义搜索
    • 超越关键词匹配,根据语义理解来回答问题。
  5. 异常检测
    • 将正常行为模式向量化,实时检测偏离正常范围的异常数据(如信用卡诈骗检测)。

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...

相关推荐
倚栏听风雨2 小时前
我们对一个文本向量化存储后 ,如果这个文本发生了变化 ,如何更新向量库里的数据
后端
白鸽(二般)2 小时前
Spring 的配置文件没有小绿叶
java·后端·spring
白衣鸽子2 小时前
Java线程池双雄:ForkJoinPool 和 ThreadPoolExecutor 的区别
后端
馬致远2 小时前
Flask 根据数据表生成模型类(逆向工程)
后端·python·flask
唐叔在学习2 小时前
PyWebView 移动端适配踩坑实录
后端·python
Penge6662 小时前
为什么有了物理表,还需要逻辑表?这4个核心场景讲透
后端
用户9446814013502 小时前
面试官:介绍一下SYN泛洪是什么?
后端
回家路上绕了弯2 小时前
分布式系统幂等性详解:从理论到落地的完整指南
分布式·后端
小王师傅663 小时前
【轻松入门SpringBoot】actuator健康检查(中)-group,livenessState,readinessState
java·spring boot·后端