LLM发展历程与自注意力简介

0 阅读8分钟

从 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, 我的具体内容是什么 );可理解为信息寻址与加权聚合

  1. 计算关联度:将每个词的Query与其他所有词的Key进行点积运算,计算出一个相关性分数;分数越高,代表两个词的相关性越强。
  2. 转化为权重:将这些分数通过Softmax函数归一化, 转化为权重概率,防止梯度消失 。
  3. 加权求和: 根据权重将所有 Value 累加,得到当前 Token 的上下文表示(得到每个词融合了全局信息的新向量)。

一个完整的 Transformer 由 Encoder 和 Decoder 组成,但LLM大模型一般进行了简化与演化:

  • Multi-Head Attention (多头注意力):允许模型在多个子空间(如语法、逻辑、情感)同时进行观察,类似于并发处理。
  • Positional Encoding (位置编码):由于取消了递归,模型通过给向量“打时间戳”来识别单词在句子里的顺序。
  • Feed-Forward Network (FFN):在注意力提取特征后,通过全连接层进行非线性变换和知识存储。

多头注意力

多头注意力(Multi-Head Attention, MHA) 是 Transformer 的核心组件。多头注意力允许模型从不同的维度(表示子空间, representation subspaces )去观察和理解上下文,极大地增强了模型捕捉复杂语言模式的能力。

  • 捕捉多元关系:不同头可以学习到不同的语义特征(如指代消解、语法依赖、局部与全局上下文等)。
  • 防止过度偏倚:多头机制类似于集成学习,通过多个“专家”共同决策,避免了单一注意力机制可能产生的偏差。
  • 计算的高效并行:在工程实现中,虽然逻辑上分为多个头,但实际上是通过大矩阵运算一次性完成的,非常契合 GPU 的并行架构。

多头注意力在计算时依然是一个大矩阵。本质上是通过维度切分将一个高维特征空间,强行划分为多个低维的子空间独立计算,最后再通过另一个大矩阵投影进行融合:平衡了算法的表达能力(多维度观察)与工程的执行效率(高带宽、高吞吐)。

llm-multiheader.png

实现

以模型参数如下为例,详细介绍一下实现流程:

  • (Embedding 维度) = 512 $$

  • (每个头的维度) = 512 / 8 = 64 $$

  • 在单头注意力中,需要三个权重矩阵

  • 在多头注意力中,物理存储上完全一样。依然定义三个 512 X 512 的大矩阵。

计算时

此时得到的Q, K, V形状都是 [Batch, Seq_len, 512]。此时,和单头没有任何区别。

第二步:维度重排 (Reshape & Transpose) —— 核心魔法

通过改变张量(Tensor)的步长(Stride)和形状,在不拷贝数据的前提下改变逻辑视图:

  1. Reshape: 将 [Batch, Seq_len, 512] 变成 [Batch, Seq_len, 8, 64]

    • 告诉编译器:原来的 512 维,现在看作 8 个 64 维的向量。
  2. 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]

  1. 还原: 转置并 Reshape 回 [Batch, Seq_len, 512]。这在逻辑上等同于把 8 个头的 64 维向量拼接(Concat)了起来。
  2. 融合: 最后通过一个大矩阵进行线性投影,让这 8 个头的特征进行一次“全员交流”。

通过一个最终的线性层对拼接后的结果进行变换,使输出的维度与输入一致。

位置编码

Transformer 的 Self-Attention 对顺序不敏感(Permutation Invariant),若没有位置信息,模型会将“我吃鱼”和“鱼吃我”视为完全相同。

位置编码则在 Self-Attention 的 permutation-invariant 结构中引入序关系

维度SinusoidalRoPEALiBi
复杂度极低
相对位置
外推性理论有需 scaling很强
长上下文
精度
主流程度早期当前主流特定场景

A. 绝对位置编码 (Sinusoidal)

  • 做法:在输入向量上直接加一个正弦/余弦函数生成的固定向量。
  • 局限:模型很难处理超过训练长度的序列(“泛化性能差”)。

B. 旋转位置编码 (RoPE, Rotary Positional Embedding)

这是目前 Llama、Mistral、DeepSeek 等几乎所有主流模型使用的方案。

  • 原理:利用复数旋转矩阵,将位置信息编码为 Query 和 Key 之间的相对旋转角度。
  • 公式:

其中旋转矩阵为:

Attension:

公式可简化为:

  • 优势:

    1. 相对性:模型通过计算点积自动捕获 Token 间的相对距离。
    2. 外推性:通过调整 θ(如 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)。