当前位置: 首页 > news >正文

Milvus-云原生和分布式的开源向量数据库-介绍

/ˈmɪlvəs/
在 RAG(检索增强生成)的向量检索工具中,Milvus 是一款「云原生、分布式」的开源向量数据库
核心定位是解决「大规模、高并发、高可用」场景下的向量相似性检索问题

相比 ANNOY(轻量单机)、FAISS(单机 / 分布式但需手动部署),Milvus 更适合企业级 RAG 系统(比如百万 / 亿级知识库、多团队协作、高并发查询),是当前工业界落地 RAG 的主流选择之一

什么是 Milvus?

官方定义:
一款专为高维向量设计的开源向量数据库,支持近似最近邻(ANN)检索和精确检索,提供高吞吐、低延迟的向量查询服务

核心目标:
解决「亿级高维向量的快速检索 + 企业级稳定性」问题
比如 RAG 场景中,当知识库规模达到 10 亿级文档片段(对应 10 亿级向量),且需要支持每秒数千次查询(QPS)时,ANNOY、单机 FAISS 无法承载,而 Milvus 通过分布式架构可轻松应对

关键标签:
开源、云原生、分布式、多模态支持(不仅支持文本向量,还支持图像、音频等向量)、企业级高可用

Milvus 的核心优势

相比 ANNOY、FAISS 等工具,Milvus 的核心优势集中在「大规模支撑、稳定性、易用性」,完美适配企业级 RAG 需求

分布式架构:支持海量数据与高并发

  • 数据分片:将亿级向量拆分成多个分片,存储在不同节点上,避免单节点压力过大
  • 水平扩容:当数据量或查询量增长时,只需新增节点即可,无需重构系统
  • 高吞吐量:支持每秒数万次向量查询(QPS),满足高并发问答场景(比如大型企业内部全员使用的知识库问答)

企业级高可用:避免服务中断

  • 数据多副本:每个向量分片会存储多个副本(比如 3 副本),单个节点故障时,副本自动接管服务,无数据丢失
  • 故障自动恢复:节点故障后,系统会自动检测并重启,无需人工干预
  • 支持跨区域部署:可在多个数据中心部署,进一步提升可用性(比如跨北京、上海机房)

易用性:降低企业级部署成本

  • 全托管服务(Zilliz Cloud):无需手动部署、运维分布式集群,开箱即用(类似 Pinecone,但支持私有部署)
  • 丰富的 API 与 SDK:支持 Python、Java、Go、C++ 等多种语言,可无缝集成到 RAG 技术栈(LangChain、Haystack 等框架直接提供 Milvus 连接器)
  • 可视化管理工具(Attu):提供图形化界面,可直观查看向量库、索引、查询性能,方便运维调试

灵活的索引与检索策略

  • 支持多种 ANN 索引算法:可根据数据量和需求选择(比如 IVF_FLAT 适合中小规模、IVF_PQ 适合大规模、HNSW 适合低延迟场景)
  • 混合检索:支持「向量相似度检索 + 元数据过滤」(比如 RAG 中可按 “文档来源 = 产品手册” 过滤,只检索该类文档的向量),进一步提升检索精度
  • 多模态兼容:不仅支持文本向量(如 Sentence-BERT 输出),还支持图像向量(如 ResNet 输出)、音频向量,可支撑多模态 RAG(比如 “上传图片查询相关文档”)

数据安全与合规

支持数据加密:传输加密(TLS/SSL)、存储加密(AES-256),满足企业数据安全要求
访问控制:支持 RBAC(基于角色的访问控制),可按团队 / 用户分配向量库的读写权限
(比如产品团队只能查询产品文档向量,财务团队只能查询财务文档向量)

RBAC 的全称是 基于角色的访问控制(Role-Based Access Control),是一种常用的权限管理机制
核心是通过 “角色” 作为中间层,关联用户与权限,实现权限的批量分配和统一管控

Milvus 的核心技术逻辑

Milvus 的底层设计围绕「分布式向量存储 + 高效索引 + 并行查询」展开
核心流程可分为「数据写入(RAG 向量预处理)」和「数据查询(RAG 在线检索)」:

数据写入流程(RAG 向量预处理阶段)

步骤 1:接收 RAG 预处理后的「向量 + 文本片段 + 元数据」(比如 768 维向量、片段内容、文档来源)
步骤 2:数据分片:按预设规则(如哈希分片)将向量分配到不同节点的分片上
步骤 3:索引构建:每个分片会对本地向量构建索引(支持手动触发或自动触发,比如数据量达到 1 万条时自动构建)
步骤 4:数据持久化:向量和索引会存储到持久化存储(如 MinIO、S3),避免节点重启后数据丢失

数据查询流程(RAG 在线检索阶段)

步骤 1:接收用户问题编码后的查询向量,以及可选的元数据过滤条件(如 “文档来源 = 2025 年假政策”)
步骤 2:路由分发:查询请求被路由到所有存储相关分片的节点
步骤 3:并行检索:每个节点对本地分片执行向量检索(结合索引快速匹配),返回 Top-K 相似向量
步骤 4:结果聚合:将所有节点的检索结果汇总,重新按相似度排序,筛选出最终的 Top-K 结果(比如 Top-5)
步骤 5:返回结果:将结果对应的文本片段和元数据返回给 RAG 的生成模块

Milvus 在 RAG 中的完整应用流程

离线准备(向量预处理 + Milvus 入库)

