本章跟着一条线走:从一份原始文档进入系统,经过嵌入、建索引、检索、重排,最后吐出答案。沿途每一站我们都讲清它解决什么工程问题,拐点在于「为什么检索不能只靠暴力扫描」。
LEANN 的内部可以拆成四块:嵌入模块把文本变成向量;索引模块把向量组织成可快速查找的结构;检索模块在索引里找近邻;重排模块用轻量网络把候选排序。前三者是「记忆系统」,最后一个是「决策头」,分工明确。
这一章的硬骨头是索引与检索。很多人以为检索就是「算一遍余弦」,但十亿向量全量扫描在边缘端根本不可行,所以才有分层图、倒排、量化编码这些结构。我们会在 2.3 和 2.4 把它们的代价讲透。
读完本章你能考核四件事:整体架构由哪些模块组成、向量嵌入如何与模型集成、索引如何构建与存储、检索算法与相似度怎么算。下一章我们就动手把这些模块跑起来。
| 模块 | 职责 | 关键旋钮 | 对应节 |
|---|---|---|---|
| 嵌入 | 把文本压成向量 | 维度、归一化、量化位宽 | 2.2 |
| 索引 | 组织向量供快速查找 | 索引类型、邻居数 m | 2.3 |
| 检索 | 从索引召回候选 | nprobe、ef_search | 2.4 |
| 重排 | 用轻量网络精排 | 网络规模、权重位宽 | 2.1 |
这张表可以当目录用:学完后能填出每个模块的旋钮,说明本章主线已经打通。
本章真正的硬骨头是索引与检索。很多人以为检索就是「算一遍余弦」,但十亿向量全量扫描在边缘端根本不成立,所以才需要分层图、倒排、量化编码这些结构。读 2.3 与 2.4 时请带着两个问题:这个结构用空间换来了什么,代价是什么。能把「时间账」与「空间账」都讲清楚,这一章就算学透了。
本章适合一次专注的两小时:先读 2.1 的接线图建立全局,再依次啃 2.2、2.3,把 2.4 的相似度选型留到最后对照复习。若中途卡在 HNSW 的分层结构上,先跳过去看 2.3 末尾的案例,回头再补原理,不要在一个小节上耗太久。

下一章进入实践:环境怎么搭、CLI 怎么用、API 怎么写、配置怎么管。