从 Transformer 诞生至今,LLM发展日新月异, 经历“规模(Scaling)”、“对齐(Alignment)”、“推理(Reasoning)”及“智能体(Agentic)” 等多维度的技术跨越。
技术特征对比
| 阶段 | 代表模型 | 核心目标 | 核心架构/技术 |
|---|---|---|---|
| 基础期 | RNN / LSTM | 序列特征建模 | 递归网络 (Sequential) |
| 突破期 | Transformer | 并行化与长依赖处理 | Self-Attention |
| 理解期 | BERT | 语义表示与分类 | Encoder-only |
| 生成期 | GPT-3 / Llama | 文本生成与涌现能力 | Decoder-only / Scaling |
| 对齐期 | ChatGPT | 遵循人类意图 | RLHF / SFT |
| 推理期 | o1 / DeepSeek | 复杂逻辑与自我博弈 | Reinforcement Learning / CoT |
自注意力机制
Google 发表论文 《Attention is All You Need》, 提出 Transformer 架构:自注意力机制(Self-Attention); 其采用全注意力(Attention-only)的设计,取代了 RNN/LSTM等递归结构,成为所有现代 LLM 的骨架( 支持长程依赖、并行计算)。
- 所有 Token 的计算是完全并行的。矩阵运算(GEMM)能直接跑满算力;
- 任意两个 Token 之间的距离始终为 1。
自注意力机制 (Self-Attention):对于输入序列中的每个词,会生成三个向量:查询向量(Query, 我想找什么 )、键向量(Key, 我有什么特征 )和值向量(Value, 我的具体内容是什么 );可理解为信息寻址与加权聚合 :
- 计算关联度:将每个词的Query与其他所有词的Key进行点积运算,计算出一个相关性分数;分数越高,代表两个词的相关性越强。
- 转化为权重:将这些分数通过Softmax函数归一化, 转化为权重概率,防止梯度消失 。
- 加权求和: 根据权重将所有 Value 累加,得到当前 Token 的上下文表示(得到每个词融合了全局信息的新向量)。
一个完整的 Transformer 由 Encoder 和 Decoder 组成,但LLM大模型一般进行了简化与演化:
- Multi-Head Attention (多头注意力):允许模型在多个子空间(如语法、逻辑、情感)同时进行观察,类似于并发处理。
- Positional Encoding (位置编码):由于取消了递归,模型通过给向量“打时间戳”来识别单词在句子里的顺序。
- Feed-Forward Network (FFN):在注意力提取特征后,通过全连接层进行非线性变换和知识存储。
多头注意力
多头注意力(Multi-Head Attention, MHA) 是 Transformer 的核心组件。多头注意力允许模型从不同的维度(表示子空间, representation subspaces )去观察和理解上下文,极大地增强了模型捕捉复杂语言模式的能力。
- 捕捉多元关系:不同头可以学习到不同的语义特征(如指代消解、语法依赖、局部与全局上下文等)。
- 防止过度偏倚:多头机制类似于集成学习,通过多个“专家”共同决策,避免了单一注意力机制可能产生的偏差。
- 计算的高效并行:在工程实现中,虽然逻辑上分为多个头,但实际上是通过大矩阵运算一次性完成的,非常契合 GPU 的并行架构。
多头注意力在计算时依然是一个大矩阵。本质上是通过维度切分将一个高维特征空间,强行划分为多个低维的子空间独立计算,最后再通过另一个大矩阵投影进行融合:平衡了算法的表达能力(多维度观察)与工程的执行效率(高带宽、高吞吐)。
实现
以模型参数如下为例,详细介绍一下实现流程:
-
(Embedding 维度) = 512 $$
-
(每个头的维度) = 512 / 8 = 64 $$
-
在单头注意力中,需要三个权重矩阵
。
-
在多头注意力中,物理存储上完全一样。依然定义三个 512 X 512 的大矩阵。
计算时:
此时得到的Q, K, V形状都是 [Batch, Seq_len, 512]。此时,和单头没有任何区别。
第二步:维度重排 (Reshape & Transpose) —— 核心魔法
通过改变张量(Tensor)的步长(Stride)和形状,在不拷贝数据的前提下改变逻辑视图:
-
Reshape: 将
[Batch, Seq_len, 512]变成[Batch, Seq_len, 8, 64]。- 告诉编译器:原来的 512 维,现在看作 8 个 64 维的向量。
-
Transpose (转置): 将维度顺序调整为
[Batch, 8, Seq_len, 64]。- 意义:将“头”的维度(8)提到了“序列长度”的前面。在 GPU 的计算视角里,这相当于把 8 个头变成了 Batch 的一部分; 相当于 B×H 条完全独立的序列计算任务。
第三步:批处理矩阵乘法 (Batched Matrix Multiply, BMM)
现在计算 Attention Score:
因为维度是 [Batch, 8, Seq_len, 64],GPU 的矩阵乘法算子会并行处理这 Batch * 8 个矩阵。
- 头与头之间是完全隔离的:头 1 的 Q 只会和头 1 的 K 做点积。
- 硬件利用率极高:利用了 Tensor Core 的 SIMD(单指令多数据)特性,一次性算完 8 个头。
第四步:合并与投影 (Concat & Linear)
计算完 Attention_Output 后,形状为 [Batch, 8, Seq_len, 64]。
- 还原: 转置并 Reshape 回
[Batch, Seq_len, 512]。这在逻辑上等同于把 8 个头的 64 维向量拼接(Concat)了起来。 - 融合: 最后通过一个大矩阵进行线性投影,让这 8 个头的特征进行一次“全员交流”。
通过一个最终的线性层对拼接后的结果进行变换,使输出的维度与输入一致。
位置编码
Transformer 的 Self-Attention 对顺序不敏感(Permutation Invariant),若没有位置信息,模型会将“我吃鱼”和“鱼吃我”视为完全相同。
位置编码则在 Self-Attention 的 permutation-invariant 结构中引入序关系
| 维度 | Sinusoidal | RoPE | ALiBi |
|---|---|---|---|
| 复杂度 | 低 | 中 | 极低 |
| 相对位置 | ❌ | ✅ | ✅ |
| 外推性 | 理论有 | 需 scaling | 很强 |
| 长上下文 | 差 | 中 | 强 |
| 精度 | 中 | 高 | 中 |
| 主流程度 | 早期 | 当前主流 | 特定场景 |
A. 绝对位置编码 (Sinusoidal)
- 做法:在输入向量上直接加一个正弦/余弦函数生成的固定向量。
- 局限:模型很难处理超过训练长度的序列(“泛化性能差”)。
B. 旋转位置编码 (RoPE, Rotary Positional Embedding)
这是目前 Llama、Mistral、DeepSeek 等几乎所有主流模型使用的方案。
- 原理:利用复数旋转矩阵,将位置信息编码为 Query 和 Key 之间的相对旋转角度。
- 公式:
其中旋转矩阵为:
Attension:
公式可简化为:
-
优势:
- 相对性:模型通过计算点积自动捕获 Token 间的相对距离。
- 外推性:通过调整 θ(如 YaRN 方案),结合 scaling 技术可轻松外推。
C. ALiBi (Attention with Linear Biases)
-
做法:在 Attention Score 上直接加一个随距离线性增加的惩罚项。
-
意义:推理时窗口长度理论上可以无限扩展,对超长文本处理非常友好;但
- 远距离 attention 权重趋近 0
- 信息利用率下降
Scaling Laws(缩放法则)
OpenAI 在 2020 年的研究指出,大语言模型的性能(通常以 Cross-Entropy Loss L 衡量)并不是随机提升的,而是与三个核心变量呈幂律关系。
变量定义
- N (Number of parameters):模型的参数规模(排除 Embedding 层)。
- D (Dataset size):训练数据的 Token 总数。
- C (Compute):训练所需的总算力(通常以 PF-days 衡量)。
经验公式
这个公式意味着,性能提升存在边际效用递减。要让 Loss 线性下降,投入(参数或数据)必须呈指数级增长。
意义
A. 涌现能力 (Emergent Abilities)
当模型规模突破某个临界点(通常在 10B 到 100B 参数之间)时,模型会突然掌握之前完全不具备的能力,比如复杂的数学推导、代码纠错或幽默感。这在架构上被称为从量变到质变。
B. 预测的确定性
大厂在动用数万张 H100 集群前,会先在 10M、100M 的小模型上跑几次实验。通过 Scaling Laws 曲线,架构师可以精确算出:“如果我投入 1 亿美金,我最终能得到一个什么水平的模型?” 这种确定性是资本愿意大规模入场的基石。
C. 推理侧缩放
以 OpenAI o1 和 DeepSeek R1 为代表,业界发现除了训练侧(Train-time),在推理侧(Inference-time)增加算力(让模型多思考、多搜索、多验证),性能依然符合 Scaling Laws。
- 逻辑:模型回答问题时的“思考时间”越长,逻辑严密性呈幂律提升。
重要意义
Transformer 的出现不仅是算法的进步,更是工程范式的改变:
- 统一了模型架构:改变了之前
视觉(CNN)、音频(RNN)、文本(LSTM)各行其道,Transformer 统一了整体架构(Vision Transformer, Whisper 等)。 - Scaling Laws:因为支持并行化,可以稳定地增加参数规模(从亿级到万亿级)。
- 预训练范式:让“在全互联网数据上进行无监督学习”成为可能,从而让模型产生了涌现能力 (Emergence)。