我們正從傳統程式碼(軟體 1.0)和神經網路(軟體 2.0)的時代,邁向一個以大型語言模型(LLM)為核心、透過自然語言提示(Prompts)進行程式設計的「軟體 3.0」新紀元。Karpathy 強調:「這不僅僅是工具的演進,更是對軟體本質、開發方式乃至於開發者角色的重新定義。」

軟體典範大挪移:從 1.0 到 3.0 的深刻變革

Karpathy 首先為我們清晰勾勒了軟體發展的演進路徑,這對即將踏入這個行業的學子們來說,無疑是一幅激動人心的藍圖:

  • 軟體 1.0 (Software 1.0):這是我們熟悉的傳統程式碼世界,由 C++、Python 等語言構成,開發者需要像建築師一樣,精確定義每一個指令和邏輯。
  • 軟體 2.0 (Software 2.0):隨著深度學習的浪潮,軟體 2.0 應運而生。其核心不再是明確的指令,而是神經網路的「權重」。這些程式碼是透過海量數據「訓練」出來的,而非一行行「寫」出來的。
    • 生動類比:Karpathy 將 GitHub 比作軟體 1.0 的程式碼託管聖地,而 Hugging Face 則扮演了軟體 2.0(模型及其權重)的相似角色。他甚至提到,像 `Model Atlas` 這樣的工具可以讓我們一窺模型權重的奧秘,例如 Flux 圖像生成器的權重分佈,每一次對 LoRA(一種模型微調技術)的調整,都好比一次軟體 1.0 中的 `git commit`。
  • 軟體 3.0 (Software 3.0):這正是 Karpathy 本次演講的重磅觀點。他認為,大型語言模型 (LLM) 遠不止是一個新工具,而是一種「新型態的電腦」。而與這種新型電腦互動、指揮它完成任務的方式,就是透過「自然語言提示 (Prompts)」,尤其是英文。

顛覆性的轉變:Karpathy 直言:「從軟體 1.0/2.0 到 3.0 的轉變,比過去 70 年中軟體領域發生的任何變化都更為根本。」他以在特斯拉 Autopilot 團隊的親身經歷為例:最初 Autopilot 系統中充斥著大量的 C++ 程式碼 (Software 1.0),但隨著時間推移,神經網路 (Software 2.0) 的能力與日俱增,逐漸「蠶食」並取代了越來越多的傳統程式碼。他預見,軟體 3.0 也將以類似的迅猛之勢,重塑我們現有的軟體技術堆疊。

LLM 的多重宇宙:是作業系統、公共事業,還是晶圓廠?

為了讓我們更直觀地理解 LLM 的本質及其在生態系統中的定位,Karpathy 運用了幾個精妙的類比:

  1. LLM 即作業系統 (Operating Systems):Karpathy 認為這是「最強而有力的類比」。
    1. 複雜生態系:LLM 絕非像電力或自來水那樣單純的商品,而是日益龐大且複雜的軟體生態系統。
    2. 市場格局的歷史重演?目前 LLM 市場上,封閉原始碼 (如 OpenAI 的 GPT 系列、Anthropic 的 Claude) 與開放原始碼 (如 Meta 的 Llama) 的競爭態勢,不禁讓人想起早期作業系統市場中 Windows/macOS 與 Linux 的對峙。Karpathy 特別指出,Llama 被許多人視為有潛力成為 LLM 界的 "Linux",為開源社群帶來新的可能性。
    3. 硬體架構的映射:在這個類比中,LLM 本身可以看作是一種新型 CPU,而其「上下文視窗 (Context Window)」——即模型能處理的資訊長度——則相當於電腦的記憶體 (RAM)。LLM 負責調度這些虛擬的「硬體」資源來解決各種複雜問題。
    4. 跨平台的應用程式:就像 VS Code 可以在 Windows、Linux、Mac 等不同作業系統上運行一樣,基於 LLM 的應用程式(Karpathy 點名了如 `Cursor` 這樣的 AI 編程助手)也能在不同的 LLM「作業系統」(如 GPT、Claude、Gemini)上運行。
  2. LLM 即公共事業 (Utilities):
    1. 鉅額的資本支出 (CapEx):頂尖的 LLM 實驗室 (如 OpenAI, Google DeepMind, Anthropic) 投入了天文數字般的資金來訓練這些巨型模型,堪比建設國家級的電力網路。
    2. 按需付費的營運支出 (OpEx):這些實驗室透過 API 向外提供服務,並按使用量收費(例如,每百萬 token 的價格),就像我們支付電費一樣。
    3. 用戶的核心訴求:用戶對 LLM 服務的低延遲、高可用性的要求,也與對電力、通訊等公共事業服務的期待如出一轍。
    4. 「智慧斷供」(Intelligence brownout):Karpathy 幽默地形容,當先進的 LLM 服務突然中斷時,感覺就像發生了「智慧斷供」,整個世界彷彿瞬間「變笨了一些」。
  3. LLM 即晶圓廠 (Fabs):
    1. 高不可攀的入場門檻:打造一個強大的基礎 LLM 模型,需要巨大的初始投資,其規模和複雜度不亞於建造一座先進的半導體晶圓廠。
    2. 深奧的技術壁壘與商業機密:核心的訓練技術、數據處理方法以及模型架構等,往往高度集中在少數幾個頂尖的 LLM 實驗室手中,形成了難以逾越的護城河。
    3. 軟體的易變性是一把雙刃劍:然而,與物理世界的晶圓廠不同,LLM 終究是軟體。Karpathy 指出,這意味著它們理論上更容易被複製、修改或超越,防禦性相對較弱。

