![]()
Andrej Karpathy 說,他已經(jīng)記不清上次修改 AI 生成的代碼是什么時候了。
Karpathy 參與創(chuàng)建了 OpenAI,在 Tesla 領(lǐng)導(dǎo)過 Autopilot 視覺團(tuán)隊(duì),去年一條推文發(fā)明了“憑感覺編程”(Vibe Coding)這個詞,后來被 Collins 詞典選為2025年度詞匯。
2026年4月,Karpathy 在 Sequoia Capital 的 AI Ascent 現(xiàn)場接受合伙人 Stephanie Zhan 的訪談。這場30分鐘的對話覆蓋了他對編程范式劇變的親身感受、Software 3.0的實(shí)質(zhì)、AI 為什么在某些地方極強(qiáng)而在另一些地方離譜地弱,以及“憑感覺編程”之后更嚴(yán)肅的下一步是什么。
要點(diǎn)速覽
2025年12月是 Karpathy 個人的轉(zhuǎn)折點(diǎn):AI 輸出從“有幫助但常要修補(bǔ)”變成“直接可用”,他進(jìn)入完全憑感覺編程的狀態(tài)。
Software 3.0的關(guān)鍵不是“用自然語言寫代碼”,而是通過 prompt 和 context 操作 LLM 這個新的信息處理解釋器。
MenuGen 案例讓 Karpathy 意識到,一些 AI 應(yīng)用不是會被做得更快,而是會被模型原生能力直接吞掉。
LLM 的能力高度不均勻:它可以重構(gòu)10萬行代碼、找零日漏洞,卻可能在“去50米外洗車該走路還是開車”這種常識題上犯錯。
Vibe Coding 抬高所有人做軟件的下限;Agentic Engineering 則是在使用 Agent 提速時,保住專業(yè)軟件的質(zhì)量、安全和責(zé)任門檻。
人類不必再記住每個 API 細(xì)節(jié),但必須理解系統(tǒng)結(jié)構(gòu)、底層機(jī)制和質(zhì)量標(biāo)準(zhǔn),否則無法監(jiān)督 Agent。
Karpathy 用“幽靈”形容 LLM:它不是動物式智能,而是由人類文檔、預(yù)訓(xùn)練統(tǒng)計(jì)和強(qiáng)化學(xué)習(xí)獎勵塑造出的鋸齒狀實(shí)體。
智能變便宜后,教育的重點(diǎn)不是抵制外包思考,而是確保理解仍然進(jìn)入人的大腦。
2025年12月:一個程序員的投降
Zhan 問:你幾個月前說,自己從未像現(xiàn)在這樣覺得作為程序員落后。這是興奮還是不安?
Karpathy 說兩者都有。
過去一年他一直在用 Cursor 等智能體編碼工具。早期這些工具有用,可以生成一些代碼塊,但經(jīng)常出錯需要修改。真正的轉(zhuǎn)折出現(xiàn)在2025年12月。那段時間他正好休假,有更多時間折騰 side project,明顯感覺到最新模型生成的代碼塊開始“直接能用”。
一開始,他只讓模型寫一點(diǎn)。結(jié)果不錯,就繼續(xù)讓它寫更多。再往后,他發(fā)現(xiàn)自己已經(jīng)很久沒有親自糾正模型輸出了,信任感不斷增加。最后他進(jìn)入了自己后來稱為 Vibe Coding 的狀態(tài)。
我記不得上一次我需要糾正它是什么時候了。然后我就越來越信任這個系統(tǒng)。
這里的 Vibe Coding,不適合硬譯成“氛圍編程”。更準(zhǔn)確地說,它是一種“憑感覺讓 AI 寫代碼”的開發(fā)方式:人用自然語言持續(xù)提出意圖,模型生成、修改、調(diào)試代碼,人不再像過去那樣逐行寫、逐行讀 diff。Karpathy 2025年2月在 X 上提出這個詞時,描述的是一種“放棄對代碼本身的直接控制、順著感覺讓模型往前走”的開發(fā)體驗(yàn)。
但這場訪談里,Karpathy 的重點(diǎn)已經(jīng)不只是 Vibe Coding。他強(qiáng)調(diào),很多人對 AI 的印象還停留在“一個類似 ChatGPT 的東西”上:你問一句,它答一句。到2025年底以后,值得重新看的是 Agentic coherent workflow——一種更連貫的智能體工作流。模型不只是回答問題,而是能連續(xù)規(guī)劃、寫代碼、調(diào)試、執(zhí)行、根據(jù)環(huán)境反饋繼續(xù)修正。
很多人去年體驗(yàn)到的 AI,還是一個類似 ChatGPT 的東西。但你真的必須重新看一眼,而且要看12月之后的版本。
過去程序員的速度主要取決于他能寫多少代碼、記住多少 API、怎樣調(diào)試。現(xiàn)在,速度越來越取決于他能否正確地指揮一組強(qiáng)大但會犯錯的 Agent。
Software 3.0:給 Agent 復(fù)制粘貼一段文字,這就是編程
Zhan 問:你說 LLM 是一種新計(jì)算機(jī),不只是更好的軟件。如果一個團(tuán)隊(duì)真的相信這一點(diǎn),它會怎樣不同地構(gòu)建產(chǎn)品?
Karpathy 從自己那套軟件分期講起。
Software 1.0是傳統(tǒng)軟件:人寫顯式代碼,計(jì)算機(jī)按規(guī)則執(zhí)行。
Software 2.0是神經(jīng)網(wǎng)絡(luò)時代:人不再直接寫所有規(guī)則,而是設(shè)計(jì)數(shù)據(jù)集、目標(biāo)函數(shù)和神經(jīng)網(wǎng)絡(luò)架構(gòu),通過訓(xùn)練得到模型權(quán)重。Karpathy 早在2017年就寫過《Software 2.0》,把神經(jīng)網(wǎng)絡(luò)視為一種新的軟件開發(fā)方式。
Software 3.0則是大語言模型時代。LLM 經(jīng)過大規(guī)模任務(wù)訓(xùn)練之后,變成一種可編程的計(jì)算機(jī)。你不再只是在代碼編輯器里寫函數(shù),而是在 prompt、context window、文件、工具調(diào)用和外部環(huán)境之間,組織一段給模型執(zhí)行的“上下文程序”。
context window 可以理解為模型一次調(diào)用中能看到的全部信息:指令、歷史對話、文件、錯誤日志、代碼片段、圖片、工具返回結(jié)果。Karpathy 的說法是,這個上下文窗口成了人操縱 LLM 解釋器的“把手”。
他舉了一個安裝 OpenCL 的例子。傳統(tǒng)做法是寫一個 shell script,讓它適配各種機(jī)器、平臺和環(huán)境。隨著目標(biāo)環(huán)境變多,腳本會不斷膨脹,最后復(fù)雜到很難維護(hù)。但在 Software 3.0里,安裝說明本身可能就是一段可以復(fù)制給 Agent 的文本。Agent 會讀取你的機(jī)器環(huán)境,執(zhí)行步驟,遇到錯誤再調(diào)試。
現(xiàn)在的問題變成:哪一段文字應(yīng)該復(fù)制給你的 Agent?這就是新的編程范式。
這句話的重點(diǎn)不是“程序員以后只需要寫提示詞”。Karpathy 要表達(dá)的是,程序邊界擴(kuò)大了。過去的程序是代碼文件。現(xiàn)在,程序可能是一段說明、一個上下文窗口、一組工具權(quán)限、一個測試環(huán)境,外加模型內(nèi)部已經(jīng)學(xué)到的大量統(tǒng)計(jì)結(jié)構(gòu)。
MenuGen:這個 App 不應(yīng)該存在
Karpathy 接著講了自己的 MenuGen。
這個 App 的想法很簡單:人在餐廳拿到菜單時,通常看不到菜品圖片。很多菜名,尤其是陌生菜系里的菜名,光看文字不知道是什么。Karpathy 想做一個應(yīng)用:拍一張菜單照片,App 識別菜單上的菜名,再為每個菜品生成一張大致圖片,最后重新渲染菜單,讓用戶看到“這些菜大概長什么樣”。
用舊范式做這個 App,需要好幾層中間步驟:上傳照片,OCR 識別文字,抽出菜名,調(diào)用圖像生成器生成菜品圖,再把結(jié)果重新排版,部署到 Vercel 上。Karpathy 用 Vibe Coding 把這個 App 做了出來。
然后他看到了 Software 3.0版本。
做法變成:直接把菜單照片交給 Gemini,然后說,讓 Nano Banana 把這些菜品圖疊加回菜單上。Nano Banana 返回的不是結(jié)構(gòu)化數(shù)據(jù),也不是一組組件,而是一張新的圖片:原菜單仍在,但對應(yīng)菜品的位置已經(jīng)直接渲染進(jìn)了圖片。
【注:Nano Banana 是 Google Gemini 的圖像生成和編輯能力名稱,支持用文本、圖像或兩者結(jié)合進(jìn)行對話式生成與編輯。】
Karpathy 認(rèn)為他原來寫的 MenuGen 是多余的,因?yàn)樗€停留在舊范式里。
我的整個 MenuGen 都是多余的。它還停留在舊范式里。那個 App 不應(yīng)該存在。
這個例子是整場訪談里最關(guān)鍵的商業(yè)判斷之一。
很多 AI 應(yīng)用公司以為自己在做“更快的軟件”。比如過去一個任務(wù)要10個步驟,現(xiàn)在 App 幫你壓成3個步驟。但在 Software 3.0里,模型本身的輸入輸出可能直接覆蓋這個任務(wù),中間 App 的結(jié)構(gòu)就失去必要性。
Karpathy 進(jìn)一步說,這種變化不只發(fā)生在代碼里。傳統(tǒng)代碼擅長處理結(jié)構(gòu)化數(shù)據(jù):表格、數(shù)組、數(shù)據(jù)庫字段、明確規(guī)則。但 LLM 可以處理更一般的信息重組。比如他的 LLM Knowledge Bases 項(xiàng)目:把文章、文檔和事實(shí)重新編譯成個人或組織 wiki。這不是傳統(tǒng)程序天然擅長的東西,因?yàn)樗竽P屠斫馕谋局g的關(guān)系、重新排序信息、生成新的知識結(jié)構(gòu)。
更令人興奮的不是把已有東西做得更快,而是那些以前根本不可能存在的東西。
神經(jīng)計(jì)算機(jī):CPU 變成協(xié)處理器
Zhan 問:把這種進(jìn)展外推到2026年,什么是今天大部分人還沒建出來、回頭看會覺得理所當(dāng)然的東西?
Karpathy 提出了一個更大膽但也更不確定的設(shè)想:未來可能出現(xiàn)一種完全的“神經(jīng)計(jì)算機(jī)”。
今天的計(jì)算機(jī)仍然以 CPU、操作系統(tǒng)、傳統(tǒng)程序?yàn)橹行摹I窠?jīng)網(wǎng)絡(luò)運(yùn)行在現(xiàn)有計(jì)算機(jī)之上,像是一個被虛擬化出來的能力模塊。但 Karpathy 設(shè)想,未來有可能反過來:神經(jīng)網(wǎng)絡(luò)成為 host process,也就是主流程;CPU、傳統(tǒng)代碼和工具調(diào)用變成協(xié)處理器,負(fù)責(zé)一些確定性任務(wù)。
他舉的想象場景是:一個設(shè)備接收原始視頻或音頻,神經(jīng)網(wǎng)絡(luò)理解當(dāng)前場景,再用擴(kuò)散模型為這一刻生成一個獨(dú)特的 UI。用戶看到的界面不再是固定組件拼出來的,而是由模型根據(jù)上下文實(shí)時生成。
他也很快給這個判斷加了限制:這種外推看起來很怪,具體路徑仍然 TBD,不會一夜之間發(fā)生,而會一塊一塊地到來。
“神經(jīng)網(wǎng)絡(luò)成為主進(jìn)程”不是一個已經(jīng)發(fā)生的產(chǎn)品事實(shí),更像是他用來解釋方向感的心智模型。
LLM 能重構(gòu)10萬行代碼,卻讓你走路去洗車
Zhan 問:如果 AI 更容易自動化可驗(yàn)證領(lǐng)域,哪些工作會比人們想象中更快移動?哪些看起來安全的職業(yè),其實(shí)高度可驗(yàn)證?
Karpathy 沒有直接列職業(yè)。他轉(zhuǎn)向解釋“可驗(yàn)證性”。
他的核心判斷是:
傳統(tǒng)計(jì)算機(jī)容易自動化你能寫進(jìn)代碼的東西;這一代 LLM 容易自動化你能驗(yàn)證的東西。
傳統(tǒng)軟件自動化的前提,是人能把規(guī)則精確寫出來。比如稅率計(jì)算、排序、數(shù)據(jù)庫查詢、訂單狀態(tài)流轉(zhuǎn)。只要規(guī)則清楚,就能寫代碼。
LLM 的自動化邊界不同。它不一定需要你把規(guī)則全部寫出來,但它需要某種方式判斷輸出好壞。數(shù)學(xué)題可以驗(yàn)證答案。代碼可以跑測試。某些安全問題可以通過漏洞復(fù)現(xiàn)判斷。這樣的任務(wù)能進(jìn)入強(qiáng)化學(xué)習(xí)(RL)環(huán)境:模型嘗試解題,系統(tǒng)給獎勵或懲罰,模型在大量樣本中優(yōu)化行為。
所以,模型在數(shù)學(xué)、代碼和相鄰領(lǐng)域能力提升很快,并不只是因?yàn)椤澳P驼w更聰明了”。Karpathy 認(rèn)為,這和前沿實(shí)驗(yàn)室如何訓(xùn)練模型有關(guān)。實(shí)驗(yàn)室構(gòu)造了大量可驗(yàn)證任務(wù),把它們放進(jìn)訓(xùn)練和強(qiáng)化學(xué)習(xí)流程里,模型就在這些地方形成高峰能力。
這也解釋了 LLM 的“鋸齒狀智能”(jagged intelligence):能力曲線不是平滑上升,而是有高峰和斷崖。有些任務(wù)強(qiáng)得驚人,有些任務(wù)弱得荒誕。
Karpathy 說,現(xiàn)在更好的例子是洗車題:我要去50米外的洗車店洗車,應(yīng)該開車還是走路?最先進(jìn)的模型可能會說,走路,因?yàn)楹芙_@個回答忽略了問題的關(guān)鍵:你要洗的是車,所以車必須到洗車店。
一個最先進(jìn)的模型可以重構(gòu)10萬行代碼、找到零日漏洞,卻告訴我應(yīng)該走路去洗50米外的車。
【注:零日漏洞指尚未公開或尚未修補(bǔ)的安全漏洞。】
如果一個任務(wù)落在模型訓(xùn)練和 RL 覆蓋過的能力回路里,它可能表現(xiàn)得像專家。如果落在數(shù)據(jù)分布外,即使人類覺得很簡單,它也可能出錯。
**這對使用者的要求很高。**你不能因?yàn)槟P驮诖a上很強(qiáng),就默認(rèn)它在所有工程判斷上都強(qiáng)。你也不能因?yàn)樗噶讼窜囶}這種錯誤,就斷定它整體沒用。更準(zhǔn)確的做法是:探索它的能力邊界,找出哪些任務(wù)在“能力高峰”里,哪些任務(wù)在“斷崖”旁邊。
能力不是自然進(jìn)化,和實(shí)驗(yàn)室的數(shù)據(jù)決策相關(guān)
Karpathy 提到一個細(xì)節(jié):從 GPT-3.5到 GPT-4,國際象棋能力提升非常大。很多人以為這是能力的自然進(jìn)化,但實(shí)際上是因?yàn)橛腥嗽?OpenAI 決定把大量國際象棋數(shù)據(jù)加進(jìn)了預(yù)訓(xùn)練。數(shù)據(jù)進(jìn)了分布,能力就跟著上去了。
這把一個看起來“模型變強(qiáng)”的故事,重新解釋成了一個“實(shí)驗(yàn)室在做產(chǎn)品決策”的故事。
某種程度上,我們完全受制于實(shí)驗(yàn)室給模型喂了什么數(shù)據(jù)。如果你的場景剛好落在 RL 訓(xùn)練覆蓋的“能力回路”里,模型就會帶你起飛;但一旦超出了這個數(shù)據(jù)分布,它就會覺得極其吃力。
**實(shí)操含義:**如果你的應(yīng)用場景在覆蓋的能力回路里,開箱即用;如果在外面,你需要自己做微調(diào),不要指望 LLM 一上來就會。
創(chuàng)業(yè)機(jī)會:找一個還沒被 RL 覆蓋的可驗(yàn)證領(lǐng)域
Zhan 問:如果創(chuàng)業(yè)者今天想解決一個可驗(yàn)證的問題,但大模型實(shí)驗(yàn)室已經(jīng)在數(shù)學(xué)、代碼等最明顯領(lǐng)域加速了,創(chuàng)業(yè)者該怎么辦?
Karpathy 的回答沒有給出具體賽道,但給出了一種找機(jī)會的方法。
在當(dāng)前技術(shù)范式下,可驗(yàn)證性讓一個問題變得“可解”。如果你能構(gòu)造大量、多樣的強(qiáng)化學(xué)習(xí)環(huán)境,能讓模型嘗試、失敗、獲得獎勵,那么即便大實(shí)驗(yàn)室沒有把這個領(lǐng)域作為重點(diǎn),你也可能通過自己的微調(diào)和訓(xùn)練獲得優(yōu)勢。
他說到這里時,幾乎要舉一個自己認(rèn)為很有價值的領(lǐng)域,但停住了。
我不想直接給出答案……抱歉,我不是有意在臺上發(fā)含糊推文的。
臺下笑了。
這個停頓本身也說明了他的判斷:機(jī)會不是“再做一個 AI Agent”這樣泛泛的方向,而是找到某個可構(gòu)造獎勵環(huán)境的具體問題。
他還補(bǔ)了一句更激進(jìn)的話:幾乎所有事情,最終都可能在某種程度上變得可驗(yàn)證。寫作、設(shè)計(jì)這類看似主觀的任務(wù),也可以想象用一組 LLM judges,也就是模型評審團(tuán),形成某種近似評價。
這句話需要謹(jǐn)慎理解。Karpathy 并不是說所有任務(wù)都能被完美自動驗(yàn)證。他說的是“程度”和“難易”。數(shù)學(xué)和代碼比較容易,因?yàn)榇鸢富驕y試相對明確。寫作、審美、戰(zhàn)略判斷則要困難得多。
Vibe Coding 抬高下限,Agentic Engineering 保住上限
Zhan 問:去年你提出 Vibe Coding。今天我們進(jìn)入了一個更嚴(yán)肅的世界,更像 Agent engineering。二者的區(qū)別是什么?
Karpathy 的區(qū)分非常清楚。
**Vibe Coding 抬高的是下限。**更多人可以用自然語言和 AI 做出軟件。不會寫代碼的人可以做小工具,會寫代碼的人可以更快做 side project。軟件創(chuàng)造的入口變寬了。
**Agentic Engineering 保住的是上限。**它面對的是專業(yè)軟件:不能因?yàn)橛昧?AI 就引入安全漏洞,不能因?yàn)槟P蛯懙每炀徒档唾|(zhì)量門檻,不能因?yàn)榇a是 Agent 生成的就沒人負(fù)責(zé)。
Vibe Coding 抬高的是所有人能做軟件的下限;Agentic Engineering 要保住的是專業(yè)軟件過去已有的質(zhì)量門檻。
Agentic Engineering 可以譯作“智能體工程”。它不是一個具體工具,而是一種工程紀(jì)律:如何設(shè)計(jì)、協(xié)調(diào)、監(jiān)督一組 AI Agent,讓它們在不犧牲質(zhì)量、安全、可維護(hù)性的情況下加速開發(fā)。
Karpathy 說,這些 Agent 是“spiky entities”——有尖刺的實(shí)體。它們能力很強(qiáng),但會犯錯,有隨機(jī)性,不穩(wěn)定。工程師的工作不是盲目信任它們,而是把它們放進(jìn)合適的流程里:讓它們生成方案、寫代碼、跑測試、互相檢查,讓系統(tǒng)有邊界、有驗(yàn)證、有回滾。
Karpathy 還提到一個更強(qiáng)的判斷:過去軟件行業(yè)喜歡說“10x engineer”,也就是效率遠(yuǎn)超普通人的工程師。但在 Agentic Engineering 里,他看到的加速幅度可能遠(yuǎn)不止10倍。
10x 不是你獲得的加速倍數(shù)。
真正熟練的人,能把多個 Agent、工具、測試和上下文組織起來,產(chǎn)出速度會被放大得更厲害。
AI-native 工程師:不是會刷題,而是能把大項(xiàng)目做安全
Zhan 問:如果觀察兩個使用 AI coding 工具的人,一個普通,一個真正 AI-native,區(qū)別會是什么?
Karpathy 先說,AI-native 工程師會充分利用可用工具,并投資自己的工作流設(shè)置。就像過去工程師會花時間配置 Vim、VS Code、命令行、快捷鍵和開發(fā)環(huán)境,現(xiàn)在也要花時間配置 Cursor、Claude Code 或類似工具,讓它們真正適合自己的工作方式。
但他很快把話題轉(zhuǎn)到招聘。
他認(rèn)為,很多公司還沒有重構(gòu)面試流程。如果仍然給候選人一組小 puzzle,讓他們現(xiàn)場解算法題,這還是舊范式。它測不出一個人是否會在 Agentic Engineering 里高效工作。
更好的測試應(yīng)該是大項(xiàng)目。比如讓候選人做一個 Twitter clone:不僅要能跑,還要做得好、做得安全。然后再用多個 Agent 去攻擊這個網(wǎng)站,嘗試破壞它,看看系統(tǒng)能否經(jīng)得住。
面試本該是這樣的:甩給候選人一個極大的項(xiàng)目,比如做個給 Agent 用的 Twitter 仿盤,要求做得絕對安全。然后,我掛上10個 Cursor 當(dāng)作“紅隊(duì)”,放開手腳去攻擊你做出來的這個網(wǎng)站。
**這套評估方式的核心,不是看候選人能不能手寫某個算法,而是看他能不能:**把模糊目標(biāo)變成清晰規(guī)格;指揮 Agent 完成大規(guī)模實(shí)現(xiàn);識別安全和架構(gòu)風(fēng)險(xiǎn);設(shè)置測試與驗(yàn)證;在模型生成的大量代碼里保持質(zhì)量判斷;讓最終系統(tǒng)經(jīng)得起外部攻擊和壓力。
Agent 能寫代碼,但還會把付款綁到錯誤郵箱上
Zhan 問:Agent 做得越多,什么人類技能會變得更有價值?
Karpathy 的答案是:品味、判斷、審美、監(jiān)督,以及規(guī)格設(shè)計(jì)。
他把當(dāng)前 Agent 比作實(shí)習(xí)生。這個比喻很準(zhǔn)確,但不能過度擬人化。Agent 不是真的有人類動機(jī)的員工,它只是執(zhí)行能力越來越強(qiáng),同時會在一些人類覺得顯而易見的地方犯錯。
Karpathy 舉了 MenuGen 的一個實(shí)際問題。用戶用 Google 賬號登錄,但購買 credits 時使用 Stripe 賬號。Google 和 Stripe 都有郵箱地址。Agent 在實(shí)現(xiàn)購買邏輯時,試圖用 Stripe 郵箱去匹配 Google 郵箱,把購買的 credits 歸到對應(yīng)用戶身上。
這聽起來好像合理,但在工程上是危險(xiǎn)的。一個人完全可能用一個郵箱登錄 Google,用另一個郵箱付款。如果系統(tǒng)用郵箱關(guān)聯(lián)資金,就可能出現(xiàn)購買記錄無法歸屬、資金錯配或賬戶混亂。正確做法應(yīng)該是使用系統(tǒng)內(nèi)部穩(wěn)定的 persistent user ID 來綁定用戶身份和支付記錄。
你為什么要用郵箱地址來交叉關(guān)聯(lián)資金?它們可以是任意的,你可以用不同的郵箱。這種做法太奇怪了。
這類問題沒有語法錯誤,代碼可能能跑,測試可能還過,但系統(tǒng)設(shè)計(jì)是錯的。Agent 沒有真正理解身份、支付和資金歸屬的風(fēng)險(xiǎn)。
所以 Karpathy 說,人必須負(fù)責(zé) spec,也就是規(guī)格。你要告訴 Agent:所有資金和用戶狀態(tài)必須綁定到內(nèi)部唯一用戶 ID,而不是綁定到外部郵箱。你要負(fù)責(zé)頂層設(shè)計(jì)、約束條件和判斷標(biāo)準(zhǔn)。Agent 可以填補(bǔ)實(shí)現(xiàn)細(xì)節(jié),但不能替你理解系統(tǒng)邊界。
他接著舉了一個更技術(shù)的例子。現(xiàn)在他已經(jīng)不再記 PyTorch、NumPy、pandas 之間很多細(xì)碎 API 差異,比如 keepdims 還是 keepdim,dim 還是 axis,reshape、permute、transpose 分別怎么寫。這些細(xì)節(jié)可以交給 Agent,因?yàn)槟P陀洃浐芎谩?/p>
但他仍然強(qiáng)調(diào),人必須理解底層概念。比如張量(tensor)是什么,view 和 storage 的關(guān)系是什么,什么時候只是改變同一塊內(nèi)存的視圖,什么時候會復(fù)制數(shù)據(jù)。如果不懂這些底層機(jī)制,就可能讓模型寫出低效甚至錯誤的代碼。
這給“什么值得學(xué)”提供了一個非常具體的答案:**細(xì)節(jié)可以外包,理解不能外包。**API 名稱可以忘,但概念結(jié)構(gòu)不能丟。
模型寫出的代碼能跑,但有時“很丑”
Zhan 追問:taste 和 judgment 會不會隨著模型進(jìn)步而越來越不重要?
Karpathy 沒有把話說死。他希望模型會進(jìn)步,也認(rèn)為沒有什么根本原因阻止它們在品味、審美和簡潔性上變好。但他指出,至少現(xiàn)在,這些能力還沒有被很好地訓(xùn)練出來,可能因?yàn)樗鼈儧]有進(jìn)入足夠好的 RL 獎勵環(huán)境。
他看模型生成的代碼時,有時會“心臟病發(fā)作”。代碼能跑,但不一定好。它可能很臃腫,有很多復(fù)制粘貼,有別扭的抽象,結(jié)構(gòu)脆弱,維護(hù)起來很難。
有時我看到它寫出來的代碼,會有一點(diǎn)心臟病發(fā)作的感覺。它能跑,但真的很惡心。
他還提到 MicroGPT 項(xiàng)目。他想把 LLM training 簡化到極致,讓訓(xùn)練過程盡可能小、清晰、可理解。他不斷要求模型“再簡化一點(diǎn)”,但模型做不到。那種感覺像“拔牙”一樣困難。
我不斷地讓 LLM“再簡化一點(diǎn)”,它就是做不到。你能感覺到你在 RL 回路之外。就像在拔牙。
Karpathy 的解釋是,這個任務(wù)可能走出了模型被 RL 覆蓋的能力回路。模型擅長生成常見工程形態(tài),卻不擅長極簡、克制、優(yōu)雅的抽象壓縮。
我們不是在造動物:Karpathy 說我們召喚的是“幽靈”
Zhan 問:你寫過一篇關(guān)于 animals vs ghosts 的文章,核心意思是我們不是在造動物,而是在召喚幽靈。這個框架為什么重要?
Karpathy 說,他寫這篇文章,是因?yàn)樽约阂苍谠噲D理解這些模型到底是什么。如果你對模型是什么有一個更好的心智模型,你就會更擅長使用它。
“幽靈”這個詞聽起來神秘,但 Karpathy 的意思并不玄學(xué)。他是在對比兩種智能來源。
動物智能來自進(jìn)化、身體、環(huán)境互動、內(nèi)在動機(jī)、好奇心、樂趣、持續(xù)學(xué)習(xí)。動物會在世界中行動,被后果塑造,會在生命過程中不斷適應(yīng)。
LLM 不是這樣。今天的前沿 LLM,首先來自大規(guī)模預(yù)訓(xùn)練:模型在海量人類文檔上學(xué)習(xí)統(tǒng)計(jì)結(jié)構(gòu)。然后再疊加強(qiáng)化學(xué)習(xí)、偏好數(shù)據(jù)、工具調(diào)用等后訓(xùn)練過程。它們不是動物式智能,而是由人類文檔、統(tǒng)計(jì)模式和獎勵函數(shù)塑造出的模擬實(shí)體。
在訪談里,他把這個比喻落到一個很樸素的使用原則上:**不要把 LLM 當(dāng)動物。**你對它大喊大叫,不會讓它因?yàn)楹ε露ΑD愎膭钏膊皇窃诩ぐl(fā)它的內(nèi)在動機(jī)。模型沒有動物式情緒。它的行為來自統(tǒng)計(jì)模擬、上下文、工具、訓(xùn)練數(shù)據(jù)和獎勵機(jī)制。
如果你對它大吼,它不會因此工作得更好或更差,也沒有任何影響。
Karpathy 也承認(rèn),“幽靈”框架有哲學(xué)化的一面。他沒有說它能直接產(chǎn)出五條系統(tǒng)優(yōu)化建議。它更像一種防止誤用的提醒:不要籠統(tǒng)地問“AI 聰不聰明”,要問它在哪些訓(xùn)練分布里強(qiáng),哪些獎勵信號塑造了它,在哪些任務(wù)上可能出現(xiàn)鋸齒狀斷崖。
Agent-first 基礎(chǔ)設(shè)施:一句話構(gòu)建并部署 MenuGen
Zhan 問:當(dāng) Agent 不只聊天,而是擁有權(quán)限、本地上下文,并能代表人采取行動時,世界會變成什么樣?
Karpathy 說,幾乎一切都要重寫。今天的工具、文檔、服務(wù)和設(shè)置流程,仍然主要是為人設(shè)計(jì)的。
比如一個框架的文檔會告訴你:去某個 URL,點(diǎn)擊某個設(shè)置,復(fù)制某個 key,打開某個菜單,配置某個 DNS。Karpathy 的反應(yīng)是:為什么還在告訴我該怎么做?我不想做這些事。我想知道的是,哪一段東西可以復(fù)制給我的 Agent,讓它自己去做。
為什么還有人在告訴我該做什么?我什么都不想做。“給我復(fù)制粘貼給 Agent 的東西是什么?”
這不是懶,而是范式變化。Agent-first infrastructure 的目標(biāo),是把世界拆成 Agent 能讀懂的輸入,以及 Agent 能安全調(diào)用的動作接口。
在軟件基礎(chǔ)設(shè)施里,這意味著文檔、API、權(quán)限、日志、部署、配置、賬單、回滾,都要變得更適合 Agent 使用。不是讓 Agent 模擬人去點(diǎn)網(wǎng)頁,而是讓 Agent 直接理解狀態(tài)、調(diào)用動作、收到反饋。
Karpathy 又回到 MenuGen。他說,做 MenuGen 最麻煩的部分其實(shí)不是寫代碼,而是部署:在 Vercel 上部署,連接各種服務(wù),進(jìn)入不同設(shè)置頁面,配置 DNS,把所有東西串起來。
他希望未來的測試標(biāo)準(zhǔn)是:給 LLM 一句 Build MenuGen,它不僅能寫代碼,還能完成部署,上線到互聯(lián)網(wǎng),配置好依賴服務(wù),而且整個過程不需要人去一個個菜單里操作。
更遠(yuǎn)一點(diǎn),他設(shè)想每個人、每個組織都可能有自己的 Agent representation。以后安排會議、處理細(xì)節(jié)、協(xié)調(diào)事項(xiàng),可能變成“我的 Agent 和你的 Agent 去談”。
智能變便宜后,最貴的是理解
Zhan 最后問:當(dāng)智能變得便宜,什么仍然值得深入學(xué)習(xí)?
Karpathy 引用了一句話:
你可以外包你的思考,但不能外包你的理解。
這句話容易被寫成勵志格言,但 Karpathy 的解釋很具體。
他仍然是系統(tǒng)的一部分。信息必須進(jìn)入他的腦子里。他覺得自己正在變成瓶頸:要知道到底在建什么,為什么值得做,怎樣指導(dǎo)自己的 Agent。思考步驟可以讓模型跑很多遍,但如果人沒有理解,就無法判斷哪條路線是對的,無法寫出好的規(guī)格,也無法發(fā)現(xiàn) Agent 在身份綁定、系統(tǒng)結(jié)構(gòu)、代碼質(zhì)量上的錯誤。
我感覺自己正在變成瓶頸:我要知道我們到底在建什么,為什么值得做,以及怎樣指導(dǎo)我的 Agent。
這也是他對 LLM knowledge bases 感興趣的原因。他喜歡把文章、資料、事實(shí)重新投影成 wiki,因?yàn)椴煌男畔⒔M織方式能幫助他獲得洞見。對他來說,這不是讓 AI 代替理解,而是用 AI 增強(qiáng)理解。
這一點(diǎn)和前面的工程例子連在一起:
Agent 可以記 API 細(xì)節(jié),但人要理解 tensor、view、storage 和內(nèi)存效率;
Agent 可以寫支付邏輯,但人要理解用戶身份和資金歸屬;
Agent 可以生成大量代碼,但人要判斷抽象是否臃腫、結(jié)構(gòu)是否脆弱;
Agent 可以幫你思考很多方案,但人要知道目標(biāo)是否值得做。
所以,**智能變便宜之后,學(xué)習(xí)不是不重要了,而是學(xué)習(xí)的重心變了。**更少時間花在機(jī)械記憶和低層執(zhí)行上,更多時間花在系統(tǒng)理解、問題定義、質(zhì)量判斷、因果關(guān)系和領(lǐng)域直覺上。
Q&A 速覽
問:2025年12月發(fā)生了什么? 答:最新模型生成的代碼不需要修改了,可靠性在持續(xù)的項(xiàng)目中也保持住了。
問:Software 3.0和以前有什么不同? 答:以前的代碼處理結(jié)構(gòu)化數(shù)據(jù),現(xiàn)在你可以處理任意信息。以前做不了的東西現(xiàn)在可以了。這不是加速,是新的可能性。
問:為什么最先進(jìn)的 AI 模型在簡單任務(wù)上犯低級錯誤? 答:能力分布取決于 RL 訓(xùn)練覆蓋的領(lǐng)域和實(shí)驗(yàn)室的數(shù)據(jù)選擇。可驗(yàn)證的領(lǐng)域能力飆升,其余領(lǐng)域可能很弱。
問:Vibe Coding 和 Agentic Engineering 的區(qū)別? 答:Vibe Coding 是提升所有人的下限,Agentic Engineering 是保持專業(yè)標(biāo)準(zhǔn)的前提下利用 Agent 加速。
問:什么時候人的品味和判斷會不重要? 答:可能會,但前提是實(shí)驗(yàn)室把審美獎勵納入 RL 訓(xùn)練目標(biāo)。目前 Agent 的代碼經(jīng)常“能跑但很難看”。
【最后】
這場訪談里,Karpathy 的判斷有幾個值得注意的張力。
第一,他一邊說 Agent 寫出的代碼丑得讓他心臟病發(fā)作,一邊說他自己已經(jīng)停止修改了。“信任并沒有解決品味的問題”——能跑的代碼和好代碼不是一回事。可這種“用著丑的,但用著”的狀態(tài),可能比任何 hype 都更接近真實(shí)的 Vibe Coding 現(xiàn)狀。
第二,他暗示有“被低估的 RL 機(jī)會”領(lǐng)域卻不愿公開。一個不愿在臺上發(fā)含糊推文的人主動回避,本身是個信號:窗口期還沒關(guān)。值得注意的是,他的公司 Eureka Labs 做的是 AI 教育,而教育恰好是一個輸出可以被評估、可以被標(biāo)準(zhǔn)化考核的領(lǐng)域。
第三,他給“動物 vs 幽靈”這個框架自己降了級別,又用“你可以外包思考,但不能外包理解”給整場對談收束。把這兩件事放在一起讀:他的判斷是,**真正稀缺的不是任何一個具體技能,而是判斷“我們到底要做什么、為什么值得做”的能力。**如果“幾乎所有領(lǐng)域最終都能被驗(yàn)證”這個判斷成立,那么瓶頸最終不在執(zhí)行端,而在目標(biāo)設(shè)定端。
但這里有一個隱含的時間問號。Karpathy 自己也承認(rèn),品味和判斷之所以暫時不可替代,原因只是“實(shí)驗(yàn)室還沒做”。如果這個判斷成立,那么所謂人類不可替代的部分,不是因?yàn)槿祟惇?dú)一無二,而是因?yàn)橛?xùn)練方法還沒到位。這就把“外包思考但不能外包理解”這句話的有效期打了一個問號。
未來6-12個月值得盯三個具體信號:
前沿實(shí)驗(yàn)室在編程/數(shù)學(xué)之外,往哪些領(lǐng)域注入 RL 數(shù)據(jù)——那里的能力會突然冒出來
Agent-first 的基礎(chǔ)設(shè)施(部署、auth、payments)會不會有第一波收斂——MenuGen 部署的痛苦如果還在,“自動化社會”的路就長得多
模型的下一代更新是否包含審美和代碼質(zhì)量相關(guān)的 RL 目標(biāo)
原始視頻:
https://www.youtube.com/watch?v=96jN2OCOfLs
特別聲明:以上內(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.