背景:大学毕业 3–4 年,高数已生疏;有 RocksDB / 存储引擎工程背景。检索系统本质上是”存储 + 索引 + 排序”的变体,很多概念可映射到 LSM-Tree、Compaction、Bloom Filter 来加速理解。
一、数学补课清单(按优先级)
原则:先补到能看懂论文公式、能 debug 模型的程度,不追求数学系的严谨度。建议用 3Blue1Brown 建立直觉,再用《深度学习》花书对照公式。
P0 — 必须补(没有这些看不懂任何 DL 论文)
| 领域 | 核心知识点 | 够用标准 | 推荐资源 |
|---|---|---|---|
| 线性代数 | 向量/矩阵运算、矩阵乘法的几何意义、转置、逆、秩、特征值/特征向量、SVD、范数(L1/L2/∞)、内积与余弦相似度 | 能手推 Attention 里的 QKᵀ 维度、理解 embedding 为什么是向量 | 3B1B《线性代数的本质》+ MIT 18.06 Gilbert Strang |
| 概率与统计 | 条件概率、贝叶斯公式、期望/方差、常见分布(高斯、伯努利、多项式、Softmax/类别分布)、最大似然估计 MLE、KL 散度、交叉熵 | 能推导交叉熵损失、理解为什么 LLM 输出是概率分布 | 陈希孺《概率论与数理统计》;Blitzstein《Introduction to Probability》 |
| 微积分(单变量+多变量) | 导数、链式法则、偏导、梯度、方向导数、Jacobian、Hessian、泰勒展开 | 能手推一层 MLP 的反向传播 | 3B1B《微积分的本质》 |
P1 — 强烈建议补(优化器、训练动力学绕不开)
| 领域 | 核心知识点 | 够用标准 |
|---|---|---|
| 数值优化 | 梯度下降、SGD、动量、Adam/AdamW、学习率调度、凸/非凸、鞍点、梯度消失/爆炸 | 理解为什么 Adam 比 SGD 收敛快、为什么需要 warmup |
| 信息论 | 熵、交叉熵、KL 散度、互信息、困惑度 Perplexity | 理解 LLM 评估指标 |
P2 — 按需补(遇到具体论文再回来查)
- 矩阵微积分:Jacobian/Hessian 的矩阵形式(反向传播严格推导时用)
- 泛函分析皮毛:RKHS、核方法(DL 里很少用)
- 随机过程:Markov Chain、MCMC(扩散模型、RLHF 里会遇到)
- 图论基础:邻接矩阵、拉普拉斯矩阵(GNN、图检索才需要)
避坑:不要一上来就啃《花书》数学附录,非常劝退。先学应用,遇到不懂的公式再回来补对应小节。
二、学习路线(4 阶段,建议 6–9 个月)
阶段 1:深度学习基础(约 6–8 周)
目标:能独立实现一个 Transformer,理解训练循环每一步在做什么。
- 入门课:吴恩达《Deep Learning Specialization》或李沐《动手学深度学习》(推荐,有中文版 + PyTorch 代码)
- 核心概念:MLP → CNN(了解即可) → RNN/LSTM(了解即可) → Transformer(死磕)
- 实战:
- 用 PyTorch 从零实现 MLP + 手写反向传播(一次就够,建立敬畏)
- 跟着 Karpathy 的《Let’s build GPT from scratch》手搓一个 nanoGPT
- 必读论文:Attention is All You Need(Transformer 原文)
阶段 2:LLM 深入(约 8–10 周)
目标:理解现代 LLM 的预训练、微调、推理全链路。
| 主题 | 关键内容 |
|---|---|
| 架构演进 | GPT-1/2/3、LLaMA 系列、Mixtral(MoE)、Qwen,重点看架构差异(RoPE、RMSNorm、GQA、SwiGLU) |
| 预训练 | 数据清洗、Tokenizer(BPE/SentencePiece)、分布式训练(DDP、FSDP、ZeRO) |
| 对齐 | SFT → RLHF(PPO) → DPO → GRPO,理解为什么要对齐 |
| 推理优化 | KV Cache、PagedAttention(vLLM)、量化(GPTQ/AWQ)、投机解码 |
| 长上下文 | RoPE 外推、YaRN、滑动窗口注意力 |
实战:
- 用 transformers + peft 库做一次 LoRA 微调(选一个 7B 模型,Qwen2.5 或 LLaMA3)
- 用 vLLM 部署一次推理服务,观察 KV Cache 的显存占用
推荐资源:Huggingface LLM Course;Stanford CS336《Language Modeling from Scratch》
阶段 3:检索与搜索(约 6–8 周)
目标:搞懂从传统检索到向量检索到 RAG 的完整演进。RocksDB 背景在这一阶段会大爆发。
3.1 传统检索(地基,别跳过)
- 倒排索引:字典 + posting list(对标 LSM 的 SSTable + index block)
- BM25:TF-IDF 的改进版,至今仍是强基线
- 开源系统:Elasticsearch、Lucene 的架构
3.2 向量检索(Dense Retrieval)
| 知识点 | 说明 |
|---|---|
| Embedding 模型 | BERT → SBERT → BGE / E5 / GTE,理解 dual-encoder vs cross-encoder |
| ANN 算法 | HNSW(必学,工业标配)、IVF-PQ(Faiss 核心)、ScaNN、DiskANN |
| 向量数据库 | Milvus、Qdrant、Weaviate、pgvector,对比存储引擎设计 |
| 量化压缩 | PQ(Product Quantization)、SQ、Binary Quantization |
映射技巧:HNSW 的分层图 ≈ 跳表;IVF 的倒排桶 ≈ LSM 的分区;PQ 压缩 ≈ Block Compression。用熟悉的 RocksDB 语言去理解会快很多。
3.3 现代检索范式
- Hybrid Search:BM25 + Dense 融合(RRF 算法)
- Learned Sparse Retrieval:SPLADE(稀疏 + 语义)
- ColBERT / Late Interaction:更精细的 token 级匹配
- Rerank:Cross-encoder、bge-reranker、Cohere Rerank
3.4 RAG(检索增强生成)
- 基础链路:Chunking → Embedding → Retrieve → Rerank → Generate
- 进阶:HyDE、Query Rewriting、Multi-hop、GraphRAG、Agentic RAG
- 评估:RAGAs、Recall@k、nDCG、Faithfulness
实战:
- 用 LlamaIndex 或 LangChain 搭一个私有文档 RAG
- 用 Faiss 手写一个 HNSW 索引(或读 Faiss 源码)
阶段 4:系统工程与前沿(持续进行)
- Serving:vLLM、SGLang、TensorRT-LLM 源码阅读
- 训练框架:Megatron-LM、DeepSpeed、veRL
- 前沿方向:Agent、多模态(CLIP/LLaVA)、推理模型(o1/R1)、World Model
三、个性化建议
- 发挥存储背景优势:检索系统的瓶颈本质上是 I/O 和内存布局问题,RocksDB 上磨出来的直觉(Compaction tradeoff、Bloom Filter、Block Cache)直接能复用到向量索引的设计上——这是比纯算法背景选手稀缺的能力,要珍惜。
- 数学补课节奏:别花一个月专门补数学再开始。边学边补:遇到 Attention 公式不懂就回去啃线性代数的矩阵乘法;遇到交叉熵就回去看 KL 散度。数学是工具,不是目标。
- 论文阅读节奏:每周 1 篇经典 + 1 篇前沿。经典可从 ilya-30-papers 清单开始。
- 代码洁癖陷阱:学习阶段优先跑通,别过早优化。等理解了整条链路再回头重构。
四、前 30 天具体行动清单
| 周 | 任务 |
|---|---|
| W1 | 3B1B 线代 + 微积分视频刷完;装好 PyTorch 环境 |
| W2 | 《动手学深度学习》第 1–5 章(MLP、反向传播) |
| W3 | 《动手学深度学习》注意力章节 + Karpathy 的 nanoGPT 视频 |
| W4 | 手搓一个 mini Transformer,在 TinyShakespeare 上跑通 |
跑通第一个 nanoGPT 的那一刻会豁然开朗,后面就是顺着兴趣点往下挖。