Transformer 是一种深度学习模型,其核心思想是“Attention is all you need”。它主要用于处理序列数据,包括当下热门的 NLP 任务,完全基于注意力机制,不使用传统的循环神经网络(RNN)或卷积神经网络(CNN)的计算架构。
其工作流程如下:
1. 输入嵌入(Input Embeddings):将每个单词映射为一个向量,即单词嵌入(word embeddings)。例如“ I ”映射为一个 512 维的向量。
2. 位置编码(Positional Encodings):由于 Transformer 没有递归或卷积等捕获序列顺序的结构,所以需要给每个词位置加上位置编码,使模型知道词语的相对位置。
3. 编码器(Encoder):输入序列的嵌入向量和位置编码相加后被送入编码器层。编码器由多个相同的层组成,每层有两个核心部分:
多头注意力机制(MultiHead Attention):捕捉单词间的依赖关系。
前馈神经网络(FeedForward NN):对 attention 的结果进行进一步编码。
4. 解码器(Decoder):编码器的输出被送入解码器层。解码器也是由多个相同层组成,每层除了编码器组件外,还有一个额外的注意力模块,对编码器的输出序列建模依赖关系。
5. 输出嵌入(Output Embeddings):解码器最后一层的输出被映射为输出单词概率分布。例如生成单词“我”“是”等概率。
6. 生成(Generation):基于概率分布,以贪婪或 beam search 等解码策略生成完整的输出序列。
Transformer 模型用途广泛,可以用来翻译文本、写诗、写文章,甚至生成计算机代码。像 AlphaFold 2、GPT3、BERT、T5、Switch、Meena 等功能强大的模型都是建立在 Transformer 基础之上。如果想在机器学习,特别是自然语言处理方面与时俱进,至少要对 Transformer 有一定的了解。
2025-02-12