主流大模型架构全景
深入理解每个主流模型的设计思路与权衡,是面试中超越表面认知的关键。本章将带你梳理 GPT、LLaMA、DeepSeek 及 Qwen 的架构演进,从核心原理到工程实践,再到常见面试考点。
GPT 系列架构演进
1. 核心概念
GPT(Generative Pre-trained Transformer)由 OpenAI 推出,核心在于大规模文本自回归预训练配合 Prompt 引导任务。
- GPT-1 (2018): 验证了'预训练 + 微调'范式。12 层 Transformer Decoder,1.17 亿参数。
- GPT-2 (2019): 证明大模型配合大数据可实现 Zero-Shot。15 亿参数,无需微调即可通过 Prompt 完成任务。
- GPT-3 (2020): 1750 亿参数,ICL(上下文学习)标志性模型。Few-Shot 即可处理多种任务。
- GPT-4 (2023): 多模态,传闻采用 MoE 架构,总参数量巨大。
| 代际 | 参数量 | 层数 | 隐藏维度 | 头数 | 上下文 | 核心创新 |
|---|---|---|---|---|---|---|
| GPT-1 | 117M | 12 | 768 | 12 | 512 | 预训练 + 微调 |
| GPT-2 | 1.5B | 48 | 1600 | 25 | 1024 | Zero-Shot, Pre-Norm |
| GPT-3 | 175B | 96 | 12288 | 96 | 2048 | ICL, Few-Shot |
| GPT-4 | ~1.8T? | ? | ? | ? | 128K | 多模态,MoE |
2. 原理推导
GPT 的预训练目标:因果语言建模 (CLM)
$$\mathcal{L} = -\sum_{t=1}^{T} \log P(x_t | x_{<t}; \theta)$$
每个 token 基于前面所有 token 预测下一个,所有位置参与 Loss 计算。
Pre-Norm vs Post-Norm
GPT-2 从 Post-Norm 切换到 Pre-Norm 是为了解决深层梯度消失问题。
class GPT2Block(nn.Module):
def __init__(self, d_model, n_heads, d_ff, dropout=0.1):
super().__init__()
self.ln1 = nn.LayerNorm(d_model) # Pre-Norm
self.attn = MultiHeadAttention(d_model, n_heads, dropout)
.ln2 = nn.LayerNorm(d_model)
.ffn = nn.Sequential(
nn.Linear(d_model, d_ff),
nn.GELU(),
nn.Linear(d_ff, d_model),
nn.Dropout(dropout)
)
():
x = x + .attn(.ln1(x), mask=mask)
x = x + .ffn(.ln2(x))
x

