声明:本文来自微信公众号“新智元”(ID:AI_era),编辑:桃子,授权Soraor转载发布。
距上次KarpathyAI大课更新之后,又有了1个多月的时间。这次他带了超详细的4小时课程——从零开始实现1.24亿参数规模的GPT-2模型。
大神Karpathy新一期AI大课又上线了。
这一次,他讲的内容是——从头开始实现124M大小的GPT-2模型,足足有4个小时。
Karpathy对这个视频2个字总结:全面。
我们从空文件开始,以GPT-2(124M)模型结束。
也就是说,这就是手把手教程,就连AI小白看后,都会搭建GPT-2了。
Karpathy称这是从0到英雄(Zero To Hero)的系列中最新的视频。
翻看以往Zero To Hero系列中的视频,最长的也不过2小时25分,这次4小时完全创下了最新记录。
帖子中,他highlight了最新视频中的一些重点内容:
我们首先构建GPT-2神经网络
然后对其进行优化,以实现快速训练
参考GPT-2和GPT-3论文,设置训练运行优化和超参数
启动模型评估
祈祷一切顺利,上床睡觉
等到第二天早上,便可查看模型的结果,欣赏模型生成的有趣输出。
发布短短的几个小时,视频已经有了11万次播放量。
Karpathy表示,这次「过夜」的训练结果,表现甚至接近GPT-3(124M)模型的水平。
顺便提一句,Karpathy自己做的封面配图,也很有趣,直接把英伟达GPU点起来了。
网友在下面评论道,Karpathy就是我的神!
华裔天才少年Alexandr Wang称,「你的视频就相当于流行音乐明星发布的新单曲」。
「我的生活很简单,Karpathy上线GPT-2『大片』,看就完事儿了」。
视频下方,许多网友纷纷为这个免费课程「打赏」。
接下来,让我们一起来看看这节课讲了什么?
4小时大课,干货满满
最开始部分,Karpathy先介绍了下GPT-2的情况。
2019年,OpenAI首次发布了GPT-2模型,并公布了相关论文和代码。
论文地址:https://d4mucfpksywv.cloudfront.net/better-language-models/languagemodelsareunsupervisedmultitask_learners.pdf
而这次的视频,就是要复现一个GPT-2模型,共有1.24亿参数的模型。
之所以选择这一参数,要清楚的是,GPT-2在发布前会有一个小系列(miniseries),其中有4种参数,而最大的那个称为GPT-2。
另外,你可以将模型放在X轴上,各种下游指标放在Y轴上,便可以画出Sacling Law定律的曲线。基本上,随着模型规模扩大,下游任务性能越好。
1.24亿参数Transformer架构共有12层,并且有768个通道(channels)。
GPT-2发布已经是5年前的事了,而现在复现容易得很多,对GPU计算需求没那么大,大概需要1个小时,10美元的成本。
Karpathy表示,自己训练模型的GPU来自Lambda GPU Cloud,因为他认为这是在云中按需启动GPU实例的最佳和最简单的方法。
接下来,第一步就是加载GPT-2模型,进入GitHub源代码库,然后点击modle.py。
可以看到,这个模型使用的Tensorflow编写的。
Karpathy尴尬地表示道,「现在我们很少使用了,直接从更友好的Pytorch开始」。
为了更方便地复现,Karpathy还选择使用了Hugging Face上的GPT-2代码,其基于Transformer重新搭建,更容易使用。
接下来,就是从Hugging Face页面中,导入GPT-2模型。
在预训练GPT-2之前,如果想要复现一个1.5B模型,只需在gpt2后面,加上-xl。
下面,将Pytorch NN模块初始化为在如下类中定义,然后打印键值。
如下是,GPT-2模型内部不同的参数和形状,W token嵌入的权重大小是50257,768。
这节课共分为4个部分,接下来从构建到参数微调,Karpathy都给出了非常详细的讲解。
第一节是实施GPT-2nn.模块。
第二节是速战速决,混合精度的GPU,1000ms
第三节是Hyperpamats,AdamW,梯度剪裁
第四节是等待结果!GPT-2、GPT-3复现对比
最后,睡觉得到的结果,第二天再看结果。
模型的训练损失也在不断下降,而且与GPT-3的性能相媲美。
最后,这个4小时的大课,小编放这儿了。参考资料:
https://x.com/karpathy/status/1799949853289804266
https://www.youtube.com/watch?v=l8pRSuU81PU