Karpathy最新四小時(shí)視頻教程:從零復(fù)現(xiàn)GPT-2,通宵運(yùn)行即搞定
AI 大牛 Andrej Karpathy 又「上新」了,這次一口氣放出了長達(dá)四個(gè)小時(shí)的視頻。
視頻主題為「讓我們來復(fù)現(xiàn) GPT-2(1.24 億參數(shù))」。
Karpathy 表示,此次視頻之所以這么長,是因?yàn)樗苋妫簭目瘴募_始,最后得到一個(gè) GPT-2(124M)模型。
具體實(shí)現(xiàn)步驟包括如下:
- 首先構(gòu)建 GPT-2 網(wǎng)絡(luò)。
- 然后對其進(jìn)行優(yōu)化,以便快速訓(xùn)練。
- 然后通過參考 GPT-2 和 GPT-3 論文來設(shè)置訓(xùn)練運(yùn)行優(yōu)化和超參數(shù)。
- 然后進(jìn)行模型評估。
- 然后祈禱好運(yùn),并去睡覺。
- 第二天早上,查看結(jié)果并享受有趣的模型生成。通宵運(yùn)行的結(jié)果甚至非常接近 GPT-3(124M)模型。
該視頻以「Zero To Hero」系列視頻為基礎(chǔ),有些地方參考了以往視頻。你可以根據(jù)該視頻構(gòu)建 nanoGPT 存儲庫,到最后大約有 90% 相似。
當(dāng)然,Karpathy 上傳了相關(guān)的 GitHub 存儲庫「build-nanogpt」,包含了全部提交歷史,這樣你可以一步步看到視頻中所有的代碼變化。
GitHub 地址:https://github.com/karpathy/build-nanogpt
AI 獨(dú)角獸 Scale AI CEO Alexandr Wang 表示,Karpathy 發(fā)布視頻就像是流行歌手發(fā)布新單曲一樣。
甚至還有人將 Karpathy 的推特內(nèi)容通過文生音樂模型 Suno 轉(zhuǎn)換為了一首 Rap,簡直了。
圖源:https://x.com/peterxing/status/1799960277288677478
視頻概覽
該視頻分為了四大部分:建立網(wǎng)絡(luò)(很多是以往教程回顧)、加快訓(xùn)練速度、設(shè)置運(yùn)行和結(jié)果。
視頻第一部分內(nèi)容(帶時(shí)間戳)具體如下:
- 00:13:47 第 1 部分:實(shí)現(xiàn) GPT-2 nn.Module
- 00:28:08 加載 huggingface/GPT-2 參數(shù)
- 00:31:00 實(shí)現(xiàn)前向傳遞以獲取 logits
- 00:33:31 采樣初始化、前綴 token、tokenization
- 00:37:02 采樣循環(huán)
- 00:41:47 采樣、自動(dòng)檢測設(shè)備
- 00:45:50 讓我們訓(xùn)練:數(shù)據(jù)批次 (B,T) → logits (B,T,C)
- 00:52:53 交叉熵?fù)p失
- 00:56:42 優(yōu)化循環(huán):過度擬合單個(gè)批次
視頻第二部分內(nèi)容(帶時(shí)間戳)具體如下:
- 01:22:18 第 2 部分:讓我們加快速度。GPU、混合精度、1000 毫秒
- 01:28:14 Tensor Cores、代碼計(jì)時(shí)、TF32 精度、333 毫秒
- 01:39:38 float16、梯度縮放器、bfloat16、300 毫秒
- 01:48:15 torch.compile、Python 開銷、內(nèi)核融合、130 毫秒
- 02:00:18 flash attention 技術(shù)、96 毫秒
- 02:06:54 nice/ugly 數(shù)。詞匯量 50257 → 50304,93 毫秒
視頻第三部分內(nèi)容(帶時(shí)間戳)具體如下:
- 02:14:55 第 3 部分:超參數(shù)、AdamW、梯度裁剪
- 02:21:06 學(xué)習(xí)率調(diào)度器:預(yù)熱 + 余弦衰減
- 02:26:21 批大小調(diào)度、權(quán)重衰減、FusedAdamW、90 毫秒
- 02:34:09 梯度累積
- 02:46:52 分布式數(shù)據(jù)并行 (DDP)
- 03:10:21 GPT-2、GPT-3、FineWeb (EDU) 中使用的數(shù)據(jù)集
- 03:23:10 驗(yàn)證數(shù)據(jù)拆分、驗(yàn)證損失、采樣恢復(fù)
- 03:28:23 評估:HellaSwag,開始運(yùn)行
視頻第四部分內(nèi)容(帶時(shí)間戳)具體如下:
- 03:43:05 第 4 部分:早上出結(jié)果!GPT-2、GPT-3 復(fù)現(xiàn)成功
- 03:56:21 向 llm.c 致敬,原始 C/CUDA 中等效但速度更快的代碼
03:59:39 總結(jié),并上傳「build-nanogpt github」存儲庫
完整視頻參見如下:https://www.youtube.com/watch?v=l8pRSuU81PU&feature=youtu.be