HackerTube ?

Let's build GPT: from scratch, in code, spelled out.

Andrej Karpathy在 YouTube 播放 ↗

字幕解读

视频从字符级文本预测开始,构造训练数据并实现小型语言模型,随后逐步引入 token 与嵌入、因果自注意力、多头注意力和 Transformer 块,形成 GPT。讲解重点是模型如何利用此前上下文预测下一个 token,并通过训练损失改进生成;示例规模与完整 ChatGPT 系统相距甚远。

自动字幕 · 引文按字幕原文展示,可点时间戳回看片段。

内容要点

  • 语言模型通过给定上下文预测后续 token 来学习序列中的统计规律。
  • 因果自注意力让位置聚合此前 token 的信息,并通过加权组合建立上下文表示。
  • 视频逐步扩展玩具模型到 Transformer/GPT 结构,训练目标与完整产品系统仍有差距。
视频章节 6
  1. GPT 与语言模型任务
  2. 训练模型与评估损失
  3. 序列模型与上下文
  4. 嵌入表示
  5. Transformer 结构与堆叠
  6. 生成与结语
具体观点与证据 4

分词器词表大小与序列长度存在权衡:较小词表通常需要更长的 token 序列。

教材比较字符编码与 GPT 子词编码,不指定任何词表大小普遍最优。

trade off the code book size and the sequence lengths
探索此观点 →

自回归训练必须屏蔽未来位置,防止下一 token 预测直接偷看答案。

适用于此处解码器的因果预测;编码器可以允许双向注意力。

nodes from the future never talk to the Past because they would give away the answer
探索此观点 →

Dropout 每轮更换随机屏蔽集合,可理解为训练共享参数的子网络集合,测试时启用完整网络。

教程将其用于扩大模型时的正则化;完整网络推理是集成直觉,不是所有非线性网络的精确平均。

training an ensemble of sub networks and then at test time everything is fully enabled
探索此观点 →

预训练得到文本续写器;要转为问答助手,还需监督示范与人类反馈等后续训练。

教程实现的是小型预训练 GPT,并未复现 ChatGPT 的完整后训练流程。

it takes the model from being a document completer to a question answerer
探索此观点 →
补充字幕原文 2

语言模型接收序列前缀并完成后续内容,核心任务是序列延续。

give it the start of a sequence and it completes the sequence

自注意力通过加权聚合此前位置的信息形成当前位置表示。

you can do weighted aggregations of your past Elements
解读边界

实现针对教学采用小数据、小模型与简化训练流程,不能代表 ChatGPT 的真实数据、规模、部署或全部后训练流程。

相关视频与证据 3

共同基础从补全序列,分别走向实现与使用

两段都以补全序列或预测后续词解释语言模型的基本任务。可以以共同定义为起点,分别进入从头构建模型与通过代码使用模型的讲解。

当前视频

Let's build GPT: from scratch, in code, spelled out.

语言模型接收序列前缀并完成后续内容,核心任务是序列延续。

give it the start of a sequence and it completes the sequence
关联视频

A Hackers' Guide to Language Models ↗

讲者以预测后续词或补全缺词介绍语言模型的基本任务,并由此引出 token 和预训练。

knows how to predict the next word
▶ 1:33–1:43 · 观看片段

适用边界 共享基础定义不意味着两份教程具有相同深度、架构或 API,也不等于已经理解模型全部行为。

机制与实现Dropout 的共享子网络机制落到 GPT 训练

Hinton 把 dropout 解释为许多共享权重的子网络;Karpathy 在 GPT 教程中每轮随机屏蔽节点,并在测试时启用完整网络,提供同一正则化机制的具体实现。

关联视频

Brains, Sex, and Machine Learning ↗

共享权重使大量随机子网络得到正则化。

all of these architectures are sharing the same weights, which is regularizing them a lot.
▶ 17:13–17:20 · 观看片段
当前视频

Let's build GPT: from scratch, in code, spelled out.

随机屏蔽训练子网络,测试时启用完整网络。

training an ensemble of sub networks and then at test time everything is fully enabled

适用边界 测试时启用完整非线性网络并不等于显式平均所有子网络;也不能把教程多项扩容带来的效果单独归因于 dropout。

基础架构到现代模型从逐层激活到因果注意力

基础神经网络视频用逐层激活解释输入如何影响输出;GPT 从头构建视频进一步展示因果自注意力如何聚合此前 token,并逐步组成 Transformer。连接可帮助观众辨认现代语言模型保留了神经网络的层间计算框架,同时增加了序列上下文机制。

关联视频

But what is a neural network? | Deep learning chapter 1 ↗

网络的信息处理取决于一层激活如何影响下一层激活。

the heart of the network as an information processing mechanism
▶ 4:39–4:43 · 观看片段
当前视频

Let's build GPT: from scratch, in code, spelled out.

自注意力对过去元素做加权聚合,形成序列位置的上下文表示。

you can do weighted aggregations of your past Elements

适用边界 GPT 视频讲的是 Transformer 语言模型,不能把基础手写数字网络的结构直接等同于 GPT;该连接只指逐层计算这一抽象层次。

Hacker News 评论

查看 HN 原评论 ↗