应用开发实战精选
向量检索内核解析:从 HNSW 到生产级检索
4 周 12 章 更新于 2026-09-14
HNSWIVFPQ向量数据库近似最近邻
内容时效核对:2026-09-16 · 模型与价格会频繁变动,具体型号 / 定价请以各家官方文档为准
开篇
开篇导读
本课程已完成 0/12 章(0%)
2026 年,向量检索是 RAG / 推荐系统 / 搜索的核心竞争力。
大多数工程师把向量检索当作"黑盒"——调个 API 就完事了。这门课要打开黑盒,让你真正理解向量检索的算法原理与工程优化。
为什么这门课
向量检索是 2026 年最被高估、也最被低估的技术:
- 高估的部分:大多数工程师以为"调用 Qdrant / Pinecone 就是懂向量检索"——这只是会用,不是懂
- 低估的部分:向量检索是 RAG 系统的性能瓶颈——90% 的 RAG 性能问题来自检索
这门课会:
- 讲算法原理:HNSW、IVF、PQ、ScaNN 怎么工作、为什么快
- 讲工程实现:主流向量数据库的内部架构
- 讲性能优化:怎么把百万级向量检索做到毫秒级
- 讲生产经验:真实业务中的踩坑与最佳实践
课程前置知识
- ✅ Python 中级
- ✅ 基础数据结构(树、哈希表)
- ✅ RAG 系统设计与实现(建议先看)
📚 完整章节大纲(12 章)
模块一:基础(第 1-3 章)
第 1 章:向量空间与相似度
- 向量、向量空间、余弦相似度、欧氏距离
- 高维诅咒:维度越高,距离度量越失效
- 维度归一化:为什么必须归一化
- 实战:用 NumPy 实现 KNN 检索
心智模型:向量空间是"语义的地图"——相似的东西在地图上离得近。
第 2 章:KNN vs ANN——为什么需要近似
- KNN(精确最近邻)的时间和空间复杂度
- 100 万向量精确检索:> 1 秒
- ANN(近似最近邻):100 万向量 < 10ms
- 生产经验:什么时候用 KNN,什么时候用 ANN
练习:实现一个百万级向量 KNN,对比时间。
第 3 章:评估指标——怎么判断一个检索系统好坏
- Recall@K、Precision@K、MRR、NDCG
- Ground Truth 怎么构建
- 生产经验:评估数据的偏差与应对
练习:构建第一个向量检索评估集。
模块二:核心算法(第 4-8 章)
第 4 章:KD-Tree——最简单的空间索引
- KD-Tree 的构建与查询
- 高维失效:维度 > 20 后性能崩塌
- 变种:Ball Tree、VP-Tree
- 生产经验:KD-Tree 在低维场景(< 20 维)才有用
第 5 章:LSH(局部敏感哈希)——哈希的算法
- LSH 的核心思想:相似向量哈希到相同 bucket
- SimHash / MinHash:两种经典 LSH
- 生产经验:LSH 在文本去重、近邻推荐中的应用
练习:用 SimHash 实现一个简单的文档去重系统。
第 6 章:HNSW——主流的图索引
- HNSW = Hierarchical Navigable Small World
- 跳表思想:从粗到细的层次导航
- NSW(小世界图):六度分隔理论的算法化
- 完整算法:插入、查询、删除
- 生产经验:HNSW 是 2026 年的事实标准
练习:用 200 行 Python 实现 HNSW。
第 7 章:IVF(倒排文件)——经典的量化索引
- IVF 的核心:聚类 + 桶内搜索
- K-Means 聚类作为索引构建
- IVF-PQ:倒排 + 乘积量化
- 生产经验:IVF 在大规模场景(> 1000 万)的优势
练习:用 faiss 实现 IVF-PQ 索引。
第 8 章:PQ(乘积量化)——压缩的艺术
- PQ 的核心:把向量切成子向量,各自量化
- Codebook 学习:K-Means 聚类
- 距离计算:对称 / 非对称距离
- 生产经验:PQ 把内存占用降低 32 倍,准确率损失 < 5%
练习:用 faiss 实现 PQ 压缩。
模块三:工程实现(第 9-11 章)
第 9 章:向量数据库架构
- 主流向量数据库对比:Pinecone / Weaviate / Qdrant / Milvus / pgvector
- 底层实现:HNSW vs IVF-PQ vs DiskANN
- 架构图:存储、索引、查询三层
- 生产经验:选型决策树
练习:用 Qdrant + 100 万向量做性能基准测试。
第 10 章:分布式向量检索
- 单机瓶颈:1 亿向量,单机内存 > 100GB
- 分片策略:按向量 ID / 按聚类中心
- 副本策略:读写分离 + 多副本
- 混合检索:向量 + 关键词(BM25)的分布式实现
练习:搭建一个 3 节点的向量检索集群。
第 11 章:性能优化
- 量化:FP32 → INT8 → Binary(精度换速度)
- GPU 加速:FAISS GPU 版 vs CPU 版(10 倍提速)
- 内存优化:HNSW 内存占用分析
- 查询优化:批量查询、预过滤
练习:把检索延迟从 50ms 优化到 5ms。
模块四:生产化(第 12 章)
第 12 章:总结:向量检索的工程地图
- 12 章回顾:从 KNN 到分布式 HNSW
- 算法选型决策树
- 工程化清单:从 0 到 1 部署向量检索系统的 20 个步骤
- 接下来学什么:RAG 系统设计与实现、AI Agent 架构师
- 求职 / 创业:怎么用向量检索项目展示能力
✅ 检查清单
完成后回来勾选:
- 能解释 HNSW、IVF、PQ 的核心原理
- 能用 Python 实现一个简化版 HNSW
- 能选择合适的向量数据库与索引算法
- 能优化向量检索到毫秒级
- 能搭建分布式向量检索系统
- 能用量化把内存占用降低 32 倍
推荐资源
| 资源 | 类型 | 链接 |
|---|---|---|
| faiss 官方文档 | 库 | https://github.com/facebookresearch/faiss/wiki |
| HNSW 原论文 | 论文 | https://arxiv.org/abs/1603.09320 |
| Pinecone Learning Center | 教程 | https://www.pinecone.io/learn |
| Qdrant 文档 | 文档 | https://qdrant.tech/documentation |
| Milvus 文档 | 文档 | https://milvus.io/docs |
| DiskANN 论文 | 论文 | https://arxiv.org/abs/2105.09613 |
下一步
理解向量检索内核后,你对 RAG 系统的"检索"环节有了深度理解。下一步:
- 想搭完整 RAG → RAG 系统设计与实现
- 想做智能体 → AI Agent 架构师
- 想优化 LLM 推理 → LLM 推理优化与部署
本章笔记
支持纯文本,自动保存在本机浏览器(清除浏览器数据会丢失)。后续接入账号后可云同步。
提示:使用键盘 ← / → 可快速切换章节
讨论
登录 后参与讨论。
加载中...