跟着LAP啥都学 跟着LAP啥都学

附录 B 教程 ↔ 代码目录对照表

      +

      用法:本附录是教程章节与代码的双向索引,从章节找实现,从源码回查讲解。 附录本身不引入新知识。

      B.1 教程章节 ↔ 代码目录

      要从某一章找到它的代码,查下表:

      教程章节 主仓库代码 关键源文件

      第 0 章 环境准备与第一次运行

      chapters/chapter00_hello_torch/、scripts/

      main.cpp(§A–§K 张量热身)、build.sh、run.sh

      第 1 章 语言模型是什么

      chapters/chapter01_bigram/

      include/bigram_predictor.hpp、src/bigram_predictor.cpp、src/bigram_predictor_main.cpp

      第 2 章 文本 → 词元 → 向量

      chapters/chapter02_text_data/

      include/simple_tokenizer.h、include/bpe_tokenizer.h、src/main.cpp

      第 3 章 注意力机制

      chapters/chapter03_attention/

      include/attention.h

      第 4 章 组装 GPT-2

      chapters/chapter04_gpt/

      include/gpt.h

      第 5 章 预训练

      chapters/chapter05_pretraining/

      include/training.h、include/dataloader.h、include/safetensors.h

      第 6 章 分类微调

      chapters/chapter06_finetuning/

      include/finetuning.h

      第 7 章 指令微调

      chapters/chapter07_instruction_tuning/

      include/instruction.h

      第 8 章 训练工程化

      chapters/chapter08_training_loop/

      include/training_D.h

      第 9 章 LoRA

      chapters/chapter09_lora/

      include/lora.h

      第 10 章 HTTP 服务

      chapters/chapter10_serving/

      core/gpt_sft_core.h、train/src/sft_train.cpp、serve/src/sft_serve.cpp

      第 11 章 NL → Bash

      chapters/chapter11_nl2bash/

      scripts/convert_data.py、chat/src/bash_chat.cpp、eval/bash_eval.py

      第 12 章 Function Calling

      chapters/chapter12_toolcalling/

      chat/chat_template.h/.cpp、chat/tools.cpp、chat/dispatcher.cpp、chat/src/tool_dispatch.cpp、tools/src/tool_convert.cpp、eval/src/tool_eval.cpp

      第 13 章 推理模型

      chapters/chapter13_reasoning/

      core/rl_train.h、core/reward.h、eval/src/eval_math.cpp

      B.2 核心实现 ↔ C++ 位置速查

      要定位某个功能的实现,先查下表;表里没有,再做全仓库搜索。

      功能组件 C++ 位置 备注

      分词器(朴素 + BPE)

      chapter02/include/simple_tokenizer.h / bpe_tokenizer.h

      BPE 另有 torchtext 官方实现(需 RE2)

      滑动窗口 DataLoader

      chapter05/include/dataloader.h(ch2 命名空间)

      第 5 章复用

      注意力四变体

      chapter03/include/attention.h

      四种实现集中在一个头文件里,便于对照

      GPT 组装

      chapter04/include/gpt.h

      LayerNorm/GELU/FFN/Block/GPTModel

      训练与解码

      chapter05/include/training.h

      calc_loss / train_model_simple / generate

      加载 OpenAI 权重

      chapter05/src/main.cpp(demo_openai_weights)

      safetensors + 键名映射 + 转置

      分类微调

      chapter06/include/finetuning.h

      SpamDataset / GPTClassifier / classify_review

      指令微调

      chapter07/include/instruction.h

      format_input / custom_collate_fn / InstructionLoader

      调度与梯度裁剪

      chapter08/include/training_D.h

      get_lr / clip_gradients / train_model

      LoRA

      chapter09/include/lora.h

      LoRALayer / LinearWithLoRA / 递归替换

      GRPO 训练循环

      chapters/chapter13_reasoning/core/rl_train.h(grpo_step)

      教程原创实现

      B.3 四个工程的关系

      工程 任务 输出长度 评测方式

      chapters/chapter10_serving

      通用指令(Alpaca)

      中长

      LLM-as-judge(Ollama)

      chapters/chapter11_nl2bash

      NL → bash 命令

      短

      执行 + AST + EM

      chapters/chapter12_toolcalling

      Hermes XML 工具调用

      结构化

      4 维命中率

      chapters/chapter13_reasoning

      数学推理(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/ 之后, 其余三个工程不必各写一遍。