這場由 Andrej Karpathy(目前任職於 Open AI,也是前 Tesla 人工智慧總監)帶來的演講,深入探討了 AI 時代下軟體開發的變革。他指出軟體在過去幾年發生了兩次重大且迅速的轉變,這為即將進入這個行業的學生們創造了一個極其獨特且有趣的時機 。
https://youtu.be/vD7CIADHeDc?si=ONIiB68UY1dD861d
軟體進化史:從 1.0 到 3.0
Karpathy 將軟體發展分為三個階段:
- 軟體 1.0 (Software 1.0):這是我們熟悉的傳統程式碼,由開發者直接撰寫,用來指示電腦執行任務 。例如自動駕駛系統中最初的 C++ 程式碼就屬於此類 。
- 軟體 2.0 (Software 2.0):這個階段的軟體主要是神經網路的「權重」(weights)。開發者不再直接撰寫程式碼,而是透過調整資料集並運行最佳化演算法來訓練神經網路,產生這些權重 。Hugging Face 平台被視為軟體 2.0 領域的 GitHub 。Tesla 的自動駕駛系統在後期就大量地將 1.0 的功能轉移到 2.0 的神經網路中,大大減少了 C++ 程式碼 。
- 軟體 3.0 (Software 3.0):這是基於大型語言模型(LLMs)的新典範。最顯著的特點是,現在可以透過「提示」(prompts)來編寫程式,而這些提示通常是用英文等自然語言撰寫的 。這使得程式設計變成了一種更直覺、更接近人類語言的體驗 。Karpathy 強調,現今許多 GitHub 上的程式碼庫中,不僅有程式碼,還穿插了大量的英文描述 。
LLM 的多重角色:公用事業、晶圓廠與作業系統
Karpathy 提出 LLM 具備多種特性:
- 公用事業(Utilities):大型語言模型像電力一樣,由 OpenAI、Gemini、Anthropic 等 LLM 實驗室投入大量資本支出進行訓練,如同建設電網 。我們透過 API 支付使用費用,並期望它們能提供低延遲、高穩定性和一致的品質 。當先進的 LLM 停機時,就如同全球「智慧」的「降壓」現象,因為世界對這些模型的依賴性正在戲劇性地增長 。
- 晶圓廠(Fabs):建構 LLM 需要龐大的資本支出,這使得 LLM 實驗室內部形成了技術研發的秘密基地,類似於半導體晶圓廠 。然而由於軟體的延展性較高,其防禦性相對較低 。
- 作業系統(Operating Systems):Karpathy 認為 LLM 最貼切的類比是作業系統 。它們不再是電力或水這一類簡單的商品,而是日益複雜的軟體生態系統 。LLM 類似於 CPU,而「上下文窗口」(context windows)則類似於記憶體 。目前 LLM 的運算成本仍然很高,這使得它們中心化在雲端,我們都像是透過網路與其互動的「精簡型用戶端」(Thin Client),這種「分時共享」(time-sharing)模式與 1960 年代早期的電腦運作方式非常相似 。他預測個人運算革命尚未真正發生,但未來 Mac mini 等裝置可能成為 LLM 個人運算的早期跡象,這是指 Mac mini 這一類高效能、相對小巧的個人裝置(多台串接跑地端 LLM),是個人運算(Personal Computing)發展的前緣,我認為高效能的手機與 AI APP 也是 。
技術擴散方向的顛倒與 LLM 的心理學
LLM 展現了一個前所未有的特性:它們顛覆了技術擴散的傳統方向 。過去新興且昂貴的技術如電力、加密技術或互聯網,通常是政府和企業首先採用,隨後才普及到消費者 。然而 LLM 卻是反過來的,它們首先在個人使用者中廣泛應用,例如用來解決「如何煮雞蛋」這樣的生活問題,而政府和企業在採用這些技術方面反而落後 。
在我們開始編程 LLM 之前,必須先了解它們的「心理學」。LLM 可視為「人類精神的隨機模擬」(stochastic simulations of people)。這些模型在網路上大量的文本資料上進行訓練,因此具備了類似人類的「湧現心理」(emergent psychology)。這是指 LLM 在訓練過程中,因巨量資料的學習,意外地、非預期地展現出了類似人類思維或心理的行為模式和能力。LLM 並未擁有真意識或情感,但卻展現出類似人類行為或認知過程的特定。
LLM 雖然擁有超乎常人的知識和記憶,例如能像電影《雨人》中的角色一樣記住大量資訊 ,但它們也存在一些認知缺陷:
- 幻覺(Hallucination):它們會捏造事實 ,雖然可以透過精心設計的提示詞,搭配給出答案前先檢查事實,甚至是搭配檢索增強生成(Retrieval Augmented Generation, RAG)來回答,但這些都無法保證 100% 消除幻覺,減少幻覺仍然是 LLM 研究和應用領域努力的核心目標。