LEARNING PLAN / 中级
Transformer 实战
从手算注意力出发,独立实现、训练并验收一台完整的字符 Transformer。
从问题出发,推导机制,再把实现交给新的输入检验。

时长为编写者建议,包含推演与练习,未经学习者计时验证;可按小节分次完成。
WHAT YOU WILL BUILD
完成之后,拿什么证明理解?
- 从任务定义推导条件似然、交叉熵与注意力梯度
- 实现带因果多头、绝对位置、pre-LN和GELU的完整解码模型
- 完成全参数训练、有效token评分、检查点精确恢复和缓存生成
- 用数值对照、故障反例、消融与独立文档验收同一版本
开始前,需要掌握什么?
- 能编写Python函数、列表、字典并运行本地程序
- 熟悉有限概率、向量与矩阵的基本运算;本课展开具体用法
- 知道一元导数含义;多元反向步骤在讲义中逐项推导
先修用于选择起点,不限制阅读;遇到缺口可返回相应章节。
THE LEARNING ROUTE
每一步,都有去处。
仅保存在当前浏览器;完成标记不代表通过项目验收。
定义与表示
建立预测对象、概率、嵌入与注意力的共同接口。
从预测任务到数据契约
给定“春风”,怎样构造输入与目标,让模型预测下一个字符和结束,而不是复制当前字符?
从概率到向量表示
一组实数打分怎样变成概率和损失,同一字符出现多次时嵌入梯度又怎样累加?
把注意力逐项算清楚
两个位置如何从 Q、K、V 算出读取结果,并把误差传回三个投影?
因果、多头与位置
注意力怎样避免看见未来,同时用多头和位置区分同一字符在不同地方的作用?
构造与学习
连接完整解码器,推导梯度并保存可恢复的训练状态。
从残差到完整解码块
归一化、残差与前馈怎样接成一个完整解码块,并保留可检查的梯度通路?
反向传播与优化
一个损失标量怎样沿整个计算图产生梯度,又怎样变成一次 AdamW 更新?
实现可训练的 Decoder
怎样把嵌入、多层块和输出头接成模型,并发现未注册参数或互相矛盾的目标?
训练、数据与可复现恢复
训练被中断后,怎样恢复模型、优化器、抽样与随机状态,让下一步更新仍然相同?
评价与交付
比较评价、生成及扩展机制,交付同一版本的项目。
评估:怎样知道模型真正学到了什么
验证损失降低时,怎样排除测试泄漏、分母错误和不匹配消融带来的假改善?
生成与缓存:让同一模型逐步续写
同一模型怎样逐词元续写,并确认缓存与完整前缀计算保持等价?
架构与成本:从教学模型走向现代实现
换用 RoPE、GQA 或在线 softmax 时,哪些是同一函数的执行优化,哪些改变了模型?
最终项目:交付一台可以复跑的Transformer
别人只拿到项目包时,怎样独立复跑训练、恢复、评估和生成,并核对同一版本的结果?
BUILD / TEST / TRANSFER
可复跑的字符 Transformer 实验台
从原创文档和随机权重开始,自己实现解码模型与完整训练链;用同一检查点完成评价、缓存生成和位置消融,并提交源码、数据清单、原始结果与失败报告。
运行环境
建议 Python 3.12,PyTorch 2.6.0;CPU 即可,完整安装步骤见项目 README。
解压后先读 README,再按其中环境与命令运行。完整参考实现与学习任务分开提供。
项目完成核对
这是个人核对清单,不是自动评分。保留输入、结果、失败与复现命令。