大模型底层原理 词汇表
本工作区的"标准用语"。所有课程、练习、学习记录都用这里的说法。
怎么用这份词汇表
词汇表是压缩后的知识,不是拿来读着学的字典。下面的条目目前标为 种子:是我先写的草稿。做完第 1 课后,试着不看定义,用一两句话自己讲出来,发给我;讲对了,就把它改成你的版本并标 已掌握。
基础
- Token 词元 种子
- 模型处理文本的最小离散单位,由 tokenizer 把文本切分并映射为整数 id。避免:直接说"字""词"(一个 token 可能是半个词,也可能是多个字)
- Embedding 嵌入向量 种子
- 每个 token 对应的一个可学习的 dmodel 维向量;一段长度为 T 的输入变成形状
(T, d_model)的矩阵 X。避免:词向量(容易和 word2vec 混淆) - 序列长度 sequence length, T 种子
- 一次输入中 token 的个数,代码中常记作
T。本工作区统一用T,不用n、L。避免:上下文长度(那是模型允许的最大 T,即 context window / block_size)
注意力
- 自注意力 self-attention 种子
- Q、K、V 全部来自同一个序列 X 的注意力,让序列里每个位置从其他位置汇总信息。避免:intra-attention(旧称)。对照:cross-attention 的 K、V 来自另一个序列。
- 注意力 attention 种子
- 用一个 query 与一组 key 的匹配程度作为权重,对对应的 value 做加权平均的函数。在本工作区,"attention"默认指 缩放点积注意力。
- Query / Key / Value Q / K / V 种子
- 由 X 分别乘以三个可学习矩阵 WQ、WK、WV 得到的三组向量:Q 是"我在找什么",K 是"我能被怎样匹配",V 是"被选中后我提供的内容"。形状
Q,K: (T, d_k),V: (T, d_v)。避免:把 K 和 V 当成同一个东西(它们来自不同的投影矩阵) - dk key / head dimension 种子
- 每个 query 和 key 向量的维度;多头注意力中通常 dk = dmodel / h(原论文 512/8 = 64)。nanoGPT 中叫
head_size/hs。 - 注意力分数 attention scores 种子
- QKT/√dk 这个
(T, T)矩阵,进入 softmax 之前的值;第 i 行第 j 列表示位置 i 对位置 j 的匹配度。避免:把它叫"权重"(权重是 softmax 之后的) - 注意力权重 attention weights / pattern 种子
- 注意力分数按行做 softmax 后的
(T, T)矩阵,每行非负、和为 1。避免:"attention map"(可以用,但别和分数混用) - Softmax softmax 种子
- 把任意实数向量变成概率分布的函数:softmax(z)i = ezi / Σj ezj;输入整体越大,输出越接近 one-hot。实现时先减去每行最大值以防溢出。
- 缩放点积注意力 scaled dot-product attention, SDPA 种子
- softmax(QKT / √dk) V。√dk 用来把点积的方差拉回约 1,防止 softmax 饱和、梯度变小。(Vaswani et al., 2017 §3.2.1)
- 因果掩码 causal mask 种子
- 在 softmax 之前把注意力分数矩阵对角线以上(j > i,即"未来"位置)设为 −∞ 的操作,使每个位置只能看到自己和之前的 token;decoder-only 模型(GPT)的必需部件。避免:look-ahead mask、下三角 mask(同义,统一用"因果掩码");不要与 padding mask 混淆。