文档拆分:用 LangChain 拆分长文档为短片段(如 200 字 / 段)
向量编码:用 Sentence-BERT 编码片段为 768 维向量,关联元数据(文档来源、章节、页码)

Milvus 初始化:
创建「集合(Collection)」:相当于 RAG 的 “知识库向量表”,定义向量维度(如 768)、元数据字段(如 source: string, chapter: string)
创建索引:为集合指定索引算法(如 HNSW,适合低延迟场景)
数据写入:将「向量 + 元数据」批量写入 Milvus 集合,Milvus 自动完成分片和索引构建

在线推理(在线检索 + Milvus 查询)

用户提问:用户输入 “2025 年年假政策是什么?”
问题预处理 + 编码:规范问题后,用同一个 Sentence-BERT 编码为查询向量

Milvus 检索:
调用 Milvus SDK,传入查询向量 + 元数据过滤条件(如 source=“员工手册”)
Milvus 分布式并行检索,毫秒级返回 Top-5 相似向量对应的文本片段
结果过滤:剔除相似度低于阈值(如 0.5)的片段
生成答案:将「问题 + 高相关片段」输入大模型,生成精准答案

知识库更新(增量维护)

新增文档:拆分、编码后,批量写入 Milvus 集合(支持增量更新,无需全量重建索引)
删除 / 修改文档:通过元数据(如 chunk_id)定位到目标向量,执行删除 / 更新操作
索引优化:Milvus 支持自动优化索引(如合并小分片、重建索引),保证检索性能稳定

Milvus 与其他 RAG 向量检索工具的对比

在这里插入图片描述

关键使用建议

索引选择

中小规模数据(100 万以内):选 IVF_FLAT(精度高,检索速度快)
大规模数据(100 万~10 亿):选 HNSW(低延迟,召回率高)或 IVF_PQ(存储成本低,适合超大规模)
注意:索引构建需要时间,批量写入数据后建议手动触发索引构建(避免刚写入就查询导致检索速度慢)

元数据设计:
必加字段:文档来源(source)、片段 ID(chunk_id)、创建时间(create_time),方便后续筛选、更新、溯源
避免冗余:元数据字段不宜过多(比如不存储完整文本片段,仅存储片段 ID,文本片段可存在 MySQL/MinIO 中,通过 ID 关联),减少 Milvus 存储压力

部署方式:
快速验证:用 Milvus Standalone(单机版),部署简单,适合测试
生产环境:用 Milvus Cluster(分布式集群)或 Zilliz Cloud(全托管),保证高可用和高并发
资源配置:根据数据量调整节点规格(比如亿级数据建议至少 3 个数据节点 + 2 个查询节点)

性能优化:
批量写入:预处理阶段批量写入 Milvus(每次批量 1 万~10 万条),比单条写入效率高 10 倍以上
查询参数调优:HNSW 索引可调整 ef 参数(查询时的候选集大小,ef 越大精度越高但延迟越高,默认 100,可根据需求调整)
向量维度:优先选择低维向量编码器(如 all-MiniLM-L6-v2 输出 384 维),减少存储和计算成本

核心总结

Milvus 是 RAG 场景中「企业级向量检索」的标杆工具
核心价值是「用分布式架构解决大规模、高并发、高可用的向量检索问题」,同时兼顾易用性和合规性
它不像 ANNOY 那样轻量,但能支撑 RAG 从 “小范围试用” 到 “全公司推广” 的规模化落地
是中大型企业构建 RAG 知识库问答、智能客服、多模态检索等应用的首选向量数据库

http://www.dtcms.com/a/618426.html

相关文章:

  • 在linux(Centos)中Mysql的端口修改保姆级教程
  • 哪个网站可以做优惠券wordpress博客文章404
  • wordpress active济南优化网站价格
  • 怎样在自己的网站上家程序数字营销工具
  • 【论文学习】超越自注意力:用于视觉任务的两种线性层外部注意力
  • Python一个类的特殊方法有哪些
  • 网站建设免费制作北京王府井在哪个区
  • 力扣-买卖股票的最佳时机
  • 利用canvas来实现图片添加文字 制作图片logo
  • 禅城区网站建设公司qq网页注册入口
  • c++音乐——《两只老虎》
  • 开发 必知 网站上饶哪有做网站的公司
  • pytest1-接口自动化测试场景
  • 江西网站建设企业网站备案和服务器备案
  • 机器学习--决策树算法(筛选病例)
  • 网站收录查询网做图片格式跟尺度用哪个网站好
  • Java 核心知识点笔记(集合、浮点存储、异常、反射、static/this关键字)
  • 二维差分算法高效解靶场问题
  • 免费的企业黄页网站永久免费网站模板如何使用 如何修改吗
  • 如何在树莓派部署Nginx并实现无公网ip远程访问内网制作的web网站
  • 北京网站建设方案书专业的企业智能建站制造厂家
  • Hystrix架构原理与使用详解
  • bash Buffering
  • 区块链论文速读 CCF A--USENIX Security 2025(6)
  • SAP FICO工单成本明细报表
  • 网站建设需要看什么书长沙专业企业建站联系人
  • 金华永康网站建设手机优化怎么关闭
  • 斯坦福大学 | CS336 | 从零开始构建语言模型 | Spring 2025 | 笔记 | Lecture 9: Scaling laws 1
  • 银川网站网站建设数据库网站建设公司
  • MyBatis-Plus 三种数据库操作方式详解 + 常用方法大全