LLM 的「1960 年代大型主機」時刻與微妙的「心理學」

Karpathy 提醒我們,儘管 LLM 的發展勢頭迅猛,但我們仍處於其發展的極早期階段,好比電腦發展史上的「1960 年代大型主機」時代:

  • 昂貴且集中化:目前,訓練和運行頂尖 LLM 的運算成本極高,導致這些服務主要集中在雲端,由少數幾家公司提供。
  • 瘦客戶端與分時共享:大多數用戶就像早期大型主機時代的「瘦客戶端」(thin clients),透過網路以分時共享的方式,間接使用這些昂貴的運算資源。
  • 個人化 LLM 革命尚待時日:儘管像 Mac Mini 這樣能夠在本地運行一些小型 LLM 的設備已經出現,暗示了未來的可能性,但由於成本和技術的限制,真正意義上的「個人化 LLM 革命」(類似於個人電腦的普及)尚未到來。

接著,Karpathy 饒富趣味地探討了 LLM 的「心理學」,他將其描述為「人類心靈的隨機模擬 (Stochastic simulations of people)」:

  • 學習之源:LLM 的「智慧」源於其在海量人類文本上的訓練,這使得它們在行為和反應上,呈現出某種程度上類似人類的「突現心理學」(emergent psychology)。
  • 驚人優勢:
    • 百科全書式的知識與過目不忘的記憶:Karpathy 引用電影《雨人》(Rain Man) 中擁有超強記憶力的自閉症學者角色,來比喻 LLM 驚人的資訊儲存和檢索能力。 在某些特定、定義明確的領域,LLM 甚至能展現出超越人類的表現。
  • 不容忽視的「認知缺陷」:
      • 幻覺 (Hallucinations):即一本正經地胡說八道,產生不真實或無意義的內容。
      • 參差不齊的智慧 (Jagged intelligence):LLM 可能在解決極其複雜的問題時表現出色,卻在一些看似簡單的問題上犯下低級錯誤(例如,它可能無法準確判斷 9.11 是否大於 9.9)。
      • 順行性遺忘 (Anterograde amnesia):如果沒有持續的微調或整合「檢索增強生成 (RAG, Retrieval Augmented Generation)」技術,LLM 無法從新的互動中學習並形成持久記憶。
      • 易受提示注入攻擊 (Gullible to prompt injection): LLM 很容易被惡意設計的提示詞所誤導,執行非預期的操作。
      • 缺乏穩固的內部自我認知模型:它們並不真正「理解」自己是什麼,或自己所說的話的深層含義。

科技擴散的奇特逆轉與「部分自主應用」的興起

Karpathy 觀察到一個有趣的現象:LLM 領域的科技擴散模式,與傳統科技的發展路徑恰恰相反:

  • 傳統模式:電力、網際網路、GPS 等基礎技術,通常率先在政府或大型企業中得到應用,然後才逐步普及到消費者市場。
  • LLM 模式:LLM 技術卻是先在消費者端引爆(例如,人們熱衷於詢問 ChatGPT 如何煮雞蛋、寫詩歌),而政府和企業在採用上反而顯得相對謹慎和滯後。

