AI 界的神級人物,同時也曾為特斯拉開發自動駕駛神經網路、推動深度學習普及的重要推手,前 OpenAI 聯合創辦人之一 Andrej Karpathy。在由 OpenAI 離職後,曾於 2025 年初在社群上提出並推廣了一個新概念:「vibe coding」,意指利用 AI 工具協助寫程式,讓開發者能在零基礎的前提下以自然語言構建程式與應用,他也被稱為「vibe coding 之父」。然而,最近他卻用行動推翻了自己的理論:在推出新開源專案 Nanochat 時,他坦言整個系統的 8000 行程式都是「純手寫完成」,完全沒使用AI。
Nanochat:從零打造的迷你聊天模型
Karpathy 在 GitHub 上釋出的 Nanochat,是一個「從零開始、完整端到端(full-stack)」的訓練與推論系統,讓使用者能在數小時內、以低至 100 美元的成本,訓練出類似 ChatGPT 的聊天模型。
根據他的說法,Nanochat 僅包含約 8,000 行乾淨明確的代碼,足以呈現一個大型語言模型(LLM)運作的完整骨架。它的目的並非挑戰主流模型,而是提供開放、透明的學習範例,讓更多人理解語言模型的內在邏輯。
nanochat d32, i.e. the depth 32 version that I specced for $1000, up from $100 has finished training after ~33 hours, and looks good. All the metrics go up quite a bit across pretraining, SFT and RL. CORE score of 0.31 is now well above GPT-2 at ~0.26. GSM8K went ~8% -> ~20%,… pic.twitter.com/8UcpefaSJN
— Andrej Karpathy (@karpathy) October 16, 2025
令人驚訝的是,這 8,000 行程式碼全由他一行一行寫成,完全沒有依賴 ChatGPT、Claude 或 Copilot 等任何 AI 程式助手。
「整個專案幾乎完全是手寫完成(只靠基本的自動補全功能)。」Karpathy 在社群貼文中說明,「我試過使用 Claude 與 Codex 代理人,但他們完全幫不上忙,反而拖慢進度。」
「Vibe Coding」的興起:AI 寫程式的浪潮
這番表態與他過去的言論形成鮮明對比。2025 年出,他曾在 X 上貼文推廣所謂的「vibe coding」,一種放下控制、讓 AI 接手的開發方式。
There’s a new kind of coding I call “vibe coding”, where you fully give in to the vibes, embrace exponentials, and forget that the code even exists. It’s possible because the LLMs (e.g. Cursor Composer w Sonnet) are getting too good. Also I just talk to Composer with SuperWhisper…
— Andrej Karpathy (@karpathy) February 2, 2025
當時他形容:「我幾乎不碰鍵盤,只根據感覺走。錯誤訊息?直接貼給模型處理。程式碼膨脹到我看不懂也沒關係,反正它大多能運作。」這種態度一度成為 AI 編程社群的流行文化標誌(也誕生了很多教 vibe coding 的老師),鼓勵開發者用 AI 生成整個應用程式或網站,重點不在程式品質,而在於快速試驗與創造。
然而,Karpathy 也曾提醒,「vibe coding」只適用於「周末隨手做的玩具專案」。如今看來,他確實信守了這句話:Nanochat 顯然不是那類專案。
AI 程式工具的局限:理論與現實的落差
Karpathy 的經驗並非個案。根據雲端公司 Fastly 今年初的調查,高達 95% 的開發者 表示,他們在使用 AI 生成代碼後,必須額外花更多時間來修正錯誤;其中部分人甚至指出,修復錯誤的時間比原本節省的還多。
另一家研究機構 METR 的分析也顯示,使用 AI 工具的開發者,在完成任務所需的時間上反而比傳統手寫更久。部分企業甚至開始聘請「AI 程式維修專員」,專門負責清理自動生成代碼的邏輯混亂與安全漏洞。換句話說,當 AI 工具能快速產出結果的同時,也可能生成「錯得很自信」的代碼。對經驗不足的開發者而言,這些錯誤往往更難察覺與修正。
手寫代碼的意義:掌握系統的真正脈絡
Nanochat 的開發過程揭露了一個被忽視的事實:真正的理解,仍需自己動手寫。對 Karpathy 而言,親自撰寫每一行程式,是一種重新掌握模型內部邏輯的方式。他在發表文中強調,Nanochat 的代碼「乾淨、簡明且教育性高」,目的在於幫助開發者真正了解一個聊天模型從資料載入到回應生成的完整流程。
這與「vibe coding」式的模糊開發形成對比:後者強調速度與創意,前者強調結構與理解。Karpathy 的轉變反映出一個更成熟的觀點:AI 可以輔助創造,但無法取代深層思考。
AI 雖可幫忙寫程式,但人類工程師仍無可取代
這場自我矛盾的實驗最終傳遞了一個清晰訊號:AI 是協作者,而非主導者。AI 編碼助手在「快速原型」「界面設計」「自動化測試」等輕量任務上依然有價值;但面對涉及演算法設計、架構規劃或資料效率的專案,資深且有經驗的人類工程師仍不可或缺。這也提醒產業界,當我們過度依賴生成式 AI 時,可能同時失去對系統的掌控力,而且可能也為之後可能發生的程式嚴重 BUG 留下難以處理的技術債,近期就有教 vibe coding 的老師自己翻車的案例。但小編個人認為 vibe coding 並不是毫無價值,它的確可以做一些小型專案或自己用的小工具,但如果要作大型專案的話,團隊裡至少要有能整合跟除錯的資深工程師,不然出問題之後可能會真的無解。