GPT架构

生成式预训练Transformer架构详解

架构概述

GPT(Generative Pre-trained Transformer)是一种基于Transformer解码器的生成式语言模型。 与BERT的双向编码器不同,GPT采用单向(从左到右)的自回归方式生成文本,使其特别适合文本生成任务。

# GPT核心组件
Input → Token Embedding + Position Embedding
→ N × Transformer Decoder Block
→ Layer Norm → Linear → Softmax
→ Output Probabilities

核心组件

1. Token嵌入与位置编码

GPT将输入文本转换为token序列,然后添加位置编码以保留序列顺序信息。

x = TokenEmbedding(tokens) + PositionEmbedding(positions)
# GPT使用学习的位置编码
# 而非Transformer原始的正弦位置编码

2. Transformer解码器块

每个解码器块包含掩码自注意力层和前馈网络,使用残差连接和层归一化。

# 单个解码器块
x = x + MaskedSelfAttention(LayerNorm(x))
x = x + FFN(LayerNorm(x))

3. 掩码自注意力(Masked Self-Attention)

使用上三角掩码确保每个位置只能关注之前的位置,保证自回归生成的因果性。

# 因果掩码矩阵
Mask[i,j] = 0 if j ≤ i
Mask[i,j] = -∞ if j > i
Attention = softmax((QK^T + Mask) / √d) × V

4. 前馈网络(FFN)

两层全连接网络,中间使用GELU激活函数,扩展比通常为4倍。

FFN(x) = GELU(xW₁ + b₁)W₂ + b₂
# d_model → 4×d_model → d_model

GPT系列演进

模型参数量层数隐藏维度注意力头
GPT-1117M1276812
GPT-21.5B48160025
GPT-3175B961228896

与BERT的区别

GPT(解码器)

  • • 单向自回归
  • • 因果掩码注意力
  • • 适合文本生成
  • • 从左到右预测

BERT(编码器)

  • • 双向编码
  • • 全注意力
  • • 适合文本理解
  • • 掩码语言模型

关键技术点

Pre-LN vs Post-LN

GPT-2/3采用Pre-LN(先归一化再计算),训练更稳定

激活函数

使用GELU而非ReLU,梯度更平滑

词表大小

GPT-2使用50257,GPT-3使用50257的BPE词表

----