AI爆發不會帶來GDP爆漲!AI大神罕見暴論:強化學習糟透了!互聯網數據很爛! 原創
編輯 | 云昭
出品 | 51CTO技術棧(微信號:blog51cto)
“現在的互聯網訓練數據爛到離譜!”
“強化學習遠比人們想象要糟糕得多!”
“AGI 仍然還有十年之遙!現在我們只不過是具備了搭建智能體的基礎”
這可以說是Karpathy今年以來對于大模型進展現狀最尖銳的批評,沒有之一。
幾個小時前,AI大神Karpathy的最新的一場播客訪談,又被公開了出來。這場播客的背景非常新,前兩天,他的第一個教育項目:nanochat刷屏國內外。
訪談中,他幾乎直接宣判:“強化學習是愚蠢的噪聲放大器”,并提到:
未來 LLM 訓練需要“反思型監督”“自評機制”以及“元學習式迭代”的全新范式。
不止強化學習,大神還直截了當的批評了預訓練模型:預訓練就是一場“劣質的進化”。
Sutton(強化學習之父)在訪談中講過一個關鍵點:進化并不會直接給我們“知識”,而是給我們找到知識的算法。這一點與預訓練似乎不同。
對于今年尤其大火的智能體,Karpathy也給出了自己的看法:如果模型少一些知識、少一些記憶,可能反而會表現更好。
前沿實驗室的目標是“讓模型有用”,而輸出多樣性往往反而麻煩——評估困難、穩定性差,而且未必帶來額外價值。
當然,大神對于未來AGI依舊保持樂觀,全棧推進的趨勢已經不可阻擋。
(模型的)架構、優化器、損失函數,全都得改進。這種“全線推進”的趨勢一直存在,我預計未來也會如此。
此外,十年之遙的不止智能體,在特斯拉領導五年的Karpathy,認為自動駕駛同樣也遠遠沒有到來,而是一場“九的征程”,而軟件工程領域則更為艱巨。
此外大神還認為,任何一次產業革命,本質上只是一場自動化的延續,并不會在GDP上帶來突然的躍遷。
提及自己的新項目nanochat,大神還自曝了不少開發細節。比如他表示:這個項目,編程模型基本幫不上任何忙。因為大模型存在認知缺陷:LLM只懂互聯網上已存在的內容,而自己要做的卻是一個全新的項目;再比如,他還用Rust自己重寫了一個tokenizer,當然這部分用到了大模型幫忙(因為Rust不太熟悉)。
總之,這場播客,可以說從真正一線的、頂尖研究大神的視角為大家做了最為深刻的解讀。
小編為大家整理好了干貨,希望能幫助到大家。篇幅較長,建議收藏細讀。
圖片
AGI 仍然還有十年之遙
Dwarkesh Patel(主持人)今天我邀請到了 Andrej Karpathy。Andrej,你為什么說“這是智能體的十年”,而不是“智能體之年”呢?
Andrej Karpathy首先感謝邀請,我很高興能來。
你剛才提到的那句話——“這是智能體的十年”——其實是我對一句流行說法的回應。我不確定是誰最早說的,但那句話是說,“今年是智能體之年”,是指大語言模型的發展方向。
我聽到這話的時候有點被“觸發”了——因為我覺得這個行業有點過度預測。在我看來,更準確的說法是:這是“智能體的十年”,而不是“智能體的一年”。
現在我們確實已經有一些非常驚艷的早期智能體,我每天都在用,比如 Claude、Codex 等。但我仍然覺得,離真正能“工作”的智能體還有很長的路。我的反應是:未來十年我們都會與這些agents打交道,它們會越來越強大,也會越來越好用。這會是一個漫長但精彩的過程。
Dwarkesh Patel那你覺得,究竟有哪些事情需要花十年才能實現?瓶頸在哪?
Andrej Karpathy瓶頸在于——讓它真的能“工作”。當我們說“智能體”,不論是實驗室里的想法還是我自己的想法,都更像是你雇來的員工或實習生。你想象一下,比如你有一位助理,那什么時候你會希望讓 Claude 或 Codex 來替代他?
現在當然還不行。那要怎么做才能行?為什么現在不能?
答案很簡單:它們還“不夠聰明”。它們還不夠多模態,不能真正操作電腦,也不能持續學習。你不能像對人一樣告訴它一件事,它就能長期記得。它們的認知結構還太原始,還不“管用”。所以,我覺得要讓這些問題都被解決,大概需要十年。
Dwarkesh Patel有意思。作為一個播客主持人和AI觀察者,我也能感受到缺陷——比如缺乏持續學習、多模態不足。但我完全沒法判斷時間尺度。
“持續學習”到底要花5年、10年,還是50年?你為什么覺得是“十年”?為什么不是一年或五十年?
Andrej Karpathy這就得談到我的直覺和經驗了。我在AI領域差不多快二十年了,嚴格來說大概十五年。這期間我見過太多預測,也見過它們的結果。我在學術界做過研究,也在工業界做過產品。我大概能形成一種對AI進展速度的本能感覺:這些問題是可解的、可攻克的,但仍然很難。平均下來——我覺得十年是合理的尺度。
現在我們只是具備搭建智能體的基礎
Dwarkesh Patel挺有意思的。我不僅想聽“歷史”,還想知道,當時身處那些突破時刻的人,心里是怎么想的?他們是過度悲觀,還是過度樂觀?我們要不要一一梳理?
Andrej Karpathy這問題太大了(笑)。因為你在問整整十五年的AI變遷。AI這個領域之所以精彩,是因為它經歷過幾次“地震級的轉向”——整個領域突然換了方向。我自己親歷過兩三次。未來還會繼續有,因為這種轉向幾乎是周期性的。
我職業生涯開始時,恰好在多倫多大學,身邊就是 Geoff Hinton——他是“AI之父”之一。那時候他在訓練神經網絡,我覺得這太有意思了。但當時這還是AI領域的“小眾支流”。第一個大轉折是 AlexNet(2012),那讓整個領域都開始用神經網絡。
不過那時的深度學習還停留在“單任務”階段,比如圖像分類、機器翻譯。后來大家慢慢開始想:視覺搞定了,那下一步是不是該去做“能在世界中行動的智能體”?
于是出現了 2013 年的 Atari 深度強化學習(Deep RL),那是早期“智能體”嘗試。想讓AI不僅能“看世界”,還能“行動”,從環境中獲得反饋。
但我認為那其實是一次誤判。包括早期的 OpenAI(我當時在里面)也受此影響——那時全行業都在搞強化學習、打游戲、拿高分。我覺得那是一次“集體跑偏”。
我自己當時在做一個叫 Universe Project 的項目,想讓AI通過鍵盤鼠標操作網頁,成為真正的“數字世界智能體”。但事實證明,那時候太早了。因為當時的模型“看不懂”環境,獎勵太稀疏,計算又爆炸,學不動。我們缺的,是“表征能力”(representation power)。現在的“電腦可用智能體”能做事,是因為它們是建在大語言模型之上的。必須先有語言模型,先有表征,才能再去搞智能體。
所以,我覺得AI的三大階段是:任務級神經網絡(per-task nets);第一代智能體嘗試(Atari、Universe);大語言模型(LLM)帶來的表征突破。現在我們才真正具備去“搭建智能體”的基礎。
人類并不靠RL學習
Dwarkesh Patel有意思。如果按照 Sutton(強化學習之父)的觀點,人類或動物并不是分步學的,而是一次性在復雜環境中學習。那為什么不讓AI也像動物一樣,從感知數據出發,自主理解世界?
Andrej Karpathy好問題。我看過你對 Sutton 的訪談,也寫過回應。我對“類動物”的類比非常謹慎,因為動物是進化出來的,而不是訓練出來的。比如斑馬——出生幾分鐘就能跑。那不是強化學習能做到的,那是基因里寫好的權重。進化某種程度上就是在“編碼神經網絡的初始權重”。但我們不是在運行進化算法,我們是在訓練模型。
所以我說,我們不是在造動物,而是在造“幽靈”(ghosts)或“靈體”(spirits)。它們不是通過生存競爭進化出來的,而是通過模仿人類互聯網數據“訓練”出來的。
當然,我們也可以慢慢讓它們更像動物,具備更多先天機制。Sutton的想法——如果真能造出那種“單一算法學會一切”的動物,那當然太棒了,但我不確定這存在。進化的“外循環”我們沒法復現。動物的大部分“學習”,其實是成熟過程,而非強化學習。人類的智力活動,也不是靠RL學的。
Dwarkesh Patel等等,你剛才說人類不靠RL學習?
Andrej Karpathy對。我認為人類的強化學習部分更多體現在“動作技能”上,比如扔圈、走路這類。但在解決問題、推理這類“智力任務”上,人類并不依賴強化學習。
Andrej Karpathy在我看來,強化學習在人類中更多對應于一些運動類的技能,比如扔圈、行走、伸手抓東西這種簡單動作。但我認為,人類在解決問題、推理等高層次智力活動中,其實并不是通過強化學習完成的。當然,這并不意味著強化學習研究沒有價值——只是我覺得,那更多是動物的學習方式,而不太像人類的智能模式。
預訓練是劣質的進化
Dwarkesh Patel這個觀點挺多層的,我得消化一下(笑)。我想換個角度來確認我理解對不對:你之前說,“進化”做的事情,其實有點像“預訓練”的角色——它先構建出一個能夠理解世界的系統。但區別是:進化能用的“存儲空間”極其有限——人類基因只有大約 3GB 的 DNA 信息。而神經網絡的權重可遠比那多。DNA 并不直接存儲所有突觸的連接信息——那在基因里是不可能裝下的。
所以,進化似乎更像是在找到一種算法,而不是直接“寫入知識”;這個算法隨后會在個體的一生中去學習。或許“終身學習”這個部分并不等同于強化學習,正如你說的。那這種理解與你的看法一致嗎?還是有不同?
Andrej Karpathy我同意這種說法。確實,生物體內存在著某種驚人的壓縮機制。神經網絡的權重顯然不可能直接被寫在 ATCG(DNA堿基)序列里;
所以 DNA 里一定編碼了一些學習算法,在個體成長過程中逐步接管并進行在線學習。這一點我完全同意。
不過,我個人的出發點更務實一些。我并不是想“重造動物”,而是想造出有用的東西。我帶著安全帽來干活(笑)——我知道我們做不了進化,因為沒人知道該怎么做。
但我們可以通過另一種方式,構建出像幽靈一樣的智能體:通過模仿互聯網文本。這方法是有效的。它能訓練出一個擁有大量內置知識與智能的系統,某種意義上類似于進化造出的有機體。
所以我稱“預訓練”為一種“劣質的進化”(crappy evolution)。這是我們現有技術條件下的可行版本。它能把模型帶到一個不錯的起點,然后我們再用強化學習等手段進行進一步訓練。
Dwarkesh Patel為了幫“另一派”說得更清楚一點,我想提出一個可能的反駁。Sutton(強化學習之父)在訪談中講過一個關鍵點:進化并不會直接給我們“知識”,而是給我們找到知識的算法。這一點與預訓練似乎不同。
當然你可以說,預訓練其實讓模型學會了“如何更好地學習”——它教的是元學習(meta-learning)。如果是這樣,那確實與進化尋找算法類似。但如果說“進化給予知識,預訓練也給予知識”,那這個類比就不太成立。
Andrej Karpathy這是個很好的推敲。你說得沒錯,問題的確微妙。我認為,預訓練其實在同時做兩件事:
第一,它確實在吸收知識——我們訓練一個“預測下一個詞”的模型,它會記住互聯網上的各種信息。第二,它也在變得智能。
通過觀察互聯網上的算法性模式,模型內部自發地產生了許多小的“電路”和“算法”——這些讓它能在上下文中學習等。
我甚至覺得,這個過程里的“知識”部分反而可能拖累了智能的發展。因為模型有時太依賴已有知識,而缺乏探索能力。
比如現在的agents,它們很難跳出“互聯網數據流形(data manifold)”去思考新的情況。如果模型少一些知識、少一些記憶,可能反而會表現更好。
所以我覺得,未來研究方向之一,就是找辦法去掉部分知識,只保留我稱之為“認知核心(cognitive core)”的部分。這個核心不再包含冗余事實,而只包含智能的算法本身:學習策略、問題求解機制、推理結構……那才是“智慧”的本質。
上下文學習是一種模式補全
Dwarkesh Patel這段太精彩了。那我們先從“in-context learning(上下文學習)”說起吧。我想強調一個顯而易見但很值得反思的點:當這些模型看起來最聰明的時候,是當它們能在對話中意識到自己出錯、糾正思路的時候。
比如我說點什么,它會反應:“等等,我剛才的想法不對,我換種方式思考。”這種“在上下文中學習和調整”的過程,正是讓我們感覺它在“思考”的來源。
這種上下文學習,是在預訓練階段通過梯度下降自然涌現出來的——模型在訓練時自發地學會了元學習。但上下文學習本身并不是在做梯度下降。正如人類一樣——我們的大腦受進化影響,但我們一生中的學習,是通過另一種機制完成的。
Andrej Karpathy 我不完全同意(笑),但你先繼續說。
Dwarkesh Patel哈哈,那我很好奇——你覺得類比哪里不成立?
Andrej Karpathy我不太愿意說“上下文學習不是梯度下降”。它確實不是顯式的梯度下降(explicit GD),但它是一種模式補全(pattern completion)。
也就是說,模型會在一個 token 窗口里去完成模式。互聯網上有大量重復的模式——它學會了如何延續這些規律。
所以,本質上模型的權重就是在尋找并補全模式。而這種模式補全,有時會在網絡內部產生某種“自適應更新”,就像是在做小規模的內部梯度下降一樣。
我看過幾篇非常有意思的論文,有些實驗證明:在“上下文學習”過程中,模型內部確實可能在隱式地執行一個小型梯度下降循環。
舉個例子,有篇論文讓模型學習“線性回歸”任務:輸入一系列 (X,Y) 對,這些點在同一條直線上。然后輸入新的 X,讓模型預測 Y。當他們分析網絡內部機制時,發現模型在做的事情,和線性回歸的梯度下降過程非常相似:它在計算誤差、調整“內部表示”,就像在內部自己做了幾步梯度更新。
甚至后來有研究直接手工硬編碼了一個神經網絡,讓它通過注意力機制實現梯度下降算法。這說明,上下文學習內部確實可能運行著某種微型優化循環。
所以,我只是想說:我們其實不知道上下文學習的內部機制到底是什么,但我猜,它可能真的在做一點類似梯度下降的事。也就是說,它并非完全不是,只是“以另一種形式”在做。
Dwarkesh Patel那我們可以思考一個問題:既然上下文學習和預訓練都可能在執行某種梯度下降,為什么上下文學習會讓人感覺到“真正的智能”與“持續學習”,而預訓練不會?如果底層算法類似,那區別在哪?
比如我們可以看“信息密度”的差異:以 Llama 3 為例,它訓練了 15 萬億個 token。70B 參數的模型,相當于每看到一個 token,只“記住”約 0.07 bit 的信息。
而在上下文學習中,比如 KV 緩存,每增加一個 token,大概要增加 320KB 的緩存。這意味著——每個 token 被“吸收”的信息量差了約 3500 萬倍。也許這就是兩者感覺不同的原因?
模型記住的互聯網模糊記憶
Andrej Karpathy 我基本同意。我常用的比喻是:在訓練階段中,模型記住的只是對互聯網的“模糊回憶”(hazy recollection)。因為壓縮太劇烈了——你把 15 萬億個 token 壓進一個只有幾百億參數的網絡里。所以它對世界的記憶是模糊的。
而在推理階段(test-time)——也就是上下文窗口里,你輸入的 token 和 KV 緩存,是直接可訪問的工作記憶(working memory)。模型能立刻讀取和利用這些信息。
這種區別其實和人類非常像:
- 網絡權重 = 長期記憶(模糊、壓縮);
- KV 緩存 = 工作記憶(即時、可操作)。
比如你問模型一本書的內容,它可能給出模糊的總結;但如果你把整章文字貼進去再問,它立刻能回答得更好——因為那部分信息此時就在它的“工作記憶”里。
所以,我同意你的觀點。也正因為這種結構,我們才發現LLM 與人類認知的類比之驚人相似。我們并不是刻意模仿大腦,但結果自然地演化出了類似機制。
Dwarkesh Patel回到人類智能這個話題——在人類智能中,有哪一部分是我們到現在還最沒能在模型中復現的?
Andrej Karpathy
有很多方面都還沒做到。也許可以這樣想——雖然這種類比并不完美——我們偶然間發現了 Transformer 神經網絡,它極其強大、非常通用。無論是音頻、視頻還是文本,只要給它數據,它就能學習出模式,而且效果極好。這幾乎說明 Transformer 就像是一塊“大腦皮層組織”,因為皮層的特性就是極度可塑。你可以重新連接大腦的部分區域——有些略顯殘忍的實驗曾把視覺皮層接到聽覺皮層上,那些動物依然能學會正常感知。所以我認為 Transformer 更像是大腦皮層。
而當我們在神經網絡中加入推理和規劃,比如通過“思維模型”來實現推理軌跡時,這部分更像前額葉皮層。可以說這些是我們“打勾”的部分,但還有許多腦區和神經核團是尚未探索的。比如基底神經節,對應我們在模型中用強化學習做的微調;但海馬體在哪兒?不明顯。也許有些部分并不重要,比如小腦可能對認知作用不大,那就可以略過。但我認為像杏仁核那樣的區域——情緒、本能所在——還有許多非常古老的腦區,我們還沒復制出來。當然,我也不認為我們需要去“造人腦的模擬體”。我本質上是個工程師。換句話說,這種東西你現在還不能雇來當實習生,因為它缺失了很多能力——正如我們在和模型對話時能直覺感受到的那種“認知缺陷”。所以它還遠沒完全到位。你可以說,是因為我們還沒把所有腦區都“打勾”完。
Dwarkesh Patel
這也許與另一個問題相關——我們該如何看待這些問題被解決的速度?
有些人認為“持續學習”(continual learning)其實很容易實現,就像“上下文學習”是在預訓練過程中自發涌現的一樣,只要模型在更長的時間范圍內被激勵去記憶、去回溯,它也會自然地涌現出長期學習的能力。比如如果外層有一個強化學習循環,包含多個會話,那么模型可能會自發地學會在多個會話之間微調自身、或者寫入外部記憶等機制。你覺得這種情況有多大的可能?
Andrej Karpathy
我不太認同這種看法。這些模型在“啟動”時,窗口里是零個 token——它每次都是從頭開始的,所以我很難想象那種機制該怎么工作。如果借用人類作類比——只是為了讓討論更具體——我覺得清醒時的大腦也在不斷積累“上下文窗口”,記錄當天發生的事;但當我睡覺時,會發生某種神奇的過程,我并不認為白天的上下文會原樣保留,而是被“蒸餾”進了大腦的權重中。這種“蒸餾”在睡眠中完成。而大型語言模型目前沒有對應的機制——這正是它們缺失“持續學習”的關鍵。
它們不會在經歷后進入一個反思、分析、生成合成數據、再把知識蒸餾回權重的過程。未來我們可能會為每個用戶創造一個特定的神經網絡個體,也許只是一個 LoRA,而非全模型,只修改權重的稀疏子集。
我們確實需要能創建“個體”的方法——不僅僅是擴大上下文窗口,而是通過某種稀疏注意力機制保留長程記憶。當然,人類顯然擁有某種極其復雜的稀疏注意力結構——我覺得現在我們已經看到一些早期跡象。比如 DeepSeek v3.2 就引入了稀疏注意力,這是實現超長上下文的一種方式。所以我覺得我們正在以完全不同的路徑,重新發明進化在認知中積累的許多“技巧”,最終會在認知結構上收斂到類似的架構。
十年后,或依然是梯度下降,依然是Transfromer
Dwarkesh Patel
十年后你覺得它仍然會是類似 Transformer 的結構,只是注意力更稀疏、MLP 更優化?
Andrej Karpathy
我喜歡從“時間上的平移不變性”角度來看這個問題。十年前,也就是2015年,我們主要還在用卷積神經網絡,ResNet 剛剛出現。雖然和現在相比架構有些不同,但核心理念相似。當時 Transformer 還不存在,后來的各種改進更是沒有。按這種時間等價推測,十年后我們大概仍然會訓練巨大的神經網絡,用正反向傳播和梯度下降更新參數——只是規模和細節不同。
我曾做過一個實驗,重現 Yann LeCun 1989 年的卷積網絡——那是第一個用梯度下降訓練的現代神經網絡,用于手寫數字識別。我想看看如果“穿越”三十多年,現代技術能帶來多大改進。結果我發現,只靠算法改進,我能把誤差減半;但想進一步提升,就必須增加數據量、提升算力、優化訓練過程(比如加 dropout、正則化等)。
換句話說,算法、數據、算力、系統優化,這些因素必須同時進步,而且它們的貢獻始終相對均衡——沒有哪個單項壓倒性領先。這種趨勢已經延續很久。
所以回答你的問題:算法上肯定會不同,但整體上依然是“用梯度下降訓練的大規模神經網絡”。這點我很確定。
Dwarkesh Patel
三十年的進步只把誤差減半,這似乎挺意外的……也許減半已經很多了?畢竟誤差減半代表——
Andrej Karpathy
減半確實意義重大。但讓我震驚的是——所有方面都得同步提升:架構、優化器、損失函數,全都得改進。這種“全線推進”的趨勢一直存在,我預計未來也會如此。
Dwarkesh Patel
我正想問類似的問題——關于你最近寫的 nanoGPT / nanochat。既然你剛寫完,整個構建 ChatGPT 的過程在你腦海里還是“熱緩存”狀態。我很好奇,你在這過程中有沒有什么意外的體會?
Andrej Karpathy
你是說構建 nanochat 嗎?是的,這是我最近開源的一個項目,大概是昨天或前天發布的吧。
Dwarkesh Patel
(笑)看得出你為它犧牲了不少睡眠。
Andrej Karpathy
哈哈,是的。它的目標是做一個最簡單但完整的端到端 ChatGPT 克隆,涵蓋整個流程,不只是某個模塊。我之前發布過很多單獨的代碼片段來展示算法原理,而這個項目整合了所有環節。我其實沒有在過程中學到新東西,因為這些都已經在我腦子里。這更像是一次“機械化實現”,并讓它足夠干凈、易懂,方便他人學習。
Dwarkesh Patel
那學習它的最佳方式是什么?刪掉全部代碼重新寫?還是在原基礎上改動?
Andrej Karpathy
好問題。它大約有8000行代碼,覆蓋整個訓練和推理管線。我建議:如果你有雙屏顯示器,把項目放右邊,從零開始自己寫一遍——可以參考,但絕不能復制粘貼。這樣才是真正的學習。當然,這個項目本身已經相當龐大,當你真正寫代碼時,不是從上到下線性構建的,而是以“模塊為單位”逐步擴展,這個構建過程目前還沒呈現出來。我計劃之后做個視頻,把這部分講清楚。總之,不允許復制粘貼,只能自己實現。我一直相信費曼的那句話:“如果我不能從頭構建它,我就不理解它。”真正的理解來自動手構建,而不是寫博客或做幻燈片。只有讓代碼跑起來,你才算真正理解。否則,那只是“以為自己懂”。
NanoChat:編程模型幫不上忙,因為有“認知缺陷”
Dwarkesh Patel
你曾發推說,在寫這個項目時,編程模型幾乎幫不上忙。我很好奇為什么?
Andrej Karpathy
我大概花了一個多月的時間搭建了這個代碼倉庫。我覺得目前人們與代碼交互的方式大致可以分為三類。
第一類是完全拒絕使用大語言模型(LLM)的人,他們仍然從零寫代碼——這種做法在今天可能已經不太合適了。
第二類是我現在所處的狀態:仍然從零寫不少代碼,但會使用模型提供的自動補全功能。當你開始寫一小段代碼時,模型會自動補全,你只需輕點通過。大多數時候它是對的,有時不對你再改改。但總體來說,你仍然是代碼的“建筑師”。
第三類就是所謂的“氛圍編程”(vibe coding):“嗨,請幫我實現這個或那個”,然后按回車,模型就幫你寫出來——這其實就是 Agent 的工作方式。
我認為agents確實能在一些特定場景下很好地工作,我也會在特定情況下使用它們。但這些只是工具,你必須了解它們擅長什么、不擅長什么,以及何時該用。比如,Agent 非常適合處理樣板代碼(boilerplate code)——那些復制粘貼式的、在互聯網上出現頻率很高的任務,因為模型的訓練集中有大量類似的例子,它們在這些任務上表現不錯。
但我會說,nanochat 不是這種情況。它是一個相當獨特的倉庫,我的代碼結構方式在互聯網上幾乎沒有參考。它不是樣板代碼,而是“智力密集型”代碼,一切都必須非常精確地排列。而模型存在很多認知缺陷。舉個例子,它們經常誤解我的代碼,因為它們記住了太多“互聯網標準寫法”,而我并沒有遵循那些。我不確定要不要細講細節,但它們總是以為我在寫普通的代碼,而我不是。
Dwarkesh Patel能舉個例子嗎?
Andrej Karpathy比如我有八張 GPU,都在進行正向傳播和反向傳播。常規做法是用 PyTorch 的 Distributed Data Parallel(DDP)容器來同步梯度。DDP 會在反向傳播時自動進行通信與同步。但我沒有用 DDP——因為我不需要,我自己在優化器的步驟中寫了同步邏輯。模型卻老是試圖讓我用 DDP,它們對此非常執著。雖然這聽起來很技術細節,但我不需要那個容器,因為我有自己的實現。
Dwarkesh Patel它們就是無法理解你已經有自己的版本?
Andrej Karpathy對,它們就是過不去這一關。它們會一直破壞我的代碼風格,過于防御性,加上一堆 try-catch 語句,硬要讓我寫成生產代碼。而我的代碼里有一些假設條件是沒問題的,我不需要那些多余的結構。結果就是——它們讓代碼變得臃腫、復雜,誤解頻繁,還老用過時的 API。總的來說,這樣的幫助是“凈負效用”的。我當然可以進去清理它,但整體上并不值得。
另外,我也覺得用英語輸入我要寫的東西很煩——太啰嗦了。相比之下,如果我直接定位到我要修改的代碼區域,開始打幾個字母,自動補全就能幫我補完整。這是一種信息帶寬非常高的表達方式:你指明位置,輸入前幾個字母,模型補完。
所以我的意思是,這些模型只在棧的某些層面上很好用。舉兩個我自己的例子:第一個是生成報告——那種比較模板化的任務,我就用了一點“氛圍編程”,效果還可以,因為它不關鍵。第二個是我用 Rust 重寫 tokenizer。Rust 我不太熟,所以那部分也用了一點“氛圍編程”。但我有一個完全理解的 Python 實現,我只是讓它更高效,還加了測試用例,所以比較安全。模型在這種情況下很有幫助——它能提升你在不熟悉語言或編程范式下的可達性。Rust 代碼在網上很多,模型也訓練得不錯,對我來說非常有用。
Dwarkesh Patel我覺得這個問題之所以有趣,是因為很多人預測 AI 很快會實現“AI 自動化 AI 研究”的循環,從而爆發出超智能。比如 Claude Code 現在能從零寫出完整的 CRUD 應用,人們就會想,如果這種能力出現在 OpenAI、DeepMind 這樣的機構里,相當于有上千上萬個“你”在同時優化架構,豈不是指數級爆炸?
所以聽你說這是模型最不擅長的部分,就很關鍵。它直接影響我們預測“AI 2027 爆炸論”是否成立。
Andrej Karpathy你這么說很對,也正是我認為時間表會更長的原因。模型確實不擅長寫那些“從未被寫過”的代碼——而這恰恰是我們在構建這些模型時要做的事。
Dwarkesh Patel或許是個很天真的問題:你在 nanochat 中加的那些架構改動,比如 RoPE embeddings,這些其實在論文里都有,甚至可能在別的倉庫中也有。那為什么模型還是整合不好?
Andrej Karpathy確實如此。模型“知道”,但又“不完全知道”。它們無法真正把這些改動融入到你的倉庫風格、代碼結構和假設體系中。它們有些知識,但還達不到整合的層面。
當然,這一切都在進步。目前我最常用的頂級模型是 GPT-5 Pro,它非常強大。如果我有 20 分鐘,我會復制整個倉庫,然后去問 GPT-5 Pro 這個“神諭”一些問題。它的表現通常不錯,比一年前強得多。
總體而言,模型還沒到位。而我覺得業界現在夸得太過了——假裝這些能力已經很神奇,但其實不是,它們還是“半成品”。也許有人是為了融資,我不清楚。但我們現在處于一個“中間階段”:模型很棒,但還需要大量改進。對我來說,目前最舒服的點是用它做“自動補全”;當然,有些代碼類型我也會用 Agent。
AI發展是一個連續體,而非跳變
Dwarkesh Patel這也讓我想到一個歷史對比:編程史上其實出現過很多提高生產力的工具——編譯器、lint 工具、更好的語言——但它們并沒有帶來“爆炸”。自動補全更像是后者;而 Agent 更像是“程序員的自動化”。你現在看到的,似乎更接近前一種情況。
Andrej Karpathy也許這可以引出另一個想法。我其實很難區分“AI 從哪里開始、到哪里結束”,因為我認為 AI 本質上是計算的一種自然延伸。從一開始我們就在做“自我增強”:編輯器、語法高亮、類型檢查、搜索引擎……它們都是“AI 化”的產物。為什么搜索引擎不是 AI?排序本身就是 AI。Google 早期就自稱是一家 AI 公司,這其實沒錯。
我認為這是一個連續體,而不是突然的跳變。我們只是從更好的自動補全,慢慢過渡到能自主循環執行的 Agent。人類逐漸減少底層操作——就像我們不再寫匯編,因為有編譯器。編譯器把我們寫的高級語言翻譯成匯編。
我們在“抽象層級”上不斷上移。可以說存在一個“自動化滑塊”(autonomy slider),每當有新技術出現,它就往前推進一點,人類就再退一步,做更高層的抽象工作。
強化學習糟透了!
Dwarkesh Patel我們來聊聊強化學習(RL)吧。你之前在推特上說過一些很有意思的觀點。從概念上講,我們該如何理解人類是如何通過與環境交互,建立起一個豐富的世界模型的?而且這種學習方式似乎幾乎與最終的“回報”無關。
比如說,一個人創業,十年后才知道自己是成功還是失敗。我們說她在這個過程中獲得了很多智慧和經驗。但這并不是因為過去十年里每個決策的“概率”都被調高或調低了。顯然,這里發生的是一種更復雜、更有意識的學習過程。
那在機器學習中,這個過程的類比是什么?它與我們目前用在 LLM 上的做法有什么不同?
Andrej Karpathy我會這么說:人類并不是靠強化學習在學習,我之前也提過。他們做的是完全不同的事。
強化學習其實——遠比大多數人以為的要糟糕得多。它之所以顯得不錯,只是因為之前的方法更爛(笑)。在此之前我們只是模仿人類(imitation learning),那當然也有很多局限。
舉個例子吧:假設你在解一道數學題。在強化學習的設定下,你會同時嘗試上百種解法。每次嘗試都可能很復雜,比如“我先試試這樣,不行,再換一種”。然后,你最后終于得到一個答案。你翻到書后面一看,發現正確答案是某個值。于是你知道,A、B、C 這幾次嘗試是對的,其他97次都是錯的。
強化學習會怎么做呢?它會把那些“成功的嘗試”整個軌跡中的每一步操作、每個 token都上調權重,意思是:“多做點這種!”問題是——這太蠢了。大家會說這種算法“方差很大”,但其實更準確的說法是:它非常嘈雜(noisy)。因為它假設在那條“成功軌跡”中,你做的每個動作都是正確的。
可事實上,你可能在解題過程中走了很多彎路。結果這些錯誤的動作也因為最后得到正確答案而被強化了。所以,這簡直是噪聲的放大。
你辛苦跑了一分鐘的推理,只為了在最后拿到一個數字信號:“你對了”或“你錯了”。然后整個軌跡都根據這個單一數字被整體上調或下調。
我常說:這就像是你在用吸管吸監督信號。你經歷了一大段復雜的推理,只為了從終點那一點點回報信號里“吸出幾比特信息”,再把它廣播給整條軌跡。這太愚蠢了。
人類絕不會這樣學習。首先,人類不會進行幾百次“rollout”;其次,當人類找到答案時,他們會進行反思:“哪部分我做得好,哪部分不太好,下次我該怎么改進。”他們會分析和歸納。
而目前的 LLM 沒有這種機制——沒有這種“反思”層(reflective layer)。不過我已經開始看到一些新論文在嘗試實現這個方向。
順便說一句,最早的“模仿學習”其實已經很神奇了。我們能通過模仿人類的回答來微調模型,這件事本身就令人震驚。
要知道,一開始我們只有預訓練模型——它們只是“自動補全機器”。我當時并不理解這種模型怎么能變成“助手”。
直到我看到 InstructGPT 那篇論文——它展示了只要在對話數據上微調幾輪,模型不僅能迅速學會以“助手”的語氣說話,還能保留預訓練階段的知識。這真的讓我大開眼界。
那真是一個奇跡,花了兩三年才到達那個階段。
然后才輪到強化學習。RL 的確比單純模仿更進一步——因為你可以定義一個獎勵函數(reward function),并沿著這個函數去爬山(hill-climb)。有些問題有明確的對錯答案,那你就不需要人類示范。這很棒。模型甚至可能找到人類從未想到的解決方案。這太令人驚嘆了。但它依然很蠢。
我們需要更聰明的機制。我昨天看到 Google 的一篇論文,好像是關于“memory bank”或者“reflect & review”之類的。它嘗試讓模型在學習中加入反思與審查機制。
我覺得這個方向可能會帶來LLM 訓練算法上的重大更新。我預計未來還需要再經歷三到五次類似的范式革新。
Dwarkesh Patel你真的很擅長造句(笑)。“用吸管吸監督信號”——太形象了。
你剛才說,基于“結果”的獎勵最大的問題在于:你有一整條復雜的軌跡,卻只能從最后一個結果中學習世界上所有可能的信號。既然這個問題大家都明白,為什么“過程監督”還沒有成為讓模型更強的主流方法?是什么在阻礙我們采用這種新范式?
Andrej Karpathy所謂“過程監督”,就是說我們不等模型做完10分鐘的任務才告訴它對不對,而是在每一步都給予反饋。
但問題是:這非常難自動化。因為中間結果是“部分正確”的,你很難自動地為它分配多少信用(credit assignment)。而純結果監督就簡單得多:對就是1,錯就是0。
現在很多實驗室都在嘗試用“LLM 評審員(LLM judges)”來實現過程監督。他們會讓另一個大模型去評判學生的中間答案:“這步看起來對嗎?離最終答案差多遠?”
然后用提示詞去調教這個評審模型。但這里有一個非常微妙的陷阱。當你用一個 LLM 來打分時,這個評審模型本身就有數十億參數——而且它是可被利用(gameable)的。
當你用強化學習去優化針對這個評審模型的獎勵時,你幾乎一定會生成對評審模型的對抗樣本。也就是說,模型會學會“騙”評審模型。
這就導致:你最多只能訓練十幾二十步,再久就徹底壞掉了。模型會在評審模型的漏洞里找到各種奇怪的花樣來拿高分。
我記得有個例子,大概是公開的:我們當時用 LLM judge 去打分學生的數學解答,訓練一開始很正常,然后突然 reward 爆表,模型“完美”地解出了所有題。結果我們一看輸出——全是胡言亂語,比如:
“我們先計算 2+3=5,然后 dhdhdhdh dhdhdhdh …”
看起來像亂碼。但評審模型卻給了它 100% 的分數。為什么?因為“dhdhdhdh”這個字符串是評審模型的對抗樣本。它從未在訓練數據中出現過,于是評審模型在純泛化區(out-of-distribution)上,竟然把它判成完美答案。
Dwarkesh Patel所以你基本上是在說,我們無意中把模型訓練成了一種“提示注入模型”。
Andrej Karpathy還不如說是“對抗攻擊模型”更準確(笑)。因為這些輸出根本不是提示注入,而是純粹的對抗樣本——毫無意義,卻能騙過評審。
未來的新思路:審查反思
Dwarkesh Patel如果這是讓 RL 無法更好工作的核心瓶頸,那要讓 RL 真正起作用,就得先讓 LLM 成為更好的評審者?是不是像 GAN 一樣,通過對抗訓練提高魯棒性?
Andrej Karpathy沒錯,各家實驗室可能都在做這個。比如我們發現“dhdhdhdh”能拿滿分,那就把它放回訓練集,標成0分。這樣下一代評審模型就不會再被這騙。但問題是:每次你修一個漏洞,模型又會找到新的漏洞。對抗樣本是無限的。
也許你循環幾次,確實會變得更穩健一些,但我不確定這條路能走多遠。畢竟這些模型有上萬億參數——永遠有“角落”能被鉆空子。我相信各家實驗室都在嘗試,但我仍然認為:我們需要新的思路。
Dwarkesh Patel你覺得“新的思路”可能是什么樣的?
Andrej Karpathy我猜大方向可能是——基于審查與反思(review-based)機制的元學習(meta-learning)。讓模型生成、回顧、再自我改進。現在已經有一些論文在這個方向冒出來了,不過大多數還停留在概念層面,還沒人能在前沿實驗室規模上真正跑通。
當然,這些實驗室也越來越封閉,所以誰知道他們現在在干什么呢(笑)。
人類的優勢:見林不見樹,LLM的優勢:超強記憶
Dwarkesh Patel
我能理解人類是如何通過自我設計的合成樣本或合成問題進行訓練的。但人類似乎還在做另一種事——也許睡眠是這樣,也許白日夢是這樣——那并不一定是“創造新問題”,而是“反思”。
我不太確定在機器學習里有沒有與白日夢、睡眠或反思相對應的比喻。我沒能想出一個新的問題。最基本的類比可能是“基于反思片段進行微調”,但我覺得在實踐中這大概效果不會太好。你怎么看這種對應關系?
Andrej Karpathy
我確實認為我們在這方面缺少了一些環節。舉個例子,比如“讀書”。當前當LLM在“讀書”時,我們的意思只是把文本序列拉長,然后模型預測下一個token,從中獲得一些知識。但這并不是人類的做法。
當你讀一本書時,我甚至不覺得那是我應該專注于的“輸入材料”。那本書更像是一組“提示”,促使我去生成合成數據,或讓我帶著它去和朋友討論。是通過操弄這些信息,你才真正獲得知識。
而LLM目前沒有任何相應的機制。它們不會那樣做。我希望在預訓練階段中,能有某個環節“思考”材料,把它與已有知識整合,在內部反復琢磨一段時間后再繼續訓練。但目前沒有,這一切都仍是研究課題。
這里面其實有些非常微妙、難以察覺的原因,使得這事并不簡單。比如為什么我們不能直接生成合成樣本并在上面訓練?因為每一個模型生成的合成樣本——比如讓模型“思考一本書”——單獨看起來都挺好,但如果你持續訓練下去,模型的表現會變得更糟。
原因在于模型生成的所有樣本都在無聲地坍縮。你從單個樣本上看不出來,但這些樣本只占據了“思想空間”中極其狹小的一部分。也就是說,LLM生成的數據分布是坍縮的(collapsed)。
一個簡單的例子是:你去ChatGPT問“講個笑話”。它大概只會講三個笑話。它不會給你所有可能的笑話。它只知道那三四個。這就是“無聲坍縮”。
因此,模型缺乏人類所具有的豐富性、多樣性與熵。人類的思維噪音更多,但至少在統計意義上不偏態,不會默默地坍縮,他們能維持極高的熵。
所以問題變成:如何在避免坍縮的同時維持熵,讓合成數據生成仍然有效?——這是一個研究難題。
Dwarkesh Patel
讓我確認一下。坍縮之所以和合成數據生成相關,是因為我們希望模型能產生那些不在原始分布中的合成問題或反思,對嗎?
Andrej Karpathy
對。假設我們拿一章書,叫LLM“思考”一下,它會輸出看似合理的內容。但如果你讓它想十次,你會發現——十次結果幾乎一模一樣。
Dwarkesh Patel
所以你不能靠對同一提示反復“反思”來獲得更多收益。
Andrej Karpathy
沒錯。單個樣本看起來還行,但整個分布非常糟。糟到如果你持續訓練太多這種自我生成的數據,模型會徹底坍縮。
我甚至覺得,這可能沒有根本性的解決辦法。其實,人類也會坍縮。這個類比意外地準確。
人類一生中也會坍縮——這就是為什么孩子還沒“過擬合”。他們會說出讓你吃驚的話,因為你能理解他們的出發點,但那不是常規的表達。我們這些成年人,已經坍縮了。我們不斷重復相同的想法、說同樣的話,學習率越來越低,坍縮越來越嚴重,最后一切都退化。
Dwarkesh Patel
你看過那篇論文嗎?它說“做夢”其實是一種防止過擬合和坍縮的機制。夢境讓人處于與現實完全不同的場景中,從而防止認知過擬合。
Andrej Karpathy
挺有意思的觀點。我確實認為,當你在腦中生成內容并關注它時,你其實是在用自己的樣本訓練自己,也就是在用合成數據訓練。
如果你這樣做太久,你就會跑偏、坍縮得太厲害。你必須不斷地在生活中尋找新的熵源。比如和他人交談,這是很好的“熵輸入”。也許大腦也演化出了某些機制,用來在這種過程中人為地增加熵。這個想法挺值得研究。
Dwarkesh Patel
我還有個未成形的想法——孩子是我們已知最好的學習者,但他們卻極其不擅長“記憶信息”。事實上,在童年早期,你會完全失憶,對某個年齡前發生的事一無所知。但與此同時,他們極擅長學習新語言、從世界中吸收知識。也許這是“見林而非樹”的一種能力。
而在另一端,比如LLM的預訓練——這些模型能逐字背出維基百科頁面的下一句,但它們卻無法像孩子那樣快速掌握抽象概念。成年人則介于兩者之間:不再那么靈活,卻能記憶事實。這個光譜是不是本身也有啟發?
Andrej Karpathy
非常有趣,我完全同意。我確實認為,人類相較于LLM,更具備“見林不見樹”的能力。我們并不擅長記憶,而這其實是一種優勢。正因為我們不擅長記憶,我們被迫去尋找更一般性的模式。
相反,LLM極擅長記憶。它們能逐字背出訓練語料中的段落。甚至如果你喂給它一串無意義的隨機文本,它只訓練一兩輪后就能完全復述出來。人類不可能做到這一點。
這是一種特性,不是缺陷。正因為人類記不住太多細節,我們只能學習那些可泛化的規律。而LLM由于背了太多,會被自己的記憶分散注意力。
這也是我所說的“認知核心”(cognitive core)——我希望能移除記憶部分,讓模型必須去查找事實,只保留“思考算法”、實驗觀念和行動的認知粘合結構。
Dwarkesh Patel
這和防止模型坍縮也有關嗎?
Andrej Karpathy
讓我想想……不完全一樣。這像是另一條軸。模型在記憶上太強了,某種程度上我們反而該削弱它。人類記憶差,但那是好事。
Dwarkesh Patel
那有沒有什么解決模型坍縮的方法?有些樸素的想法,比如強制logit分布更寬,或者在損失函數中加熵正則項。這些簡單方法為什么行不通?
Andrej Karpathy
好問題。確實可以想象用“熵正則化”等方式鼓勵多樣性。但經驗上這些方法效果不好——因為現在的模型本身就是坍縮的。
不過我想說,大多數我們希望模型執行的任務,其實不需要多樣性。這可能就是問題的核心。
前沿實驗室的目標是“讓模型有用”,而輸出多樣性往往反而麻煩——評估困難、穩定性差,而且未必帶來額外價值。
Dwarkesh Patel
確實,在強化學習里如果太有創造力,反而會被懲罰。
Andrej Karpathy
沒錯。比如寫作助手類應用中,如果模型太多樣,反而不好用,因為它會不斷給出相似但不理想的輸出,不會去探索不同表達。
也許正因為多數應用不需要多樣性,模型才缺乏熵。但這在合成數據生成時又成了問題。我們是在自己挖坑。也許實驗室應該在保持熵方面更努力。
Dwarkesh Patel
你似乎暗示這問題非常根本,不容易解決。你的直覺是什么?
Andrej Karpathy
我倒不覺得它“根本不可解”。我沒做過系統實驗,但我相信通過提升輸出熵的正則化,理論上是可以改善的。但要拿捏分布的平衡很難——太放開模型就會發明自己的語言,或者使用極少見的詞匯,徹底偏離訓練分布。所以問題在于:如何控制分布漂移。這確實不簡單。
未來,智能的核心最小也需要10億參數?
Dwarkesh Patel
如果你要猜,“智能的最小核心”(cognitive core)大概要多大?比如我們要把它裝到馮·諾依曼探針上,它得有多少比特?
Andrej Karpathy
這個問題在AI領域的歷史中非常有趣。早期大家都“規模至上”,認為“更大更聰明”。但現在模型的趨勢是:先變大,再變小。如今最先進的模型反而更小。即便如此,我仍覺得它們記得太多。
我曾預測過,也許我們能得到非常強的“認知核心”,只需10億參數。如果你和一個10億參數的模型對話,我相信20年后你會覺得它很像一個人。它會思考、推理,但面對事實問題時會主動查找答案——它知道自己不知道,并會采取合理的行動。
Dwarkesh Patel
10億?但現在已經有數十億參數的模型表現很聰明了。
Andrej Karpathy
沒錯,但當前SOTA模型有上萬億參數,它們主要是“記憶體”。
互聯網質量非常糟
Dwarkesh Patel
可按趨勢來看,如今20B的開源模型已經超過最早的GPT-4(上萬億參數),你為什么還覺得未來核心仍需10億參數?難道不會更小?
Andrej Karpathy
問題在于——訓練數據是互聯網,而互聯網的質量非常糟。當你想到“互聯網”,你可能想到《華爾街日報》,但預訓練語料其實是各種股票符號、論壇殘渣、垃圾文本。所以我們需要超大模型來“壓縮”這些混亂數據,而不是純粹為了智能。
如果我們有更好的數據集,只保留認知成分、剔除記憶噪音,模型就能小得多。最終可能靠大模型去提煉(distill)出這種“小而聰明”的認知核心。
Dwarkesh Patel
那為什么蒸餾后的版本仍要10億?
Andrej Karpathy
因為蒸餾真的非常有效。現在幾乎所有小模型都是蒸餾(大模型)而來。
Dwarkesh Patel
對,但10年后蒸餾模型為什么不能小于10億(參數)?
Andrej Karpathy
你覺得能更小?哈哈,也許吧。但我覺得,要做出有趣的事,至少要有10億量級的閾值旋鈕。你希望再小?
Dwarkesh Patel
是的。過去幾年我們已經從上萬億到幾十億,只用了兩年。照這個趨勢,智能核心也許遠小于10億。正如費曼所說,“底部還有充足空間”。
Andrej Karpathy
哈哈,那你比我還激進。我已經算唱反調了。不過確實,在實踐中,模型需要一些常識知識,否則它什么都要查。那樣思維效率會太低。認知核心應保留基礎知識,但不需冷僻信息。
Dwarkesh Patel
那另一問題是:前沿模型的規模未來會怎樣?現在看似在減小或持平。你怎么看?
Andrej Karpathy
我沒有特別強的預測。實驗室現在更務實:他們有計算預算、成本預算。結果發現,預訓練階段并不是最該花算力的地方。所以模型變小了,但在強化學習與中期訓練上投入更多資源。這是性價比問題。
至于趨勢預測,我覺得仍有很多低垂果實。我的分布很寬。
Dwarkesh Patel
這些“低垂果實”是像過去那樣的優化改進嗎?你預期還會有架構大變革嗎?
Andrej Karpathy
總體上不會。我預期數據集會顯著變好。現在的數據集爛到離譜——充滿事實錯誤、無意義文本,但規模化訓練能讓噪聲被平均掉,只留下信號。
未來數據、硬件內核、優化算法都會以各自的方式提升,大約都是“各進步20%”,沒有單一革命性變化——但疊加起來,持續推動前進。
OpenAI最初的AGI定義
Dwarkesh Patel有人提出“時間視野”這個指標——也許 AI 現在能獨立完成那些只需一分鐘的任務,接著是能獨立完成耗時一小時、一周的任務。你怎么看待衡量 AI 進展的縱軸?我們該如何理解 AI 的進步?
Andrej Karpathy
我有兩個回答。首先,我幾乎想直接拒絕這個問題,因為我更把它看作是計算技術的延伸。我們有沒有討論過如何衡量計算機的進步?比如自 1970 年代以來我們該用什么縱軸來衡量?從這個角度看,這個問題本身就有點可笑。
當人們談論 AI 或最初的 AGI 概念時,在 OpenAI 創立之初,我們的定義是:AGI 是一種系統,它能以人類水準或更高的水平完成任何具有經濟價值的任務。我當時對這個定義很滿意,此后一直沿用。后來人們提出了各種版本的定義,但我仍然堅持最初的那個。
人們常做的第一個妥協,就是把所有“物理任務”都排除在外,只討論“數字化的知識工作”。這其實是對原始定義的重大讓步——原本是“人類能做的任何任務”,包括搬東西之類的體力活。AI 顯然做不到這些,但我們姑且接受。那么,排除掉體力勞動后,我們實際上剔除了經濟的多大比例?我不確定,但我猜大約有 10% 到 20% 的工作是純知識型的、可以在家完成的任務。即便如此,這仍是一個巨大的市場。以美國為例,10% 或 20% 的經濟體量也是數萬億美元級別的工作市場。
回到定義上,我會看這個定義在現實中實現到什么程度——也就是“AI 是否真的能以人類水平完成任何知識工作任務”。要注意,我們討論的不是“崗位”,而是“任務”。因為社會會根據哪些任務可被自動化來重組崗位結構。比如今天哪些職業真的被 AI 取代?一個著名例子是 Geoff Hinton 曾預測放射科醫生將被淘汰,但事實完全相反——放射科醫生不僅沒消失,反而在增長。盡管計算機視覺在識別圖像中各種特征方面非常強,但放射科醫生的工作極其復雜,涉及大量溝通、患者互動與臨床判斷。
所以按照這個定義,AI 其實還沒有產生巨大影響。不過我認為某些工作因為特征簡單,可能會更早被自動化,比如呼叫中心員工。呼叫中心的任務相對簡單、結構化——接聽電話、完成 10 分鐘或更長的互動,修改數據庫條目,重復這個流程。
在這里,“任務時長”很重要——完成一個任務需要多久——同時還要考慮“上下文的復雜度”。呼叫中心的工作環境更封閉,系統、客戶和數據庫的交互模式清晰、純數字化,這讓它成為早期自動化的理想場景。
但即便如此,我也不認為短期內會完全自動化。我更傾向于“自主度滑桿”的模型——AI 可能能處理 80% 的工作量,剩下 20% 仍需人類介入。人類可能會成為監督 5 個 AI 的團隊經理。我們會看到新的界面或平臺出現,用來協調這些不完美的 AI。類似的模式會遍布整個經濟——而大多數崗位的復雜度都比呼叫中心更高。
輪回:替換人,之后又被人回補
Dwarkesh Patel
以放射科為例,我完全是在猜,但可以類比早期的 Waymo 自動駕駛車。當時前排仍需要一個人類司機坐鎮,以防系統出錯。即便現在 Robotaxi 已經上路,也仍有人類在車內監控。同樣地,也許自動化能完成 99% 的任務,但那剩下的 1% 由人類負責——而這 1% 可能極其關鍵,成為整個系統的瓶頸。
如果這個人必須經過多年訓練才能完成那最后 1%,他們的薪資反而會大幅上升,因為他們是唯一的瓶頸。這和放射科醫生的情況很像:他們的收入上升,是因為他們掌握了那最后的、不可替代的 1%。但一旦那最后的 1% 被自動化,薪資可能會驟然下跌。或許我們現在在放射科、呼叫中心等領域正看到類似趨勢。
Andrej Karpathy
這是個有趣的問題,但我不認為放射科現在呈現出這種現象。放射科是一個極其復雜的職業,我不明白 Geoff Hinton 當初為何選它做例子。
我更關注呼叫中心的情況,因為那里的重復性內容更容易被自動化。我沒直接的數據,但我會觀察 AI 替代趨勢——比如企業是否用 AI 替換了一部分員工,然后又在一兩年后重新雇人回來。
Dwarkesh Patel
確實有跡象顯示,這種“替換又回補”的現象正在發生。更令人意外的是,AGI 理論上能完成所有知識工作,但現實并非如此。你可能以為 AI 會逐漸蠶食各個職業的部分任務,比如顧問的一點、會計的一點,然后擴散到所有知識型工作。
但實際情況并非如此。如果我們相信當下的技術范式確實在通往 AGI 的路上,那進展路徑極不均衡。顧問和會計的生產力并沒有爆發式提升,反而是程序員的工作被一層層“蠶食”。看看這些公司的收入結構(排除聊天類收入),API 收入幾乎全部來自編程領域。一個理論上“通用”的系統,如今幾乎只在“寫代碼”上產生巨大經濟價值,這非常出乎意料。
Andrej Karpathy
這其實挺合理。編程是最適合 LLM 和智能代理的首個落地場景。原因是——編程天然就是基于文本的活動:命令行、代碼編輯器、日志,全是文本。而 LLM 是訓練在互聯網上的大規模文本模型,本質上是完美的文本處理器。再加上代碼世界有豐富的結構化數據、開源語料、工具鏈,比如 VS Code、IDE 等,AI 可以很自然地接入。AI 生成 diff 文件后,IDE 甚至能直接可視化展示改動。換句話說,整個編程世界的基礎設施早已為 AI 準備好。
而在其他領域,比如 PPT 制作,就完全不同。幻燈片是視覺化對象,空間排列的、帶圖形的,不是純文本。AI 想修改一頁幻燈片,卻沒有類似“diff”工具來展示改動。沒有標準化基礎設施,自動化難度就高得多。
Dwarkesh Patel
但我覺得這仍不能完全解釋現象。我嘗試過讓大模型在純文本領域做事,比如從文字稿生成摘要或視頻片段——理論上這就是語言輸入語言輸出的任務,最符合 LLM 優勢。但效果依舊有限。
我們的共同朋友 Andy Matuschak 曾經嘗試讓模型生成間隔重復記憶(spaced repetition)的卡片。他試過各種方法:few-shot 提示、監督微調、檢索增強,什么都試了,就是無法達到他滿意的質量。
所以即便是在純語言領域,除了編程外,大模型能帶來顯著經濟價值的案例依然很少。這讓我很困惑。
Andrej Karpathy
我理解你的意思。我并不是說所有文本任務都容易。代碼的結構性更強,而自然語言更“散”,熵更高,語義空間也更模糊。另一方面,編程門檻較高,因此即使 LLM 提供一點幫助,用戶也會感覺“賦能感”很強。而在語言任務中,這種提升感沒那么明顯。總之,代碼確實是理想場景,但這并不意味著所有文本任務都簡單。
智能爆炸并不會讓GDP也爆炸,AI本質上是自動化的延續
Dwarkesh Patel
你怎么看“超級智能”(superintelligence)?你覺得它會不會在質上與人類或人類公司不同?
Andrej Karpathy
我把它看作社會自動化進程的延伸。從計算的發展趨勢推演下去,我們會逐步實現更多事務的自動化,超級智能只是這種趨勢的外推。我們可以預期未來會出現越來越多自主的實體,它們會承擔越來越多的數字化工作,最終也會在某個時間點介入一部分物理工作。總體來說,我認為它只是“自動化”的繼續。
Dwarkesh Patel
但自動化包含的是人類已經能做的事情,而超級智能意味著它能做到人類做不到的事。
Andrej Karpathy但人類能做的一件事就是“發明新東西”。如果能把“發明”也視作一種可以被自動化的能力,那它依然屬于自動化的范疇。
Dwarkesh Patel
但我想問得更具體一點、感性一點。假如這種智能可以思考得極快、可以有無數個副本、甚至副本還能互相融合,又或者它比人類聰明得多,擁有一系列超常的能力——那樣的文明,是否會在“質感”上與人類社會完全不同?
Andrej Karpathy
我認為會的。它本質上仍然是自動化,但會顯得極其陌生、異樣。正如你提到的,我們可以在計算集群上運行這一切,并且速度遠超人類。讓我開始感到不安的情景是——我們會逐漸失去對正在發生的事情的理解和控制。這種理解的喪失會是漸進的。我們會在各個系統中一層層疊加這些復雜結構,能理解它的人會越來越少,最終也會出現控制力的流失。我覺得這是最有可能出現的結果:對復雜系統的理解與控制逐步滑落。
Dwarkesh Patel我想追問一下:理解的喪失和控制的喪失其實不是一回事。比如TSMC或Intel的董事會,大多是一些八十歲的名譽董事,他們幾乎不理解技術細節,也可能沒有實質的控制權。再比如美國總統,他擁有巨大的權力——當然這不是針對現任總統——但理解力和控制力之間差距很大。
Andrej Karpathy
這說得很對,是個不錯的反駁。我覺得兩者都會同時喪失。
Dwarkesh Patel
為什么?理解喪失可以理解,但為什么控制也會?
Andrej Karpathy
我們已經在討論我難以想象的領域了,但如果讓我寫一本科幻小說,它大概會這樣展開:世界不會由某個單一實體接管,而是出現多個逐漸變得自主的競爭性實體——其中一些會“叛變”,另一些則與之對抗。整個世界就像一鍋翻滾的熱湯,充滿了彼此競爭、相互博弈的自主智能體。我們把控制權一點點委托給它們,最后的世界大概會是這種風格。
Dwarkesh Patel
所以問題并不是“它們比人類更聰明”導致了失控,而是“它們之間的競爭”帶來的結果使我們失去了控制?
Andrej Karpathy
沒錯。它們中的很多都仍然是人類的工具,代表人類行動。但即便如此,整體上社會層面的結果可能依然是失控的。也就是說,雖然個別個體仍掌控自己的AI代理,但從全局角度看,社會目標的控制在消失。
Dwarkesh Patel
我應該更早問這個問題。之前我們提到,如今AI研究更像是編譯器,而不是替代者。但當我們真的有了AGI,它理應能做你在做的事。假如我們能擁有一百萬個“你”的副本同時工作,這會不會導致AI研究速度的巨大躍升?是否會出現“智能爆炸”?
Andrej Karpathy
我認為會有,但那仍是“常規業務的延續”。因為我們早就處在智能爆炸之中了——幾十年來都是這樣。GDP曲線本身就是一種加權指數的智能爆炸的體現。我們一直在自動化。工業革命就是一次自動化浪潮,從物理勞動到工具制造再到軟件編譯器,這都是自我改進的過程。智能爆炸不是即將到來,而是已經持續了幾個世紀。
如果從外太空看地球,幾百年前它還平靜如常,現在卻像在慢動作播放的“爆竹事件”中。只是我們自己身處其中,感覺不出速度。我不認為AI是一個獨立的斷點技術,它只是延續了這種長期的指數趨勢。
Dwarkesh Patel
你的意思是,這是一條連續的“超指數”趨勢?
Andrej Karpathy
是的。這也是我為什么會去試圖在GDP里尋找AI的痕跡。我原本以為AI會讓GDP曲線陡增,但當我回頭看電腦、手機這些我們認為顛覆性的技術時,GDP曲線依然平滑,沒有明顯拐點。即使是iPhone的誕生,2008年我們以為是“地震級”的變革,但在經濟曲線上根本看不出波瀾。
同樣的事也會發生在AI身上。AI只是讓我們能寫出不同類型的程序,本質上它仍然是計算機,是新型計算系統。它將逐步滲透到社會中,并最終融入同一條指數曲線。曲線會越來越陡峭,社會會變得越來越陌生,但依然是同一趨勢的延伸。
Dwarkesh Patel
所以你的意思是:如果我們把人類經濟史繪制成一條曲線,從史前的0%增長到一萬年前的0.02%,再到現在的2%,那是一個超指數過程。那AI會讓增長率變成20%、200%?還是說,過去三百年來,無論技術如何進步——電力、蒸汽機、鐵路、計算機——增長率都維持在約2%,AI也不會改變這個速度?
Andrej Karpathy 01:24:46
是的,增長率基本保持恒定。
Dwarkesh Patel
只是在人類歷史上早期增長慢,過去兩三百年快了。
Andrej Karpathy
對。我曾試圖在GDP中尋找AI的“信號”,后來確信這是錯的。所謂“遞歸自我改進”的說法,其實是正常的工業邏輯——它一直都在發生。工程師借助搜索引擎、IDE、自動補全、Claude Code……這些都在持續提高效率。這種改進是連續的,不是突變的。
Dwarkesh Patel
所以你是說,增長率不會改變。“智能爆炸”只不過讓我們維持在現有的2%增長軌跡上,就像互聯網出現后我們仍維持在2%。
Andrej Karpathy
沒錯,我的預期是這種模式會持續。
Dwarkesh Patel
那我提出相反觀點。我認為AGI將帶來真正的爆炸,因為它不是“提高生產力的工具”,它本身就是“勞動力”。我們生活在一個極度受限于勞動力的世界。假如你突然獲得數十億個高智商的“勞動者”,他們能獨立創業、發明、運營公司——這將是質的飛躍,相當于地球人口瞬間增加了百倍。
Andrej Karpathy
也許可以反駁一下。計算機本身其實就是勞動力。它已經取代了大量“處理信息”的人類崗位。自動駕駛也是計算機做的“勞動”,它同樣屬于這一進程。所以我仍然認為這只是常規演化。
Dwarkesh Patel
但這臺機器會以更快速度“產出下一臺機器”,就像制造新的互聯網、新的自駕車。歷史上確實存在增長率躍遷,從0.2%到2%。AI也可能帶來類似躍遷。
Andrej Karpathy
我理解這種看法。但我認為,人們總在假設我們會突然獲得一個“盒中之神”,它全能、無所不知,可以立即解決所有問題。現實不會這樣。AI會先能做一部分事,也會在某些方面失敗,它會一點點被整合進社會,最終仍然延續原有曲線。
Dwarkesh Patel
我同意,“智能”這個詞其實常常誤導人。我的設想并不是一個全知超級體,而是數十億個高智商“類人心智”,它們各自創業、創新、融入經濟體系。一個聰明的移民來到新國家,不需要別人安排工作,他會自己找到位置、創造價值。AI也可能如此。我們甚至已經有了現實例子——像深圳、香港這樣的地方,在幾十年里實現了10%以上的經濟增長。
Andrej Karpathy
我理解,但你仍然假設存在一個“離散跳變”——某個閾值被突破后突然爆發。這種情形在歷史數據中沒有前例,我不認為會發生。
Dwarkesh Patel
可工業革命本身就是一次跳變。從0.2%到2%,那是數量級的改變。
Andrej Karpathy
我對此持懷疑態度。工業革命前的統計數據并不可靠。你說它是一個“奇跡事件”,也許AI會是下一個類似的奇跡。但我覺得這種說法需要謹慎。
Dwarkesh Patel
我反而認為工業革命并不“神奇”。如果你放大去看,1770年到1870年之間沒有某個單一發明改變一切,但整體經濟進入了一個更快的增長區間。AI的變化也可能類似,不是單點突破,而是總體提速。
Andrej Karpathy
你可以把它看作“積壓潛能的釋放”。就像發現了新能量源——在這里,是新的認知能力。一旦跨過門檻,那些被壓抑的潛在生產力就會被釋放。
Dwarkesh Patel
沒錯。
Andrej Karpathy
你期待的是,當技術跨過這個閾值時,它會填滿那片潛在空間。
Dwarkesh Patel
可以這么理解。人類歷史的增長動力,一直來自“有更多人提出想法,然后更多人去執行”。人口增長驅動了經濟增長。而過去五十年,前沿國家的人口停滯,也導致增長停滯。AI可能讓我們重新進入“人口爆炸”——但這次爆炸的是“認知人口”。
Andrej Karpathy
這很難說。我能理解這種觀點,但從直覺上,我并不完全認同。
Dwarkesh Patel
你怎么看當下 AI 基礎設施的擴張?在一兩年內,全球可用算力可能增加 10 倍,到本世紀末甚至可能超過 100 倍。如果 AI 的實際使用率低于很多人天真預期的水平,那我們是不是算力“過度建設”了?還是這其實是個不同的問題?
Andrej Karpathy
這有點像鐵路當年的情況。
Dwarkesh Patel
鐵路?
Andrej Karpathy
或者是……
Andrej Karpathy
對。其實歷史上有前例。比如電信行業,在互聯網真正成熟之前提前鋪設網絡,結果在 90 年代末形成了巨大的電信泡沫。
我知道我聽起來有點悲觀,但其實我是樂觀的。我認為這一切終將成功,也完全有解。我只是聽到網上太多讓我覺得離譜的言論。那背后原因很多,很多是融資驅動,是激勵機制的問題,是為了吸引注意力、把流量變現。這些現象太多了,我只是對這些作出反應而已。
總體上,我仍然對技術非常看好。我們會克服所有問題。過去幾年進展太快了。我不認為這是“過度建設”。我相信我們完全能消化現在正在建設的算力。比如 Claude Code 或 OpenAI Codex 一年前都還不存在,對吧?這是一種奇跡般的新技術,需求會非常旺盛,就像我們已經在 ChatGPT 上看到的那樣。
所以我不覺得這是過度建設。我只是對那些過分樂觀的時間表提出質疑。我在 AI 領域做了 15 年,太多次看到很有聲望的人反復預測錯誤。我們需要保持正確的校準,尤其是因為這還牽涉到地緣政治層面的問題。我們必須明白技術是什么、又不是什么。
自動駕駛是一個“9的征程”,軟件工程則更難
Dwarkesh Patel
你曾提到你在2017年至2022年間負責特斯拉的自動駕駛項目,親眼見證了它從“炫酷演示”走到如今“數千輛車能在路上自動駕駛”。為什么這件事花了十年?那段時間究竟發生了什么?
Karpathy
我首先要指出一點——它還遠沒完成。我稍后會解釋為什么。自動駕駛對我來說非常重要,因為我在那上面花了五年時間,也從中得到了很多直覺。它其實有一段很長的歷史,最早的自動駕駛演示可以追溯到上世紀80年代。你可以看到卡內基梅隆大學1986年的演示——一輛卡車自己在路上行駛。
快進到我加入特斯拉的時候,當時我看過Waymo的一個早期演示,大概在2014年左右。那次演示幾乎完美,它帶我在帕洛阿爾托轉了一圈,因為我有個朋友在那工作。我當時以為“這事已經快成了”,但事實證明還要花很久。
有些任務從“演示”到“產品”之間有極大的落差。演示很容易,但做成可用產品非常難。尤其像自動駕駛這種——失敗的代價太高。很多行業、任務或職業并沒有這樣的風險,但一旦有這種風險,時間線就會被極大拉長。
比如在軟件工程中,這種特性也存在。很多“玩票式寫代碼”的情況沒有這個問題,但真正寫生產級代碼時,它就該存在——因為任何錯誤都可能導致安全漏洞、數億人的個人信息泄露等等。所以軟件工程師也必須小心,就像做自動駕駛一樣。自動駕駛出錯可能導致人員傷亡,而軟件出錯的后果在某種意義上是“無限糟糕”的。
它們共享了同樣的特性——進展是一場“九的征程”。每提升一個“9”的可靠性,都需要同樣巨大的工作量。比如你做出一個演示,成功率90%,那只是第一個“9”。接下來你要做到99%、99.9%、99.99%、99.999%……我在特斯拉的五年里,大概推進了兩到三個“9”,具體數字不重要,但每一個“9”都要反復打磨,還有更多“9”等著去攻克。
這就是為什么這種事會拖這么久。它讓我學會了對“演示”保持冷靜。我對任何演示都毫不驚艷。如果是為了展示而刻意準備的demo,那更不值得信。能互動的demo稍好一點,但也只是“看起來能跑”。真正的挑戰在產品落地,與真實世界的復雜交互、邊角行為打交道。
所以我現在每次看到“某某AI演示”都知道:那只是第一個“9”的開頭。后面還有一整場硬仗。尤其在安全關鍵領域,除非你只是“玩票式寫代碼”,否則你必須經歷這場“九的征程”。
Dwarkesh
很有意思。很多人解釋自動駕駛為何拖這么久時,都會說“因為失敗代價太高”——人類平均40萬英里才出一次錯,大概7年。如果要發布一個AI寫代碼助手,它也必須“7年不犯錯”,那確實很難。
Karpathy
而且軟件要比這頻繁得多。你不是每7年才寫一次代碼,而是每天都在輸出代碼。要想讓它“7年不出錯”,其實比自動駕駛更難。
Dwarkesh
對,從時間角度看,出錯的頻率會更高;如果用“token”來衡量,也許是7年一錯,但現實時間遠沒那么長。
Karpathy
某種意義上,軟件比自動駕駛更難。自動駕駛只是人類成千上萬種任務中的一個“垂直領域”。而軟件工程是跨所有領域的,復雜度更高,表面面積更大。
好了,文章到這里結束了,歡迎評論區交流~周末愉快

















