KEEL · 龙骨 · A CURRICULUM FOR THE AI ERA

向量数据库工程课 · 课程导读 — keel 龙骨

向量数据库工程课:从暴力检索到 Milvus 的参考信息:向量数据库工程课 · 课程导读

你现在的起点

如果你符合这三条,这门课就是为你写的。它不从「什么是向量」讲起——它讲你调参时那些数字背后的机制。

一条能走通的学习路径

精确检索的账(先算清 Flat 的延迟/内存,才有比较的基线)
  → 向量、距离与度量(L2 / 内积 / 余弦,以及归一化的真实影响)
  → 索引家族(IVF / IVFPQ / HNSW / DiskANN 的结构与失效场景)
  → 召回率-延迟曲线(nlist/nprobe/efSearch/M 怎么调,验收线怎么定)
  → Milvus 架构与一致性(四层架构、etcd/MinIO/消息队列、一致性级别的代价)
  → 过滤与混合检索(下推 vs 后过滤、partition key、标量+向量)
  → 选型与运维(pgvector / Milvus / faiss 选谁,容量估算与重建时机)

七章共用同一批数据:固定种子生成的 10 万条 128 维随机向量。第 00 章把它当作「精确检索的成本基线」,之后的每一章都在同一批数据上换索引、换参数、换度量,把同一个问题的不同答案并排放。

章节地图

章 关键问题 你会亲手验证什么
00 从暴力检索到 ANN 精确检索的延迟/内存账怎么算,ANN 用哪部分准确率换了什么 10 万×128 的 Flat 单条延迟与 QPS,以及它到 100 万条时的外推
01 向量、距离与度量 L2 / 内积 / 余弦的关系与陷阱,归一化改变什么 同一批数据三种度量 top-10 重合度,以及归一化后 L2 与余弦的排序是否一致
02 索引家族 IVF / IVFPQ / HNSW / DiskANN 的结构、参数含义与失效场景 IVF 训练-分桶-探测的实际数据分布,以及 HNSW 图的额外内存
03 召回率-延迟曲线 nlist/nprobe/efSearch/M 怎么调,验收线怎么定 三组 nlist × 四个 nprobe 的完整 recall@10 / QPS 表,HNSW 的 efSearch 曲线
04 Milvus 架构与一致性 四层架构与 etcd/MinIO/消息队列的依赖,一致性级别的代价 官方文档规定的写读路径与一致性级别(本机未跑 Milvus,实验结论与文档分开陈述)
05 过滤与混合检索 过滤为什么必须下推,partition key 怎么用 faiss 下推 vs 后过滤在 1% 选择率下的召回,pgvector 带 WHERE 的执行计划
06 选型与运维 pgvector / Milvus / faiss 该选谁,容量与成本怎么算 三种索引的建索引耗时、落盘大小与内存换算,重建时机

学完能做什么

和相邻课程的分工

这门课和几门课都沾「检索」,边界必须说清:

一句话:那三课解决「检索/数据库怎么用对」,本课解决「向量索引引擎怎么选、怎么调、代价是什么」。

前置要求

本课实验依赖 faiss-cpu 与 pgvector,原始输出留档,正文引用的每个数字都能在实验记录里对上。

进入 keel 阅读