transformer
Tokenization
Transformer模型中最基础的一步,它包含一个巨大的tokens的数据集,包含所有词、标点符号等,这一步将每个词、前缀、后缀和标点符号转换为数据集中的已知token,例如”write a paper.”转换为四个相应的tokens是
Embedding
这一步将词转换为数组,如果两个字符串相似那么对应的数组也是类似的,以
Positional coding
将词转换为向量后我们会将这几个向量转换为一个向量来处理,将一堆向量转换为一个向量常见的方法就是将它们相加,例如[1,2]与[3,4]相加,得到向量[4,6]。这样我们会面临一个问题,由于加法具有交换律,这意味着处理“I'm full. I'm not hungry”和“I'm hungry. I'm not full”是一样的结果,因此我们需要位置编码。位置编码由单词的嵌入向量加上一系列预定义向量组成,位置编码保证每句话都能由独特的向量来标记。
Transformer block
在这一步中我们引入非常关键的注意力机制,transformer由多个transformer blocks组成,每个block都包含注意力模块和前馈模块。
Attention
注意力机制处理一个非常重要的问题:语境的问题。有时同样的单词在不同的语境中是不同的含义,这个问题可能混淆语言模型,注意力机制对于解决这个问题非常有效。例如下面两个句子:
-S1:the bank of the river.
-S2:Money in the bank.
在这两个句子中都包含了单词“bank”但是含义不同,此时引入注意力机制,第一句中“the”和“of”对于辨别“bank”的意思并无帮助,但词“river”让我们知道“bank”的意思是河边的土地之意。类似的,第二句中“Money”一词表示该句中的“bank”一词含义为银行。简而言之,注意力机制是将句子或文本片段中的单词在词嵌入中靠近,这样在句2中“bank”一词会被移动到“Money”附近,句1中的“bank”一词会被移动到“river”附近,这样两个句子中修改后的单词“bank”会携带周围单词的某些信息,为期添加上下文。
Softmax layer
Transformer为所有单词输出分数,其中得分最高的单词被赋予最有可能成为句子中下一个单词的概率。Transformer的最后一步是softmax层,它将这些分数转换为概率(总和为1),其中得分最高对应着最高的概率。然后我们可以从这些概率中进行采样以获取下一个单词。在下面的例子中,transformer给“Once”赋予了0.5的最高概率,并给“Somewhere”和“There”赋予了0.3和0.2 的概率。一旦我们进行采样,“once”就被选定,并且那就是transformer 的输出结果。
Post training
搭建好transformer模型后,用户可以像教人类学习如何完成一个指定任务一样训练它,后期训练已经被证明可以有效实现许多类似于聊天机器人、编写故事之类的任务。

浙公网安备 33010602011771号