從零構(gòu)建GPT
視頻教程先從理論講起震叙。
第一部分主要關(guān)于建立基準(zhǔn)語(yǔ)言模型(二元)以及Transformer核心注意力機(jī)制,以及該機(jī)制內(nèi)節(jié)點(diǎn)之間的信息傳遞丘逸,自注意力機(jī)制理論也有涉及。
該part內(nèi)容長(zhǎng)度超過(guò)1小時(shí)掀宋,不僅有概念解釋深纲,還教你如何使用矩陣乘法、添加softmax歸一化劲妙,可謂“夯實(shí)基礎(chǔ)”式講解湃鹊。
Karpathy另一個(gè)身份是前特斯拉AI核心人物。
在馬斯克麾下镣奋,他歷任特斯拉高級(jí)AI主管币呵、特斯拉自動(dòng)駕駛AutoPilot負(fù)責(zé)人、特斯拉超算Dojo負(fù)責(zé)人侨颈、特斯拉擎天柱人形機(jī)器人負(fù)責(zé)人…
2022年7月富雅,Karpathy Andrej離職,在業(yè)內(nèi)引發(fā)不小討論肛搬。當(dāng)時(shí)他就表示没佑,未來(lái)將花更多時(shí)間在AI、開(kāi)源技術(shù)教育上温赔。
這回發(fā)布的從0開(kāi)始構(gòu)建GPT課程蛤奢,正是他教學(xué)計(jì)劃的一部分。
課程視頻:
https://www.youtube.com/watch?v=kCc8FmEb1nY
nanoGPT GitHub鏈接:
https://github.com/karpathy/nanoGPT
“從0到1手搓GPT”教程來(lái)了!
視頻1個(gè)多小時(shí)啤贩,從原理到代碼都一一呈現(xiàn)待秃,訓(xùn)練微調(diào)也涵蓋在內(nèi),手把手帶著你搞定痹屹。
該內(nèi)容剛發(fā)出來(lái)章郁,在Twitter已吸引400萬(wàn)關(guān)注量,HackerNews上Points也破了900志衍。
連馬斯克也下場(chǎng)支持暖庄。
評(píng)論區(qū)更是一片鑼鼓喧天鞭炮齊鳴,網(wǎng)友們紛紛馬住楼肪。
有人評(píng)價(jià)培廓,Andrej確實(shí)是一位出色的“事物解釋者”,也熱心于回答大家的問(wèn)題春叫。
還有網(wǎng)友更夸張肩钠,稱該教程簡(jiǎn)直是來(lái)“救命”。
那么暂殖,這位活菩薩是誰(shuí)价匠?
正是前特斯拉AI總監(jiān),李飛飛高徒——Andrej Karpathy呛每。
教程具體說(shuō)了什么踩窖?
這就來(lái)展開(kāi)講講。
1
『從零構(gòu)建GPT莉给,總共幾步毙石?』
視頻教程先從理論講起。
第一部分主要關(guān)于建立基準(zhǔn)語(yǔ)言模型(二元)以及Transformer核心注意力機(jī)制颓遏,以及該機(jī)制內(nèi)節(jié)點(diǎn)之間的信息傳遞徐矩,自注意力機(jī)制理論也有涉及。
該part內(nèi)容長(zhǎng)度超過(guò)1小時(shí)叁幢,不僅有概念解釋滤灯,還教你如何使用矩陣乘法、添加softmax歸一化曼玩,可謂“夯實(shí)基礎(chǔ)”式講解鳞骤。
接著講述構(gòu)建Transformer。
這當(dāng)中涉及了多頭注意力(包括如何插入自注意力構(gòu)建塊)黍判、多層感知機(jī)(MLP)豫尽、殘差連接、歸一化方法LayerNorm以及如何在Transformer中添加Dropout Notes…….
然后顷帖,作者會(huì)帶大家訓(xùn)練一個(gè)模型美旧,當(dāng)中會(huì)用到一個(gè)名為nanoGPT的庫(kù)渤滞,可調(diào)用GPT-2參數(shù),快速完成GPT模型的訓(xùn)練榴嗅。
教程中妄呕,作者還將所得模型與Open AI的GPT-3比較。兩者規(guī)模差距達(dá)1萬(wàn)-100萬(wàn)倍嗽测,但神經(jīng)網(wǎng)絡(luò)是相同的绪励。另一個(gè)將拿來(lái)比較的是人盡皆知的ChatGPT,當(dāng)然唠粥,我們目前所得只是預(yù)訓(xùn)練模型疏魏。
在上述內(nèi)容引導(dǎo)下,我們已得一個(gè)10M參數(shù)規(guī)模的模型厅贪,在一個(gè)GPU上訓(xùn)練15分鐘蠢护,喂給1MB大小的莎士比亞文本數(shù)據(jù)集雅宾,它就能像莎士比亞一樣輸出养涮。
比如下面兩張圖,你能分辨哪個(gè)是真人莎士比亞寫的嗎眉抬?
評(píng)論區(qū)有人好奇選什么GPU資源贯吓。作者也分享了下——自己用的是Lambda的云上GPU,這是他目前接觸按需計(jì)費(fèi)GPU中蜀变,最簡(jiǎn)單的渠道悄谐。
光說(shuō)不練不行,作者還給出一些課后練習(xí)库北,總共四道題爬舰,包括:
- N維張量掌握挑戰(zhàn);
- 在自己選擇的數(shù)據(jù)集上訓(xùn)練GPT寒瓦;
- 找一個(gè)非常大的數(shù)據(jù)集情屹,基于它訓(xùn)練Transformer,然后初始化再基于莎士比亞數(shù)據(jù)集微調(diào)杂腰,看能否通過(guò)預(yù)訓(xùn)練獲得更低的驗(yàn)證損失垃你?
- 參考Transformer相關(guān)論文,看看之前研究中哪些操作能進(jìn)一步提升性能喂很;
2
『神器nanoGPT也剛發(fā)布』
前文提及惜颇,作者之所以能快速完成訓(xùn)練GPT,有賴于一個(gè)名nanoGPT的庫(kù)少辣。
這也是本教程作者前幾天剛發(fā)布的利器凌摄,由2年前的minGPT升級(jí)而來(lái),只是換了個(gè)更“標(biāo)題黨”的名字漓帅,自稱納米級(jí)(nano)锨亏。目前林说,其在GitHub所獲star已超8k,網(wǎng)友連連點(diǎn)贊屯伞。
據(jù)作者介紹腿箩,該庫(kù)里面包含一個(gè)約300行的GPT模型定義(文件名:model.py),可以從OpenAI加載GPT-2權(quán)重劣摇。
還有一個(gè)訓(xùn)練模型PyTorch樣板(文件名:train.py)珠移,同樣也是300多行。
對(duì)想上手的AI玩家來(lái)說(shuō)末融,無(wú)論是從頭開(kāi)始訓(xùn)練新模型钧惧,還是基于預(yù)訓(xùn)練進(jìn)行微調(diào)(目前可用的最大模型為1.3B參數(shù)的GPT-2),各路需求均能滿足勾习。
△ 一個(gè)訓(xùn)練實(shí)例展示
據(jù)作者目前自己的測(cè)試浓瞪,他在1 個(gè) A100 40GB GPU 上訓(xùn)練一晚,損失約為 3.74巧婶。如果是在4個(gè)GPU上訓(xùn)練損失約為3.60乾颁。
如果在8個(gè)A100 40GB節(jié)點(diǎn)上進(jìn)行約50萬(wàn)次迭代,時(shí)長(zhǎng)約為1天艺栈,atim的訓(xùn)練降至約3.1英岭,init隨機(jī)概率是10.82,已將結(jié)果帶到了baseline范圍湿右。
對(duì)macbook或一些“力量”不足的小破本诅妹,靠nanoGPT也能開(kāi)訓(xùn)。
不過(guò)毅人,作者建議使用莎士比亞(shakespeare)數(shù)據(jù)集吭狡,該數(shù)據(jù)集前文已提及,大小約1MB丈莺,然后在一個(gè)很小的網(wǎng)絡(luò)上運(yùn)行划煮。
據(jù)他自己親身示范,創(chuàng)建了一個(gè)小得多的Transformer(4層场刑,4個(gè)head般此,64嵌入大小)牵现,在作者自己的蘋果AIR M1本上铐懊,每次迭代大約需要400毫秒。
(GitHub上nanoGPT鏈接附在文末瞎疼,有需要的朋友自瓤坪酢)
3
『One More Thing』
此番教程作者Karpathy Andrej在圈內(nèi)早已頗有名氣,他在斯坦福時(shí)贼急,師從華人AI大牛李飛飛茅茂,后又曾工作于Open AI捏萍。
此前,Karpathy就在致力于讓更多人接觸了解神經(jīng)網(wǎng)絡(luò)和相關(guān)數(shù)據(jù)集空闲。2020年8月令杈,他就曾發(fā)布nanoGPT前一代,MinGPT碴倾,同樣旨在讓GPT做到小巧逗噩、簡(jiǎn)潔、可解釋跌榔,同樣主打——300行代碼解決問(wèn)題异雁。
Karpathy另一個(gè)身份是前特斯拉AI核心人物。
在馬斯克麾下僧须,他歷任特斯拉高級(jí)AI主管纲刀、特斯拉自動(dòng)駕駛AutoPilot負(fù)責(zé)人、特斯拉超算Dojo負(fù)責(zé)人担平、特斯拉擎天柱人形機(jī)器人負(fù)責(zé)人…
2022年7月示绊,Karpathy Andrej離職,在業(yè)內(nèi)引發(fā)不小討論驱闷。當(dāng)時(shí)他就表示耻台,未來(lái)將花更多時(shí)間在AI空免、開(kāi)源技術(shù)教育上空另。
這回發(fā)布的從0開(kāi)始構(gòu)建GPT課程,正是他教學(xué)計(jì)劃的一部分蹋砚。
- 課程視頻:
https://www.youtube.com/watch?v=kCc8FmEb1nY
- nanoGPT GitHub鏈接: