本文介绍了作者对GPT(Generative Pre-trained Transformer)的深入理解和探索过程。作者从初步接触机器学习到被GPT震撼,进而深入研究其原理。GPT基于Transformer架构,通过预训练学习文本上下文和语义信息,以生成文本。文章还简述了深度学习流程,并详细描述了GPT的训练过程,包括雇佣外包和使用生僻书进行分类数据学习,以及通过“奖励模型”提升模型性能。最终,GPT通过大量数据训练,实现了高效的语言生成能力,并强调了其巨大的训练成本。
上一篇我们初步体验了一下GPT,震撼之外我不禁想这么牛的东西到底是如何出现的,所以这篇文章是我通过近一个月的各方求证并体会后精简的关于GPT原理的说明,请各位老师多多赐教。
其实我接触机器学习这个概念是4-5年前了,还是跟一个客户聊天的时候才有的初步认识(这里我要说真的要经常跟客户学习,收获颇多),后来经过一段从《机器学习从钻研到放弃》的过程,理解到自己的数学基础不足以染指这个领域,所以我更多将精力放到了学习如何应用上,整个过程是痛苦的,虽然消耗了大量的学习时间但是收效甚微。直到某天在刷新闻的时候看到GPT,已经被誉为互联网发明同等影响的事件,让我已经被消磨差不多的学习血条直接爆满!事实证明,真香!
作为一个脑子不太灵光的技术支持工作者,我首先想到的是找一篇入门的文章看一看,没想到直接翻到了GPT的论文解析,这帮外国互联网人真是不一样啊,我也学习下这种精神写下来分享给大家:
1、GPT(Generative Pre-trained Transformer)的建模原理是基于Transformer架构的深度学习模型,通过对大规模文本语料进行预训练,学习到文本中的上下文关系和语义信息,并将这些知识应用到生成文本的任务中。在生成文本的任务中,GPT会接收一个输入序列,并通过前向传播来生成下一个词语的概率分布。该概率分布可以用来预测下一个词语,并将其添加到输入序列中,继续生成下一个词语,直到生成指定长度的文本。
关于这个Transformer我不想多说了,为了让更多同学理解我直接说重点,它来自Google,这个语言学习模型最牛的地方就是建立了多层学习模型。只不过后来GPT跟Goolge的模型走了两套思路。
谷歌的模型更像完型填空,举例:我看到她在()里吃饭,根据语法这个填空里应该是一个名词,并且大概率是一个跟【餐饮】有关的地址,根据【餐饮】这个标签寻找【地址】标签对应的词。
而GPT的模型是的核心是‘猜’,使用‘从左到右’的顺序,逐步预测下一个要出现的词,举例:我( ),下一个词可能是【看】、【吃】、【想】。。。。等等,然后如果填入了下一个词【在】,那么从 我在()继续推测下一个词,并且根据【我】【在】两个字预测下一个字最可能出现的词,比如【北京】、【家】、【床上】,以此类推,直到完成整个过程,我们专门针对它来继续讲。
2、深度学习的一般流程(看不懂跳过即可):
数据准备:收集和处理数据,将其划分为训练集、验证集和测试集等。
模型选择:根据具体问题选择合适的深度学习模型,例如卷积神经网络(CNN)、循环神经网络(RNN)、自编码器(Autoencoder)等。
模型设计:根据具体问题和所选模型的特点,设计模型的网络结构和参数设置等。
模型训练:使用训练数据对模型进行训练,通过反向传播算法(Backpropagation)和优化算法(如梯度下降)更新模型参数,使模型能够逐渐收敛到最优状态。
模型评估:使用验证集或测试集对训练好的模型进行评估,例如计算模型的准确率、精度、召回率、F1分数等指标,以评估模型的性能。
模型调优:根据评估结果,对模型进行调整和优化,例如调整学习率、增加网络深度或宽度、使用正则化等方法,以提高模型的性能。
模型应用:使用训练好的模型进行实际应用,例如图像分类、语音识别、自然语言处理等任务。
上面这段又有点高深了,咱们不用看了,直接看我的重点:
GPT训练的实际过程是这样的,原始设计完成后,他们雇佣了40个外包(没听错,是外包,据说也是亚裔)和7000本生僻书(为什么用生僻书,因为不容易跟其他数据重复,训练结果就更准确)来进行基本训练,就是给模型分类数据进行学习,然后提出问题进行打分,这里开始就跟以往不一样了,人家不是判断题看对错,是打分,根据模型计算出的答案打分,越靠近正确理解的答案分就越高,这是为了后面做准备。
实际上他们并没有做多少道题,只是分类后将每一类典型题做了几千个,做多1w,目的是学习人的习惯。
做完这步,实际上又多出了一个模型,我们叫它【奖励模型】,它的作用我理解就是一个助教,机器助教,辅助之前的模型学习!而不同类型问题的【奖励模型】通过这些辛勤的外包同学训练出来,相当于造出了各科老师。
这时候高潮来了,这货他本来自己只是个新生,直接通过一对一课外补习班把自己训练了成了助教,并且特殊的一点是,这些助教也不是直接给判对错,而是通过【暗示】(暗示这个词是我从一个视频里引用来的,原英文单词不好用中文表达,我觉得这个词比较贴切)来指导学生。。。。!而想要提高学生学习分数,不用再去一个一个抓学生了,我们继续训练助教就可以。
数据、学生、老师都具备了,那么开始撸起袖子拼命干吧,把数据分给学生,一人一本,然学生都有老师来通过各种【暗示】来引导答题,老师出题让学生答,答案出来了评好综合分数让【人工智能】看是否合格,不合格的助教继续进行再教育,合格的助教成长为新的老师,然后新老师带学生再来,直到所有学生整体分数达到标定的及格线。。。。(这玩意让我瞬间觉得用那么多显卡挖比特币不值了,浪费那么多电和资源做点这个多好,这不就是人类的学习轨迹么)
咱们回到GPT官方答复来,具体来说,GPT使用了一个多层Transformer编码器,通过自注意力机制(self-attention)来捕捉不同位置之间的语义关系,同时使用了位置编码(position embedding)来保留词语在文本中的位置信息。在预训练阶段,GPT通过无监督学习的方式,将大规模文本语料中的上下文关系和语义信息融合到模型的参数中,从而学习到一个通用的语言表示。
从GPT的模型可以看出,他要按照这个逻辑进行学习的时候,产生的【参数】量是巨大的,我们可以拿出一些数据来看:
GPT-1 1.17亿
GPT-2 15亿
GPT-3 1750亿
实际上我算了算,那40位【人工智能】除了初始的一段时间平均每个人1万条问题的工作量,后续大可能被判定为【打酱油】的功成身退了。其他参数基本都是助教们跑出来的,这个框架先把自己的大部分老师给【优化】了。
下一步准备数据正式开始学习:GPT使用了三分之二个互联网的数据来学习训练,包括网络文本数据、社交媒体数据、问答网站数据、新闻站数据、文学作品数据等。(汗颜的数据量,至于为什么是三分之二而不是全部,这个我不解释)所有数据经过常规数据清洗就做成书本发给新学生和那批学成老师的助教去深度学习了,最终产生了1TB大小的数据。
这里补充一个小知识:官方说GPT-3的训练费用是1000多w美元,据查人家那个是说电费!电费!想在家里训练模型的就可以退下了。
今天的文字较多,但我已经尽力,水平高的同学自己可以看论文去,我只是希望帮助基础不好的同学也能看懂,如果实在理解不了,那我只能推荐您赶快看看我后面的文章,关于GPT冲击下的行业选择。
好了,今天先到这里,各位看官回头见。
推荐阅读