1. Transformer架构概述
Transformer架构自2017年由Vaswani等人在论文《Attention Is All You Need》中提出后,迅速成为自然语言处理领域的基石技术。这种基于注意力机制的神经网络架构,从根本上改变了序列建模的方式,摒弃了传统的循环神经网络(RNN)和卷积神经网络(CNN)在处理序列数据时的固有缺陷。
提示:Transformer的核心创新在于完全依赖注意力机制来建模序列中元素之间的关系,这使得它能够并行处理整个序列,显著提升了计算效率。
与RNN需要逐步处理序列不同,Transformer可以同时看到整个输入序列的所有位置。这种全局视野让它特别擅长捕捉长距离依赖关系——比如理解句子开头和结尾词语之间的语义联系。在实际应用中,这意味着模型能够更好地理解复杂的语言结构,如嵌套从句或跨多句的指代关系。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 输入表示与预处理
2.1 令牌化过程
将原始输入转换为Transformer可处理的格式是第一步关键操作。对于文本数据,这个过程称为令牌化(Tokenization),它将连续的文本分割成离散的语义单元。
常见的令牌化策略包括:
- 单词级令牌化:最简单的形式,将每个单词映射为一个令牌
- 子词级令牌化:如Byte-Pair Encoding(BPE),处理罕见词更有效
- 字符级令牌化:将每个字符作为独立令牌,词汇表极小但序列更长
在实际应用中,子词级令牌化因其平衡了词汇表大小和序列长度的优势而被广泛采用。例如,Hugging Face的Tokenizer会将"unhappiness"分解为["un", "happiness"],既能处理词缀又能复用常见词片段。
2.2 嵌入与位置编码
令牌化后的整数ID需要转换为连续的向量表示,这就是嵌入(Embedding)层的作用。嵌入层本质上是一个可学习的查找表,将每个令牌映射到高维空间中的一个点。
然而,单纯的令牌嵌入缺少关键的位置信息。Transformer通过位置编码(Positional Encoding)来解决这个问题。不同于RNN的隐式位置感知,Transformer使用显式的正弦/余弦函数或可学习的位置嵌入来注入顺序信息。
位置编码的设计需要满足两个要求:
- 能够唯一标识每个位置
- 能够泛化到比训
