軟體新紀元:Andrej Karpathy 揭示 AI 時代的程式設計革命

  • Post by
  • Jul 09, 2025

哈囉,各位科技愛好者們!今天我們要來聊聊一個讓整個科技圈都為之振奮的話題,那就是由 AI 領域的超級巨星 Andrej Karpathy 提出的「軟體正在再次改變」這個劃時代的觀點。別以為程式設計就是敲敲鍵盤、寫寫程式碼那麼簡單,Andrej Karpathy 告訴我們,現在的軟體世界,已經進入了一個全新的「3.0」時代,而且這個時代,將會顛覆我們對程式設計的認知,甚至讓「人人都是程式設計師」不再是夢想!

軟體演進三部曲:從手寫程式碼到自然語言魔法

Andrej Karpathy 將軟體的發展歷程劃分為三個截然不同的階段,就像是軟體界的「進化論」,每個階段都代表著技術的飛躍與典範的轉移。

軟體 1.0:程式碼的古典時代 (Software 1.0: The Classical Era of Code)

想像一下,在電腦科學的早期,程式設計師就像是數位世界的工匠,一磚一瓦地手工打造軟體。這就是「軟體 1.0」的時代,我們使用 C++、Python 等程式語言,將每一個邏輯、每一個指令都精確地寫入程式碼中。這種方式雖然能實現高度的控制與精確性,但其開發過程耗時費力,且任何微小的改動都可能牽一髮而動全身,維護成本極高。Andrej Karpathy 形容這就像是 GitHub 上那些數百萬個由人類親手編寫的程式碼庫,每一個都是獨特的藝術品,但也充滿了人工的痕跡。

軟體 2.0:數據驅動的機器學習時代 (Software 2.0: The Data-Driven Era of Machine Learning)

隨著機器學習的興起,「軟體 2.0」的革命悄然來臨。這個時代,我們不再是手把手地教電腦怎麼做,而是給它大量的數據,讓它自己去學習、去歸納。最典型的例子就是神經網路,它的「程式碼」不再是我們寫出來的,而是透過海量數據訓練「學」出來的權重。Andrej Karpathy 在 Tesla 自動駕駛團隊的經驗完美詮釋了這一點:他們用神經網路取代了大量的 C++ 程式碼,讓自動駕駛系統能夠更有效地感知和處理真實世界的數據。這不僅提高了效率,也讓軟體具備了更強的適應性和擴展性。

軟體 3.0:大型語言模型的魔法時代 (Software 3.0: The Magical Era of Large Language Models)

現在,我們正式踏入了「軟體 3.0」的全新紀元,這是一個由大型語言模型(LLM)主宰的世界! 在這個時代,你的「提示詞」(Prompt)就是程式碼,而自然語言(例如英文)則成為了最熱門的程式語言! 你不再需要學習複雜的程式語法,只要用簡單的自然語言告訴 LLM 你想要什麼,它就能幫你完成任務。Andrej Karpathy 甚至將 LLM 比喻為「一種新型的電腦」,一個可以直接透過自然語言進行「程式設計」的電腦。

這意味著什麼?這意味著程式設計的門檻被大大降低了,因為「人人都能成為程式設計師」! 只要你會說人話,你就能指揮 LLM 創造出你想要的軟體。

LLM 的奇妙比喻:電力、晶圓廠與作業系統

Andrej Karpathy 用了幾個非常生動的比喻,來解釋 LLM 在我們數位世界中的核心地位:

  • LLM 就像電力: 他認為 LLM 就像現代社會的電力一樣,由 OpenAI、Anthropic 等公司投入巨資訓練,然後透過 API 服務提供給我們使用,我們按使用量付費,就像繳電費一樣。當 LLM 服務中斷時,就像停電一樣,整個世界都會陷入「智慧停電」(intelligence brownout),因為我們對它的依賴越來越深了。
  • LLM 就像晶圓廠: 訓練 LLM 需要龐大的資本支出,這使得 LLM 實驗室掌握了核心技術和研發秘密,如同晶圓廠在半導體產業中的地位。
  • LLM 就像作業系統: 這可能是最引人深思的比喻了!Andrej Karpathy 認為 LLM 不僅僅是電力或商品,它們是越來越複雜的軟體生態系統,就像 Windows、macOS 和 Linux 一樣。 LLM 就像是新的作業系統,它協調記憶體和計算,解決問題。你的提示詞就是程式,它在 LLM 這個「CPU」上運行,而上下文視窗就像是「記憶體」。

Andrej Karpathy 甚至說,我們現在就像是回到了 1960 年代的電腦時代,那時候電腦運算非常昂貴,所以都是集中在雲端,大家透過「分時共享」的方式使用。 現在的 LLM 也是一樣,它們大多集中在雲端,我們都是「瘦客戶端」,透過網路與之互動。他預測,個人電腦革命尚未在 LLM 領域發生,但未來可能會出現「個人 LLM」。

LLM 的「心理學」:超能力與小缺陷並存的「人造精靈」

