Skip to content

Commit 8ed958c

Browse files
sanbuphyclaude
andcommitted
Restructure notebooks: replace RAG/CPT with deployment/function-calling
- Replace 26-rag.ipynb with 26-llm-deployment.ipynb (zh + en) - Replace 15-midtraining-cpt.ipynb with 15-function-calling.ipynb - Refactor multiple notebooks (training-loss, model-config, distillation, evaluation, etc.) - Add shakespeare_char dataset for part1 - Update web viewer and sidebar Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
1 parent 21d6695 commit 8ed958c

25 files changed

Lines changed: 45849 additions & 7563 deletions

AGENTS.md

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -25,17 +25,17 @@
2525
- 多用反问句引发思考,然后自问自答
2626
- 代码注释用中文
2727
- 不要翻译专有名词(Self-Attention、Embedding、Token 等保持英文)
28-
- 每个 Part 结尾有小结 checklist,确认读者懂了
28+
- 每个 Notebook 结尾有小结 checklist,确认读者懂了
2929
- 开头要像高中生教程:先告诉读者“今天要解决什么困惑”,再说会怎么一步步解决
3030
- 不要一上来用抽象判断压读者;先给定义,再给例子,再给反例或注意事项
3131

3232
### Notebook 结构模版
3333

3434
```
35-
# 🧱 Part N:中文标题
35+
# 中文标题
3636
37-
> **前情回顾**:[一句话回顾上一个 Part 学了什么]
38-
> **本 Part 目标**:[一句话说清本 Part 要达成什么]
37+
> **前情回顾**:[一句话回顾上一节学了什么]
38+
> **本节目标**:[一句话说清本节要达成什么]
3939
4040
## 0. 先建立直觉(可选,复杂概念必须有)
4141
## 1. 第一个问题/方案一(最朴素的想法)
@@ -87,7 +87,7 @@
8787
- Notebook 文件:`XX-topic-name.ipynb`(XX 为两位数字编号)
8888
- 类名:英文 PascalCase(`MultiHeadAttention`
8989
- 函数/变量:英文 snake_case(`encode`, `token_lists`
90-
- Part 编号:中文「第 X 部分」或「Part X」
90+
- 标题不写编号,编号只保留在 Notebook 文件名里
9191

9292
### 禁止事项
9393

@@ -110,8 +110,8 @@ notebooks/
110110

111111
## Notebook 间引用规范
112112

113-
- 前情回顾只引用上一 Part 的核心概念,不给具体代码行号
114-
- 预告下一 Part 时只用一句话激发兴趣
113+
- 前情回顾只引用上一节的核心概念,不给具体代码行号
114+
- 预告下一节时只用一句话激发兴趣
115115
- 每个 Notebook 自包含,不依赖其他 Notebook 的运行时状态
116116

117117
## 网页端运行与构建

CLAUDE.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -108,7 +108,7 @@
108108
- "走一遍 / 跑一遍" → "逐步演示"或"完整实现"
109109
- **不堆砌形容词**:每个名词前最多一个修饰语。不要写"精巧而优雅的设计",写"这个设计"就够了
110110
- **具体 > 抽象**:能用具体数字或例子说明的,不要用抽象概括。"在 2048 张 A100 上训练了 21 天"比"需要大量计算资源"好得多
111-
- **代码组件的描述要精准**:禁用"小网络""小模型""某种机制"这种模糊词,必须给出准确结构。FeedForward 不是"小网络",是"两层全连接,中间隐藏维度 4×d_model";Attention 不是"某种机制",是"让每个位置聚合其他位置的信息"。模糊词让读者学不到东西
111+
- **代码组件的描述要精准且术语化**:禁用"小网络""小模型""某种机制""把零件装起来""变成向量""加工"这类口语化或模糊词,必须用论文/教科书里的标准术语。FeedForward 是"两层全连接前馈网络";Attention 是"因果多头自注意力";MiniGPT/GPT 是"decoder-only 语言模型";token embedding 是"token embedding 查表";lm_head 是"hidden state 投影到词表"。表格里的"作用"列、代码 docstring、markdown 解释都按这个标准——读者读到的应该是论文里能搜到的术语,而不是俗称或拟人化描述
112112
- **前后必须衔接**:前言的最后一句话必须和紧跟的第一节内容(代码、## 标题或正文段落)自然衔接。不能前言讲完了就停,读者不知道接下来要做什么。修改任何段落时都要检查:上一段结尾和下一段开头连起来读是否通顺
113113
- **直接说要做什么,不说不做什么**:不说"这一节不展开完整训练循环,只把...补齐",直接说"下面展开训练模式下的 forward:..."。读者关心的是接下来要看到什么,不是看不到什么
114114
- **过渡直接用冒号接内容,不加引导语**:不说"看三件事:""重点看几个部分:",直接写"下面展开...:A、B、C"

README-CN.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -263,7 +263,7 @@ Modern LLM Notebook
263263
├── Evaluation
264264
├── Distillation
265265
├── On-policy distillation
266-
└── RAG
266+
└── vLLM & SGLang deployment
267267
```
268268

269269
每个 Notebook 都尽量自包含。你可以顺序学习,也可以直接跳到感兴趣的主题,不依赖前面 Notebook
@@ -320,7 +320,7 @@ Modern LLM Notebook
320320
| 23 | [Evaluation](notebooks/part5-production/23-evaluation.ipynb) | 如何判断一个模型真的更好? | 胜率矩阵、RAGAS、Judge 指标 |
321321
| 24 | [Distillation](notebooks/part5-production/24-distillation.ipynb) | 小模型如何学习大模型? | 软标签、temperature、logit distillation |
322322
| 25 | [On-Policy Distillation](notebooks/part5-production/25-opd.ipynb) | 蒸馏如何减少 exposure bias? | OPSD、KL 估计器分类 |
323-
| 26 | [RAG](notebooks/part5-production/26-rag.ipynb) | 检索增强生成如何把外部知识接入模型| chunk、embedding 检索、rerank、生成 |
323+
| 26 | [LLM Deployment](notebooks/part5-production/26-llm-deployment.ipynb) | 训练好的模型如何变成可调用的服务| vLLM、SGLang、自定义架构注册 |
324324

325325
## 质量标准
326326

README.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -295,7 +295,7 @@ Modern LLM Notebook
295295
├── Evaluation
296296
├── Distillation
297297
├── On-policy distillation
298-
└── RAG
298+
└── vLLM & SGLang deployment
299299
```
300300

301301
Each notebook is designed to be runnable on its own. You can follow the full sequence or jump to a
@@ -352,7 +352,7 @@ topic without depending on hidden runtime state from earlier notebooks.
352352
| 23 | [Evaluation](notebooks-en/part5-production/23-evaluation.ipynb) | How do we tell whether a model is better? | Win-rate matrices, RAGAS, judge metrics |
353353
| 24 | [Distillation](notebooks-en/part5-production/24-distillation.ipynb) | How does a small model learn from a large one? | Soft labels, temperature, logit distillation |
354354
| 25 | [On-Policy Distillation](notebooks-en/part5-production/25-opd.ipynb) | How can distillation reduce exposure bias? | OPSD, KL estimator taxonomy |
355-
| 26 | [RAG](notebooks-en/part5-production/26-rag.ipynb) | How does retrieval-augmented generation connect external knowledge to a model? | Chunking, embedding retrieval, reranking, generation |
355+
| 26 | [LLM Deployment](notebooks-en/part5-production/26-llm-deployment.ipynb) | How do you turn a trained model into a callable service? | vLLM, SGLang, custom architecture registration |
356356

357357
## Quality Bar
358358

0 commit comments

Comments
 (0)