The Software 2.0 Revolution: LLMs as Operating Systems - 大型語言模型作為作業系統

The Software 2.0 Revolution: LLMs as Operating Systems - 軟體2.0革命:大型語言模型作為作業系統

在這場關於軟體演變的演講中,Andrej Karpathy介紹了三種不同的範式:

  • 軟體1.0,代表傳統撰寫的程式碼;
  • 軟體2.0,由神經網路及其學習權重所定義;
  • 以及軟體3.0,聚焦於使用自然語言提示來編程大型語言模型(LLMs)。

Karpathy將LLMs描述為一種新型態的「作業系統」,類似早期的電腦時代,透過分時共享像公用事業一樣提供,但同時因其高昂的訓練成本,也具備製造廠的特質。他強調了LLMs獨特的社會擴散方式,從消費者採用開始,而非企業或政府使用,並討論其「人性精神」的特質,具備超人能力,但同時伴隨如幻覺與記憶限制等顯著的認知缺陷。

接著演講探討了為了與LLMs有效合作而設計的「部分自主應用程式」的發展,強調需要使用者友好的圖形介面、情境管理及一個用於調整AI控制程度的「自主滑桿」。

最後,Karpathy主張直接為AI代理建設基礎設施,如適合LLMs的文件和資料攝取工具,並斷言這將是未來編程「鋼鐵人戰衣」的關鍵,這些戰衣將通過逐步提高的AI自主性來增強人類能力。

原生 YouTube 演說

衍生 Podcast播客

AI文本提煉師 撰寫摘要

摘要:
Andrej Karpathy 討論了軟體向 AI 驅動範式的演進,聚焦於大型語言模型(LLMs)作為新的作業系統及部分自主應用。

想法:
- 軟體在過去 70 年的穩定後,近幾年僅根本改變過兩次。
- 軟體 1.0 是明確的程式碼,軟體 2.0 是神經網絡權重調整,軟體 3.0 是用英文提示編程 LLMs。
- Hugging Face 是軟體 2.0 神經網絡權重和模型的 GitHub 等價物。
- 神經網絡從固定函數演變為可編程實體,結合大型語言模型。
- 用英文撰寫的 LLM 提示創造了新的自然程式語言,許多人都能使用。
- 特斯拉自動駕駛軟體從 C++ 程式碼遷移到神經網絡,刪除舊代碼。
- 軟體 2.0 字面上正在蠶食傳統軟體 1.0 的軟體堆疊。
- 未來軟體開發者需熟練掌握三種程式範式。
- LLMs 像公用事業,資本支出與營運支出類似電網建設與運營。
- LLMs 類似晶圓廠,因高資本投入與集中研發。
- LLMs 最佳比喻為作業系統,封閉與開源生態系統正逐漸形成。
- 由於計算昂貴,LLMs 目前以 1960 年代風格的集中雲端模型運行。
- Mac mini 由於記憶體限制的單批推理,展現個人 LLM 計算潛力。
- LLMs 是人的隨機模擬,展現類似人類的 emergent 心理。
- LLMs 擁有百科全書式記憶,但會出現幻覺與不連貫的智慧。
- LLMs 缺乏持續學習,並患有逆行性失憶症,定期清除上下文視窗。
- LLMs 易受提示注入與資料洩漏等安全風險威脅。
- 部分自主應用如 Cursor 結合 LLM 與 GUI,允許人工驗證。
- 自主滑桿讓用戶調整 AI 輔助程度,從最小到完全自主。
- 驗證速度至關重要;GUI 利用人類視覺處理加速審核。
- 過度反應的 AI 代理造成流程摩擦,需控制自主程度。
- 教育應用需將 AI 綁在繩索上,產出可審計的中間產物如課程。
- 特斯拉自動駕駛漫長開發顯示軟體自主複雜,需人類介入。
- 鋼鐵人戰衣比喻:AI 作為增強,擁有介於代理與工具間的自主滑桿。
- Vibe 編碼讓新手用自然語言提示構建軟體,開創新程式範式。
- 雖然 AI 編碼快速原型,DevOps 和部署仍是瓶頸。
- 以 markdown 撰寫文件幫助 LLM 更好理解軟體與 API 以實現自動化。
- 將「點擊」等指令轉換為機器可執行命令,助力 LLM 代理。
- 將 GitHub 倉庫轉換成 LLM 可攝取格式的工具提升開發效率。
- 適配軟體基礎設施以配合 LLM,是實現代理互操作性的關鍵。

