探討開發者們的一項異想天開的挑戰:擺脫複雜的 AI 程式庫,僅使用程式開發的建置工具 CMake,從零開始實作 GPT-2 模型。
試想一下,如果我們能親自拆解現今智慧型手機上 AI 助理是如何產生句子的「大腦」,那會是什麼樣子?對一般人來說,AI 就像是一種「魔法」。只要按下按鈕,答案就會從黑盒子裡跳出來。但開發者們總是渴望親手打開這個盒子。
最近,不僅僅是打開盒子,更流行起一股異想天開的實驗風潮:僅使用最基礎的工具,從零開始將這龐大的 AI 結構重新搭建起來。甚至還有人嘗試只用軟體建置工具 CMake(一種用於建置程式的自動化工具)來實現 GPT-2 人工智慧模型。 [Source 8, Source 11, Source 12]
這為什麼重要?
為什麼大家會想在百忙之中進行這種「苦行」呢?這就像是不買現成的樂高積木組,而是親自砍伐木頭、製作泥土來蓋城堡。現今大多數的 AI 開發都是在 PyTorch(用於 AI 開發的複雜程式庫)等龐大且便利的工具上完成的。然而,這些工具太過方便,反而掩蓋了 AI 在資料中進行數學計算的核心過程。
這些「從零開始實作 (From scratch)」的實驗降低了 AI 開發的門檻,幫助一般開發者從根本上理解 AI 的運作原理。 [Source 10, Source 13] 若我們能親手製作模型,便能更深入地剖析 AI 為何會給出特定答案的邏輯路徑。
輕鬆理解:建置 AI 的「大腦」
簡單來說,現今的 AI 模型是大量「權重(Weight,處理資料時相乘的數值)」的集合。這些權重經過複雜的連結來完成句子。若打個比方,AI 就像是一套連接了數萬個水龍頭的複雜管線系統。根據旋開水龍頭的程度(調整權重),流出的水量與方向(結果值)也會隨之改變。
Andrej Karpathy(前 OpenAI AI 科學家)透過「llm.c」專案,展現了一項驚人的實驗:僅使用純 C 語言,將這龐大的 AI 壓縮進約 1,000 行程式碼中。 [Source 2, Source 3, Source 17, Source 18] 這就像是執行了一場「減肥」,拋棄了原本需要數十萬行外部程式庫協助的冗贅內容,僅保留必要程式碼來呈現核心結構。
此次出現的 CMake 實作則是將此實驗向前推進了一步。 [Source 8, Source 11] 開發者利用原本用於將程式製作成執行檔的 CMake 管理工具,嵌入了 AI 的運算邏輯。這就像是拿著「建築藍圖」親手製作「磚塊」,在開發者社群中被視為一種「技術樂趣」與「挑戰極限」的表現。 [Source 9]
現況:進展到哪了?
當然,這些實驗性的實作目前還無法取代 ChatGPT。特別是用 CMake 實作的模型,執行速度必然非常緩慢。因為 CMake 本身的操作方式類似直譯器(逐行解釋程式碼),在處理數值時,每次都要進行變換成字串等無效率的過程,因此會不斷重複冗餘步驟。 [Source 12]
即便如此,這些嘗試仍然極具價值。即使是 OpenAI 的 GPT-2 模型,其魯棒性(健壯性)或是遇到極端狀況時的反應,目前仍有未被完全理解的層面。 [Source 4] 因此,這種「潔淨室 (Clean Room)」式的實作方式(指不使用外部程式庫,從零開始重新建構),成了剖析 AI 內部結構並進行學習的最佳教材。 [Source 10, Source 13]
未來展望
AI 技術在未來將會越來越普及。現在只有極少數工程師能實作 AI,但隨著「llm.c」或「microgpt」這類能透過約 265 行程式碼說明原理的專案不斷增加,AI 技術將會變得更加透明。 [Source 16, Source 17]
或許不久之後,我們就能生活在一個可以輕鬆驗證 AI 從數學原理到程式碼層級運作方式的時代。下一次當 AI 為你摘要會議資料時,與其感到驚奇,不如試著想像一下:「啊,原來那個龐大模型的核心,正是由這行程式碼啟動的。」
MindTickleBytes 的 AI 記者觀點
剝開複雜技術的外殼後,剩下的終究是簡單的數學與邏輯。技術發展越迅速,這些試圖探索「本質」的嘗試,越能培育出活在 AI 時代的我們所必需的真正素養。
參考資料
-
[Vue HN 2.0 Implementation of GPT-2 in pure CMake](https://vue-hackernews-ssr-5cavbdjcta-ew.a.run.app/item/49412909) - Andrej Karpathy Trains GPT-2 in Pure C Without PyTorch
- Why Implement GPT-2 in Pure C Language? Karpathy Responds to Online Criticism - Boardor
- GitHub - openai/gpt-2: Code for the paper “Language Models are…”
- Need help with implementing gpt-2 from scratch - Deep Learning…
- project — CMake 4.4.2 Documentation
- Free GPT Image 2 AI Image Generator & Editor (No Signup, Unlimited)
- Implementation of GPT-2 in pure CMake - GitHub
- The Ultimate Tech Flex: Implementing GPT-2 in Pure CMake
- GitHub - shaktsin/gpt2.c: GPT2 Inference Implementation in …
- Implementation of GPT-2 in pure CMake - thenote.app
-
[Implementation of GPT-2 in pure CMake Hacker News](https://news.ycombinator.com/item?id=49412909) - Deconstruction Series #1: Rebuilding GPT-2 in Pure C
- NanoEuler Tutorial: Run GPT-2 in Pure C/CUDA — AI Tutorial
- GitHub - angry-kratos/GPT-2-in-C: GPT 2 implementation in pure C
- GitHub - NJX-njx/microgpt: The most atomic GPT-2 …
- Andrej Karpathy’s “llm.c” is Revolutionizing GPT-2 with a …
- Andrej Karpathy Trains GPT-2 in Pure C Without PyTorch
- 建立高效能模型
- 部署實際商業服務
- 教育性理解 AI 內部結構
- 基於 PyTorch 訓練
- 僅使用純 C 語言,約 1,000 行程式碼實現
- 專為網頁瀏覽器設計的模型
- AI 模型訓練專用程式庫
- 軟體建置自動化工具
- 語言模型標記化(Tokenization)工具