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

01 Milvus-向量数据库基础

「milvus-course-ai.zip」
链接:https://pan.quark.cn/s/00f3d411bb6d

github:https://github.com/yuanmomoya/milvus

学习目标

学完本章后,你应该能够:

  • 解释向量、Embedding、向量维度和向量空间。
  • 区分余弦相似度、内积和 L2 距离。
  • 理解为什么海量向量检索不能只靠暴力扫描。
  • 说清 ANN、HNSW、IVF、PQ 的基本思想。
  • 用 Recall、QPS、Latency、内存成本评价一个向量检索系统。

理论知识:形象化理解

可以把向量数据库想象成一座按照“语义气味”摆放物品的巨大仓库。传统数据库像货架编号系统,你必须知道商品编号、名称或分类才能找到它;向量数据库则像给每个物品都贴上一个高维坐标,意思相近的物品会自然靠在一起。用户问“怎么做知识库问答”时,系统不是逐字找“知识库”三个字,而是在语义空间里寻找气味最接近的一批内容。

Embedding 模型就是这座仓库的“坐标测量仪”。同一套测量仪必须同时用于入库和查询,否则坐标系会错位。余弦相似度像比较两个箭头的朝向,L2 距离像比较两个地点的直线距离,ANN 索引像在仓库里修快速通道:不逐个货架查看,而是先冲到最可能的区域,再精细挑选 TopK。

理解这一章时要记住一句话:向量检索不是魔法,而是“表示学习 + 距离计算 + 索引加速”的组合。召回、延迟和成本永远互相牵制,工程师的任务就是在业务能接受的范围内找到平衡点。

核心概念

向量数据库保存的不是“文本本身有多像”,而是模型把文本、图片、音频或视频映射到向量空间后的坐标。相似对象在向量空间里距离更近,检索就是在这个空间中寻找离查询向量最近的 TopK。

原始文本/图片/音频

Embedding 模型

高维向量

Milvus Collection

用户查询

同一个 Embedding 模型

查询向量

相似度搜索 TopK

向量是什么

向量可以理解为一组浮点数,例如[0.12, -0.03, 0.88, ...]。Embedding 模型负责让这些数字带有语义:语义相近的内容在向量空间中更接近。常见中文文本模型如BAAI/bge-small-zh-v1.5输出 512 维向量,CLIP 图片/文本模型常见输出 512 维向量。

维度不是越高越好。维度升高通常会带来更强表达能力,但也会增加存储、内存带宽、索引构建和搜索计算成本。粗略估算:1,000,000768float32向量仅原始向量就需要1_000_000 * 768 * 4 ≈ 2.86GB,还不包含索引和元数据。

相似度度量

度量直觉适用场景注意事项
COSINE看方向是否相近文本语义检索常用通常要求向量归一化或模型天然适配
IP内积越大越相似推荐、归一化向量检索未归一化时会受向量长度影响
L2欧式距离越小越相似图像特征、传统特征与 COSINE 结果可能完全不同
importnumpyasnpdefcosine(a:np.ndarray,b:np.ndarray)->float:# 余弦相似度:越接近 1 越相似returnfloat(np.dot(a,b)/(np.linalg.norm(a)*np.linalg.norm(b)))defl2(a:np.ndarray,b:np.ndarray)->float:# L2 距离:越接近 0 越相似returnfloat(np.linalg.norm(a-b))

暴力检索 vs ANN

暴力检索会计算查询向量与全部向量的距离,准确但成本线性增长。ANN 是近似最近邻搜索,用可控的召回损失换取数量级的性能提升。

查询向量

检索方式

暴力检索 FLAT

扫描全部向量

高召回,成本高

ANN

只访问候选子集

召回略降,速度显著提升

HNSW 直觉

HNSW 是图索引。每个向量是一个节点,相似向量之间有边。搜索从高层稀疏图快速接近目标区域,再到底层密集图精细搜索。

底层:密集邻接图

A

B

C

D

E

F

G

中层:区域道路

A

B

D

F

G

高层:稀疏高速公路

A

D

G

HNSW 常用参数:

参数作用增大后的影响
M每个节点的邻居数量上限召回更好,内存更高,构建更慢
efConstruction构建索引时的候选集索引质量更好,构建更慢
ef搜索时的候选集召回更好,延迟更高

IVF 直觉

IVF 先把向量空间聚成多个簇,搜索时只访问与查询最接近的若干簇。

全部向量

KMeans 训练中心

倒排列表 nlist

查询向量

选择 nprobe 个最近中心

只扫描被选中的列表

TopK

nlist决定分桶数量,nprobe决定搜索多少个桶。nprobe太小会漏召回,太大会接近暴力扫描。

PQ 直觉

PQ 把高维向量切成多个子空间,每个子空间用码本近似表达。它的核心价值是压缩内存,但会引入量化误差。

768 维 float32 向量

切成 m 个子向量

每段查码本

保存短编码

低内存近似距离计算

指标体系

