李飛飛高徒教你從0到1構建GPT,馬斯克點贊
這是教學計劃的一部分。
詹士 發自 凹非寺
量子位 | 公眾號 QbitAI
“從0到1手搓GPT”教程來了!
視頻1個多小時,從原理到代碼都一一呈現,訓練微調也涵蓋在內,手把手帶著你搞定。
該內容剛發出來,在Twitter已吸引400萬關注量,HackerNews上Points也破了900。
連馬斯克也下場支持。
評論區更是一片鑼鼓喧天鞭炮齊鳴,網友們紛紛馬住。
有人評價,Andrej確實是一位出色的“事物解釋者”,也熱心于回答大家的問題。
還有網友更夸張,稱該教程簡直是來“救命”。
那么,這位活菩薩是誰?
正是前特斯拉AI總監,李飛飛高徒——Andrej Karpathy。
教程具體說了什么?
這就來展開講講。
從零構建GPT,總共幾步?
視頻教程先從理論講起。
第一部分主要關于建立基準語言模型(二元)以及Transformer核心注意力機制,以及該機制內節點之間的信息傳遞,自注意力機制理論也有涉及。
該part內容長度超過1小時,不僅有概念解釋,還教你如何使用矩陣乘法、添加softmax歸一化,可謂“夯實基礎”式講解。
接著講述構建Transformer。
這當中涉及了多頭注意力(包括如何插入自注意力構建塊)、多層感知機(MLP)、殘差連接、歸一化方法LayerNorm以及如何在Transformer中添加Dropout Notes…….
然后,作者會帶大家訓練一個模型,當中會用到一個名為nanoGPT的庫,可調用GPT-2參數,快速完成GPT模型的訓練。
教程中,作者還將所得模型與Open AI的GPT-3比較。兩者規模差距達1萬-100萬倍,但神經網絡是相同的。另一個將拿來比較的是人盡皆知的ChatGPT,當然,我們目前所得只是預訓練模型。
在上述內容引導下,我們已得一個10M參數規模的模型,在一個GPU上訓練15分鐘,喂給1MB大小的莎士比亞文本數據集,它就能像莎士比亞一樣輸出。
比如下面兩張圖,你能分辨哪個是真人莎士比亞寫的嗎?
評論區有人好奇選什么GPU資源。作者也分享了下——自己用的是Lambda的云上GPU,這是他目前接觸按需計費GPU中,最簡單的渠道。
光說不練不行,作者還給出一些課后練習,總共四道題,包括:
- N維張量掌握挑戰;
- 在自己選擇的數據集上訓練GPT;
- 找一個非常大的數據集,基于它訓練Transformer,然后初始化再基于莎士比亞數據集微調,看能否通過預訓練獲得更低的驗證損失?
- 參考Transformer相關論文,看看之前研究中哪些操作能進一步提升性能;
神器nanoGPT也剛發布
前文提及,作者之所以能快速完成訓練GPT,有賴于一個名nanoGPT的庫。
這也是本教程作者前幾天剛發布的利器,由2年前的minGPT升級而來,只是換了個更“標題黨”的名字,自稱納米級(nano)。目前,其在GitHub所獲star已超8k,網友連連點贊。
據作者介紹,該庫里面包含一個約300行的GPT模型定義(文件名:model.py),可以從OpenAI加載GPT-2權重。
還有一個訓練模型PyTorch樣板(文件名:train.py),同樣也是300多行。
對想上手的AI玩家來說,無論是從頭開始訓練新模型,還是基于預訓練進行微調(目前可用的最大模型為1.3B參數的GPT-2),各路需求均能滿足。
△ 一個訓練實例展示
據作者目前自己的測試,他在1 個 A100 40GB GPU 上訓練一晚,損失約為 3.74。如果是在4個GPU上訓練損失約為3.60。
如果在8個A100 40GB節點上進行約50萬次迭代,時長約為1天,atim的訓練降至約3.1,init隨機概率是10.82,已將結果帶到了baseline范圍。
對macbook或一些“力量”不足的小破本,靠nanoGPT也能開訓。
不過,作者建議使用莎士比亞(shakespeare)數據集,該數據集前文已提及,大小約1MB,然后在一個很小的網絡上運行。
據他自己親身示范,創建了一個小得多的Transformer(4層,4個head,64嵌入大?。?,在作者自己的蘋果AIR M1本上,每次迭代大約需要400毫秒。
(GitHub上nanoGPT鏈接附在文末,有需要的朋友自?。?/p>
One More Thing
此番教程作者Karpathy Andrej在圈內早已頗有名氣,他在斯坦福時,師從華人AI大牛李飛飛,后又曾工作于Open AI。
此前,Karpathy就在致力于讓更多人接觸了解神經網絡和相關數據集。2020年8月,他就曾發布nanoGPT前一代,MinGPT,同樣旨在讓GPT做到小巧、簡潔、可解釋,同樣主打——300行代碼解決問題。
Karpathy另一個身份是前特斯拉AI核心人物。
在馬斯克麾下,他歷任特斯拉高級AI主管、特斯拉自動駕駛AutoPilot負責人、特斯拉超算Dojo負責人、特斯拉擎天柱人形機器人負責人…
2022年7月,Karpathy Andrej離職,在業內引發不小討論。當時他就表示,未來將花更多時間在AI、開源技術教育上。
這回發布的從0開始構建GPT課程,正是他教學計劃的一部分。
- 課程視頻:
https://www.youtube.com/watch?v=kCc8FmEb1nY
- nanoGPT GitHub鏈接:
https://github.com/karpathy/nanoGPT
參考鏈接:
[1]https://twitter.com/karpathy/status/1615398117683388417?s=46&t=69hVy8CNcEBXBYmQHXhdxA
[2]https://news.ycombinator.com/item?id=34414716
— 完 —
量子位 QbitAI · 頭條號簽約
關注我們,第一時間獲知前沿科技動態
- 大數據已死!從業10年老哥爆文抨擊:這套唬不住客戶了2023-02-14
- ChatGPT五分鐘寫完插件,功能完善,還可加需求改BUG2023-02-09
- 谷歌創始人親自下場改代碼,ChatGPT讓谷歌真慌了2023-02-03
- 谷歌加緊測試ChatGPT競品,靠對話可搜最新信息2023-02-02




