English· Español· Deutsch· Nederlands· Français· 日本語· ქართული· 繁體中文· 简体中文· Português· Русский· العربية· हिन्दी· Italiano· 한국어· Polski· Svenska· Türkçe· Українська· Tiếng Việt· Bahasa Indonesia

un

访客
1 / ?
返回课程列表

语言模型预测什么

概率续写引擎

语言模型接收一个 token 序列,并为下一个 token 分配一个概率分布。输入 the cat sat on the,它会输出整个词汇表的概率:matfloorcouch 的概率很高;xylophoneTuesday 的概率很低。


对该分布进行采样,追加一个 token,并反馈:这个循环逐个 token 生成文本。自回归生成,之所以这样命名是因为每一步都回归于其自身先前的输出。


三个数字定义了一个语言模型


词汇表大小 (V)。 模型能产生的不同令牌数量。ANDREA-12M 使用了 4,353 个令牌;ANDREA-120M 使用 8,449 个。


上下文窗口 (T)。 一次前向传播能容纳多少令牌。ANDREA 模型使用 T = 1,024。


参数数量 (P)。 内部有多少可学习权重。12M、120M 和 480M 以 P 命名一个模型家族。


一个三口之家


变体d_model头数层数上下文参数
ANDREA-12M384126102412.8M
ANDREA-120M76812121024~120M
ANDREA-480M153624161024~480M

三个可扩展的旋钮:d_model(每个内部向量的宽度)、n_layer(堆叠的 Transformer 块的深度)、n_head(并行注意力投影)。在整个系列中,词汇表和上下文保持固定。

阅读系列表格

将 ANDREA-12M (d_model=384, 6 layers, 12 heads) 与 ANDREA-120M (d_model=768, 12 layers, 12 heads) 进行比较。从 12M 到 120M,命名两个扩展的架构轴,以及一个保持不变的轴。为每个扩展选择提供一句理由有助于理解。

为什么小模型重要

约束即解放

拥有数千亿参数的大型语言模型需要数千个 GPU、专有数据集和企业预算。很少有人能训练一个。很少有人能修复一个。


一台 GPU 上的小型语言模型颠覆了这一切。任何拥有 4090(或 3060)的人都能从开源数据重现 ANDREA。训练配方同时就是模型卡。开源代码、开源权重、开源数据;72 小时计算即可获得完整出处。


容量 vs 质量

较小的模型无法记忆其训练语料库。ANDREA-12M 拥有 1280 万参数,缺乏存储事实内容的容量;它学习对话结构、词汇分布和响应形状。ANDREA-120M 容量为 10 倍,学习事实回忆、多段落连贯性和领域广度(通过外部评分在生物学和信号处理样本上达到 9.5/10 验证)。


要点: 容量设定了一个上限。课程决定是否能达到这个上限。活动 14-23 涵盖课程。 [TITLE decoder_only/]

三种 Transformer 变体

编码器、解码器、两者皆有

原始 Transformer(Vaswani et al., 2017)配备了一个编码器和一个解码器,用于翻译而将它们粘合在一起。从该论文衍生出三种架构谱系:


仅编码器(BERT 谱系)。双向注意力,无因果掩码。针对分类优化,而非生成。在训练期间,一个标记可以看到其过去和未来。


编码器-解码器 (T5, BART)。编码器读取输入;解码器生成输出,通过交叉注意力关注编码器。用于翻译、摘要。


仅解码器 (GPT, ANDREA)。因果掩码:每个标记仅看到其过去。训练以预测下一个标记。生成免费;训练与推理共享相同的正向传播。


为什么仅解码器在一张 GPU 上获胜

三个原因:


1. 单一目标。 下一个标记预测适用于任何文本。不需要配对的源/目标。

2. 训练与推理对称性。 相同的正向传播,无需特殊的生成逻辑。

3. 内存简单性。 无跨注意力;一层堆栈;单一激活流。


ANDREA 继承了 microGPT 的仅解码器选择,microGPT 继承自 nanoGPT,nanoGPT 继承自 GPT-2。该血统保持标准;变化发生在分词、训练基础设施和课程上。

为什么 ANDREA 使用仅解码器

从训练数据角度给出一个原因,从推理行为角度给出一个原因,解释为什么 ANDREA 使用仅解码器 transformer 而非像 T5 那样的编码器-解码器。

24 GB 内能放什么

每个参数的字节数

RTX 4090 配备 24 GB VRAM。ANDREA-12M 训练使用了 1.4 GB。ANDREA-120M 使用了大幅更多。差距源于一个简单的计算练习:训练期间,每个参数在内存中出现多次。


