項(xiàng)目基于Rust語言開發(fā),代碼總量約8000行,涵蓋了從分詞器訓(xùn)練到模型預(yù)訓(xùn)練、中期訓(xùn)練、監(jiān)督微調(diào)及強(qiáng)化學(xué)習(xí)的完整流程。用戶只需啟動(dòng)云GPU服務(wù)器,運(yùn)行腳本,最快4小時(shí)即可在網(wǎng)頁界面與訓(xùn)練的大模型對(duì)話。
開發(fā)過程中,卡帕西摒棄了Hugging Face等流行工具,選擇從零構(gòu)建分詞器。他指出,早期Python版本速度過慢,而現(xiàn)有工具過于復(fù)雜。新分詞器在FineWeb數(shù)據(jù)集上訓(xùn)練,詞匯量65536個(gè),壓縮比優(yōu)于GPT-2,略遜于GPT-4。
預(yù)訓(xùn)練階段使用FineWeb-EDU數(shù)據(jù)集,包含1822個(gè)分片,每個(gè)分片約0.25M字符。訓(xùn)練20層Transformer模型需處理11.2B tokens,計(jì)算量約4e19 FLOPs。模型參數(shù)560M,學(xué)習(xí)率自動(dòng)縮放,優(yōu)化器采用Muon和AdamW。
中期訓(xùn)練在SmolTalk數(shù)據(jù)集上進(jìn)行,模型學(xué)會(huì)處理多輪對(duì)話和多項(xiàng)選擇題。此階段混合了MMLU輔助訓(xùn)練集的10萬道題目,使模型能關(guān)聯(lián)選項(xiàng)與字母,輸出正確答案。訓(xùn)練僅需8分鐘,模型即可扮演助手角色。
監(jiān)督微調(diào)階段進(jìn)一步優(yōu)化對(duì)話能力,修正領(lǐng)域不匹配問題。此過程約7分鐘,模型在ARC-E/C、MMLU等數(shù)據(jù)集上的表現(xiàn)優(yōu)于隨機(jī)猜測(cè),但在GSM8K數(shù)學(xué)題和Humaneval代碼基準(zhǔn)上的性能仍較弱。
項(xiàng)目還包含強(qiáng)化學(xué)習(xí)模塊,采用簡(jiǎn)化的GRPO算法,直接在GSM8K數(shù)學(xué)題答案上優(yōu)化性能。運(yùn)行1.5小時(shí)后,模型解決數(shù)學(xué)題的能力有所提升。卡帕西強(qiáng)調(diào),此階段尚未完善,未納入總耗時(shí)計(jì)算。
整個(gè)流程在8×H100 GPU上運(yùn)行4小時(shí),成本約100美元。若擴(kuò)展至41.6小時(shí),成本約1000美元,模型性能顯著提升,能解決簡(jiǎn)單數(shù)學(xué)/代碼問題,完成多項(xiàng)選擇題。深度30的模型訓(xùn)練24小時(shí)后,在MMLU上達(dá)40多分,ARC-Easy上達(dá)70多分,GSM8K上達(dá)20多分。
nanochat的代碼庫設(shè)計(jì)統(tǒng)一、易讀、可修改,支持更換分詞器、調(diào)整數(shù)據(jù)、優(yōu)化超參數(shù)等操作。用戶可通過—depth參數(shù)改變模型層數(shù),相關(guān)設(shè)置自動(dòng)調(diào)整。卡帕西希望將其整合為研究工具框架或基準(zhǔn)測(cè)試工具,目前項(xiàng)目已發(fā)布至GitHub,收獲4.8k星標(biāo)。
卡帕西是AI領(lǐng)域知名教育者,曾任特斯拉AI主管,參與創(chuàng)建OpenAI。他通過博客、YouTube教程及斯坦福大學(xué)CS231n課程影響眾多學(xué)者和創(chuàng)業(yè)者。去年,他宣布創(chuàng)立Eureka Labs,旨在打造“教師+人工智能的共生”平臺(tái),首個(gè)課程LLM101n將手把手教用戶構(gòu)建故事生成大模型及Web應(yīng)用。