指标含义优化方向
Recall@K真正相关结果被 TopK 找回的比例增大 ef/nprobe,优化 Embedding,使用 Rerank
QPS每秒请求数减小候选集、水平扩展、减少输出字段
Latency单次请求耗时关注 P50/P95/P99,不只看平均值
Build Time索引构建耗时调整索引类型、并行度、Segment 尺寸
Memory内存占用量化、mmap、冷热分层、减少副本

完整代码

本章配套代码见../demos/basic-search。它会:

  1. 使用sentence-transformers生成中文文本向量。
  2. 创建 Milvus Collection。
  3. 建立 HNSW 索引。
  4. 写入示例文本。
  5. 执行 TopK 语义检索。
cdmilvus-master-course ./scripts/start.shcddemos/basic-searchcp.env.example .env python main.py

常见错误

错误原因修复
COSINE 结果不稳定模型输出未归一化或 metric 选错统一 Embedding 模型和 metric
维度不匹配Collection dim 与模型 dim 不一致删除重建 Collection 或固定模型版本
召回差Chunk 太大/太小、模型不适合中文、ef/nprobe 太低做离线标注集评测
延迟高TopK 大、候选集大、输出字段多控制参数并压测 P95/P99

面试题

  1. 为什么向量数据库需要 ANN?
  2. COSINE、IP、L2 的差异是什么?
  3. HNSW 为什么通常内存占用较高?
  4. IVF 的nlistnprobe如何影响召回和延迟?
  5. PQ 为什么能降成本,又为什么会损失精度?

练习题

  1. demos/basic-search把 HNSW 的ef从 16、64、128 分别跑一次,记录结果变化。
  2. 把模型换成另一个中文 Embedding 模型,观察维度变化和检索结果变化。
  3. 自己构造 20 条容易混淆的文本,手工评估 Recall@3。

小结

向量数据库的本质是“在高维空间中快速找相似对象”。所有工程决策都围绕四个变量展开:召回、延迟、吞吐、成本。后续章节会把这些变量落到 Milvus 的 Schema、索引、查询参数和生产架构中。

http://www.jsqmd.com/news/986020/

相关文章:

  • 高端工业防腐之王,PVDF 管的硬核性能与应用 - 苏一塑业13914572689
  • 初学者ROS2教程:创建你的第一个工作区和软件包
  • 2026年横评10款降AIGC网站:帮你锁定真正好用靠谱的一款
  • 2026年正规海外打工机构排行:资质与服务实力实测对比 - 奔跑123
  • 创业少踩管理坑,管家婆创业版帮你把账算明白!免费进销存软件、功能齐全、适合中小企业!
  • 2026 年智能监控箱与通信运维箱选型指南:为雪亮工程与平安城市打造可靠防护体系 - 资讯焦点
  • 深圳宠物店哪家靠谱?2026精选排行榜TOP1推荐 - 谊识预商贸
  • 2026成都黄金回收内行指南:揭秘行情波动,选出最靠谱门店 - 商业快讯早知道
  • PPH 管安装与维护,省钱高效的实操指南 - 苏一塑业13914572689
  • i.MX 6电源设计实战:从电气特性到低功耗管理的硬件避坑指南
  • Magpie窗口放大工具终极指南:免费高清显示的完整解决方案
  • python 字典在全局、类、方法中定义和调用
  • 徐州职称评审代评机构专业度排行:实地评测解读 - 奔跑123
  • 2026 年长三角竹炭纤维板行业白皮书:嘉兴靠谱厂家选型与全场景解决方案 - 资讯焦点
  • 保研机构哪家好:最新动态全面汇总 - 虚拟星辰
  • 2026这6款神级降AIGC工具全揭秘,一键把AIGC率降至安全线!
  • 沈阳宠物店哪家靠谱?2026精选排行榜TOP1推荐 - 谊识预商贸
  • 第五节:MCP Servers——AI 的“万能插座”
  • 如何用WVP-GB28181-Pro构建企业级国标视频监控平台:从零到万的完整指南
  • 2026 年中国竹炭纤维板产业深度洞察:嘉兴产业带价值重构与靠谱厂家选型方法论 - 资讯焦点
  • Windows系统文件dpserial.dll文件丢失找不到问题解决
  • 2026年IATA资质代办公司推荐:广州米航如何用全周期服务破解票代企业3大痛点 - 热点速览
  • i.MX 6外部接口时序深度解析:从EIM、GPMI到ECSPI的实战配置指南
  • 武汉家电维修平台推荐:本地用户反馈较多的几家服务商-2026最新发布 - 欧米到家
  • 2026 吴忠厨卫屋面地下室漏水瓷砖空鼓测评:吉修匠 99.8 分五星榜首 - 吉修匠
  • 魔法森林三消Unity工程:300+关卡+特效动画+Facebook社交集成
  • 专利申请:自己申请还是找代理?
  • SCA软件成分分析工具:到底能做啥?
  • 苏州宠物店哪家靠谱?2026精选排行榜TOP1推荐 - 谊识预商贸
  • 导热系数测试仪主流品牌排行:技术与服务双维度解析 - 奔跑123