第03篇-大模型技术全景-从Transformer到大语言模型
【AIaaS 全栈架构师】第 3 篇:大模型技术全景——从 Transformer 到大语言模型
本系列定位:本系列是一套面向全栈架构师的 AIaaS 系统化教程,覆盖从概念全景、模型训练/微调底层原理、推理部署优化、Go 平台工程、GPU 集群编排到平台核心服务与运维前沿的完整知识体系。技术栈以 Go 为主,Python/C++ 为辅。
本篇你将学到
- 理解 Transformer 架构的核心机制:Self-Attention、Multi-Head Attention、Positional Encoding
- 区分 Encoder-Only、Decoder-Only、Encoder-Decoder 三种 Transformer 变体
- 梳理 GPT、Claude、Llama、Qwen、DeepSeek 等主流大模型的谱系关系
- 建立"模型架构→训练范式→能力定位"的系统性认知
学完本篇,你将理解大模型"为什么这么设计"以及"各家模型有什么区别",为后续训练和推理章节奠定模型层基础。
一、Transformer:大模型的架构基石
1.1 为什么 Transformer 取代了 RNN
在 Transformer 出现之前,自然语言处理的主流架构是 RNN(循环神经网络)及其变体 LSTM/GRU。RNN 有一个致命缺陷:串行处理。
RNN 逐个 Token 处理输入序列,第 t 步的计算依赖第 t-1 步的隐状态。这意味着两点:第一,无法并行计算,训练速度受限;第二,长序列信息会逐步衰减,难以捕获长距离依赖。
2017 年,Google 的论文《Attention Is All You Need》提出了 Transformer 架构,用 Self-Attention(自注意力)机制完全取代了 RNN 的循环结构,实现了序列的并行计算和长距离依赖建模。
1.2 Self-Attention 核心机制
Self-Attention 是 Transformer 的灵魂。它的核心思想是:对于序列中的每个 Token,计算它和序列中所有其他 Token 的"注意力权重",然后对所有 Token 的表示做加权求和。
具体来说,Self-Attention 将每个输入向量映射为三个角色:
| 角色 | 含义 | 类比 |
|---|---|---|
| Query (Q) | 当前 Token 想要"查询"什么信息 | 搜索引擎的查询词 |
| Key (K) | 序列中各 Token 能"提供"什么信息 | 网页的关键词索引 |
| Value (V) | 序列中各 Token 的实际"内容" | 网页的实际内容 |
注意力权重的计算公式:
Attention(Q, K, V) = softmax(Q × K^T / √d_k) × V
其中 d_k 是 Key 向量的维度。除以 √d_k 是为了控制点积结果的方差,防止 softmax 梯度消失。
1.3 Multi-Head Attention:多视角的注意力
单个 Self-Attention 只能学习一种注意力模式。Multi-Head Attention 将 Q、K、V 分别投影到多个子空间,每个"头"独立计算注意力,最后拼接所有头的结果:
Multi-Head(Q, K, V) = Concat(head_1, head_2, ..., head_h) × W_O
head_i = Attention(Q × W_Q_i, K × W_K_i, V × W_V_i)
例如,Llama 2-7B 使用 32 个注意力头,每个头维度为 128。不同的头可以学习不同的注意力模式——有的头关注语法依赖,有的关注语义关系,有的关注长距离位置。
1.4 Positional Encoding:位置信息的编码
Self-Attention 机制本身是"排列不变"的——打乱输入 Token 的顺序,输出不变(每个 Token 看到的信息是一样的)。为了让模型感知 Token 的位置,需要注入位置信息。
| 位置编码方式 | 原理 | 使用模型 |
|---|---|---|
| Sinusoidal | 固定的正弦/余弦函数 | 原始 Transformer |
| Learned PE | 可学习的位置嵌入 | BERT、GPT-2 |
| RoPE(旋转位置编码) | 将位置信息编码为 Q/K 向量的旋转 | Llama、Qwen、DeepSeek |
| ALiBi | 在注意力分数中加线性偏置 | BLOOM、MPT |
RoPE(Rotary Position Embedding) 是目前大模型最主流的位置编码方案,它的优势在于可以自然地推广到训练时未见过的更长序列(长度外推性)。
1.5 Feed-Forward Network(FFN)
除了注意力层,每个 Transformer Block 还包含一个 Feed-Forward Network,由两层线性变换和激活函数组成:
FFN(x) = W_2 × activation(W_1 × x + b_1) + b_2
FFN 的隐藏维度通常是模型维度的 4 倍(例如 Llama 2-7B:模型维度 4096,FFN 维度 11008)。激活函数方面,早期模型用 ReLU,现代大模型普遍使用 SwiGLU(Llama 系列)或 GELU(GPT 系列)。
1.6 完整 Transformer Block
一个完整的 Transformer Block 的结构:
一个 70B 参数的大模型,通常由 80 个这样的 Block 叠加而成。
二、三种 Transformer 变体
根据使用 Transformer 的方式不同,形成了三种架构变体:
2.1 Decoder-Only 为何成为主流
当前几乎所有主流大语言模型(GPT-4、Claude、Llama、Qwen、DeepSeek)都采用 Decoder-Only 架构。原因有三:
第一,训练效率高。Decoder-Only 使用"下一个 Token 预测"作为训练目标,每个样本的每个位置都是一个训练信号,训练效率极高。
第二,Scaling Law 验证。研究表明,在模型参数量和训练数据量足够大的情况下,Decoder-Only 架构的性能上限最高。
第三,通用性强。生成能力是通用智能的基础——对话、推理、代码、创作都可以归结为条件生成任务。Decoder-Only 天生为生成而设计。
三、主流大模型谱系
3.1 模型谱系全景
3.2 各家模型技术特色
| 模型家族 | 架构特色 | 注意力变体 | 位置编码 | 激活函数 |
|---|---|---|---|---|
| GPT 系列 | Decoder-Only | 标准 MHA | Learned PE / RoPE | GELU |
| Llama 2/3 | Decoder-Only | GQA(分组查询) | RoPE | SwiGLU |
| Qwen 2/2.5 | Decoder-Only | GQA | RoPE | SwiGLU |
| DeepSeek-V2/V3 | Decoder-Only | MLA(多头潜在注意力) | RoPE | SwiGLU |
| Mistral/Mixtral | Decoder-Only + MoE | GQA | RoPE | SwiGLU |
3.3 关键架构创新
GQA(Grouped-Query Attention):标准 MHA 中每个头都有独立的 Q/K/V,KV Cache 显存占用大。GQA 让多个 Q 头共享一组 K/V,大幅减少 KV Cache 的显存消耗。Llama 2-70B、Llama 3 全系列都使用 GQA。
MoE(Mixture of Experts):将 FFN 替换为多个"专家网络",每个 Token 只激活其中少数专家(如 Mixtral 8×7B:8 个专家中激活 2 个)。好处是参数量大但推理计算量小——总参数 47B 但每次推理只激活约 13B 的参数。DeepSeek-V3 更是将 MoE 推向了 671B 总参数、37B 激活参数的规模。
MLA(Multi-head Latent Attention):DeepSeek-V2 提出的注意力变体,通过将 KV Cache 压缩到低维潜在空间,在保持性能的同时大幅降低 KV Cache 的显存占用,这是 DeepSeek 能以极低成本提供服务的关键技术之一。
四、大模型的核心参数
理解模型规模和性能的关系,需要关注以下核心参数:
| 参数 | 含义 | Llama 3-8B | Llama 3-70B | 影响 |
|---|---|---|---|---|
| 层数(Layers) | Transformer Block 数量 | 32 | 80 | 模型深度 |
| 模型维度(d_model) | 隐藏层宽度 | 4096 | 8192 | 表征能力 |
| 注意力头数(n_heads) | Multi-Head 数量 | 32 | 64 | 注意力多样性 |
| KV 头数(n_kv_heads) | GQA 中 K/V 的头数 | 8 | 8 | KV Cache 大小 |
| FFN 维度(d_ff) | FFN 隐藏层宽度 | 14336 | 28672 | 非线性表达 |
| 词表大小(vocab_size) | Token 词汇表 | 128256 | 128256 | 语言覆盖 |
KV Cache 显存计算
KV Cache 的显存占用是推理优化的关键指标(第 15 篇会深入讨论)。计算公式:
KV Cache 大小 = 2 × n_layers × n_kv_heads × head_dim × seq_len × batch_size × dtype_size
以 Llama 3-70B(80 层、8 KV 头、head_dim=128、FP16)为例,batch_size=1、seq_len=4096 时的 KV Cache:
2 × 80 × 8 × 128 × 4096 × 1 × 2 bytes = 1,342,177,280 bytes ≈ 1.25 GB
这意味着即使模型权重加载完后还有剩余显存,长上下文请求的 KV Cache 也会快速吃满显存。这就是为什么 PagedAttention 和 GQA 等技术如此重要。
五、训练范式:预训练 → 微调 → 对齐
大模型的训练通常分为三个阶段:
| 阶段 | 数据 | 目标 | 成本 |
|---|---|---|---|
| 预训练 | 万亿级 Token 的无标注文本 | 学习语言、知识和推理能力 | 极高(千卡级别 GPU 集群,数月训练) |
| 监督微调(SFT) | 数十万条指令-回答对 | 学会"按指令格式"回答 | 中等(数卡到数十卡,数天) |
| 对齐训练(RLHF/DPO) | 人类偏好数据 | 使回答更安全、有用、无害 | 中等(偏好数据标注成本高) |
这三个阶段的技术细节将在模块二(训练核心原理)中逐步展开。
本篇小结
| 知识点 | 核心内容 |
|---|---|
| Transformer 核心 | Self-Attention(Q/K/V 点积 + softmax 加权)、Multi-Head(多视角)、FFN |
| 位置编码 | 原始 Sinusoidal → Learned PE → RoPE(当前主流,支持长度外推) |
| 三种变体 | Encoder-Only(理解)、Decoder-Only(生成,当前主流)、Encoder-Decoder(Seq2Seq) |
| 主流模型 | GPT/Claude(闭源),Llama/Qwen/DeepSeek(开放权重),均为 Decoder-Only |
| 关键创新 | GQA(减少 KV Cache)、MoE(稀疏激活)、MLA(DeepSeek KV 压缩) |
| 训练范式 | 预训练 → SFT → RLHF/DPO,三个阶段逐步精化能力 |
| KV Cache | 推理显存的关键因素,驱动了 GQA/PagedAttention 等优化 |
下篇预告
下一篇我们将深入 GPU 硬件层面,理解 GPU 的并行计算架构(SM/CUDA Core/HBM/NVLink),对比主流 AI GPU(H100/H200/B200/MI300)的规格,为后续训练和推理优化建立硬件认知。
如果本篇内容对你有帮助,欢迎点赞收藏!有任何疑问,欢迎在评论区交流。
更多推荐
所有评论(0)