Transformer介绍(二):注意力机制

transformer是大语言模型的核心技术之一,它首次出现于2017年的一篇著名论文《Attention Is All You Need》,论文原文:https://arxiv.org/abs/1706.03762

看过我上篇文章《Transformer介绍(一)》的都知道,模型的目标是接收一段文本,预测下一个词。输入的文本被切分成很多小块,每个小块是一个token,通常是单词、单词片段或符号。

为了便于理解,我们简化一下,将token视为单词。transformer的第一步是将每个token关联到高维向量,即embedding(嵌入向量)。

 在所有可能的嵌入向量构成的高维空间中,方向可以对应语义。例如,方向对应性别,在该空间中,加上一个方向,就能将男性名词嵌入,转到对应女性名词的嵌入。

在高维空间中,还有很多的方向可以对应多种词义。transformer的目标是逐步调整这些嵌入(embedding),使它们不仅编码(encode)每个词,还能融入更丰富的上下文含义。

比如,mole在不同的语境有不同的含义。transformer的第一步切分文本,并将每个token对应一个向量,此时三个mole对应的都是同一个向量,因为初始的token嵌入没有参照上下文查找表。

接下来周围的信息传递到该嵌入向量。嵌入空间中有多个方向,编码了mole这个词多种不同的含义。

 

训练的好的attention blocks能计算出给generic embedding加什么向量,才能把它移动到上下文对应的具体方向上。

attention blocks不仅精细化了一个词的含义,还让模型相互传递这些嵌入向量所包含的信息。

所有的向量流经网络后,经过了很多层的attention blocks,此时预测下一个token的计算过程,完全基于序列中最后一个向量。

每个词的初始嵌入是一个高维向量,只编码了该单词的含义,没有关联上下文。然后还编码了词的位置信息,现在可以知道词是什么,以及在文中的什么位置。

用E表示这些嵌入向量,目标是通过一系列的计算产生一组新的更精确的嵌入向量。比如那些经过形容词修饰的名词,所对应的向量。

在深度学习中,我们希望多数计算都是矩阵向量乘法,其中矩阵填满了可调的参数,需要模型基于数据学习后调整。模型的实际行为往往很难解释,因为它是通过调整大量参数来最小化代价函数。

当逐一分析这些带有参数的矩阵时,为了帮助理解,我们设想出一个具体的行为。

第一步,可以想成是每个名词(如creature),问,我前面有形容词吗?然后前面的 fluffy 和 blue 回答,我就是

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值