计算机

GPT 模型

模型结构

GPT 模型结构有以下关键词:

  • Decoder-only Transformer
  • 因果掩码 Attention
  • KV Cache

计算过程

粗略计算过程

输入:token 序列 [x_1, x_2, \dots, x_n],其中每个向量都是一个整数 输出:下一个词的概率分布 [p_1, p_2, \dots, p_m],m 为词汇表大小(vocabulary)

流程:

  1. 逐个 token 进行 embedding e_i = \mathcal{E}(x_i),得到 [e_1, \dots, e_n],e_i \in \mathbb{R}^{d_k}
  2. 使用带因果掩码的自注意力处理序列,得到中间层 [h_1, \dots, h_n],h_i \in \mathbb{R}^{d_k}
  3. 逐个 token 通过 MLP,得到 [h_1', h_2', \dots, h_n'],h_i' \in \mathbb{R}^{d_k}。此处 MLP 与位置无关,所有位置的 embedding 都通过的同一个 MLP
  4. 对序列重复以上因果掩码 attention、MLP 若干次,最终得到输出 [y_1, \dots, y_n],y_i \in \mathbb{R}^{d_k}
  5. 让 y_n 经过 LM Head(一个 Linear 层)映射得到 l \in \mathbb{R}^m
  6. l 就是下一个词的 logit,对其 softmax 就得到了概率分布,[p_1, p_2, \dots, p_m] = \operatorname{softmax}(l)

KV Cache

参考:Attention 的计算

以上的完整计算流程实质上接近于 prefill 的原理,但中间的自回归式生成并不是这样计算的。

BEYOND THE ARTICLE

读完了,有什么想法?

阅读已保存的问答示例,并循着引用回到原文。

查看公开问答示例
— 本文完 — 返回文章列表