① 第一优先:train.py(必须先看)
为什么先看它
这是整个项目的"主流程控制器",决定你前面看的模型怎么被用起来。
你要重点抓三件事:
- 数据是怎么进来的(dataset / dataloader)
- model forward 怎么被调用
- loss / optimizer / training loop
你要建立的理解
"一个 GPT 是怎么被训练起来的完整闭环"
你会第一次把:
- Transformer结构
- loss计算
- 训练循环
串成一个系统。
② 第二优先:model.py(GPT核心)
如果 README 只是"介绍结构",那 model.py 是真实实现结构
重点看:
1. GPT class
- forward pass
- block stack
2. Block
- attention + mlp
3. Attention(最关键)
- QKV projection
- mask(causal attention)
- softmax
你要搞清楚:
token 是怎么一步步变成 logits 的
③ 第三优先:attention.py(如果单独拆出来)
如果仓库里 attention 是单独模块:
你要重点看:
- scaled dot-product attention
- causal mask
- multi-head split & concat
这一块是你理解 LLM 的"分水岭"。
④ 第四优先:dataset / data loader
重点是:
- tokenization(字符级 or BPE)
- block sampling(seq_len怎么切)
- batch shape(B,T,C)
你要解决的问题是:
"模型看到的数据长什么样"
⑤ 第五优先:config / hyperparameters
重点:
- n_layer
- n_head
- n_embd
- block_size
你要开始建立一个直觉:
"这些参数如何影响模型能力与成本"
推荐你的学习路径(非常重要)
你现在不要"顺着文件看",而要按这个认知链:
数据长什么样 → train.py怎么喂 → model.py怎么处理 → attention怎么计算 → loss怎么回传
给你一个关键判断(很多人卡在这里)
如果你现在只是"读代码",会很慢。
正确方式是:
👉 每看一个文件,都回答一个问题
| 文件 | 你要回答的问题 |
|---|---|
| train.py | 模型怎么被训练起来 |
| model.py | token怎么变logits |
| attention | token之间怎么交互 |
| dataset | token从哪来 |
| config | 为什么这样设 |