05 GPT 预训练:预测下一个 Token
- 理解 GPT 预训练目标。
- 会解释 cross entropy loss。
- 用 JS 训练一个最小语言模型。
GPT 的预训练任务很朴素:给前面的 token,预测下一个 token。模型反复在海量文本上做这件事,最终学到语法、事实、风格和部分推理模式。
训练样本可以写成:
输入: 今 天 天目标: 天 气 好每个位置都预测下一个 token。模型输出的是整个词表上的 logits,再用 softmax 转成概率。真实目标 token 的概率越高,loss 越低。
参考项目里的对应实现思路
Section titled “参考项目里的对应实现思路”nanoGPT 可以训练 Shakespeare 小模型;TinyStories 是适合小模型学习语言结构的数据集。
最小代码实验
Section titled “最小代码实验”源码:labs/05-pretraining/index.mjs
这个实验用 bigram 统计代替神经网络,展示“根据当前字符预测下一个字符”的最小版本。
运行命令与预期输出
Section titled “运行命令与预期输出”运行:
npm run lab:05预期你会看到训练文本、bigram loss 和从一个起始字符继续生成的短文本。
- 预训练不是人工写规则,而是最小化预测错误。
- loss 下降不等于模型一定会说真话,只说明它更符合训练分布。
- 小数据集能帮你理解流程,但不能代表大模型能力。