Karpathy 4小時(shí)AI大課上線,小白看了都會(huì)從零構(gòu)建GPT-2!
大神Karpathy新一期AI大課又上線了。
這一次,他講的內(nèi)容是——從頭開始實(shí)現(xiàn)124M大小的GPT-2模型,足足有4個(gè)小時(shí)。
圖片
Karpathy對(duì)這個(gè)視頻2個(gè)字總結(jié):全面。
我們從空文件開始,以GPT-2(124M)模型結(jié)束。
也就是說,這就是手把手教程,就連AI小白看后,都會(huì)搭建GPT-2了。
Karpathy稱這是從0到英雄(Zero To Hero)的系列中最新的視頻。
翻看以往Zero To Hero系列中的視頻,最長的也不過2小時(shí)25分,這次4小時(shí)完全創(chuàng)下了最新記錄。
圖片
帖子中,他highlight了最新視頻中的一些重點(diǎn)內(nèi)容:
- 我們首先構(gòu)建GPT-2神經(jīng)網(wǎng)絡(luò)
- 然后對(duì)其進(jìn)行優(yōu)化,以實(shí)現(xiàn)快速訓(xùn)練
- 參考GPT-2和GPT-3論文,設(shè)置訓(xùn)練運(yùn)行優(yōu)化和超參數(shù)
- 啟動(dòng)模型評(píng)估
- 祈禱一切順利,上床睡覺
- 等到第二天早上,便可查看模型的結(jié)果,欣賞模型生成的有趣輸出。
發(fā)布短短的幾個(gè)小時(shí),視頻已經(jīng)有了11萬次播放量。
圖片
Karpathy表示,這次「過夜」的訓(xùn)練結(jié)果,表現(xiàn)甚至接近GPT-3(124M)模型的水平。
順便提一句,Karpathy自己做的封面配圖,也很有趣,直接把英偉達(dá)GPU點(diǎn)起來了。
圖片
網(wǎng)友在下面評(píng)論道,Karpathy就是我的神!
圖片
華裔天才少年Alexandr Wang稱,「你的視頻就相當(dāng)于流行音樂明星發(fā)布的新單曲」。
圖片
「我的生活很簡單,Karpathy上線GPT-2『大片』,看就完事兒了」。
圖片
視頻下方,許多網(wǎng)友紛紛為這個(gè)免費(fèi)課程「打賞」。
圖片
圖片
接下來,讓我們一起來看看這節(jié)課講了什么?
4小時(shí)大課,干貨滿滿
最開始部分,Karpathy先介紹了下GPT-2的情況。
2019年,OpenAI首次發(fā)布了GPT-2模型,并公布了相關(guān)論文和代碼。
圖片
論文地址:https://d4mucfpksywv.cloudfront.net/better-language-models/language_models_are_unsupervised_multitask_learners.pdf
而這次的視頻,就是要復(fù)現(xiàn)一個(gè)GPT-2模型,共有1.24億參數(shù)的模型。
之所以選擇這一參數(shù),要清楚的是,GPT-2在發(fā)布前會(huì)有一個(gè)小系列(miniseries),其中有4種參數(shù),而最大的那個(gè)稱為GPT-2。
圖片
另外,你可以將模型放在X軸上,各種下游指標(biāo)放在Y軸上,便可以畫出Sacling Law定律的曲線?;旧希S著模型規(guī)模擴(kuò)大,下游任務(wù)性能越好。
圖片
1.24億參數(shù)Transformer架構(gòu)共有12層,并且有768個(gè)通道(channels)。
GPT-2發(fā)布已經(jīng)是5年前的事了,而現(xiàn)在復(fù)現(xiàn)容易得很多,對(duì)GPU計(jì)算需求沒那么大,大概需要1個(gè)小時(shí),10美元的成本。
Karpathy表示,自己訓(xùn)練模型的GPU來自Lambda GPU Cloud,因?yàn)樗J(rèn)為這是在云中按需啟動(dòng)GPU實(shí)例的最佳和最簡單的方法。
接下來,第一步就是加載GPT-2模型,進(jìn)入GitHub源代碼庫,然后點(diǎn)擊modle.py。
可以看到,這個(gè)模型使用的Tensorflow編寫的。
圖片
Karpathy尷尬地表示道,「現(xiàn)在我們很少使用了,直接從更友好的Pytorch開始」。
圖片
為了更方便地復(fù)現(xiàn),Karpathy還選擇使用了Hugging Face上的GPT-2代碼,其基于Transformer重新搭建,更容易使用。
圖片
接下來,就是從Hugging Face頁面中,導(dǎo)入GPT-2模型。
在預(yù)訓(xùn)練GPT-2之前,如果想要復(fù)現(xiàn)一個(gè)1.5B模型,只需在gpt2后面,加上-xl。
圖片
下面,將Pytorch NN模塊初始化為在如下類中定義,然后打印鍵值。
如下是,GPT-2模型內(nèi)部不同的參數(shù)和形狀,W token嵌入的權(quán)重大小是50257, 768。
圖片
這節(jié)課共分為4個(gè)部分,接下來從構(gòu)建到參數(shù)微調(diào),Karpathy都給出了非常詳細(xì)的講解。
第一節(jié)是實(shí)施GPT-2 nn.模塊。
第二節(jié)是速戰(zhàn)速?zèng)Q,混合精度的GPU,1000ms
第三節(jié)是Hyperpamats,AdamW,梯度剪裁
第四節(jié)是等待結(jié)果!GPT-2、GPT-3復(fù)現(xiàn)對(duì)比
圖片
最后,睡覺得到的結(jié)果,第二天再看結(jié)果。
圖片
模型的訓(xùn)練損失也在不斷下降,而且與GPT-3的性能相媲美。
圖片
最后,這個(gè)4小時(shí)的大課,小編放這兒了。