参考视频:进入注意力机制前,需要先了解一些概念
现在,我们已经完成了样本训练文字的toke化、加入位置信息,形成的这个数字矩阵
它就是我们要往模型里面输入的训练的样本、后面所有做的计算,也都是基于它的
那么理解它以后,后面的东西其实听我的讲解,很简单
Transformer模型架构最创新的,其实就是注意力机制,也就是这个语义关系学习这部分。其它的东西,像数字缩放,其实就是把我们通过一系列计算出来的结果,大的变得小一点,小的变得大一点,让它们距离变得更近。神经网络,更不用说了,它是一个经典的没有transform之前,它就存在的这样一个神经网络,那个Alpha Go,就是基于这样的神经网络训练的。如果你是个新手,没有基础,没问题。现在神经网络已经是不需要我们去研究,做大模型的话,这个就是一行代码的事情。当然,我在后面的视频里也会去深入讲解它。之后一步呢,同样还是数字缩放。
其实transform这个架构的提出,主要的创新就是:一个是我们之前的位置信息的部分,一个是语义关系学习,也就是所谓的attention机制。那么展开看一下,看似挺复杂的,那其实它做的事情就是一件事,就是围绕着矩阵相乘,在不断的做矩阵相乘,其它都是一些辅助的东西。
那么,在我们进入研究这每一步怎么去实现,甚至怎么去写代码之前呢,我觉得以我个人的经验来看,一定要先弄懂一些概念,这些概念弄明白了以后,我们再去实现每一步,你就会觉得事半功倍。所以非常重要的一点是,我们在进入每一块儿的学习之前,我们先回过来,先弄懂一些概念,我们花点时间把一些基础的概念弄明白,这样的话,整体来说,你会比别人快10倍的学习速度。
第一个就是当然是矩阵相乘,那矩阵相乘是怎么回事儿?它是怎么乘的?我们来一起温习一下,这个是属于线性代数的部分。那么第二个,就是所谓的注意力机制,就是这个红色部分延伸出来,这个白色里面这个东西,叫注意力机制模块。
那么,为啥它矩阵相乘,就能代表它们之间的注意力高低呢?我们一定要弄明白矩阵相乘的几何意义是什么,它为什么能代表它们之间的关注度的高低?第三个就是这个所谓的数字缩放,它在英文里面叫layer normalization 层归一化。你看图里有很多层归一化的这种蓝色模块,那么它也很简单,我们就知道它就是数字的缩放就可以了。前一步出来的结果,大的变大,小的变小。我们给它缩放一下,拟合一下,这样的话,就让我们的计算不至于太分散。那么你看,经常的每一步之后,都有一个数字缩放的部分,就是layer norm 层归一化,那么很简单很简单。
之后,就是所谓的神经网络,那么在原论文当中,叫做fully connected feed forward,也就是说一个全连接的神经网络层,这个神经网络层是什么呢?其实它才是这个世纪机器学习最具创新力的地方。神经网络,顾名思义就是模仿人的大脑了。我们知道以前谷歌的Alpha Go,这是第一次我们知道人工智能这么强,那么它就是基于的神经网络。之后的很多翻译模型、其它的这个短语义的学习模型,都是基于神经网络。那么神经网络已经被证明了是可以很好的去做一些机器学习的工作。那么它具体是怎么做的呢?它是模仿人类的大脑。所谓的大模型有几十亿的参数、上几百亿的参数,就跟我们大脑的神经元是一个道理,那么每一个神经元相当于一个参数,它就模拟了大脑的神经元这个开关闭合,再往下一层一层走,这样的一个机制模拟出来的。
Google DeepMind团队的创始人,他也举了个例子,他一直在说open AI是一个暴力+算力的一个机制,他比较看不上open AI,但这句话说明了一个什么问题呢?就是神经网络,没有人能说得清楚它里面是如何运作的,这个模拟人脑的神经元的这个网络架构是非常有效的,这个是肯定的。所谓的open AI的算力叫暴力,就是说海量的数据,然后无限制的算力堆起来,海量层的神经网络,它模型效果就越好。也就是说,神经网络在我们大语言模型里面,它就是一个辅助的工具。也就是说,我们通过其它的架构和算法出来的值,只要经过它一下,那么它就会学会。然后呢,我们把这些参数记录下来,就可以去使用。现实的写代码当中,这个就是一行代码的问题。
之后,我们来看一下这个语义关系模块里面的这些东西,可能有一些基础的同学,会知道所谓的QKV,什么Q乘K的转型,最后再乘以V,包括这个有很多的层块,这个叫多头注意力机制,很多人也不懂多头是怎么来的,那么,为什么Q是WQ乘以X得来的?我们一定要清楚这个X、W、Q和Q、以及Q和K这种关系的基本概念之后,我们再去研究这个模块,我们再去写代码,这样的话,你才能会举一反三,就非常清晰,会恍然大悟啊,原来就是这么回事儿。
那么,大家先不要着急,我们静下来用几个视频的时间,看一下一些我认为非常关键的概念。那么,读懂这些概念之后,我们再去学习transfer架构。如果你是个初学者,那么你将会感觉到你学习比以前快了10倍,如果你是一个已经有经验的人,那么你看完这些视频之后,你可能会更恍然大悟,原来底层逻辑是这样的,好的,那我们接下来几个视频一条一条的分别看一下。
什么是矩阵相乘,以及注意力机制,它是基于矩阵相乘的,它的几何逻辑是什么?为什么相乘就代表了注意力的机制,以及其它的一些我们经常能看到的名词,比如layer normalization层归一化,Feed forward前馈神经网络,以及softmax,这些东西是干嘛的,其实都非常简单。还有我们很多人其实都不知道大模型的参数,也就是说权重是出现在哪一步?它存在哪里?所谓的几百亿上千亿的模型参数是怎么来的?最后一个最关键的,我们在做的、transformer在做的所有事情,就是预测下一个字的概率,无论是在训练当中还是在推理当中,那么它到底是咋预测的?
接下来,我们一起来看一下这些概念!