第5期 LLM的基石:Transformer架构与自注意力机制

欢迎来到AI编程深度专研系列教程的第五期内容!在前四期,我们从宏观角度了解了AI编程的范式变革、大型语言模型的核心能力、提示工程的艺术以及AI编程的优劣势。从本期开始,我们将深入技术底层,探索支撑这些强大能力的技术原理。本期我们将聚焦于Transformer架构与自注意力机制,这是现代大型语言模型的核心技术基石。

2.1.1 Transformer模型的基本结构

2.1.1.1 Transformer的起源与发展

Transformer架构由Google在2017年发表的论文《Attention Is All You Need》中提出,最初设计用于机器翻译任务。这一架构抛弃了传统的循环神经网络(RNN)和卷积神经网络(CNN)结构,完全基于注意力机制,带来了革命性的性能提升和并行计算能力。

自提出以来,Transformer架构经历了快速演进,主要变种包括:

2.1.1.2 Transformer的整体架构

Transformer架构主要由两大部分组成:编码器(Encoder)和解码器(Decoder)。在GPT等生成模型中,通常只使用了解码器部分。

编码器结构

  1. 输入嵌入:将输入tokens转换为向量表示
  2. 位置编码:添加序列位置信息
  3. 多层自注意力机制:捕获输入序列中不同位置之间的关系
  4. 前馈神经网络:对注意力机制的输出进行非线性变换
  5. 残差连接与层归一化:稳定训练过程

解码器结构

  1. 与编码器相同的基本组件
  2. 掩码自注意力:确保在生成时只关注已经生成的tokens
  3. 编码器-解码器注意力:连接编码器输出和解码器中间状态

2.1.1.3 关键组件解析

输入处理

核心计算块

输出处理

2.1.2 自注意力机制的工作原理

2.1.2.1 注意力机制的基本概念

注意力机制是模仿人类注意力的一种计算方法,允许模型在处理序列数据时动态地关注最相关的部分。在Transformer中,自注意力(self-attention)允许序列中的每个位置关注序列中的所有其他位置。

注意力机制的核心思想是:

  1. 计算查询向量与所有键向量的相似度
  2. 对相似度进行归一化,得到注意力权重
  3. 使用这些权重对值向量进行加权求和

2.1.2.2 缩放点积注意力的数学原理

Transformer使用的是缩放点积注意力(Scaled Dot-Product Attention),其计算过程如下: