我們知道如何「使用」AI,但對於如何「打造」一個 AI,從數據處理、模型訓練到最終部署的完整流程,始終隔著一層神秘的面紗。Andrej Karpathy 最新發布的開源專案 nanochat,正是為了解決這個問題而生。
nanochat 不只是一個精簡版的 ChatGPT,它更像是一張清晰的藍圖,用最少的程式碼與依賴,完整建構一個現代對話式 AI 的所有核心環節。更令人驚訝的是,您只需要大約 $100 美金的雲端運算費用與 4 小時的等待,就能從零開始,訓練出一個能在網頁上與您對話的專屬語言模型。
https://github.com/karpathy/nanochat
nanochat 懶人包
nanochat 是由 Andrej Karpathy 發布的一個全新開源專案,提供一個極簡、完整、可客製化的 ChatGPT-like 模型訓練流程。它讓開發者能在一台配備 8 個 H100 GPU 的雲端主機上,透過執行一個腳本 (speedrun.sh),在短短 4 小時內,花費約 100 美金,就完成從無到有訓練出一個小型對話 AI 的所有步驟。
這個專案的核心理念是「極簡化」與「透明化」。整個專案程式碼僅約 8,000 行,刻意避免使用複雜的框架與抽象層,讓學習者能輕易理解從數據處理、分詞器訓練、模型預訓練、監督式微調 (SFT)、強化學習 (RL) 到最終部署成網頁聊天介面的完整過程。
主要亮點剖析
nanochat 的價值除了低成本,更在於其精巧的設計與完整的流程:
全端訓練流程:從零到專屬的 ChatGPT
傳統上,要理解一個 LLM 的誕生,需要拼湊來自不同框架、論文與程式庫的知識。nanochat 則將這個複雜的流程整合到一個腳本中,涵蓋了以下所有關鍵階段:
- 分詞器訓練 (Tokenizer Training):專案內建了一個以 Rust 語言撰寫的高效能 BPE (Byte Pair Encoding) 分詞器訓練工具 rustbpe。相較於使用現成的分詞器,nanochat 讓您能從頭訓練一個最適合您數據集的分詞模型。
- 預訓練 (Pretraining):這是最耗時的階段。模型會在大量的公開網路文本數據 (FineWeb-EDU) 上進行訓練,學習語言的規律、事實知識與基本推理能力。
- 中期訓練 (Midtraining):在通用預訓練後,模型會在一系列高品質的混合數據集上進行微調,這些數據集包含對話、程式碼、多選題等,目的是讓模型開始適應特定的任務形式。
- 監督式微調 (Supervised Finetuning, SFT):這個階段專注於對話能力的養成。模型會學習遵循用戶指令,並以「用戶-助理」的對話格式進行回應。
- 強化學習 (Reinforcement Learning, RL):這是一個選修階段,專案以 GSM8K 數學問題為例,展示如何透過強化學習讓模型在特定任務上(如解數學題)的表現更上一層樓。
- 評估與報告 (Evaluation & Reporting):訓練過程中,系統會自動在多個標準學術評測(如 MMLU、ARC、HumanEval)上評估模型表現,並生成一份詳細的報告卡。
- 部署與互動 (Inference & Serving):訓練完成後,您可以透過指令啟動一個 FastAPI 網頁伺服器,直接在瀏覽器中與您親手訓練的模型進行對話。
極致簡潔與低成本:百元美金打造你的語言模型
nanochat 的第二大亮點在於其對「簡潔」與「低成本」的極致追求。
在設計上,nanochat 刻意避開了大型框架,整個專案的核心依賴只有 PyTorch、NumPy 等基礎函式庫。這使得程式碼非常容易閱讀與修改,開發者可以專注於演算法本身,而非繁瑣的框架設定。
在成本上,nanochat 提供了明確的「運算預算方案」:
- 100 美金方案:這是預設方案,在 8 個 H100 GPU 上運行約 4 小時。訓練出的模型能力雖然有限(Karpathy 形容像在跟幼稚園小朋友說話),但已經能生成通順的詩歌、故事,並回答簡單問題。其 CORE 評測指標甚至能超越 GPT-2。
- 300 美金方案:運行約 12 小時,模型會變得更加連貫,在 CORE 指標上超越 GPT-2。
- 1000 美金方案:運行約 41.6 小時,模型將具備解決簡單數學與程式問題的能力。
不只是一個玩具:可擴展的學習與研究平台
儘管 nanochat 以「小」為名,但它的目標遠不止於一個教學玩具。Karpathy 將其定位為一個「強大的基準平台」(strong baseline),具備高度的可擴展性與研究潛力。
- 對於學習者:nanochat 是理解 LLM 運作原理的最佳教材。透過修改程式碼並觀察報告卡上的指標變化,學習者可以直觀地理解不同訓練階段、不同超參數對模型能力的具體影響。
- 對於研究者:nanochat 提供了一個乾淨、可控的實驗環境。研究人員可以在這個穩定的基礎上,快速驗證新的模型架構、優化演算法或訓練策略,而無需被龐大複雜的框架所束縛。
- 對於開源社群:如同 nanoGPT 成為許多小型語言模型專案的起點,nanochat 有潛力成為下一代開源對話模型的孵化器,激發更多客製化、專門化的模型誕生。
TN科技筆記的觀點
nanochat 重新點燃了 AI 開源社群的「第一原理思考」。近年來,LLM 的發展越來越趨向於「規模競賽」,模型越來越大、越來越昂貴,使得創新被少數幾家巨頭所壟斷。nanochat 反其道而行,它告訴我們,透過精巧的設計與對核心流程的深刻理解,我們依然可以在有限的資源下,打造出有價值的 AI。它鼓勵開發者去思考:如果我只有 100 美金,我能做出什麼樣的 AI?這種資源限制下的創造力,往往是催生颠覆式創新的溫床。
雖然 nanochat 沒有內建複雜的數據過濾機制、內容審核系統,或是在大規模部署時所需的高度容錯與監控架構。但是,對於預算有限的學習者而言,這份專案絕對是非常有幫助,並且附有完整原始碼的互動教科書,讓學習者對於 LLM 訓練的理解更加深刻。
支持TN科技筆記,與科技共同前行
我是TN科技筆記,如果喜歡這篇文章,歡迎留言、點選愛心、轉發給我支持鼓勵~~~也歡迎每個月請我喝杯咖啡,鼓勵我撰寫更多科技文章,一起跟著科技浪潮前進!!>>>>> 請我喝一杯咖啡
在此也感謝每個月持續請我喝杯咖啡的讀者們,讓我更加有動力為各位帶來科技新知!
以下是我的 threads 也歡迎追蹤、回覆、轉發喔!
>>>>> TN科技筆記(TechNotes)