Transformer 是什么
Transformer 是一种以注意力机制(Attention)为核心的深度神经网络架构,最初主要用于处理自然语言等序列数据,如今已广泛应用于文本、图像、音频和视频等领域。
2017 年,Google 研究人员在论文《Attention Is All You Need》中提出 Transformer,最初用于机器翻译任务。
三个关键词:
-
神经网络架构:Transformer 不是一个具体模型,而是一套构建模型的方法。
-
Attention:其核心机制,使模型能够根据当前任务,动态关注输入中不同部分之间的关系。
-
通用性:最初用于序列建模,后来逐步扩展到多种模态。
核心定义
Transformer = 一种神经网络架构,以 Attention 为核心,通过堆叠计算模块学习数据内部及数据之间的关系。
容易混淆的,比如,Transformer、GPT、Qwen、DiT的关系:
Transformer 是架构家族,GPT、Qwen 等是采用相关架构构建的具体模型,而 DiT 则是将 Transformer 应用于扩散类生成模型的架构。
为什么出现
在 Transformer 出现之前,处理文本等序列数据时,经常使用 RNN、LSTM 等循环神经网络。假如需要理解下面的句子:
小明把篮球交给小王,因为他准备离开。
模型需要结合上下文,判断“他”指的是谁。因此:理解一句话,不能只孤立地处理每个词,还需要理解词与词之间的关系。
传统循环网络按照时间顺序逐步处理序列,虽然能够建立上下文关系,但其顺序依赖限制了训练时的并行计算。
Transformer 的一个重要突破,是利用 Self-Attention(自注意力)机制,使序列中的不同位置能够直接建立信息交互。
传统循环网络(简化):
Transformer 自注意力(简化):
-
Transformer 并不是第一个使用 Attention 的架构,其重要创新之一是采用以自注意力为核心、无需循环结构的设计。
-
直接建立关系并不意味着任何 Transformer 都允许所有 Token 互相访问。实际还会受到注意力掩码等机制的约束。
Transformer 利用 Attention 建立数据不同位置之间的联系,并通过非循环结构支持更高程度的并行计算。
整体结构
| 概念 | 当前需要掌握的内容 |
|---|---|
| Token | 输入数据的基本处理单位 |
| Embedding | 将 Token 转换为向量表示 |
| Transformer Block | 可以重复堆叠的主要计算模块 |
| Attention | 让不同位置的信息相互关联 |
FFN、归一化和残差连接属于 Block 内部的机制。
架构形式
Transformer 是一个架构家族,不同模型可以根据任务选择不同的结构。