附录 B 教程 ↔ 代码目录对照表
|
用法:本附录是教程章节与代码的双向索引,从章节找实现,从源码回查讲解。 附录本身不引入新知识。 |
B.1 教程章节 ↔ 代码目录
要从某一章找到它的代码,查下表:
| 教程章节 | 主仓库代码 | 关键源文件 |
|---|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
B.2 核心实现 ↔ C++ 位置速查
要定位某个功能的实现,先查下表;表里没有,再做全仓库搜索。
| 功能组件 | C++ 位置 | 备注 |
|---|---|---|
分词器(朴素 + BPE) |
|
BPE 另有 torchtext 官方实现(需 RE2) |
滑动窗口 DataLoader |
|
第 5 章复用 |
注意力四变体 |
|
四种实现集中在一个头文件里,便于对照 |
GPT 组装 |
|
LayerNorm/GELU/FFN/Block/GPTModel |
训练与解码 |
|
calc_loss / train_model_simple / generate |
加载 OpenAI 权重 |
|
safetensors + 键名映射 + 转置 |
分类微调 |
|
SpamDataset / GPTClassifier / classify_review |
指令微调 |
|
format_input / custom_collate_fn / InstructionLoader |
调度与梯度裁剪 |
|
get_lr / clip_gradients / train_model |
LoRA |
|
LoRALayer / LinearWithLoRA / 递归替换 |
GRPO 训练循环 |
|
教程原创实现 |
B.3 四个工程的关系
| 工程 | 任务 | 输出长度 | 评测方式 |
|---|---|---|---|
|
通用指令(Alpaca) |
中长 |
LLM-as-judge(Ollama) |
|
NL → bash 命令 |
短 |
执行 + AST + EM |
|
Hermes XML 工具调用 |
结构化 |
4 维命中率 |
|
数学推理(GSM8K) |
长思考链 |
exact_match 数字 |
共享关系:chapters/chapter11_nl2bash、chapters/chapter12_toolcalling、chapters/chapter13_reasoning 全部复用 chapters/chapter10_serving/core
的 BPE 分词器、safetensors 加载与 GPTModel 实现——共享方式是把 core 的源文件
直接编进各自的静态库(bash_sft_core / tool_sft_core / reasoning_core),
而不是链接 chapter10 的构建产物;训练侧,chapter12 直接调用 chapter10 的
sft_train,chapter13 用同名独立实现的 train/src/sft_train.cpp。这套基建来自第 10 章:把通用实现拆进 core/ 之后,
其余三个工程不必各写一遍。