跳转到内容

05 GPT 预训练:预测下一个 Token

  • 理解 GPT 预训练目标。
  • 会解释 cross entropy loss。
  • 用 JS 训练一个最小语言模型。

GPT 的预训练任务很朴素:给前面的 token,预测下一个 token。模型反复在海量文本上做这件事,最终学到语法、事实、风格和部分推理模式。

训练样本可以写成:

输入: 今 天 天
目标: 天 气 好

每个位置都预测下一个 token。模型输出的是整个词表上的 logits,再用 softmax 转成概率。真实目标 token 的概率越高,loss 越低。

nanoGPT 可以训练 Shakespeare 小模型;TinyStories 是适合小模型学习语言结构的数据集。

源码:labs/05-pretraining/index.mjs

这个实验用 bigram 统计代替神经网络,展示“根据当前字符预测下一个字符”的最小版本。

运行:

Terminal window
npm run lab:05

预期你会看到训练文本、bigram loss 和从一个起始字符继续生成的短文本。

  • 预训练不是人工写规则,而是最小化预测错误。
  • loss 下降不等于模型一定会说真话,只说明它更符合训练分布。
  • 小数据集能帮你理解流程,但不能代表大模型能力。