Andrej Karpathy 將 LLM 比喻為「人造精靈」(people spirits),它們是人類的隨機模擬,透過大量的網路文本訓練而成,因此帶有類人般的心理特徵。它們擁有令人驚嘆的超能力,但同時也存在一些可愛卻又需要注意的小缺陷:

  • 百科全書般的知識和記憶: LLM 讀遍了網路上的所有文本,因此它們擁有比任何單一人類都豐富的知識和記憶。
  • 認知缺陷與幻覺: 儘管 LLM 知識淵博,但它們也會「胡說八道」,編造事實,或者對自我認知不足。它們的智慧是「鋸齒狀」的,在某些問題領域表現超人,但在另一些地方卻會犯下人類絕不會犯的錯誤。
  • 順行性失憶症: LLM 沒有人類那樣的長期記憶和知識鞏固能力。它們的上下文視窗就像是「工作記憶」,每次對話結束後,它們就會「忘記」之前的內容。
  • 容易受騙與安全風險: LLM 很容易受到「提示詞注入」攻擊,可能會洩露你的數據。因此,在使用 LLM 時,安全性是一個非常重要的考量。

總之,LLM 就像是一個擁有超能力,但又有點迷糊的「人造精靈」。我們需要學會如何與它們合作,利用它們的超能力,同時避開它們的小缺陷。

擁抱半自主應用程式:打造你的「鋼鐵人戰衣」

Andrej Karpathy 認為,現在最大的機會在於開發「半自主應用程式」(Partial Autonomy Apps)。 這些應用程式不是讓 LLM 完全取代人類,而是將 LLM 的能力整合到傳統的使用者介面中,讓人類和 AI 協同工作,就像鋼鐵人穿上戰衣一樣,人類是核心,AI 是輔助。

這些半自主應用程式有幾個關鍵特點:

  • 上下文管理: LLM 負責處理大量的上下文資訊。
  • 多重 LLM 調度: 應用程式可以協調多個 LLM 的呼叫,例如嵌入模型、聊天模型、程式碼差異應用模型等。
  • 應用程式專屬的圖形使用者介面(GUI): 這是非常重要的一點! 我們不希望直接跟 LLM 用文字溝通,因為文字很難閱讀和理解。一個好的 GUI 可以讓我們更快地審核 AI 生成的內容,例如用紅綠色塊顯示程式碼差異,讓我們一眼就能看出哪裡增加了、哪裡刪除了。
  • 自主性滑桿(Autonomy Slider): 應用程式應該提供一個「自主性滑桿」,讓使用者可以控制 AI 的自主程度。你可以讓 AI 只做小範圍的程式碼補全,也可以讓它修改整個檔案,甚至整個程式碼庫。

Andrej Karpathy 強調,人類和 AI 的協作循環越快越好。AI 負責生成,人類負責驗證。為了加快這個循環,GUI 扮演了關鍵角色,因為視覺化的呈現比文字更容易理解。同時,我們也要「牽好 AI 的繩子」,不要讓它生成過於龐大、難以管理的內容,例如一次性生成一萬行的程式碼差異,那會讓人類審核到崩潰。

Vibe Coding:人人都是程式設計師的時代來臨!

Andrej Karpathy 提出了一個超有趣的詞彙:「Vibe Coding」。 這是一種全新的程式設計風格,它強調的是「感受」(vibe),而不是精確的程式碼語法。簡單來說,就是你用自然語言告訴 LLM 你想要什麼,然後讓它去生成程式碼,你只需要給予回饋和調整,直到它符合你的「感覺」。

Andrej Karpathy 甚至用 Vibe Coding 寫了一個 iOS App 和一個叫做 MenuGen 的應用程式,他自己都不會 Swift 程式語言,但卻能在一天之內搞定一個基本的 App,這簡直是魔法!

Vibe Coding 的出現,意味著程式設計的門檻被大大降低了。以前你需要花費數年時間學習程式語言,現在只要會說人話,就能成為「程式設計師」。 這對於那些有想法但不懂程式的人來說,簡直是天大的好消息!

為 AI Agent 打造數位基礎設施

Andrej Karpathy 認為,未來我們不僅要為人類使用者設計軟體,更要為「AI Agent」設計軟體。 AI Agent 就像是新的數位資訊消費者和操作者,它們需要與我們的軟體基礎設施互動。

這意味著什麼?

  • 為 Agent 友善的文檔: 就像網站有 robots.txt 檔案來指導網路爬蟲一樣,我們可能需要 lm.txt 檔案來告訴 LLM 這個網站是關於什麼的。文檔應該用 Markdown 這種對 LLM 友善的格式編寫,並且把「點擊這裡」這種人類指令替換成等效的 curl 命令,讓 Agent 可以直接執行。
  • LLM 友善的數據格式: 需要有工具能將現有的數據(例如 GitHub 程式碼庫)轉換成 LLM 容易理解的格式,讓 LLM 可以輕鬆地讀取和分析。

Andrej Karpathy 認為,雖然未來 LLM 可能會學會像人類一樣點擊網頁,但現在我們最好還是「與 LLM 相向而行」,讓它們更容易地獲取資訊,因為這會大大降低成本和複雜性。

結論:我們正處於 LLM 的 1960 年代

總結來說,Andrej Karpathy 認為我們正處於一個軟體產業的黃金時代,一個充滿無限可能性的時代。LLM 就像是 1960 年代的作業系統,它們是複雜的「人造精靈」,擁有超能力,但也有些小缺陷。 我們需要學會如何與它們合作,打造「鋼鐵人戰衣」般的半自主應用程式,並為未來的 AI Agent 做好數位基礎設施的準備。

這個時代,程式設計不再是少數人的專利,人人都有機會參與其中。就像 Andrej Karpathy 說的,這將是「Agent 的十年」,我們將會看到軟體從左邊的「人類完全控制」滑向右邊的「高度自主」。 這一切都令人興奮不已,讓我們一起期待並參與這個軟體大變身的時代吧!

LATEST POST
TAG