RAG项目的核心解决方案
Milvus 概述
Milvus 是一个开源的向量数据库,专为 AI 应用设计,用于存储和检索向量数据。
为什么需要向量数据库?
文本、图像、音频等非结构化数据格式各异,带有丰富的底层语义。Embeddings(嵌入) 将非结构化数据转换成数字向量,捕捉其基本特征。向量数据库则实现快速、可扩展的搜索和分析。
三种部署模式
| 模式 | 适用场景 | 向量规模 |
|---|---|---|
| Milvus Lite | 快速原型开发、边缘设备 | ~百万级 |
| Milvus Standalone | 单机服务器、中小型生产 | 1~10亿 |
| Milvus Distributed | 大规模 K8s 集群 | 十亿~数百亿 |
Milvus 为何如此快速?
- 硬件感知优化:针对 AVX512、SIMD、GPU、NVMe SSD 优化
- 高级搜索算法:支持 IVF、HNSW、DiskANN 等,比 FAISS 快 30%-70%
- C++ 搜索引擎:核心组件使用 C++,性能瓶 颈在搜索引擎
- 面向列式存储:只读取查询涉及的字段,减少数据访问量
支持的搜索类型
- ANN 搜索:查找最接近的前 K 个向量
- 过滤搜索:带条件过滤的 ANN 搜索
- 范围搜索:指定半径范围内的向量
- 混合搜索:多向量场搜索
- 全文搜索:基于 BM25
- Rerankers:结果重排序
- 获取/查询:按主键或表达式检索
AI 集成
- Embeddings 模型:PyMilvus 集成多种嵌入模型
- Reranker 模型:优化搜索结果顺序
- LangChain/LlamaIndex:作为向量存储组件