洞見:
- 軟體演進週期加速,開發者需同時掌握多種程式範式。
- LLM 作為可用自然語言編程的可編程計算機,讓程式設計民主化,超越傳統專家。
- 人工驗證與 AI 生成的互動構成實用 AI 輔助工作流程核心。
- LLM 類人認知強大但有缺陷,需謹慎設計自主層級。
- LLM 作為作業系統的比喻,凸顯其作為複雜生態系統的角色,而非簡單 API。
- 集中式 LLM 計算類似早期雲計算,延遲了 AI 個人計算革命。
- LLM 的安全漏洞凸顯強健 AI 治理與提示工程的必要。
- 軟體採用部分自主平衡效率與必要人類監督。
- 鋼鐵人戰衣比喻體現 AI 作為可調節自主的人類增強工具未來。
- AI 輔助編碼開發將從寫碼轉向管理部署與基礎設施。

引用:
- 「軟體不斷變化。70 年來沒有根本改變,最近迅速改變了兩次。」
- 「軟體 1.0 是你寫的程式碼,軟體 2.0 是神經網絡權重,軟體 3.0 是用英文提示編程 LLMs。」
- 「令人驚訝的是,我們現在用英文編程電腦。」
- 「軟體 2.0 堆疊字面上蠶食了自動駕駛的軟體堆疊。」
- 「LLMs 具有公用事業、晶圓廠特性,但最強烈的是作業系統的類比。」
- 「當最先進的 LLMs 宕機,彷彿世界智能短路。」
- 「LLMs 是人的隨機模擬,具有類人 emergent 心理。」
- 「它們展現參差不齊的智慧,某些領域超人類,卻犯人類不會犯的錯誤。」
- 「LLMs 患有逆行性失憶症;上下文視窗每次會被清空。」
- 「部分自主應用讓人類用自主滑桿驗證和控制 AI 生成。」
- 「GUI 很重要,因為閱讀文字費力,看視覺差異則快速直觀。」
- 「我們必須把 AI 綁在繩索上,避免過度反應的代理。」
- 「鋼鐵人戰衣既是增強也是代理;是一個有用的自主滑桿比喻。」
- 「Vibe 編碼是一種自然語言程式設計迷因,讓所有人成為程式設計師。」
- 「Markdown 文件釋放 LLM 自動化巨大潛力。」
- 「用 curl 命令替換文件中的『點擊』,讓 LLM 代理可行動。」
- 「將 GitHub URL 改為『get ingest』,立刻讓倉庫對 LLM 友好。」
- 「數十億人瞬間擁有這種新型電腦,真是瘋了。」
- 「這是用 LLM 重塑的 1960 年代電腦時代。」
- 「LLM 的個人計算革命尚未發生,但正在進行中。」

習慣:
- 優先採用小幅漸進的程式碼更改以維持控制和驗證速度。
- 根據任務複雜度使用自主滑桿調整 AI 協助。
- 花額外時間設計具體提示以提高 AI 驗證成功率。
- 利用 GUI 可視化 AI 生成的程式碼差異,加快人工審核。
- 在應用中整合多個 LLM 模型以豐富功能。
- 保持人類介入監督易錯的 AI 代理,防止錯誤。
- 持續調整軟體架構,使其對 LLM 更易理解與訪問。
- 利用 AI 編碼快速原型,但分配足夠資源於部署與 DevOps。
- 分離內容創建與消費應用,維持教育中 AI 控制。
- 部署時仔細監控 AI 幻覺與認知缺陷。
- 避免大型差異或過多 AI 生成輸出,減輕驗證負擔。
- 觀摩具有 LLM 類似認知的電影(雨人、記憶拼圖、51 次初吻)。
- 保持對提示注入與資料洩漏等安全風險的警覺。
- 使用 markdown 文件提升 LLM 對 API 與工具的理解。
- 嘗試 vibe 編碼,利用自然語言快速構建自訂軟體。

