播客內(nèi)容由 Listenhub 生成
Andrej Karpathy 昨天在 YC 的舊金山創(chuàng)業(yè)大會上發(fā)表了一場 40 分鐘的演講。
軟件行業(yè)正在經(jīng)歷的范式轉(zhuǎn)變。介紹了軟件從傳統(tǒng)編碼(軟件 1.0)到神經(jīng)網(wǎng)絡(luò)(軟件 2.0)的演變,并著重闡述了由大型語言模型(LLMs)驅(qū)動的軟件 3.0 時代。
在這個新時代,自然語言提示成為編程方式,他將 LLMs 比作 20 世紀(jì) 60 年代的操作系統(tǒng),預(yù)示著個人計算的下一次革命。
Karpathy 真的很神奇,每次都能用非常形象的比喻讓不那么專業(yè)的人理解他講的事情。比如這個Agent 構(gòu)建路線上鋼鐵俠的比喻:
他認(rèn)為,我們應(yīng)該專注于構(gòu)建“鋼鐵俠戰(zhàn)甲”(增強工具),而不是“鋼鐵俠機器人”(完全自主Agent)這些產(chǎn)品應(yīng)具備自定義 GUI 和用戶體驗,以加速人類的生成-驗證循環(huán),同時仍提供自主性滑塊,允許產(chǎn)品隨時間變得更加自主。
軟件開發(fā)范式1.0、2.0和3.0的定義是什么
軟件 1.0:傳統(tǒng)代碼
定義和構(gòu)成:軟件1.0是程序員用諸如Python、C++等編程語言直接編寫的明確指令12。每一行代碼都是程序員為計算機設(shè)定的具體任務(wù)指令,使其在數(shù)字空間中執(zhí)行特定功能12。它是我們所熟悉的“經(jīng)典軟件棧”2。
編程方式:人類通過編寫源代碼(例如.cpp文件)來直接編程23。源代碼隨后被編譯成可執(zhí)行的二進制文件3。
代碼庫示例:GitHub可以被視為軟件1.0代碼的“地圖”或等同物,展示了所有這些通過指令編寫的代碼14。
特點和挑戰(zhàn):
- 計算異構(gòu)性:傳統(tǒng)軟件的指令集非常異構(gòu)和復(fù)雜。
- 非恒定運行時間與內(nèi)存使用:代碼的執(zhí)行路徑可能導(dǎo)致運行時間不固定,且存在動態(tài)內(nèi)存分配,可能導(dǎo)致內(nèi)存泄漏或不確定的內(nèi)存使用。
- 可移植性挑戰(zhàn):與神經(jīng)網(wǎng)絡(luò)相比,傳統(tǒng)二進制文件或腳本在任意計算配置上運行的難度更大。
- 迭代靈活性差:如果需要將C++代碼的運行速度提高一倍,調(diào)整系統(tǒng)以適應(yīng)新的規(guī)范將非常困難。
- 模塊化限制:軟件通常被分解為通過公共函數(shù)、API或端點進行通信的模塊,但它們通常無法像軟件2.0模塊那樣在更深層次上協(xié)同優(yōu)化。
示例:特斯拉自動駕駛系統(tǒng)中最初的C++代碼就是軟件1.0的典型例子。
軟件 2.0:神經(jīng)網(wǎng)絡(luò)權(quán)重
定義和構(gòu)成:軟件2.0的核心是神經(jīng)網(wǎng)絡(luò)的權(quán)重。這些權(quán)重是一種更抽象、對人類不友好的語言。它不是由人類直接編寫的,因為神經(jīng)網(wǎng)絡(luò)通常有數(shù)百萬個權(quán)重,手動編寫極其困難。
編程方式:編程過程不是直接寫代碼,而是通過調(diào)整數(shù)據(jù)集,然后運行優(yōu)化器來創(chuàng)建神經(jīng)網(wǎng)絡(luò)的參數(shù)(權(quán)重)。換句話說,其“源代碼”包括定義所需行為的數(shù)據(jù)集和神經(jīng)網(wǎng)絡(luò)架構(gòu)的粗略骨架。神經(jīng)網(wǎng)絡(luò)的訓(xùn)練過程將數(shù)據(jù)集“編譯”成最終的神經(jīng)網(wǎng)絡(luò)(二進制文件)。
代碼庫示例:Hugging Face的Model Atlas被認(rèn)為是軟件2.0領(lǐng)域的GitHub等價物,可以可視化神經(jīng)網(wǎng)絡(luò)的參數(shù)。
特點和優(yōu)勢:
- 數(shù)據(jù)驅(qū)動:軟件開發(fā)主要表現(xiàn)為整理、增長、處理和清洗標(biāo)注數(shù)據(jù)集。
- 吞噬軟件1.0:隨著時間推移,軟件2.0在功能和規(guī)模上不斷增長,并逐漸取代了許多原本由軟件1.0編寫的功能。
- 計算同質(zhì)性:典型的神經(jīng)網(wǎng)絡(luò)主要由兩種操作組成:矩陣乘法和閾值處理(ReLU),這使得其正確性和性能保證更容易實現(xiàn)。
- 易于硬件實現(xiàn):神經(jīng)網(wǎng)絡(luò)指令集相對較小,更容易在定制ASIC或神經(jīng)形態(tài)芯片等更接近硅的硬件中實現(xiàn)。
- 恒定運行時間與內(nèi)存使用:神經(jīng)網(wǎng)絡(luò)的每次前向傳播迭代所需計算量固定,內(nèi)存使用量也恒定,避免了動態(tài)內(nèi)存分配和內(nèi)存泄漏的問題。
- 高度可移植:矩陣乘法序列在不同計算配置上運行比傳統(tǒng)二進制文件更容易。
- 高度靈活:可以輕松調(diào)整網(wǎng)絡(luò)(如通過移除一半通道或增加更多通道)以滿足新的性能或準(zhǔn)確性要求,只需重新訓(xùn)練即可。
- 模塊融合優(yōu)化:如果兩個獨立訓(xùn)練的軟件2.0模塊交互,可以通過反向傳播對整體進行優(yōu)化,使其融合成一個最優(yōu)的整體。
- 超人性能:在圖像/視頻和聲音/語音等領(lǐng)域,神經(jīng)網(wǎng)絡(luò)通常能產(chǎn)生比人類編寫的代碼更好的結(jié)果。
- 示例:用于圖像識別的AlexNet神經(jīng)網(wǎng)絡(luò),特斯拉自動駕駛中的圖像識別神經(jīng)網(wǎng)絡(luò),以及AlphaGo Zero等游戲AI。
局限性:
- 可解釋性差:最終得到的網(wǎng)絡(luò)雖然工作良好,但很難解釋其工作原理。
- 非直觀的失敗:可能以非直觀或令人尷尬的方式失敗,或者“靜默失敗”,例如悄無聲息地采納訓(xùn)練數(shù)據(jù)中的偏見。
- 易受對抗性攻擊:存在對抗性樣本和攻擊,凸顯了其非直觀的特性。
定義和構(gòu)成:軟件3.0是大型語言模型(LLMs)通過提示(prompt)進行編程的新范式。LLMs本身被視為一種新型計算機。
編程方式:編程語言是自然語言,尤其是英語。用戶通過輸入提示來“編程”LLM,使其執(zhí)行特定任務(wù)。
特點和優(yōu)勢:
- 自然語言接口:編程不再需要專業(yè)的編程知識,每個人都能通過自然語言進行編程,因為每個人都說自然語言。
- 新型計算體驗:LLMs被類比為一種新的操作系統(tǒng)。與LLM的文本聊天就像通過終端直接訪問操作系統(tǒng)。
- 用戶普及:這種技術(shù)擴散方向與傳統(tǒng)技術(shù)相反,LLMs首先為普通個人帶來了巨大的能力提升,而非政府或大型企業(yè)。ChatGPT是歷史上增長最快的消費級應(yīng)用。
- 部分自主應(yīng)用:軟件3.0的機遇在于開發(fā)部分自主的應(yīng)用,這些應(yīng)用能整合LLMs的能力,執(zhí)行更多上下文管理、多模型編排、提供特定應(yīng)用的GUI,并允許用戶通過“自主性滑塊”調(diào)整AI的介入程度。
- 文檔優(yōu)化:未來的文檔將需要為Agent(agents)而非人類編寫,例如將“點擊”指令替換為LLMs可以執(zhí)行的cURL命令。
局限性:
- 類似1960年代的計算:LLM的計算目前仍然非常昂貴且集中在云端,類似于1960年代的大型機和分時系統(tǒng)時代,個人計算革命尚未到來。
- “人化精神”的缺陷:LLMs被視為“人的精神的隨機模擬”,具有百科全書般的知識,但也存在認(rèn)知缺陷,如幻覺、不均勻智能(在某些領(lǐng)域超人,但在另一些領(lǐng)域犯基本錯誤)、順行性遺忘(無法通過學(xué)習(xí)整合知識到權(quán)重中,每次交互上下文會被擦除)以及容易受騙(容易受到提示注入攻擊,可能泄露數(shù)據(jù))。
- 需要人類監(jiān)督:由于LLMs仍然是易錯的系統(tǒng),需要人類在循環(huán)中進行監(jiān)督和驗證,因此快速的“生成-驗證”循環(huán)和“系好AI的韁繩”至關(guān)重要,以避免生成過大或錯誤的代碼。
演講全文總結(jié) 如何理解大語言模型
Andrej Karpathy 提出了 LLMs 的多種類比,以幫助人們理解其本質(zhì):
公用事業(yè) (Utilities) 的特性:
LLMs 像電力一樣,需要巨大的資本支出(CAPEX)進行訓(xùn)練(相當(dāng)于建設(shè)電網(wǎng)),并通過 API 提供服務(wù)(OPEX,按量付費),用戶對低延遲、高可用性和一致質(zhì)量有需求。當(dāng)領(lǐng)先的 LLMs 停止運行時,就像“智能斷電”,整個世界仿佛變得“更笨”。OpenRouter 扮演著“電源轉(zhuǎn)換開關(guān)”的角色,允許用戶在不同 LLM 提供商之間切換。
晶圓廠 (Fabs) 的特性:
LLMs 的訓(xùn)練需要巨大的資本投入,涉及深層技術(shù)樹的研發(fā)和秘密。使用 NVIDIA GPU 訓(xùn)練模型類似于“無晶圓廠”模式,而像 Google 這樣擁有 TPU 并訓(xùn)練自己的模型,則類似于擁有“晶圓廠”(如 Intel)。然而,由于軟件的延展性,其防御性不如物理基礎(chǔ)設(shè)施。
操作系統(tǒng) (Operating Systems) 的特性:
這是最恰當(dāng)?shù)念惐取LMs 正日益成為復(fù)雜的軟件生態(tài)系統(tǒng),而非簡單的商品。LLM 應(yīng)用(如 Cursor)可以在不同的 LLM 后端(如 GPT、Claude、Gemini)上運行,就像 VS Code 可以在 Windows、Mac 或 Linux 上運行一樣。我們正處于 LLM 計算的“1960 年代”:計算資源昂貴,LLMs 集中在云端,用戶通過網(wǎng)絡(luò)進行“分時”訪問,個人計算革命尚未到來。與 LLM 直接的文本交互感覺就像通過終端與操作系統(tǒng)對話,而通用的圖形用戶界面(GUI)尚未被發(fā)明。
技術(shù)擴散方向的翻轉(zhuǎn):
與以往大多數(shù)顛覆性技術(shù)(如電力、密碼學(xué)、互聯(lián)網(wǎng)、GPS)自政府/軍事領(lǐng)域開始,然后擴散到企業(yè),最后才普及到消費者不同,LLMs 展現(xiàn)出驚人的逆轉(zhuǎn)。ChatGPT 是歷史上增長最快的消費者應(yīng)用,它為普通人帶來了不成比例的巨大益處,例如寫作、編程、翻譯、輔導(dǎo)、頭腦風(fēng)暴等,而其在企業(yè)和政府層面的影響則相對滯后和不明顯。這是因為 LLMs 提供了廣泛但并非深厚的“準(zhǔn)專業(yè)知識”,這對于個人來說是巨大的能力提升,因為他們通常只擅長一件事,而組織本身就擁有多樣化的專業(yè)知識,LLMs 只是提高了其效率。此外,組織面臨更高的復(fù)雜性、整合難題、安全協(xié)議、隱私、合規(guī)性以及固有的組織慣性等挑戰(zhàn),這些都阻礙了 LLMs 的快速采用。
LLM 的“心理學(xué)”
Andrej Karpathy 將 LLMs 視為“人魂”(people spirits),是人類的隨機模擬器。它們因在海量文本上訓(xùn)練而具備了類似人類的“涌現(xiàn)心理學(xué)”:
超能力:擁有百科全書般的知識和記憶,遠(yuǎn)超任何個體人類(類似于電影《雨人》中的達(dá)斯汀·霍夫曼)。
認(rèn)知缺陷:
- 幻覺 (Hallucinations):經(jīng)常編造信息,缺乏足夠的自我認(rèn)知模型。
- 鋸齒狀智能 (Jagged intelligence):在某些問題解決領(lǐng)域表現(xiàn)超人,但在其他方面會犯下人類不會犯的低級錯誤(例如堅持“9.11 大于 9.9”,或“strawberry 有兩個 R”)。
- 順行性遺忘癥 (Anterograde amnesia):LLMs 無法像人類一樣通過經(jīng)驗自動學(xué)習(xí)、鞏固知識或形成專業(yè)知識(類似于電影《記憶碎片》和《50 次初戀》中的主角)。它們的上下文窗口(context window)就像工作記憶,需要直接編程來管理。
- 易受騙 (Gullibility):容易受到提示注入(prompt injection)風(fēng)險,可能泄露數(shù)據(jù)。
鑒于 LLMs 既有超能力又有認(rèn)知缺陷,關(guān)鍵在于如何編程它們,利用其超能力,同時規(guī)避其缺陷。
LLM 時代帶來了巨大的機遇
Karpathy 認(rèn)為 LLMs 帶來了巨大的機遇,特別是通過開發(fā)“部分自主應(yīng)用”(partial autonomy apps)。
部分自主應(yīng)用:
- 核心理念:與其直接與 LLM 像與“操作系統(tǒng)”一樣對話(例如直接在 ChatGPT 中復(fù)制代碼),不如使用專門的 LLM 應(yīng)用,如 Cursor,它提供了更好的用戶體驗。
- 關(guān)鍵特性:
- 上下文管理:LLM 應(yīng)用負(fù)責(zé)將相關(guān)信息打包到上下文窗口中,以便調(diào)用 LLM。
- 多模型編排:在后臺協(xié)調(diào)和調(diào)用多個 LLM 模型(例如,嵌入模型、聊天模型、代碼差異應(yīng)用模型等)。
- 應(yīng)用特定 GUI/UIUX:提供人類友好的圖形界面,以便用戶輕松審計 LLM 的工作、快速接受或拒絕建議。例如,通過紅綠色的差異顯示代碼修改,或通過快捷鍵接受/拒絕。
- 自主性滑塊 (Autonomy Slider):允許用戶根據(jù)任務(wù)復(fù)雜性調(diào)整 LLM 的自主程度,從簡單的文本補全到全Agent模式。Perplexity 搜索應(yīng)用也是一個很好的例子,它提供從快速搜索到深度研究的不同自主性級別。
- 人機協(xié)作:LLM 應(yīng)用的工作流應(yīng)側(cè)重于 AI 生成和人類驗證,目標(biāo)是讓這個循環(huán)盡可能快地進行。GUI 在加快驗證速度方面至關(guān)重要,因為它利用了人類的視覺處理能力,比閱讀純文本更高效和有趣。
保持 AI 在“牽引繩”上:
- 重要性:鑒于 LLMs 的不完美和易犯錯,必須將 AI 保持在“牽引繩”上。
- 實踐方法:
- 提供更具體、明確的提示,以增加成功驗證的可能性。
- 在 AI 輔助編程中,工作時應(yīng)遵循小步、增量的方式,每次只處理一個具體的任務(wù),避免生成過大的代碼差異,確保質(zhì)量和安全。
- 在教育等領(lǐng)域,可以創(chuàng)建可審計的中間產(chǎn)物(例如課程大綱),將 AI 限制在特定框架內(nèi),防止其“迷失方向”。
從 Tesla 自動駕駛的經(jīng)驗中吸取教訓(xùn):
Karpathy 在 Tesla 自動駕駛系統(tǒng)工作了五年,這是一個部分自主的產(chǎn)品。他回憶起 2013 年第一次乘坐 Waymo 自動駕駛汽車的完美體驗,曾以為自動駕駛很快就會實現(xiàn),但十多年后,自動駕駛?cè)匀辉诎l(fā)展中,需要大量的人工干預(yù)。這表明從“演示”到“產(chǎn)品”之間存在巨大鴻溝,需要大量艱苦的工作,尤其是在需要高可靠性的領(lǐng)域。因此,他認(rèn)為“2025 年是Agent之年”的說法過于樂觀,更像是“2025-2035 年是Agent十年”。
鋼鐵俠戰(zhàn)甲 (Iron Man Suit) 類比:
Karpathy 認(rèn)為,我們應(yīng)該專注于構(gòu)建“鋼鐵俠戰(zhàn)甲”(增強工具),而不是“鋼鐵俠機器人”(完全自主Agent)。這些產(chǎn)品應(yīng)具備自定義 GUI 和用戶體驗,以加速人類的生成-驗證循環(huán),同時仍提供自主性滑塊,允許產(chǎn)品隨時間變得更加自主。
“Vibe Coding”:人人都是程序員:
機遇:由于 LLMs 可以通過自然語言編程,大大降低了軟件開發(fā)的門檻,使得“人人都是程序員”成為可能。
親身體驗:Karpathy 親自嘗試了“Vibe Coding”,用 Swift 編寫了一個簡單的 iOS 應(yīng)用,并開發(fā)了 MenuGen (menugen.app) —— 一個能根據(jù)菜單照片生成菜品圖片的應(yīng)用程序。他發(fā)現(xiàn),使用 LLM 編寫代碼反而是最容易的部分。
挑戰(zhàn):將 Vibe Coding 的原型變?yōu)檎嬲漠a(chǎn)品(如集成身份驗證、支付、域名、部署等)卻異常困難,因為這涉及到大量在瀏覽器中點擊的操作,而不是編寫代碼。
為Agent(Agents)構(gòu)建軟件
Andrej Karpathy 強調(diào),我們現(xiàn)在需要為一種新的數(shù)字信息消費者和操縱者——“Agent”——進行構(gòu)建。這些Agent是類人的計算機,它們需要與我們的軟件基礎(chǔ)設(shè)施交互。
Agent友好的基礎(chǔ)設(shè)施:
- lm.txt 文件:類似于 robots.txt,這是一個簡單的 Markdown 文件,用于告訴 LLMs 網(wǎng)站的內(nèi)容和行為規(guī)則,比解析 HTML 更高效和準(zhǔn)確。
- 為 LLMs 優(yōu)化文檔:許多服務(wù)(如 Vercel 和 Stripe)已經(jīng)開始將其文檔從人類友好的格式(包含圖片、加粗、列表)轉(zhuǎn)換為 LLM 容易理解的 Markdown 格式。此外,文檔中的“點擊”等操作指令也正被替換為 LLM Agent可以執(zhí)行的 curl 命令。
- 上下文構(gòu)建工具:出現(xiàn)了一些幫助 LLMs 攝取和理解復(fù)雜數(shù)據(jù)的工具。例如,gitingest 可以將 GitHub 倉庫中的所有文件連接成一個巨大的文本文件,并保留目錄結(jié)構(gòu),方便 LLM 理解。DeepWiki 甚至可以自動分析 GitHub 倉庫并為 LLM 生成完整的文檔頁面。
- “中途相遇”:盡管 LLMs 未來可能能夠像人類一樣點擊操作,但讓信息更容易被它們訪問仍然非常有價值,因為直接模擬人類行為通常成本更高、難度更大。
好了分享內(nèi)容到這里就結(jié)束了。
我們正站在計算歷史上最深刻的轉(zhuǎn)折點。如果說軟件1.0讓我們學(xué)會了與機器對話,軟件2.0讓機器學(xué)會了看和聽,那么軟件3.0則第一次讓機器真正理解了我們。
未來十年,當(dāng)我們回望今天,會發(fā)現(xiàn)2025年不僅是"Agent元年",更是人機共生新紀(jì)元的開端。我們正在為一個全新的數(shù)字居民——Agent——構(gòu)建基礎(chǔ)設(shè)施,從lm.txt到Agent友好的文檔,從部分自主應(yīng)用到全新的交互范式。
在這個"智能斷電"會讓世界變笨的時代,因為這意味著智能已經(jīng)成為了新的基礎(chǔ)設(shè)施。現(xiàn)在的 AI 領(lǐng)域從業(yè)者正在構(gòu)建那些今天看起來不可思議,但明天會變得不可或缺的應(yīng)用。
軟件3.0不是終點,而是起點。讓我們繼續(xù)構(gòu)建。
演講 PPT 下載:https://pan.quark.cn/s/bf7bc1d96e2e
相關(guān)內(nèi)容:
https://www.youtube.com/watch?v=LCEmiRjPEtQ&ab_channel=YCombinator
https://karpathy.bearblog.dev/power-to-the-people/
https://karpathy.medium.com/software-2-0-a64152b37c35
特別聲明:以上內(nèi)容(如有圖片或視頻亦包括在內(nèi))為自媒體平臺“網(wǎng)易號”用戶上傳并發(fā)布,本平臺僅提供信息存儲服務(wù)。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.