LESSON 3.6 · 代码 · 150 分钟

GPT:自回归目标与权重共享

训练时,GPT 在因果掩码下并行处理一段 token,并用向右错一位的同一序列作为标签,对每个位置的下一个 token 计算交叉熵。生成时没有未来标签可用,模型只取最后一个位置的 logits,选择或采样一个 token,把它追加到上下文,再重复前向计算。两者学习的是同一个条件分布,只是执行方式不同。

DIRECT ANSWER · VERIFIED SOURCES ·

GPT 的训练与生成为什么都建立在“预测下一个 token”上?

训练时,GPT 在因果掩码下并行处理一段 token,并用向右错一位的同一序列作为标签,对每个位置的下一个 token 计算交叉熵。生成时没有未来标签可用,模型只取最后一个位置的 logits,选择或采样一个 token,把它追加到上下文,再重复前向计算。两者学习的是同一个条件分布,只是执行方式不同。

视频对齐

视频对齐点:在 Karpathy 的 build GPT 主线中,重点追踪数据批次 x/y 的一位偏移、三角 mask、logits reshape、cross-entropy 与逐 token generate 循环。

关键结论

  • 因果 mask 保证位置 t 不能看到 t 之后的标签,避免训练信息泄漏。
  • 训练可同时监督序列中的多个位置;生成必须把新 token 反馈给模型,按步自回归。
  • 温度、top-k 等只改变从 logits 选 token 的策略,不改变模型学到的 next-token 目标。

边界与常见误解

训练使用真实前缀,而生成逐渐依赖自己的输出,因此两者的输入分布并不完全相同。输入嵌入与输出权重绑定很常见但不是 GPT 的必要条件;上下文长度也受模型配置限制。

一手来源

学完你应该能够

  1. 能不用术语堆砌,解释「GPT:自回归目标与权重共享」解决了什么问题。
  2. 能围绕 causal LM、embedding tying、logits 画出变量与因果关系。
  3. 能完成「从零完成 miniGPT」,并用证据而不是感觉判断结果。

核心概念

causal LM

causal LM是因果约束而非普通正则化。训练时整段序列并行计算,但第 t 个位置只能读取不晚于 t 的 token,否则模型会偷看答案并得到虚假低 loss。

embedding tying

embedding tying本质上是可训练查表:离散 id 选择参数矩阵的一行。相似性不是预先赋予的语义,而是训练目标让经常承担相似预测角色的行逐渐靠近。

logits

logits需要同时解释信息流、张量 shape 与因果约束,并在一个四 token 小矩阵上手算。 写出至少一个不变量、shape 约束或成立条件。

generation

generation需要同时解释信息流、张量 shape 与因果约束,并在一个四 token 小矩阵上手算。 用反例说明忽略它时系统会怎样失败。

实践任务

从零完成 miniGPT

  • 预测:在运行代码前,写下你预期的输出、趋势或失败位置。
  • 构建:先写接口和 shape 断言,只保留回答核心问题所需的最小组件。
  • 验证:使用小矩阵手算、mask 单测、权重对齐与生成一致性;保存参数、随机种子与原始结果。
  • 迁移:改变 head 数、上下文长度或归一化位置后预测影响,说明原结论是否仍成立。

进入完整互动课程