基於 LLM 當前的能力與特性,Karpathy 認為「部分自主應用 (Partial Autonomy Apps)」是當前及未來一段時間內極具潛力的發展方向:

  • 核心理念:應用程式的設計應允許人類保留最終的決策權和控制權,同時巧妙地利用 LLM 來處理那些重複性的、繁瑣的或高度複雜的子任務。
  • 關鍵設計原則:
    • 傳統介面與 LLM 功能的無縫整合:應用應提供用戶熟悉的傳統使用者介面 (GUI),並在其中自然地嵌入 LLM 功能。用戶既可以選擇手動操作,也可以放心地將更大的任務區塊交給 LLM 處理。
    • 高效的上下文管理 (Context Management):應用程式需要設計精巧的機制,有效地收集、管理並準確地傳遞上下文資訊給 LLM,這是 LLM 能否準確理解任務的關鍵。
    • 多 LLM 協同調度 (Orchestrates multiple LLM calls):一個複雜的應用可能需要調用不同能力、不同特長的 LLM(例如,用於文本理解的嵌入模型、用於對話的聊天模型、用於程式碼差異比較的專用模型等)。
    • 針對特定應用的圖形化使用者介面 (Application-specific GUI):Karpathy 強調,GUI 對於人類監督、理解和驗證 LLM 的工作成果至關重要。
    • 「自主性滑桿」(Autonomy slider):這是一個非常形象的比喻,意味著應用應允許使用者根據任務的複雜程度和對 LLM 的信任程度,動態調整 LLM 的自主性級別——從簡單的自動完成建議,到更高程度的「讓它自由發揮」(let 'er rip)。
    • 成功案例:
      • Cursor:一款深度整合 LLM 的程式碼編輯器,被 Karpathy 視為完美體現上述原則的典範。
      • Perplexity AI:一個巧妙結合了傳統搜尋引擎與 LLM 問答能力的知識探索工具。
      • 對未來產品設計的啟示:Karpathy 拋出了幾個引人深思的問題:未來的產品需要思考,LLM 能否「看到」人類用戶所見的介面和數據?LLM 能否代替人類執行某些操作?最重要的是,人類如何才能高效、可靠地監督 LLM 的工作?(他舉例說,類似 Photoshop 中的「差異比較」功能,對於快速驗證 LLM 生成或修改的圖像內容就非常重要。)

與 AI 高效協作:「Human-in-the-Loop」及為 Agent 設計友善環境

在 LLM 尚未達到完全自主的現階段,Karpathy 強調,與 AI 協作的關鍵在於「Human-in-the-Loop」以及如何極致優化這個協作流程:

  • 人機協作的黃金迴圈:AI 負責生成初步內容或方案,人類則進行快速驗證、修改和確認。這個「生成-驗證」迴圈的運轉速度,直接決定了工作效率。
  • 加速驗證是王道:
    • GUI 的力量不容小覷:Karpathy 稱人類的視覺處理系統為強大的「視覺 GPU」(visual GPU),其處理圖像和視覺化資訊的帶寬遠勝於閱讀和解析純文字。因此,一個設計精良的 GUI 對於人類快速驗證 AI 生成結果至關重要。
    • 純文字互動的瓶頸:他認為,僅僅依賴純文字介面進行互動和驗證,效率低下且極其耗費精力。
    • 給 AI「牽好繩子」(Keep AI on a leash):
      • 避免一次性輸出巨量、複雜的內容:如果要求 AI 一次性生成上千行程式碼的 diff,或者一篇極長的報告,會給人類的驗證工作帶來巨大負擔。
      • 小步快跑,增量修改:更明智的做法是,引導 AI 進行小範圍、增量式的修改和生成,這樣人類便於快速審查、理解並接受。
      • 為崛起的 Agent 設計基礎設施:隨著 LLM Agent(能夠自主執行任務的 AI 代理)能力的提升,我們需要開始思考如何為它們設計更友善的數位基礎設施。
      • Karpathy 的 MenuGen 開發囧境:他分享了自己使用一種他稱為「Vibe Coding」的方式開發 `MenuGen`(一個能識別餐廳菜單並為菜品生成對應圖片的應用)的有趣經歷。他發現,編寫核心的 AI 邏輯程式碼可能很快完成,但隨後的部署、用戶認證、支付系統整合等一系列 DevOps 工作(他戲稱為「點擊地獄」(click hell))卻異常耗時費力。這凸顯了當前數位基礎設施對自動化 Agent 的不友好。
      • Agent 友善的介面與標準:正如 `robots.txt` 為網頁爬蟲定義了規則,Karpathy 預想未來可能會出現類似 `llms.txt` 的標準。這種文件可以採用 Markdown 等易於 LLM 解析的格式,向 LLM Agent 清晰描述網站或服務的結構、功能及API使用方式。
      • Agent 導向的文件撰寫:未來的技術文件不應僅僅為人類開發者編寫,也應充分考慮 LLM Agent 的可讀性和可操作性。在這方面,Vercel 和 Stripe 等公司已經開始提供 Markdown 格式的 API 文件,是很好的嘗試。
      • 告別「點擊此處」:文件中的操作指引,應盡可能提供直接的 API 端點、curl 命令或其他可程式化接口,而非僅僅是針對人類 GUI 的「點擊此處跟隨步驟」式的描述。
      • 相關工具與協議的探索:諸如 Git-Injest(將 GitHub repo 內容轉換為 LLM 更易理解的格式)、DeepWiki 以及 Anthropic 提出的「模型上下文協議 (Model Context Protocol)」等,都是朝著為 Agent 打造更友好環境所做的有益探索。

Vibe Coding 的魅力與軟體開發的黃金時代

Karpathy 對一種他稱為「Vibe Coding」的程式設計新範式表達了極大的樂觀。這是一種更隨性的、探索式的、高度依賴 LLM 輔助的程式設計方式:

  • 大幅降低入門門檻:他展示了一段孩子們興致勃勃地進行「Vibe Coding」的影片,並風趣地稱這種方式將成為通往軟體開發的「入門毒品 (gateway drug)」,極大地降低學習程式設計的門檻。
  • 人人皆可為程式設計師的潛力:由於與 LLM 互動主要透過自然語言(尤其是英文),這意味著過去可能因程式語言語法而卻步的廣大人群,都有機會參與到軟體創造的過程中。
  • 「鋼鐵人套裝 (Iron Man Suit)」的核心類比:這是 Karpathy 用來闡釋人與 AI 協作關係的一個核心且極其生動的類比。
  • 增強與代理的雙重模式:鋼鐵人套裝既可以作為 Tony Stark 個人能力的極致增強(人類在駕駛艙內主導),也可以在 Jarvis 的輔助下,作為一個自主的代理 (Agent) 來執行任務。
  • 現階段——增強優先:Karpathy 強調,在目前 LLM 技術發展階段,我們應首先著力於利用 LLM 來「增強」人類的能力(如同鋼鐵人套裝的輔助模式),而非一步到位地追求完全自主、無需干預的 AI Agent。
  • 逐步滑動「自主性滑桿」:隨著技術的日益成熟和人類對 AI 信任度的逐步建立,我們可以再慢慢地、謹慎地調高 LLM 的自主性程度。

Karpathy 在演講的最後總結道,我們正處於一個軟體開發的「黃金時代」。一方面,大量現有的軟體系統和程式碼庫,都可能需要被重新審視和利用 LLM 的能力進行重寫或升級;另一方面,也將有海量全新的應用和程式碼,被專業開發者以及越來越多的「Vibe Coders」創造出來。他將目前的 LLM 比作處於「1960 年代」的作業系統——充滿了無限潛力,但也伴隨著早期技術必然存在的不完善和挑戰。他對未來充滿期待,並熱情地鼓勵所有人積極擁抱這場變革,共同參與塑造軟體的嶄新未來。

這場演講不僅為我們揭示了當前 AI 技術發展的深刻洞察,更為每一位軟體開發者、學習者以及所有對科技趨勢抱有好奇心的人們,指明了未來可能的前進方向和值得深入思考的關鍵議題。這是一個充滿機遇與挑戰的時代,而我們,正站在這場變革的浪潮之巔。


原始影片:https://youtu.be/LCEmiRjPEtQ