分享
一文读懂 Transformer:深度学习模型的核心架构与原理
输入“/”快速插入内容
一文读懂 Transformer:深度学习模型的核心架构与原理
用户3075
用户3075
用户3377
用户3377
用户9008
用户9008
用户9226
用户9226
用户7021
用户7021
+67
2024年3月19日创建
18756
13
大家玩GPT应该有一段时间了,我们都知道GPT的全称是“
Generative Pre-trained Transformer
“,前两个词比较好理解,Transformer是个相对专业的概念。这篇文章我们就主要讲一下Transformer的工作原理。下面的内容涉及一些线性代数和概率学知识,我在具体的计算过程里面有一些解释,大家也可以用AI工具针对性学习一下相关的概念,理解起来会容易一些。
基本概念
Transformer 是一种深度学习模型,核心思想是 "
Attention is all you need
",这句话来源于 2017 年由 Google Brain 团队发布的同名论文。Transformer主要用于处理序列数据,包括现在最火的NLP任务。与之前的模型不同,Transformer 完全基于注意力机制,不使用传统的循环神经网络(RNN)或卷积神经网络(CNN)的计算架构。
模型架构
Transformer 模型主要由两大部分组成:编码器(Encoder)和解码器(Decoder)。每个部分都是由多个相同的层堆叠而成,每层包含了多头注意力机制(Multi-head Attention)和位置全连接前馈网络。
编码器(Encoder)
可以理解为将自然语言转换成向量文本,以模型内的既有参数表示。这些参数包含了原始信息,同时也融合了序列内元素间的相互关系。
代码块
Python
我喜欢
猫
举个例子:
输入:“我喜欢猫”
将自然语言转换成词嵌入
向量:
我 -> [1, 0]
喜欢 -> [0, 1]
猫 -> [1, 1]
自注意力机制(这个后面详细讲)
输出:编码器输出一个序列的向量,表示对输入句子的理解。
[1, 0], [0, 1], [1, 1]
解码器(Decoder)
基于编码器的输出 和之前生成的输出逐步生成目标序列,也就是把向量文本重新转化成自然语言。
同样举例:
目标:生成中文句子 "我喜欢猫"。
初
始输入:解码器接收一个开始符号,用 [0, 0] 来表示。
第一步生成 '我':
考虑到编码器的输出和当前已生成的词,解码器决定生成 [1, 0],这在我们的简化模型中对应 "我"。
第二步生成 '喜欢
':
现在,解码器考虑编码器的输出 [1, 0], [0, 1], [1, 1] 和当前已生成的词 [1, 0]("我"),决定生成 [0, 1],对应 "喜欢"。
第三步生成 '猫':
考虑到之前的所有信息,解码器生成 [1, 1],对应 "猫"。
这是一个简单的复现概念,当模型得到匹配度高的参数时,它就会一个词一个词地判断需要输出的语言文本。
前馈神经网络(Feedforward Neural Network,
FFN
)
主要的作用包括:
增加非线性:
尽管自注意力机制非常强大,但它本质上是一系列线性操作(加权求和)。FFN 通过在每一层中引入非线性激活函数(如 ReLU 或 GELU),帮助模型捕捉更复杂的特征和模式。
增强模型能力: