304/469 本文约2000字 预计阅读时间7分钟
前几天我们分享了GPT的含义,并提到了大模型输出字的原理就是预测下一个字的概率。
那么,今天就继续分享下如何预测。在Transformer里有一个非常重要机制,叫做注意力机制。
就是这篇文章,叫Attention is all you need,这是由曾经的谷歌深度学习八子写的,这里面提到的一个重要的点就是注意力机制。因为有了这个机制,才对算法做出了重大的改进。
这个东西怎么理解呢?什么叫注意力机制?
这个概念其实也是在模仿人类大脑的观察、思考过程,其实人类在思考或者观察事物的时候,往往只会注意东西的一部分。比如我们读文章的时候,肯定不可能是一个字一个字读,而是选择性地注意关键词。那这个机制通过算法公式的形式引入到Transformer架构里面的,就带来了突破。
比如说这句话:“中国主要高频的又3000个汉字,大模型就是预测下一个汉字出现的概率。”那这里面你会发现我们关注点是在哪里?是不是,“中国”,“高频”,“3000汉字”,“大模型”,“预测”,“下一”,“汉字”,“概率”。而对于在这些中间的“主要”,“的”,“个”,“就是”,“个”等次要字词就没有那么关注了,他们的存在与否并不影响我们的理解。这里面本来“又”是错别字,本来是“有”,我们本不会注意,但由于写错了,反而又引起我们注意,意识到这是一个错别字。这就是我们的注意力,我们把自动的把一些不太重要的字词给忽略了,就关注点在那些比较重要的一些词语上,这也幽默地提醒我们,少写错别字,很容易浪费人的注意力的。
同样我们在看图片的时候,你也会不知不觉的把注意力放在右边这个图上面对吧?至于左上角那个蓝色的、黄色的框,我觉得80%的人都不会管那是什么东西,也不会去考虑为什么要那样设计。因为知道这就是个装饰,包括这个左右下角的修饰的东西,大家自然而然的会去忽视它,这就是人的注意力。
现在Transformer就是应用了这个注意力机制,注意力机制的原理就是通过下面右方的这个图,通过算法公式、代码给实现了。至于这个图怎么解释,我就讲不出来了,一般不搞算法研究的童鞋也没必要搞明白。
我们说的这个公式就是这个模型里的一个部分。而我们常听训练像一个炼丹的过程。是因为目前算法训练的过程也是黑盒的,能训练出什么效果,得看概率,并不是训练前就可以确定的,而训练,就是调整模型的各种参数。这个参数量量越多,就说明这个模型它若用的训练数据量特别大,其次跟算法结构也有关。通常参数量越大,往往来讲模型效果就会越好一点。
就比如ChatGPT-3.5,号称是1750亿的参数量。然后GPT-4用到了混合专家模型MoE。它实际上大概有八个专家模型混合而成,每个都是2000多亿的参数量,英伟达老板黄仁勋最近已经公开透露了GPT-4的参数量就是1.8万亿。那你可以想象它的能力就更加强大。它在8个领域相当于都有一个专家来处理,然后再把它组合起来。比如说有的是写代码厉害的,有的做数据分析厉的害,有的是绘图厉害,还有的是语音识别厉害,图像理解厉害等等。它就把这些组合起来成为我们说的GPT-4,就具备了如文字、图片、视频、音频等多模态处理能力。
而随着大模型多模态的发展,目前底座的神经网络Transformer却依然是基石,无论是文字、图片、视频都是分别预测下一个字、下一个像素、下一个视频帧。关于预测,我们以之前说的“中国秦朝有几位皇帝?”的问题来举例。
你提出问题之后,大模型就会寻找答案,主要就是找字与字之间的相关度,像思考出“秦始皇嬴政”这五个字,那么它是一个字一个字去生成的,首先是秦,然后它继续在它的数据库中去寻找下一个字出现的概率(这里的数据库,是大模型领域专用的向量数据库。),我们中国汉字常用字库,就那么3000多个汉字。大模型其实也不是很聪明,也是笨办法,就是“秦”这个字,与其他所有汉字都去计算一下在其之后出现的概率,或者说相关度,然后把里面相关度最高的那个字作为它的就是它生成的下一个字,然后一个一个字这样拼接而成的。只是由于大模型所依赖的服务器算力强大,可以同时预测这所有的汉字,所以显得很快,你反而觉得它跟聪明了。所以我们会发现为什么在用ChatGPT的时候,它是一个字一个字生成出来的,而不是同时出来的。那就是因为它是在一个字一个字地预测,这是它的机制、网络结构导致的结果。
当然现在随着算力的不断提高,包括前几天英伟达又发布了最新的GPU B200 ,进一步提高并行计算能力,你会发现它的生成速度会更快。拍的一下就出来了,速度快到你都没意识到它其实还是但实际上还是以这样一个字一个字的方式来预测的。
上面提到的相关度,其实就是说明,相关度越高,你对这个字的注意力就越高。下一期,我们再来深入举个例子,更好地理解下大语言模型是如何生成答案的。下期不见不散。
系列其他文章:
暂无评论内容