LEARNING PLAN / 中级
从零训练语言模型
从原创短文与字节编码出发,建立训练专用BPE、完整decoder、可恢复训练和统一评估。八章围绕同一个离线CPU项目,用数值推导、故障反例与真实收据连接每个环节。
从问题出发,推导机制,再把实现交给新的输入检验。

时长为编写者建议,包含推演与练习,未经学习者计时验证;可按小节分次完成。
WHAT YOU WILL BUILD
完成之后,拿什么证明理解?
- 按来源组冻结语料与编码身份,检测特定数据泄漏
- 手算UTF-8与确定BPE,证明字节往返并核算表示单位
- 从随机参数全量训练自写decoder,重建同环境恢复轨迹
- 统一边界和窗口口径评估,保留全部规模对照与生成失败
开始前,需要掌握什么?
- 会写Python函数、字典、切片并运行本地项目
- 掌握概率、对数、矩阵形状、导数与链式法则
- 已完成Transformer实战的注意力、因果性、前馈层与反向传播;本课聚焦训练系统闭环
- Transformer 第4章:因果与位置 ↗能说明移位目标、因果掩码和右填充为何不泄漏未来。
- Transformer 第5章:完整解码块 ↗能沿 pre-LN、残差和前馈读出每步形状。
- Transformer 第6章:反向与更新 ↗能从交叉熵沿输出头、归一化与残差链解释梯度。
- Transformer 第7章:完整 Decoder ↗能区分可微计算、参数注册与优化器持有的参数。
先修用于选择起点,不限制阅读;遇到缺口可返回相应章节。
THE LEARNING ROUTE
每一步,都有去处。
仅保存在当前浏览器;完成标记不代表通过项目验收。
语料与编码
固定数据划分、字节单位与只在训练集拟合的编码。
先固定语料与问题,再谈模型
同一批短文怎样划分和计分,才能让留出损失回答一个明确的问题?
字节、Unicode 与预测单位
一个汉字、它的 UTF-8 字节和模型词元分别是什么,为什么能编码不等于能合法生成?
从字节对统计到可逆 BPE
相邻字节对计数相同或彼此重叠时,怎样仍然得到确定、可逆的 BPE 编码?
窗口与训练
接通有效目标、完整模型与可恢复训练。
每个目标只出现一次:窗口与批次
把长文切成多个窗口后,怎样保证每个字符和结束标记恰好计分一次?
完整 decoder 的梯度与资源总账
怎样从真实 decoder 的形状与梯度记录,发现只更新输出层的“训练”?
把训练变成可恢复的状态转移
同样的权重和种子载入后,为什么下一步更新仍可能不同?
评价与预算
分析留出与生成失败,比较明确预算下的规模变化。
冻结协议下的评估与生成失败
测试损失降低但生成乱码时,应该分别检查哪些统计量与输出失败?
从小规模对照到可信的预算结论
加宽模型或增加更新步数后表现变了,怎样区分参数、语料覆盖与累计训练预算的影响?
BUILD / TEST / TRANSFER
从字节到训练收据的微型语言模型实验台
用三十二篇原创合成短文,独立完成byte/BPE编码、完整preLN decoder全参数学习、状态恢复、冻结评估与四条规模轨迹。压缩包包含数据、模型副本、十三项测试、固定检查点和完整实验收据。
运行环境
建议 Python 3.12,PyTorch 2.6.0;CPU 即可,完整安装步骤见项目 README。
解压后先读 README,再按其中环境与命令运行。完整参考实现与学习任务分开提供。
项目完成核对
这是个人核对清单,不是自动评分。保留输入、结果、失败与复现命令。