Transformer图解以及相关的概念解析

2024-09-09 09:29:46 浏览数 (1)

前言

transformer是目前NLP甚至是整个深度学习领域不能不提到的框架,同时大部分LLM也是使用其进行训练生成模型,所以transformer几乎是目前每一个机器人开发者或者人工智能开发者不能越过的一个框架。接下来本文将从顶层往下去一步步掀开transformer的面纱。

transformer概述

Transformer模型来自论文Attention Is All You Need。

在论文中最初是为了提高机器翻译的效率,它使用了Self-Attention机制和Position Encoding去替代RNN。后来大家发现Self-Attention的效果很好,并且在其它的地方也可以使用Transformer模型。并引出后面的BERT和GPT系列。

大家一般看到的transformer框架如下图所示:

transformer模型概览

首先把模型看成一个黑盒,如下图所示,对于机器翻译来说,它的输入是源语言(法语)的句子,输出是目标语言(英语)的句子。

把黑盒子稍微打开一点,Transformer(或者任何的NMT系统)可以分成Encoder和Decoder两个部分,如下图所示。

再展开一点,Encoder由很多结构一样的Encoder堆叠而成,Decoder也是一样。如下图所示。

每一个Encoder的输入是下一层Encoder输出,最底层Encoder的输入是原始的输入(法语句子);Decoder也是类似,但是最后一层Encoder的输出会输入给每一个Decoder层,这是Attention机制的要求。

每一层的Encoder都是相同的结构,它由一个Self-Attention层和一个前馈网络(全连接网络)组成,如下图所示。

每一层的Decoder也是相同的结构,它除了Self-Attention层和全连接层之外还多了一个Attention层,这个Attention层使得Decoder在解码时会考虑最后一层Encoder所有时刻的输出。它的结构如下图所示。

transformer流程串联

transformer的串流需要tensor的加入,输入的句子需要通过Embedding把它变成一个连续稠密的向量,如下图所示。

Embedding之后的序列会输入Encoder,首先经过Self-Attention层然后再经过全连接层

我们在计算

0 人点赞