大语言模型7:注意力机制让模型可以变得很“大”

大语言模型有这波的爆发,起源于Transformer架构,而这个架构最核心的就是“自注意力机制”所带来的并行计算,使得大家可以用非常大的数据集来进行训练,而足够大的数据也让模型学会了语言的规则和规律,进而在具体下游任务当中得以“涌现”出我们让人们惊喜的能力,比如理解和再学习能力等等。

而在以往,不管用CNN还是RNN,都没法用非常大的数据集,因为没法并行就意味着一旦用非常大的数据集,你的训练时间就非常可怕。即便现在OPENAI训练一个大模型也得要三个多月,那还是非常豪华的芯片配置的情况下,想象一下如果没有并行计算的情况下,不得要几年的时间,更可怕的是在当时你是几乎没法估计训练的时长的。

你可以发现,整个Transformer架构,除了“编码器-解码器”,里面全是纯纯的“注意力机制”,那么这个注意力机制是一个什么样东西呢?

不同于循环神经网络是一个接着一个处理,注意力机制是全局去看,从大量信息中有筛选出少量重要信息,聚焦到这些重要信息上,忽略大多不重要的信息。这就像人分配注意力一样的,比如你在超市里找西瓜,你就会忽略很多不重要的信息,而专注于找水果、绿色的瓜果,这样的效率是最高的,你如果一个个按顺序去看,这得多浪费时间。

这个过程怎么操作呢?

通俗点看,例如对于句子“华盛顿是美国的第一任总统,而亚当斯则是第一副总统”,在处理“华盛顿”这个词的时候,自注意力机制将分配更大的权重给“第一”和“总统”这两个词,而不是给其他词汇更高权重,特别是“亚当斯”。

这一定程度就是在“理解”上下文的语义了。

再比如有两句话:

1:张三打了李四,他哭了。

2:张三打了李四,他笑了。

两句话,都有一个“他”,那么这个“他”指的是是谁呢?

如果是我们,我们大概可以猜到,第一句当中是“他哭了”,那么是李四被打了,哭的大概率就是李四了,这个他就是指的是李四;第二句当中“他笑了”,我们也可以感觉到估计就是打人的那个人,就是张三。

但是我们随便一下的“感觉”对机器来讲是非常艰难的,机器怎么知道这个“指的”到底是谁呢?用自注意力机制后,是经过一系列的相关性的运算,最后转换为注意力的权重,也就是在不同的上下文,如果“他”分配给“李四”的权重更大,则就是指的李四,就解决了语言当中非常难搞的指代问题。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
禁止转载,如需转载请通过简信或评论联系作者。

推荐阅读更多精彩内容