事實:
- 軟體在近年快速變革前,已有 70 年根本未變。
- Hugging Face 是神經網絡權重和模型的類 GitHub 倉庫。
- 特斯拉自動駕駛將多數功能從 C++ 代碼轉為神經網絡。
- 大型語言模型以類似晶圓廠的龐大資本投入訓練。
- LLM 計算因推理昂貴且受限於記憶體而集中於雲端。
- Mac mini 因記憶體限制適合單批次 LLM 推理。
- LLM 逐詞元處理文本,每個詞元塊消耗大致相等計算。
- LLM 擁有超越個人人類記憶容量的百科式知識。
- LLM 會幻覺事實,犯下諸如數字錯序或拼寫錯誤等奇怪錯誤。
- LLM 缺乏人類學習中的持久記憶與上下文整合。
- LLM 易受提示注入攻擊及潛在資料洩露。
- 部分自主應用結合人類控制與 AI 生成,實現實用流程。
- GUI 利用人類視覺處理提升驗證速度。
- LLM 個人計算革命類比 1960 年代分時系統。
- Vibe 編碼是一種病毒式流行的自然語言程式設計迷因,適合初學者。
- 許多軟體文件正在重寫成 markdown 以更適合 LLM。
- 已有工具將 GitHub 倉庫轉為 LLM 可攝取的單一文本塊。
- LLM 可視為新型複雜作業系統,協調計算和記憶體。
- LLM 技術的普及起始於消費者,與傳統技術採用不同。
- 數十億人一夜之間獲得 LLM 動力計算的即時訪問。

參考:
- GitHub 軟體倉庫視覺化工具地圖。
- Hugging Face 作為軟體 2.0 倉庫。
- Flux 圖像生成神經網絡模型。
- 特斯拉自動駕駛軟體與神經網絡。
- Andrew Ng 的名言「AI 是新的電力」。
- OpenAI、Gemini、Enthropic LLM 實驗室。
- 用於切換 LLM 提供商的 Open Router。
- 作為多平台應用示例的 VS Code。
- 用於編碼輔助的 Cursor LLM 應用。
- 用於研究與資料來源的 Perplexity LLM 應用。
- 展示 LLM 心理學的電影:雨人、記憶拼圖、51 次初吻。
- 鋼鐵人戰衣的部分自主比喻。
- Hugging Face 的 Tom Wolf 推廣的 Vibe 編碼迷因與影片。
- Andrej 建立的菜單生成應用 Menu Genen。
- 用於 Google 登入整合的 Clerk 函式庫。
- Three Blue One Brown 與 Manim 動畫庫。
- Enthropic 的模型上下文協議。
- 用於 GitHub 倉庫分析與文檔的 Devon 工具。
- 將 GitHub URL 轉換為 LLM 可攝取格式的工具。

一句話結論:
AI 驅動的軟體演進要求掌握多範式編程,並構建人機協作的部分自主工具。

建議:
- 學習軟體 1.0、2.0 和 3.0 三種程式範式,為未來開發技能打下基礎。
- 設計帶有自主滑桿的 LLM 應用,平衡 AI 幫助與人類控制。
- 建構簡化驗證與審計 AI 輸出視覺化的 GUI。
- 精心設計具體且明確的提示,提高 LLM 精準度並減少驗證迴圈。
- 保持人類介入,監督 AI 代理並減輕錯誤或幻覺。
- 將文件改寫成 markdown,使 API 更易於 LLM 學習與操作。
- 調整軟體介面,用 LLM 可執行命令取代人類中心操作。
- 使用工具將程式碼倉庫轉為單一文本,優化 LLM 攝取。
- 利用 AI 編碼快速原型,同時投入充足時間於部署與 DevOps。
- 設計 AI 互動流程時考慮提示注入等安全風險。
- 鼓勵教育平台分離內容創建與傳遞,維持 AI 控制。
- 推廣部分自主應用,避免完全自主代理以確保實用可靠。
- 密切監控 AI 幻覺,並在流程與產品中建立防護措施。
- 體認 LLM 缺乏持久記憶,需明確編程管理上下文視窗。
- 嘗試 vibe 編碼,以自然語言介面普及程式設計。
- 監控 LLM 生態系統中類作業系統的發展,及早參與。
- 平衡集中式雲端 LLM 計算與新興個人計算硬體可能性。
- 跨領域合作,共創個人 LLM 動力計算的未來。
- 採用漸進、小幅度的 AI 輔助程式碼更改,保持清晰與控制。
- 建立基礎設施以配合 LLM,便利其訪問結構化數位資訊。