作者:禅与计算机程序设计艺术
1.简介
Transformer
概述
transformer模型是2017年NIPS上提出的一种基于self-attention机制的神经网络结构,其代表了在机器学习领域里一个重要的进步。它通过将注意力机制应用到encoder-decoder结构中,从而可以对长或短序列进行建模并处理文本数据。该模型相比于之前的RNN或者CNN模型在序列建模方面都有明显的优势,尤其是在翻译、文本摘要、语言模型等高级任务上表现出色。其主要特点如下:
- 模型结构灵活:使用全连接层替换卷积层,降低计算资源消耗;提出多头注意力机制,充分利用不同子空间的信息;使用残差连接优化梯度传播,加速训练速度。
- 自适应函数选择:对于softmax或者sigmoid函数来说,它们的激活范围受限于输入特征的值,导致模型性能不佳,因此提出更复杂的非线性激活函数,比如GELU函数。
- 使用位置编码:引入位置编码,使得模型能够学习到绝对的位置信息。
为什么要使用Transformer?
1. 规模可控
Transformer结构的训练时间复杂度和参数数量都远小于RNN等模型,因此在大规模预训练任务上,模型能够达到更好的效果。由于每个GPU只需要处理一个batch的数据,并且采用多线程加速训练,因此无需担心内存和硬件约束的问题。
2. 可并行化
Transformer模型的并行化设计可以有效地实现多个GPU之间的并行计算,能够大幅度减少训练时间。