对于每个参数,训练会保留:

- 权重本身 (1× 权重)

- Adam 一阶矩 (m):与权重相同形状 (1× 权重)

- Adam 二阶矩 (v):与权重相同形状 (1× 权重)

- 梯度:与权重相同形状 (1× 权重)

- 激活值 & 临时变量:~2-4× 权重 (随批次 & 上下文变化)


总计:~6-8× 权重数量,以精度决定的字节数。


精度会放大一切


精度字节/参数120M 参数总量备注
FP324480 MB基准;最安全、最慢
FP162240 MBcuBLAS,内存减半
FP8 E4M31120 MB张量核心,NaN 风险

训练时完整占用量需乘以 6-8 倍。ANDREA-120M 在 FP16 下轻松训练(权重 + 优化器 + 梯度约 2 GB);FP8 E4M3 在 RTX 4090 张量核心上将训练时间减半。


活动 13 (grow_a_language_model_precision) 详细讲解了 FP 精度权衡取舍。

为 ANDREA-120M 的优化器状态计算大小

ANDREA-120M 拥有约 120,000,000 个参数。每个 FP32 权重占用 4 字节。AdamW 为每个权重存储两个额外的优化器状态浮点数 (m, v)。计算:(a) 仅权重在 FP32 中的大小,以 MB 为单位;(b) 权重 + 优化器状态在 FP32 中的大小,以 MB 为单位;(c) 权重 + 优化器状态在 FP16 中的大小,以 MB 为单位。请展示你的计算过程。

二十五个活动

两部分

本课程清晰地分为两部分。第一部分涵盖 microGPT 教给该领域的知识:一个运行在单个 GPU 上的 transformer。第二部分涵盖 ANDREA 的实际贡献:一个能够学习的课程。


第一部分:单个 GPU 上的 Transformer(活动 2-13)


#活动节奏
2Harris 形态素分词器分布分割,256+N+1 词汇表
3分词器-饮食对齐饱和点,为什么 12M 浪费了 63.6%
4嵌入 & 位置学习令牌 + 位置查找
5缩放点积注意力Q·Kᵀ/√d,因果掩码,softmax
6多头注意力头分割,并行投影
7Transformer 块MLP,残差,层归一化
8交叉熵 & 困惑度对数似然,SMMA 损失
9自定义 CUDA 中的反向传播链式法则跨 microgpt_cuda.cu
10AdamW解耦权重衰减;为什么原版 Adam 失效了
11LR 预热 + 余弦衰减2000 步渐变;为什么瞬间峰值毁掉 120M
12梯度裁剪全局 L2 范数;3 个 CUDA 内核
13FP32 / FP16 / FP8 E4M3精度权衡;张量核心

下半部分:一个会学习的课程(活动 14-24)


#活动亮点
14多臂赌博机UCB1,探索 vs 利用
15阶段式骰子控制7/14/21/28/42 阶段,1d3/1d4 骰子
16奖励归因 & EMA按来源损失 EMA,1000× 缩放
17来源底线 & 周期惩罚1/(1+epochs) 防止记忆化
18覆盖奖励文档级跟踪,1.3× 新鲜度
19课程预热前 20K 步使用 7 个聊天/散文来源
20按形状过滤,而非字符has_system_prompt_shape()
21相干门控早停bigram/trigram/word/char auto-halt
22检查点、恢复、信号format, SIGTERM/SIGUSR1, loss.json continuity
23样本审计 & 外部评分reading a run, 9.5/10 territory
24从 microGPT 到 ANDREA-120Mv1 collapse, v2 fixes, v2.5 patch, v3 polish

另外还有一个配套项目:geometry_of_andrea 将每一层视为几何(嵌入空间、注意力作为投影、损失表面、bandit 作为离散单纯形上的行走)。


建议顺序

活动 2-13 将构建一个可工作的 transformer。如果您之前训练过 transformer,可以跳到下半部分;好奇心来临时再回来。


每个活动尽可能独立。数学参考会通过名称引用较早的活动(参见活动 5:缩放点积注意力)。代码引用指向 ~/git/uncloseai-cli/ 中的 microgpt/microgpt_cuda.cumicrogpt/training_proxy.py

您将从哪里开始?

查看 24 个活动 + 几何伴侣活动,指定一个您想开始的活动及一个原因:先验知识差距、专业相关性,或纯粹好奇。没有错误答案;课程路径由您决定。