![]()
編譯 | 核子可樂、Tina
AI 很快會自動化軟件開發?大模型未來可以直接輸出機器碼?Jeremy Howard 不客氣地說:說這話的人,多半沒當過現代軟件工程師。
這句話出自一位重磅人物。Jeremy Howard 是 fast.ai 創始人、Kaggle 傳奇人物,也是 ULMFiT 論文作者——后者幾乎定義了后來“預訓練 + 微調”的語言模型范式。某種意義上,今天大家習以為常的很多大模型訓練思路,都能往回追溯到他那一代研究者的探索。也因此,當 AI 編程、智能體和自動化軟件開發成為行業最熱話題時,他的判斷尤其值得聽一聽。
![]()
他首先點名批評了當下流行的一些技術話題。比如 Anthropic CEO Dario Amodei 在《技術的青春期》中提出,頂尖工程師借助 AI 可以獲得極高效率,并由此推斷普通軟件工程師的工作很快會被自動化。Jeremy 認為這種推斷“這根本說不通”。
同樣被點名的還有馬斯克。后者曾表示,大語言模型未來可以直接輸出機器碼,到那時人類將不再需要庫文件和編程語言了。Jeremy 的評價是:這幫人都沒當過現代軟件工程師。在他看來,很多人誤以為軟件工程只是把代碼輸入 IDE,但事實“根本不是”。
他說其實幾十年前很多人就覺得即將出現第四代編程語言之類的東西,類似“軟件編寫越來越簡單,再也不需要程序員和軟件工程師了,誰都可以生產代碼”。但在軟件工程這個特殊領域,大模型雖然可以大量生成代碼,卻并不意味著它能勝任真正的軟件工程工作。Jeremy 說自己現在“大概有 90% 的代碼都是由模型代勞”,但“這并沒有顯著提升效率,因為編程從來就不是效率的瓶頸。”
他認為大模型也有能力范圍,也會“裝作理解”。在很多任務上,這種表象已經足夠好用。但一旦問題超出訓練數據的分布范圍,這種理解就會迅速崩塌,大家會發現“這玩意原來這么蠢……”。
另外,對于 Claude Code,他更是從頭批到尾。
最近不少人驚嘆 Claude Code 用 Rust 寫出了一個 C 編譯器。但 Jeremy 與 LLVM 創始人 Chris Lattner 討論后發現,這個所謂的“新編譯器”其實并沒有真正突破現有技術路線。因為 LLVM 體系早已存在于大量訓練數據中,而 Rust 只是另一種實現語言。將其轉換為 Rust,本質上就是在訓練數據的片段間進行插值。所以本質上,這仍然是一種風格遷移問題。
“訓練數據中已經有構建編譯器的方法,而且很多現成的軟件都可以實現。”“其本質都是對現有成果的明顯照搬。這正是我眼中最核心的挑戰所在:要想做出真正原創性的成果,就不能依賴大語言模型。”
除了技術能力本身,Jeremy 也批評了當前 AI 編程工具的發展方向。
在他看來,人類歷史上最重要的軟件創新——從 Smalltalk 到 APL,再到 Mathematica——都強調人與計算機之間的緊密互動。開發者可以實時操作對象、觀察系統狀態、調整參數,從而建立直覺和理解。
而像 Claude Code 這樣的工具,卻走向了相反的方向:開發者只需要輸入 prompt,剩下的代碼由模型生成,甚至不需要理解整個系統。這種模式雖然看起來效率很高,但卻在逐漸削弱開發者對軟件系統的理解。
Jeremy 認為,這種趨勢是讓人類逐漸與自己的代碼脫節,甚至有些“不人道”。在他看來,AI 編程真正的挑戰并不是讓模型寫更多代碼,而是如何設計一種新的協作方式,讓人類和 AI 在同一個交互環境中共同工作,而不是讓人類逐漸退出軟件開發過程。
更嚴重的是,Claude Code 這種開發方式還會讓人類無法學習新知識,個人能力無法得到提升。企業也正因 AI 編程累積的技術債走向衰亡,這些債務使他們既無法維護現有產品、也難以開發新產品。
“所以我覺得這就是在把企業和員工往被淘汰的絕路上推。無法理解現在竟有這么多大公司的高管在推動這種做法,簡直令人驚訝。”
以下是播客整理:
語言模型微調是怎么誕生的
Dr. Tim Scarfe:Jeremy Howard,我大概是從 2017 年、2018 年那會開始關注你的。你那篇著名的 ULMFiT 論文讓我印象深刻,當時我在微軟工作,還專門就此做過演講。如今大家理所當然的觀點,即只需依托文本語料庫對語言模型進行微調,就能持續訓練并實現專業化,就是從那篇文章中孕育出來的。
Jeremy Howard:其實這也不完全是第一次嘗試,準確講其實是第二次。更早幾年前 McCann 和 Andrew Dai 也做過類似的研究,但他們忽略了一個關鍵點——預訓練數據集必須是通用語料庫。
所以我只是幸運地抓住了這個關鍵點,但這一切也確實跟我幾十年間的哲學與認知科學積累有關系。
我對正則化一直情有獨鐘,而且尤其推崇這樣的實踐思路:先構建一套高度靈活的模型,再通過添加正則化項、而非縮減架構規模來增加約束性。
這一點在當時的學術界引發了極大爭議,但也并不算是我們的獨創見解。Stephen Merity 當時的做法是:選取 LSMT 這種循環神經網絡的經典模型(目前的研究也開始逐漸回歸此類模型),在保持極致靈活性的同時疊加五種不同類型的正則化方法。他幾乎涵蓋了一切能想到的正則化類型,而這也成為我的研究起點:構建一套既能隨心所欲發揮強大能力,又能按需嚴格約束的深度學習模型。在此基礎之上,我需要海量的文本數據集。有趣的是這同樣跟 Stephen 有關,他曾參與 Common Crawl 項目,還協助創建了維基百科數據集。
后來我意識到,維基百科的數據集中其實包含大量預設性假設,比如用 unk 來標記未知詞匯,就是說完全采用了經典 NLP 方法。
于是我重構了整套數據集,創建了新版維基百科數據集,現在它也成為我的通用語料庫。之后我采用 AWD-LSTM 模型進行訓練,僅用一晚時間就成功實現。
當時我用的是一塊游戲顯卡,前后跑了八個小時。舊金山大學的資源有限,所以我用的好像是一塊 2080 Ti 顯卡。
第二天清早醒來時,模型訓練已經完成——其架構采用的正是如今大家熟悉的三段式。預訓練、中訓練、后訓練。我當時想:既然能預測維基百科的下一個詞,模型肯定掌握了大量世界知識。于是我嘗試用特定語料進行微調,也就是現在所謂監督式微調數據集,而我用的是電影評論數據集。
事實證明,它特別擅長預測這類文本中可能出現的下一個詞,從而掌握大量電影知識。這次的訓練只用了大概一個小時,接著又花了幾分鐘對下游分類器做了微調——用的是一套經典的學術數據集。
我嘗試解決的是當時最困難的一種分類問題,即從 5000 條影評中判斷觀眾對于某部影片的情感傾向(正面 / 負面),但如今這項任務已經很簡單了。那時候只有高度專業化的模型才能較好完成,甚至有人專門為此撰寫博士論文。而我僅用 5 分鐘完成微調的模型,就超越了全部原有研究成果。
Dr. Tim Scarfe:這確實令人驚嘆,而更值得玩味的就是你那精細的微調方法學成果。
Jeremy Howard:沒錯,我們的微調方法是 Fast AI 團隊自主研發的。當時 Fast AI 剛剛成立一年,還處于起步階段。我們當時做了一個極具爭議的決定:專注于對現成模型的微調,因為我們堅信微調的力量。同期也有其他研究者在探索這個方向,比如 Jason Yosinski 也做過非常出色的研究。
我記得他在博士期間就研究過如何優化模型及其性能上限,計算機視覺領域也有不少其他研究者在做探索。
我們算是先行者之一,當時不少團隊都在深入探索微調技術。我們的想法是,用單一學習率一次性微調整個模型可能行不通,因為模型中不同的層次具有不同的行為特性。
這正是 Jason Yosinski 研究揭示的一大關鍵。而我們進一步提出了新思路:僅訓練末層效率更高,因為只需要對末層進行反向傳播。
在確定末層效果良好之后,再逐步擴展到倒數第二層、第三層。我們采用“鑒別式學習率”的機制,即為不同層次分配不同的學習率。
還有另一個我們曾反復強調,但多年來無人在意的關鍵洞見,即必須對每個 batch 歸一化層進行微調。所有歸一化層都需要精細微調,因為它們會改變整體的整體規模。只要以此為前提,通常只需微調最后一到兩層,就能獲得接近頂尖水平的性能結果,整個過程只需要幾秒鐘。
Dr. Tim Scarfe:是的,鑒別式學習率很有意思。因為當時的主流觀點是:如果在模型微調中把學習率設定得過高,就會破壞表示結構。所以大家普遍認為必須采用極低的學習率,否則模型本身就跑偏了。
Jeremy Howard:那時候還不存在公認的最佳解決方案,也沒人討論過這個話題。就當時的情況看,人們根本就不關注遷移學習。
而 Rachel 和我堅信遷移比任何事情都重要,因為只需要一方把超大規模模型訓練出來,其余研究者就能直接進行微調。所以我們決定要鉆研這項技術,為此投入大量時間并反復嘗試了各種方案。但最終發現,直覺往往才是最簡單明了的路徑——那些在直覺上可行的方案,基本都跑通了。
這跟當今的機器學習普遍實踐有著根本上的差異——如今的研究似乎都圍繞著消融實驗展開,強調不能做任何假設或者猜測。但這完全不符合實際。我發現幾乎所有預期有效的方案都能一次成功,因為我投入大量時間培養出這種直覺,獲得了對梯度行為規律的深刻理解。
Dr. Tim Scarfe:但我覺得好像也存在過二元對立的現象:持續學習希望在保持泛化能力的同時持續訓練模型,而微調則專注于就特定任務做優化。長期以來存在著這樣的認知:模型確實可以做定制,可以按需調整,但這會犧牲泛化能力并削弱表征能力。對這個你是怎么看的?
Jeremy Howard:沒錯,確實存在這種現象,但應該沒有你講的那么嚴重。根本問題在于,人們往往忽略了對激活函數與梯度分析的觀察。
因此我們在 Fast AI 軟件中內置了一項核心能力:允許用戶一覽整個神經網絡結構。
經過幾次操作之后(學習過程只需要幾個小時),研究者就能快速意識到當前是屬于過擬合、欠擬合或者某個層出現了問題。
這也不算什么奧秘。具體來講,假如當某些神經元陷入“休眠”狀態,即無論如何微調都出現梯度歸零——這種情況往往發生在梯度趨向無窮大的情況。但這類問題總能修復,所以實際效果遠比大家想象的要好。只要訓練得當,適合連續學習的模型也同樣能通過微調出色地完成特定任務,只要謹慎處置即可。
Dr. Tim Scarfe:某種意義上,我們確實需要讓神經元休眠。讓我具體解釋一下:我們需要扭曲模型的行為來引入隱式約束,因為沒有約束就談不上創造或者推理能力等等。所以從這個角度我們就能讓模型拒絕做某些事,轉而去做別的事。
Jeremy Howard:我倒不這么看。對我而言,在思考 AI 時應該多多參考人類的思維模式,這很有啟發。我發現二者行為的相似性要遠大于差異性,而我由此產生的直覺往往非常靠譜。
要知道在人類學習新事物時,并不一定要忘卻舊知識。所以我發現:當模型嘗試學習兩項相似的任務時,這兩種能力的同時提升效果往往好于只專注單一任務的模型。
Dr. Tim Scarfe:這讓我想起 LeCun 實驗室的 DINO 論文。雖然當時僅限于視覺模型,但這種自監督學習框架的核心思想仍極其重要:我們在進行預訓練時,要盡可能保持多樣性和保真度,這樣在執行下游任務時才能擁有更多可利用的錨點。
Jeremy Howard:沒錯,半監督和自監督學習確實曾是被嚴重低估的領域。而 Yann LeCun 絕對是該領域最重要的研究者之一。當年我還專門寫過一篇博文,就為了吐槽為什么半監督學習方面的研究者那么少。Yann LeCun 冥過我的文章,還推薦了幾篇我遺漏的重要文獻。但最令我驚訝的是,這種方法的效果居然這么好——本質上就是設計一項預處理任務。
所以設想一下,我們在 ULMFiT 之前就做過這個設想,類似于在醫學影像領域取一份組織切片,遮住幾個像素塊,然后預測原本的內容是什么。
我在南佛羅里達大學帶的一些學生就在做這方面研究,基本上就是在復用我們和其他人已經在視覺領域做過的工作。比如這種遮罩方法就不是我們的發明,在計算機視覺領域早有實踐,但我們會自然想到在預測單詞方面也值得嘗試。
以通用預訓練模型為起點這一核心思路,在計算機視覺領域早已存在。其實有篇 2015 年左右發表的經典論文,內容完全基于實證研究,展示了當我們用預訓練的 ImageNet 模型去預測雕塑家的身份或者建筑風格時,該模型在每項任務中都取得了最先進的結果。但令我驚訝的是,人們看到這些成果后竟然沒有聯想到:這種方法也理應適用于其他領域——包括基因組序列分析、語言處理乃至其他方向。我發現人們往往缺乏想象力,總認為某項技術只能局限于特定領域。
Dr. Tim Scarfe:確實如此,我覺得這里面有兩個關鍵點。首先,我們其實是暗示存在一種類似古德哈特定律(即任何被設定為目標的衡量指標,都將失去反映真實情況的能力)的短視效應——我們最終得到的只是想要的結果,其他一切都會被犧牲掉。事實顯然并非如此,因為在語言模型中我們是可以優化困惑度的。如你所說,這似乎涉及到分布假說,即詞語的含義取決于其上下文環境。當我們擁有海量關聯數據時,無論是掩蔽自動預測還是類似的技術,模型似乎都能生出一種可稱為“理解力”的東西。
Jeremy Howard:我始終將其視為抽象層次。當模型需要預測時,比如判斷棋譜的開局是不是采用了 Bobby Fischer 的習慣下法,再以國際象棋的標準記譜法預測后續棋路,那它就首先得掌握棋譜知識。至于判斷“此提案是否被 1956 年的美國總統否決”,那么模型不僅要知曉總統的身份,更要理解“總統”這一制度性概念的存在,進而理解領導人概念、人類社會中的等級制度、人類族群乃至物理世界的存在。如果不掌握這些層層遞進的認知,就無法準確預測句子中的下一個詞。
所以我的基本思考是這樣:建立 ULMFiT 的初衷,正是要盡可能壓縮這種知識的獲取過程,還必須在模型深處建立起抽象層次結構。如果做不到這一點,談何精準預測下一個詞?要知道,深度學習模型的本質就是通用學習機器,我們又掌握了通用訓練方法。因此我推測:只要數據正確且硬件足夠強大,理論上我們就能構建起這種詞序預測機,它沒有理由不能隱式構建起對文本描述對象的分層結構化理解。
Claude Code 的“創造力”,
本質上還是插值組合
Dr. Tim Scarfe:但我覺得 AI 的認知還相當淺顯。它們確實掌握著無數表層統計關系,也能實現極強的泛化能力。但關鍵在于,我想參考你之前關于創造力做出過的論述。我認為知識的本質就是約束,而創造力則是在遵循這些約束的同時推動知識演進。所以 AI 并不具備創造力,你之前也持有相同的觀點。既然如此,你一方面承認它們具備認知能力,另一方面又否認其具備創造力。這該怎么理解呀?
Jeremy Howard:我倒不記得自己明確這么講過。只記得在跟 Peter Norvig 一起接受采訪時,我們都提到:其實 AI 在某種意義上是具備創造力的,只是我們用詞要謹慎一些。比如我非常敬重的 Piotr Wozniak,他重新發現了間隔重復學習法,由此建立起 SuperMemo 系統,獲得了現代記憶大師的稱號。
他之所以將畢生精力投入到對記憶的研究,根本原因在于他堅信創造力源自海量的記憶儲備,即以全新的方式組合記憶內容才是激發創造力的絕佳途徑。
大語言模型在這方面表現相當出色,但也存在一種其完全無法勝任的創造力,也就是突破分布式模型的局限。我認為這就是解決這個問題的關鍵所在。
不過我想強調的是:對這個問題必須保持極度審慎的態度。如果簡單斷言大模型缺少創造力,其實是種極具誤導性的表達——它們確實能做出看似具有創造性的表現。但要進一步追問:大模型能不能真正突破訓練分布的邊界,答案肯定是否定的。但訓練數據集如此龐大,其中插值的方式又極其繁多,我們還遠不清楚它的邊界到底在哪里。當然,我每天都能見證這種現象——畢竟我的工作就是研發,始終游走在訓練數據的邊界附近,做出各種前所未有的嘗試。
我發現了一種奇怪的現象,不知道你有沒有見過,我每天都會遇到很多次:語言模型會突然從極聰明變得特別蠢,甚至連最基礎的邏輯前提都無法理解。它就好像突然意識到:哎呀,問題超過我的訓練數據分布范圍了。變笨就是一瞬間,任何討論都毫無意義,模型突然就失控了。
Dr. Tim Scarfe:沒錯,我非常欣賞 Margaret Boden 提出的創造力分層理論:創造力分為組合式、探索式和變革式三種。而當前的模型確實已經發現了組合式創造力的秘密。
但于我而言,關鍵在于約束的設置。這也是 Boden 的觀點,連達芬奇都說過:創造力的本質就是約束的藝術。你提到的對話工程學也是這個道理。問題在于,當我們跟語言模型對話時,本質上就是給予規范,整個過程需要反復迭代。我們人類的思考也是如此,智能的實現就是在大腦中構建想象形式的樂高積木,同時遵守各種約束條件。
在遵守這些約束并持續演進之后,由此帶來的成果就是創造。所以在為語言模型添加約束時,無論是通過監督、批評者還是驗證者的方式,它們就能展現出創造力。AlphaEvolve 就已經呈現出這樣的能力。但問題在于,當模型脫離約束,它們身上就會出現我們談到的行為塑造現象。正因如此,語言模型也就無法突破自身訓練數據的分布范圍。
Jeremy Howard:我想說的是,語言模型之所以無法突破分布范圍,根本原因是這類數學模型本身的局限性。雖然理論上可行,但實際效果極差。就像二維數據的擬合曲線一旦超出數據覆蓋區域,曲線就會在空間內向各個方向瘋狂延伸。
我們本質上就是在做這件事,只不過是在多維空間中操作。當人類知識庫里的全部內容都成為組合素材時,語言模型或許會表現出震驚世人的組合式創造力。
我覺得這也是人們常常誤解的點,比如昨天我跟 Chris Latner 討論 Claude Code 怎么編寫 C 編譯器時,他認為這是款純凈室編譯器,因為它是用 Rust 編寫的。
Chris 本人就是當今使用最廣泛的 C/C++ 編譯器的締造者,基于 LLVM 運行,而 LLVM 則是編譯器普遍采用的基礎架構。而且神奇的是,Chris 壓根沒用過 Rust,也沒提供過任何編譯器源代碼。
所以 Rust 版本的 C 編譯器就是凈室實現,但也跟大模型的工作原理存在出入。Chris 的所有工作都體現在了大模型的訓練數據當中;LLVM 得到廣泛應用,無數項目都基于它構建,其中也包括各種 C/C++ 編譯器。將其轉換為 Rust,本質上就是在訓練數據的片段間進行插值。所以本質上,這就是風格遷移的問題。所以最多只能稱之為組合式創造力。從生成的代碼倉庫就能發現,新項目直接復制了 LLVM 代碼片段,而 Chris 坦言“我當初犯了錯,就不該采用這種沒人用的辦法”。
而 AI 是唯一照搬了 Chris 這種辦法的開發者。之所以會這樣,就是因為大模型還沒能真正發揮創造力。它還是在訓練數據當中尋找某種非線性的平均點——比如在 Rust 技術和編譯器構建技術間找交集。
Dr. Tim Scarfe:這些說法都成立。首先,我們不能也不該低估這種組合式創造力的規模。雖然很多代碼片段都來自網上公開的結果,但它也確實搭建了完整的測試框架——每次代碼提交都會觸發測試,相當于建立了實時審查機制。這就是 AI 自己搞的自主反饋循環。
某種程度上,這跟 OpenAI 和 Gemini 最近的研究非常相似——讓 AI 自建評估函數來嘗試解決數學問題。但人們往往忽略了一點:運用評估函數本身,就代表著 AI 對問題并不完全理解。它仍然在通過暴力搜索和統計模式匹配來解題,并將驗證器當作約束。
Jeremy Howard:所以說大模型根本沒必要這么搞。因為訓練數據中已經有構建編譯器的方法,而且很多現成的軟件都可以實現。所以它直接借用現有方案并將其轉換成了 Rust 語言。單憑這點,就已經相當驚人。
雖然我對數學不像對計算機科學那么熟悉,但我也常跟數學家們交流,發現在埃爾德什差異問題(對于任意常數 C,總能找到等距的有限子序列,使其元素累加和的絕對值超過 C)等領域也存在類似的現象。部分問題雖然得到了新解,但并非頓悟式的突破。大模型往往還是在整合人類已知的相關知識點來解題。
“這幫人都沒當過現代軟件工程師”
Dr. Tim Scarfe:再來聊聊 Claude Code。你曾經深入探討過氛圍編程的問題,Rachel 也寫過一篇有趣的文章,引用 METR 研究所的成果,發現人們在進行氛圍編程時生產力反而有所下降。
還有 Anthropic 的研究,這里我們稍做回顧。Dario 前段時間發表了一篇題為《技術的青春期》的文章,大意是:Anthropic 擁有眾多頂尖軟件工程師,在 AI 輔助下開發效率極高。而后他將這種情況粗暴推廣到普通軟件工程師群體,宣稱 AI 很快就能全面實現工作自動化,屆時將導致大面積失業。
Jeremy Howard:這根本說不通。幾天前馬斯克也講過類似的話,說什么大語言模型可以直接輸出機器碼。到那個時候,我們就完全不需要庫文件和編程語言了。
問題在于,這幫人都沒當過現代軟件工程師。我不確定 Dario 有沒有做過真正的軟件工程師崗。軟件工程是門特殊學科,很多人誤以為軟件工程就是簡單把代碼輸入到集成開發環境。根本不是,編程的本質是另一種風格遷移問題。我們拿到待解決問題的規范說明,而后運用組合式創造力找出訓練數據中能夠填補兩者間隙的部分來解決問題,再將其與目標語言的語法進行插值處理,最終形成代碼。
Fred Brooks 幾十年前曾寫過一篇著名論文《沒有銀彈》,其內容對當下的情況做出了精準預言。當時很多人都覺得即將出現第四代編程語言之類的東西,類似“軟件編寫越來越簡單,再也不需要程序員和軟件工程師了,誰都可以生產代碼”。但他則預言稱,技術的進步最多只能帶來 30% 的效率提升。
這就是他的結論,未來十年之內軟件開發的效率提升空間只有 30%。我雖然覺得沒必要這么悲觀,但軟件工程中的絕大部分工作確實不止于編寫代碼。某種意義上,Dario 的部分觀點也有道理,比如當下很多人已經在靠語言模型為生成代碼。我自己就是這樣,大概有 90% 的代碼都是由模型代勞。但這并沒有顯著提升效率,因為編程從來就不是效率的瓶頸。
語言模型確實給我的研究工作帶來不少幫助,比如預判哪些文件需要修改。但在我嘗試讓大模型設計前所未有的解決方案時,結果永遠是場災難。
實際上,它每次給我的都是看起來差不多的設計,而這往往就是災難的根源。我明明想要創造新事物來消除這種相似性,但它總在延續過去,這就是最大的沖突點。
Dr. Tim Scarfe:我發現很多科技從業者對于認知科學和哲學概念都有嚴重誤解。我們節目也采訪過很多杰出人物,比如曾撰寫了《知識法則》一書的 César Hidalgo,還有神經科學哲學家 Mazviita Chirimuuta 也反復強調過知識具有變幻莫測的特性。我認為知識在本質上是有視角屬性的。
我不覺得單靠維基百科上那種純抽象、脫離視角屬性的條目就足以還原知識的全貌。換言之,我認為知識有著具象性且充滿生命力,脫胎于我們體內。組織存在的意義就在于守護并演進知識。而在把認知任務委托給語言模型時,自然會產生一種詭異的悖論效應:組織內部的知識反而受到侵蝕。
Jeremy Howard:確實,這真的令人不安。網上經常出現這樣的爭論:有人堅稱大語言模型根本就啥都不懂,只是裝作可以理解。另一些人則反駁:別胡說八道,看看大模型剛剛幫我搞定了什么問題。有趣的是雙方都有道理——大語言模型實際上確實是在扮演一個理解了問題的人。
它們假裝可以理解,恰恰呼應了 Daniel Dennett 早期認知科學研究的精髓,中文房間實驗(設想一個僅懂英語的人通過操作中文翻譯程序手冊處理外部中文提問,使外界誤判其具備理解能力,以此論證計算機僅模擬智能表象而缺乏真正認知狀態)的核心思想也正是如此。房中人的表現確實很像懂中文,因為我們提的所有問題都能得到答案。但實際其只是在海量的書籍或機器中查找信息。當然,在裝懂不影響結果的范圍之內,到底是裝聰明還是真聰明并不重要。
所以對于很多任務,大語言模型只需要裝懂就足夠了——畢竟在實際應用中,是不是真懂根本無關緊要。可如果哪天越過了邊界,很多人才會驚覺:天哪,大模型這玩意原來這么蠢……
Dr. Tim Scarfe:順帶一提,我是 Searle 的擁躉,他曾提到因果具有可還原性、但本體不具備可還原性,也就是強調存在現象學這個維度。這也是知識變幻莫測的精妙所在,它本質上承襲了康德的思想:世界錯綜復雜,無人能夠完全理解。正如盲人摸象,我們不可避免各自擁有不同視角。
由于復雜度過高,因此每個人都在進行建模。但有趣的是,語言模型有時似乎表現得能夠理解事物,而這種理解的根源在于監督者為其提供了框架。在這套框架內,當我們從大象的視角觀察,認知結論竟然出奇連續。只是現在,我們往往忽略了監督者為模型設定的這套框架。
Jeremy Howard:沒錯,所以這相當于 Searle 與 Dennett 之爭,也就是《意識的解釋》與“中文房間”這兩種視角的思辨。有趣的是,當時的討論跟我們當下的爭議有著完全相同的本質,只是從純思想實驗轉向現實層面。回歸抽象討論很有必要,因為這能讓我們抽離當前困境、不再受到現實中具備強大模仿能力的模型影響,真正回歸問題的本質。
總之我想強調的是,我們正身處一種微妙的歷史節點:人們極易對 AI 的能力產生誤解。尤其是那些分不清編程和軟件工程區別的朋友,就更容易誤解。
是的,這就正好轉回了你提出的問題——這種認知差異會對組織產生怎樣的影響。要知道,許多組織的本質就是在押注一個投機性的前提:AI 將有能力比人類更出色地完成一切工作,至少在編程領域可以做到。我對此深感憂慮,無論是從組織還是從全人類的角度講都是。對人類來說,一旦沒有機會主動運用設計、工程和編程能力,也就失去了發展和成長的機會。人類可能逐漸凋零。身為研發型初創公司的 CEO,我必須要強調:如果團隊成員停止成長,我們就注定會失敗。
我們絕不能讓這種情況發生,而單純提升針對 AI 的特定提示詞技巧或者 CLI 框架使用能力,并不算成長。這就像在不理解互聯網原理的情況下死磕亞馬遜云科技的接口細節——毫無價值。這類知識既不可復用,又沒有繼承意義。雖然它能夠在當下解決實際問題,但必然隨著時間推移逐漸侵蝕從業者的信心。
大模型反而讓開發者變笨了?
Dr. Tim Scarfe:我認同這種自然規律,而且對你尤其重要。在整個職業生涯中,你一直致力于提升人們的技術與 AI 素養。而你說的大模型編程技巧,很像是開自動駕駛汽車了——人根本沒多少機會上手。
這里存在一個臨界點——當我們不再專注于親自解題,而把能力委托出去,就會積累下認知債。這就是當前的現實。幾周前 Anthropic 自己的研究就完全推翻了 Dario 的觀點,研究結果甚至發現,確實有少數參與者通過提出概念性問題來保證對實現技術的掌控。他們確實能展現出學習曲線,但大多數人根本做不到。
我有個假設:生成式 AI 編程的理想狀態應該是看齊人類開發者,畢竟我們幾十年來一直在編寫軟件,也具備抽象認知能力、能在熟悉的領域靈活運用。我們還能明確需求,消除大量模糊性、跟蹤進展、反復調整,且全程掌控開發流程。但現實情況是,現在的人們會默認進入自動駕駛模式,對實際發生的情況一無所知——這反而讓開發者變笨了。
Jeremy Howard:我在 2014 年創立了首家醫療深度學習公司 Enlitic。初期我們專注于放射學領域,當時許多人就擔憂這會削弱放射科醫生的專業能力。但我堅信恰恰相反——為此我還深入研究了飛機電傳操縱系統、汽車防抱死剎車系統等技術應用案例。當可以自動化的任務環節成功實現自動化之后,專家反而可以專注于真正關鍵的環節。
我們在實踐當中也難了這一觀點。在放射學領域,我們發現如果能自動識別肺部 CT 掃描中的潛在結節,那么放射科醫生可以專注于分析結節性質,判斷其惡性程度并制定治療方案。這正是微妙的差別所在。如果能有效實現某些環節的完全自動化,從而減輕人類認知負擔、專注于核心工作,結果無疑是積極的。至于軟件開發領域的情況,我覺得更難以斷言——畢竟我搞開發已經有四十多年,親自寫過大量代碼。除非遇到特別奇怪或者復雜的情況,否則只需瞥一眼代碼,我就能立刻判斷出代碼功能和運行狀態等結論。
我憑直覺發現的這些可優先的點,還有預見到的潛在風險,如果沒有長期編程積累恐怕很難很難達到。目前我覺得真正受益于 AI 的人群有兩類:要么是完全不會編程的初學者,現在他們可以把腦海中的想法快速轉化成應用。只要 AI 有能力幫他們快速實現需求,就完全可以了。另一類是像我和 Chris Latner 這樣的資深開發者,因為我們能讓 AI 代勞相當一部分編程工作和研究任務。但處于中間水平的人才是真正的絕大多數,這讓我非常擔憂,他們幾乎失去了進步的空間和可能性。
不用親自寫代碼也許沒什么,但我們沒辦法確定,因為之前沒出現過這種情況。這就像回到小學階段,學校禁止孩子們使用計算器,就是為了鍛煉他們對數字的感覺和運算能力。那開發者還要不要經歷前五年的磨練,親手編寫所有代碼?我真的不知道。
總之我自己比較悲觀,對于大部分從業經驗從 2 年到 20 年之間的開發者,這可能是在慢慢侵蝕他們的競爭力。
Dr. Tim Scarfe:沒錯,這又涉及 Cesar Hidalgo 提出的知識本質論。他認為知識具有不可替代性,即無法直接交換。其核心觀點是:學習過程在某種意義上不可能被簡化。學習者必須親身經歷,直面摩擦和考驗。學習的過程就是構建世界模型的過程,會經歷所謂“現實的反噬”——我們不斷犯錯、不斷更新自己大腦中的模型,并向其中持續添加一致性約束。但直接使用大模型輸出的代碼,顯然是回避了這種“必要之難”。Anthropic 的研究也提出類似的結論:由于回避了摩擦,開發者根本學不到任何東西。
Jeremy Howard:沒錯,所謂“必要之難”是教育學領域提出的概念,最早可以追溯到十九世紀重復間隔學習的開創者 Ebbinghaus。Piotr Wozniak 的近期研究也發現了相同的規律:記憶的形式需要付出艱辛努力。這也解釋了為什么“過度復習”反而有害,因為信息會過早浮現。而間隔重復學習法(例如 Anki 和 SupereMemo)則努力在記憶即將遺忘的臨界點處安排復習。
這確實需要付出艱辛的努力。我花了十年時間學習中文,只為探究學習的本質。在使用 Anki 時我深刻體會到:它總在記憶即將消退的臨界點安排復習,抓住瀕臨遺忘的節點刺激神經元連接。這種模式執行起來特別特別累,但效果確實驚人。所以哪怕后面十幾年不再堅持系統學習,我仍能流利使用中文。
Dr. Tim Scarfe:說回你提的放射學案例,還有人們常說的客服中心。我們總覺得組織中的崗位存在著高智力需求和低智力需求之分。但我覺得,智能的本質就是對知識的適應性獲取和整合。假設低智力需求崗位(比如客服)不需要適應變化,就意味著組織中存在著某些穩定不變的環節。
這部分環節可以自動化,無需更新知識儲備。但結合放射學案例,這種觀點可能忽略了整體性知識的重要性。比如客服中心也會遇到大量特殊的、極端的案例。各種意外狀況層出不窮,這些信息會向上傳遞,促使組織逐步適應。所以在推廣自動化流程之后,工作人員實際上會喪失創造流程的能力,進而削弱組織知識的演化能力——這無異于自毀長城。
Jeremy Howard:完全正確。在我的公司,我始終提醒同事們:我真正關注的只有一件事——你們的個人能力在多大程度上得到了提升。我并不在意大家提交了多少 PR,開發出了多少功能。就像 Tcl 語言的發明者 John Oustenrhout 最近在斯坦福講座中提出的精彩觀點:一點點斜率就能彌補大量截距。
這里的核心論點是,人生中若能專注于加速成長的事物,那效果要遠勝于執著那些已經擅長、擁有高橫坐標值的事物。因此我真正關心,也是我認為對公司至關重要的唯一目標,就是讓團隊專注于提升斜率。沒錯,如果只專注于在現有 AI 的能力邊界之內追求成果,那關注的就仍然是橫坐標值。
所以我覺得這就是在把企業和員工往被淘汰的絕路上推。無法理解現在竟有這么多大公司的高管在推動這種做法,簡直令人驚訝。
畢竟這是個大家都不熟悉的領域,MBA 課程里也從沒提到過,所以一旦判斷失誤——也很可能就是失誤,那人們根本就意識不到。這本質上是為公司埋下了毀滅的種子。
更令人費解的是,股東們竟然會縱容這種行為。這將催生出高度投機性質的市場操作。眾多企業正因 AI 編程累積的技術債走向衰亡,這些債務使他們既無法維護現有產品、也難以開發新產品。
Dr. Tim Scarfe:像 Fran?ois Chollet 這樣的行家其實也不少,他們真的很懂。他就始終強調 AI 發展的本質,就是領域認知模型的擬態式共享,以及如何配合人類共同蒸餾這些模型。說到共享,這恰恰是 AI 編程面臨的另一大擴展難題。
在理想狀態下,只要我們深諳某個領域,有能力用極致的細節做出定義,那么只需告知 Claude Code 執行任務即可——我們腦袋里的模型框架并不重要。
但在組織環境下,我們需要把知識共享給全體成員。必須承認,知識的獲取瓶頸就是組織內部真實存在的嚴重問題。如果只有我一個人在使用 Claude Code,效率大概能提升 50 倍——人們的興奮之情也正來源于此。但要跟其他人共享,AI 編程工具就起不了什么作用了。大家似乎并沒有意識到這個瓶頸,也沒發現這就是大多數組織難以將 AI 轉化為現實生產力的原因。
Jeremy Howard:實際上沒人能在保持高質量的前提下產出 50 倍的軟件。我們剛剛完成相關研究,發現人們實際交付的成果只能說略有增加。這就是殘酷的事實。我本人其實熱衷于發掘 AI 的潛力,但我妻子 Rachel 最近發文指出,所有激發人們熱烈追捧的因素匯聚起來只是一股暗流。
Dr. Tim Scarfe:對,暗流這個概念我也想提來著。
Jeremy Howard:所以這就很尷尬了。我認識的幾乎每位前段時間對 AI 驅動編程充滿熱情的人,在回頭審視自己一路走來構建的成果時,都徹底改變了看法:這些東西還有人在用嗎?還有受眾嗎?還能幫自己賺錢嗎?其實幾乎所有利潤,都被意見領袖或者炒幣那幫家伙卷走了。
氛圍編程就像老虎機
Jeremy Howard:依托 AI 的編程本質上更像是老虎機——讓人產生可以掌控一切的錯覺。我們當然可以精心設計提示詞、管理模型參數清單、調整 skill 參數等等,最后再拉下拉把。
輸入指令,然后得到結果,這就像憑運氣拉出三顆櫻桃并排。“我再改條指令,再多加點上下文”,之后再次拉動拉把、不停重復。
這就是隨機性。我們偶爾能贏一把,覺得太棒了、AI 這東西太牛了!但這本質上具備賭博的全部特征:偽裝成勝利的失敗、高度隨機、虛假的控制感——這些都是博彩公司精心編排的元素。雖然這并不代表 AI 沒用,但……真的也沒多有用。
Dr. Tim Scarfe:明白。Rachel 還提到賭博的另外一個標志性特征,就是讓人自欺欺人地以為掌握了局勢,但實則不然。但我們也可以探討一下樂觀情緒:我覺得 AI 編程在受控場景下的確非常有用,前提是我們能夠理解并設定約束。從好的角度來講,那我們確實不會因此失業,畢竟這部分工作量會相應增加。至于成癮性,那也是真實存在的:我曾經連續 14 個小時使用 Claude Code 輸出代碼,確實非常上癮。你說得對,就像老虎機一樣,非常貼切。
而且那也是我最疲憊的一次編碼經歷,精疲力竭之后我連著休息了好幾天才恢復,那狀態實在糟透了。
Jeremy Howard:一點沒錯。我也獲得過一些不錯的結果,過去幾年還圍繞已知的成功路徑構建起完整的產品體系,也就是專注于中等規模的模塊化開發:確保各個模塊完全可控、可設計,并能通過自定義抽象層逐步構建起超越組件本身功能的整體系統。最近我們還遇到個很有意思的情況,其實也可以算是實驗:我們之前高度依賴 IPKernel 組件,它也正是驅動 Jupyter Notebook 的核心。但在 IPyKernel 從版本 6 升級到版本 7 之后,就徹底失效了。我們嘗試使用的兩款產品都出現了故障:其一是名為 nbclassic 的原始 Jupyter notebook,其二是我們自主開發的 solve it 產品。
它們會隨機崩潰。IPyKernel 的代碼超過 5000 行,結構極其復雜,涵蓋多線程、事件處理、鎖機制、與 IPython 的接口、ZMQ 通信協議以及 DebugPy 調試框架等等。我完全摸不著頭腦,找不到崩潰的原因——所有測試都能順利通過。于是我好奇,AI 能不能幫我解決這個問題?真的,我一直好奇目前的 AI 能夠獨立處理的任務規模上限在哪里。
事實證明,它確實能夠解決。前后花了兩周時間,雖然沒能深入理解 IPyKernel 的運作機制,但我還是花了不少精力把它拆解成一個個獨立組件。最終 AI 在兩小時內就給出了答案——我最早用的是 GPT 5.2,沒能搞定;花每月 200 美元升級到 GPT 5.3 Pro 版后就好了。
總之,通過在兩個版本和兩套模型之間反復切換,我花了幾周時間才讓系統正常運行。如你據說,整個過程毫無樂趣可言,既疲憊又焦慮,因為我始終無法掌控局面。但有趣的是,這是我目前唯一能夠讓新版 Python Jupter 內核成功運行的辦法——至少就我所知,它找到了完美兼容版本 7 協議的辦法。這讓我不禁陷入深思:我不喜歡 AI 輔助的工作感受,但因為傳統軟件工程理論不足以解決問題,我又別無選擇。
新的難題又來了——我并不理解解決問題的這段代碼,那我該不該把公司產品押在上面?我真的不知道該怎么辦,我不知道它會不會引發內存泄漏;如果協議稍作改動,它后續還能不能正常運行;是否存在會導致全盤崩潰的極端狀況等等。這真是個前所未見的巨大困局。
“AI 寫代碼很厲害,
但軟件工程一塌糊涂”
Dr. Tim Scarfe:那我們還是得從控制權的角度討論——必須承認,我們對代碼的控制能力正受到嚴重侵蝕。最初由 AI 生成的代碼占比僅為 10%,隨后這個比例不斷攀升,而且我們無能為力。大約半年之后,提交上來的 PR 中就有約 60% 代碼由 AI 生成。這就是后果。
人正逐漸跟自己的代碼脫節。樂觀的判斷認為:AI 編程只強調功能主義即可——只要智能體可以正確完成任務,我們就可以認可 AI,無須深究其構成原理。畢竟軟件領域從來都是這樣。
商業領域肯定很認可這套邏輯,畢竟人家做的是業務,本來就沒辦法親自編寫代碼、也掌握不了快速排序算法的實現細節。所以只要所有測試都能順利通過、代碼可以成功部署,流程按部就班推進,那不就得了?
Jeremy Howard:實事求是講,這種觀念我覺得還滿有道理,但還不夠。我們必須重視軟件工程的重要意義,因為它的核心就是強調各個組件到底是什么、應該如何運作,再以此為基礎將其組合成更龐大的整體,進而持續迭代以構建出宏大的系統。
只有做好了這一點,我們才能在十年之后靠 AI 打造出遠超當下想象的頂尖軟件。沒錯,只有卓越的軟件工程能力才可以實現這種突破。以 IPyKernel 為例,我發現它本身就是個極其龐大的組件。
因為很明顯,IPyKernel 的原始開發團隊沒能打造出一套可以正確驗證其功能的測試集,所以才導致包括原始 nbclassic(即 IPyKernel 的源項目)在內的眾多實際應用項目都無法正常運行。這正是我們 Answer.ai 開發團隊的當前重點:尋找規模適應的模塊,并確保其正確性。
要如何識別這些模塊、如何加以設計、如何進行組合——這些能力都需要幾十年的開發經驗才能掌握。我自己也是,自認為經過二十年的歷練才算掌握到個中精髓。這確實是個大問題,畢竟軟件工程能力的重要能力遠超以往任何時候,但當下又恰恰欠缺培養這種能力的場景。未來的開發者要如何保證自己可以勝任這份工作,已經成為極具挑戰性的課題。
Dr. Tim Scarfe:還有種觀點是這樣:抽象和表征事物的方式其實有很多。要知道這個世界如此復雜,我們人類熟悉的軟件抽象與表征方式,可能更多是自身認知局限的映射。即使是在科學和物理領域,人們也更傾向以高度簡化的方法來建模。但復雜科學往往必須直面事物的構造性、耗散性以及纏雜交織的本質。
也許當下就有很多軟件已經超出了人類的理解上限,對吧?比如許多采用 actor 模式的全球分布式軟件應用,其本質上已經屬于復雜系統。我們只能通過模擬和測試來嘗試理解,因為沒人真正知道所有組件間如何協同運作。所以樂觀地看,也許軟件工程的頂層設計已經在踐行這種新理念,而這也正是 AI 有望達成的終極目標。
Jeremy Howard:倒也未必。比如說 Instagram 和 WhatsApp 這類公司,僅憑十余名員工就主導了各自領域,甚至擊敗了谷歌和微軟等巨頭。我覺得這只說明大廠那種軟件開發模式正在失敗,我們也親眼目睹許多巨頭正陷入日益絕望的境地。就拿微軟 Windows 和蘋果 MacOS 的質量來說,過去五到十年間已經遭遇顯著下滑。還記得當初 Dave Cutler 逐行審閱 NT 內核代碼,確保每一行都完美無瑕的時代吧?那才是真正優雅卓越的軟件典范。但如今世上不會有人覺得 Windows 11 是優雅精妙的軟件。所以我們可以真的需要先打造出完全可按的小組件,再把它們堆疊起來實現構建。
問題是 AI 在這方面表現相當糟糕。我這可是基于實證得出的結論,它們在軟件工程領域簡直不堪一擊,而且這種情況可能永遠不會改變。因為我們總要求 AI 突破訓練數據的邊界,嘗試構建前所未有的事物,追求超越現有方案。換言之,我們一方面只提供有限的訓練數據,另一方面又指望它別單純照搬訓練過的內容。這點常常讓人們困惑——他們看到 AI 編程能力如此出色,便誤以為這等同于軟件工程能力。但這二者的本質完全不同,重合度也很低。目前還沒有任何實證數據表明大語言模型在軟件工程領域實現了任何顯著的能力提升。
每當我們審視 AI 完成的軟件工程案例,比如 Cursor 開發的瀏覽器或者 Anthropic 搞出來的 C 編譯器——另懷疑,我認真看過這些項目的源代碼,再加上更熟悉編譯器的 Chris Latner——其本質都是對現有成果的明顯照搬。這正是我眼中最核心的挑戰所在:要想做出真正原創性的成果,就不能依賴大語言模型。
理論上我們沒辦法相信大模型會涌現出這種原創能力,實證數據也同樣支撐不了這樣樂觀的猜想。
最先進的 AI,
卻在用 40 年前的開發環境
Dr. Tim Scarfe:沒錯,我覺得這場對話最大的價值就在于,我們需要實現 AI 與人類的協同合作。由人類提供理解力,還有我們之前討論過的各種知識層面的支持。但與此同時,AI 仍然不失為一種重要且強大的工具。我們只要設計出運作模式或者工作方式,確保自身的獨特能力、特別是理解力不被削弱就行。
Jeremy Howard:沒錯,這里確實有條微妙的分界線,也是我們在教學與內部開發時關注的核心點。我這二十年來持續探索的方向,終將成為支撐整個體系的關鍵。Stepehn Wolfram 創造了 notebook 界面,雖然其中很多理念可以追溯至 Samlltalk、Lisp 和 APL,但其意義仍然非常值得肯定。他的核心思想在于:當人類能夠實時操作計算機內部對象、研究它們、移動它們并加以組合,就可以通過計算機實現更多可能。
而 Smalltalk 的核心理念也正是基于對象,APL 同樣以數組為基礎。Mathematica 本質上就是功能強大的 Lisp 語言,只是在此基礎上融入了優雅的 notebook 界面,讓開發者能夠構建出動態生成的活文檔。
幾年前我開發了 nbdev 工具,它能在 notebook 界面跟豐富的動態環境中構建起生產級軟件。我發現這極大提升了自己的編程效率。雖然我從來沒做過全職編程工作,但大家可以看看我的 GitHub 代碼倉庫產出——根據統計數據,我幾乎是全澳大利亞最高效的程序員。這證明我的辦法確實行之有效。我開發的許多工具被大量用戶采用,憑借的就是出色且豐富的構建方式。
如今我們發現,在把 AI 置與跟人類相同的交互環境中時,其表現同樣會顯著提升。可以看到,常規的 AI 編程工具,比如大家使用 Claude Code,其運行環境跟人類 40 年前使用的環境極為相似。這本質上仍然是基于代碼行的終端界面。它當然可以使用 MCP 或者其他工具,但目前多數時候借助的仍然是經典的 bash 工具。
我非常喜歡 bash 工具,在日常工作中也會頻繁使用各類命令行工具。從本質上講,它就是依賴文本文件作為與外界交互的媒介,這實在有點簡陋。所以我們將人類與 AI 置于 Python 解釋器內,立刻就得到了能幫助人類與 AI 對話的強大工具——一種優雅且富有表現力的編程語言。
現如今,AI 能與計算機對話,人類能與計算機對話,計算機又能與 AI 對話。在這種豐富的交互生態中,人類與 AI 得以實時協作,共同構建起雙方都能使用的工具。這也是我所追求的核心價值,創造一個讓人類能夠參與、成長且共享的環境。
于我而言,使用 SolveIt 的體驗跟你之前提到的 Claude Code 恰恰相反。用了幾小時后,我感覺神清氣爽,快樂而充實。
Dr. Tim Scarfe:我來談談自己的看法。你剛剛的核心觀點,就是具備交互性、狀態感知且能夠提供反饋的環境,具有某種神奇的魔力。這是因為我們的大腦能夠處理特定的工作單元,我們會通過反復推敲加現實檢驗的方式來思考問題。正因為如此,我才會在攻讀博士期間選擇使用 Mathematica 和 MatLab。
我完全贊同你的結論。這種 REPL 環境能讓我們直接操作數組、生成圖像圖譜、實時調整參數以即時呈現變化效果。這確實是優化思維模型的絕佳方式。不過 Claude Code 也能實現類似的功能,關鍵在于適當使用操作技巧。高效使用 Claude Code 的開發者普遍具備這種能力。我也開發過內容管理工具,也就是 Rescript,它在制作紀錄片視頻時能自動提取字幕文本,幫我核查陳述內容的真實性。
總之,AI 素養的核心在于理解語言模型在能力上的不對稱性。在要求其處理鑒別型任務時,它們的表現往往非常出色。例如在子智能體模式下要求其逐條驗證主張時,它的準確性就遠高于生成模式下批量生成的主張。關于狀態反饋機制,我們可以采用結構化 XML 導出方案,配合側邊欄可視化應用來形成反饋循環。
對我而言,這文治武功 AI 的優勢所在,也是善于借 AI 之力的使用者們的首選用法。
Jeremy Howard:是的,但我并不完全認同你的觀點。我知道也可以在 Claude Code 中實現相同的效果,也同意具體效果取決于使用者的 AI 素養,但 Claude Code 的設計初衷并不在此。它并不擅長此類操作,這也不是跟 Claude Code 交互的自然方式。我倒不覺得這是 AI 素養的問題——在我看來,如果工具無法以人類熟悉的方式獲取更深的知識、更愉悅的體驗和更緊密的聯結,還有對工作內容的透徹理解并建立情感紐帶,那這絕對是工具的問題,不能說是人的問題。
工具的設計就應該符合人體工程學。但如今,很多模型和工具的評估標準就只是能否接管完整任務并獨立完成。這在我看來是種重大謬誤。真正的關鍵在于:人類在使用之后,能否真正掌握該領域的知識,進而輕松構建出更多成果。
Claude Code 正在背離
“人機共創”的軟件傳統
Dr. Tim Scarfe:我完全贊同。但還有另一個有趣的視角——Joel Grus 曾有一場著名的演講,我們稍后會具體聊。他說 Notebook 程序糟糕透頂,從軟件工程角度看簡直不堪入目。當時,哪怕是到現在可能也仍然如此,我其實挺認同他的觀點。畢竟我也從事過機器學習的運維工作,在大型機構中負責探索數據科學與軟件工程之間的連接。
相較于 Notebook,Claude Code 其實更偏重軟件工程領域,因為它能生成冪等、無狀態及可重復的成果。如你所說,從教育角度看這種基于狀態的反饋其實很好,因為我能夠理解到底發生了什么。之后只要把它轉化成可部署的成果就行了。
所以你能聊聊 Joel Grus 的觀點嗎?記得你當時的回應還鬧得挺大的,給我們講講唄。
Jeremy Howard:他當時拍了段精彩的視頻,就叫《我不喜歡 Notebook》,制作精良而且超級搞笑。現在我承認,我當時的觀點完全錯了。
他列舉了很多 Notebook 做不到的事,但其實都能做到。他說 Notebook 實現不了的功能,其實我每天都在靠 Notebook 實現。可那場演講雖然錯誤百出,卻實在妙趣橫生。后來我模仿他的風格做了段《我喜歡 Notebook》的視頻,基本照搬了他的大部分 PPT 并注明了出處,然后逐條反駁了每條謬誤。
不過你提到的核心問題確實切中了要害——這本質上其實是軟件工程與科學研究等領域在工作方式上的根本差異。我認為這種二元對立確實存在,這樣的割裂也著實令人遺憾。軟件開發的推進方向出了偏差,當前的模式完全聚焦于可復現性,卻無視僵化代碼與文件的持續膨脹。項目里全都是死代碼、死文件,這事我強烈推薦大家去看看 Brett Victor 的論述,他的講解特別精彩。他反復證明:最重要、最正確的方向,永遠是跟所做之事建立起直接且符合直覺的聯結。
他也將此作為自己的使命,確保人們能夠建立起這種聯結。我也把這當作自己的使命。于我而言,傳統軟件工程已經大大偏離了這樣的聯結。我覺得它令人作嘔、簡直惡心,更可悲的是人們正被迫以這樣的方式工作。這不止反人道,而且模式本身根本就行不通——經驗證明其效果極差。對 AI 是如此,對人類更是如此。
事情并不總是這樣的。回到早期,比如 Alan Kay 的 Smalltalk,Iverson 的 APL,還有 Wolfram 的 Mathematica。在我看來,那才是“黃金時代”。
那個時代的人真正關心的問題是:如何讓人類盡可能緊密地與計算機一起工作。比如鼠標的誕生也是如此,通過點擊和拖拽操作將計算機中的對象可視化為可移動的實體。可多年過去,如今我們卻失掉了正確的方向,這實在令人痛心。
而像現在用 Claude Code 這樣的工具時,默認的工作方式卻完全相反:你需要深入到一個系統內部,那里有一整個文件夾的代碼文件,但你甚至從來不會去看它們。你與系統的全部互動,只是通過一個 prompt。
老實說,這讓我真的感到反感。我是真的覺得這種方式有點不人道。
而我的使命,其實二十年來一直沒有變:就是想辦法讓人們不再用這種方式工作。
Dr. Tim Scarfe:明白。但回想起來,我當初跟數據科學家們共事時,他們都在用 Jupyter Notebook。當時我就發現,如果把這些 notebook 直接提交到 Git 倉庫,效果通常不太理想。
大多數數據科學家根本不懂 Git 操作,他們會打亂單元格的執行順序,導致結果無法復現,類似的問題層出不窮。我同意你的觀點,這些工具確實更能融入工作流程。但這又回到了我之前提出的核心問題:就像我們討論客服中心時說的,那屬于低智力需求的工作。要知道,數據科學家之所以屬于高智力工作,是因為他們在創造前所未有的事物。他們在探索問題的邊界,在認知模糊的領域開疆拓土。當然有人會爭辯,說如果數據科學家能夠清晰界定問題的邊界,也許就能借助 Claude Code 實現精準落地了。但是我們該如何在這兩個世界之間架起橋梁?
Jeremy Howard:我覺得這個主意實在沒有必要,你總不是想把人從探索性的環境中剝離出來吧?科研的進步源自人們建立洞見的過程。包括費曼在內的眾多大師,那些偉大的科學家總會強調通過構建思維模型來深化直覺,而這些模型需要經年累月與研究對象的交互才能形成。以費曼為例,由于從事理論物理研究,他不可能實際接觸旋轉的夸克,但他會嘗試研究旋轉的盤子。我們必須自己想辦法找到深度交互的方式。我見過很多數據科學團隊,他們不只是對 Git 不熟悉,他們對自己本該理解的事物也不熟悉。
所以他們的頭頭往往是一位軟件工程師,解決方法就是要求所有數據科學家都停止使用 Jupyter Notebook。現在,他們被迫使用各種可復現的虛擬環境,而這種做法在不斷摧殘團隊。我目睹過太多類似的情況了。正確的解決之道并不在于增設更多紀律條文和官僚職位,而在于解決實際問題。比如我們開發了一款名叫 nb merge driver 的工具——很多朋友不了解,其實 notebook 本身非常適合 Git。只是 Git 并沒有默認為 notebook 提供合并驅動,而僅支持基于行的文本文件。可 Git 系統是支持插件擴展的,所以我們可以輕松通過插件兼容 JSON 文件。
于是我們開發了這類驅動程序。現在只要使用我們的 merge 驅動進行 Git 差異比較,就能在單元格級別上看到差別。每次遇到合并沖突,可以直接定位到單元格級別的具體沖突點,保證 notebook 始終可以在 Jupyter 中打開。NBDime 也實現了相同的功能,大家可以隨意選擇。我認為這才是解決之道:繼承 Brett Victor 的理念,讓人們緊密把握探索性工具。所以一定要完善探索性工具,我甚至 認為所有軟件開發者都應該采用探索式編程,以深化對于所處理對象的理解。這樣我們才能建立起對目標的強大思維模型,進而逐步提出更優解、建立更加完善的測試。
我自己幾乎不需要調試器,因為我的程序里基本不存在 bug。這并不是因為我編程技藝超群,而是我采用微步迭代的方式開發——每個小步驟都經過驗證,我會親眼見證其運行效果并且實時交互。如此一來,bug 根本就無處藏身。
Dr. Tim Scarfe:其實我對這事有點矛盾。我認同你的觀點,但也會質疑那些宣稱組織運作模式終將固化、不再有進一步優化空間的家伙。可創新的本質就是適應性嘛,對吧?我們應該盡可能擴大適應性的覆蓋范圍,所以必然需要有人持續測試新想法、發現新的限制條件。
但同樣的,我們也需要那些穩健可控的技術,比如用云服務和持續集成 / 持續交付(CI/CD)等方式將成果投入生產環境。
Jeremy Howard:沒錯。比如 nbdev 就自帶開箱即用的 CI 集成,還內置了測試功能——畢竟源代碼都是 notebook 形式,整個探索過程都包含在內:API 如何動作、調用時的效果、函數實現方式、使用示例、說明文檔等等。在這樣的環境下,大家自然能把軟件工程處理得更好。總之就應該全都要。
AI 沒大家說得那么嚇人
Dr. Tim Scarfe:你還記得那份關于《應將存在性風險列為緊急優先事項》的聲明嗎?當時 Hinton 和 Demis Hassabis 都有聯合署名。而你基本上是通過反駁來回應的。聊聊那時候的情況吧,你覺得我們應該擔心 AI 帶來的存在性風險嗎?
Jeremy Howard:那只是特定時期的問題,對吧?如今的形勢已經有所轉變,實在是謝天謝地。我們所處的整個學術社群,從某種意義上贏下了這場論戰。現在我們面臨其他更為緊迫的問題,但當時的主流觀點是:AI 即將實現自主化。這種隨時可能實現的自主,也許會將世界推向毀滅。這種觀點很大程度上源自 Alizia Yukowski 的研究,但其結論已經在多個層面被證明是錯的。
Dr. Tim Scarfe:他們當然也有反駁的理由。
Jeremy Howard:沒錯,就像邪教做出的末日預言一樣,只要不給出具體的日期,他們就總有話說。
Dr. Tim Scarfe:那我稍微修正一下:當前的大模型在特定領域確實可以作為智能體,ARC 挑戰賽的結果已經證明了這一點。因此如果把方向收窄一些,可能自主的目標真會更快實現。而這就帶來了新的難題:當全面的智能化與自主性實現之后,如果缺少知識和約束,AI 只會更快走向錯誤方向。很多人其實沒有意識到大模型在認知層面的匱乏……
Jeremy Howard:但這些都跟我反駁的核心觀點無關——我們始終強調,那份聲明對于真正的危險所在做出了誤判。沒錯,當一種極具顛覆性的技術涌入世界,就會讓某些人獲得顛覆性的力量。而那些癡迷權勢的家伙必然會試圖壟斷這項技術。
技術越強大,渴求者們的欲望就會越強烈。所以真正的問題在于:如果不在乎這些潛在風險,單純想盡快推進自主 AI 的崛起,那么唯一的結果就是權力得到空前的集中。這正是當下我們已經反復見證的現實。所有的權力都被交給了超大型科技企業和政府,普通人根本就無法染指。而在我的威脅模型當中,這是最糟糕的結果,因為它帶來了權力的過度集中。而渴望權力的人只要拿下那個集中的點,就能獲得一切。
Dr. Tim Scarfe:那我們能不能明確一下“權力”的定義?因為我們剛剛也聊過,AI 的實際影響力并不像大眾想象中那么強。
Jeremy Howard:我認為 AI 到底有沒有那么強大或者那么深遠的影響,其實都不重要,因為這純屬推測。我堅持的是,這種權力就不該集中在少數公司或者政府手中。因為一旦集中,貪婪者會迅速將其壟斷,進而摧毀整個人類文明。過去幾百年來,人類社會曾經反復遭遇過這種困境。
就像文字發明之初,只有極少數精英能夠掌握書寫能力,而史冊也就在他們的指尖流轉。當時也有類似的論調:若放任大眾書寫,他們必將寫下我們不愿見到的內容,后果不堪設想。
可印刷術的普及證明,根本沒這回事。選舉制度的推行也是如此。社會始終在與既得利益者的本能性偏見對抗,試圖證明變革并不是威脅。所以當我們討論 AI 可能變得極其強大時,那帶來的成果到底是讓少數人掌控收益,還是把成果共享給整個社會?
我的觀點肯定是后者。當然也有人會說,不用擔心啦,AI 不可能發展得那么強大。這個不重要,因為大家根本就沒有確鑿的證據,誰也說不準未來會發生什么。但我可以明確地講:萬一那么強大的技術出現了,那我們應該放任馬斯克或者特朗普一人將其掌控嗎?這明智嗎?
Dr. Tim Scarfe:Dan Hendricks 曾經討論過攻防不對稱性的話題。建立制衡性的防御體系確實非常重要,但權力失衡又是一種不容辯駁的現實。無論是 Meta 還是 Facebook,這類平臺掌握著所有用戶數據,知曉我們的全部行為。至于 OpenAI 和 Claude 這類技術,實際效果反而不如預期,因此允許人類繼續參與其中。可數據確實還是由他們掌握的,對吧?
假設我們在研發創新技術時使用 Claude,那上傳的信息就能讓他們輕松復制我們的成果。所以具體來講,你指的是哪些風險?
Jeremy Howard:我指的風險并不是這些具體的情況,而是一個假設性的問題:如果 AI 變得極其強大,未來會是什么樣的樣貌?
Dr. Tim Scarfe:比如現在就有人宣稱,AI 代表著新的生產方式。這在我看來完全是夸夸其談,那依你的判斷,這里具體存在怎樣的風險?
Jeremy Howard:按目前的技術狀態來講,我認為最大的風險就是人們會喪失持續提升自身能力的機會,逐漸陷入能力衰退的陷阱。這才是我最擔憂的問題。
隱私風險確實存在,但我至少不覺得比谷歌和微軟早期的情況更嚴重。你之前在微軟工作過,肯定清楚他們掌握著多少普通用戶的 Outlook 和 Office 數據。谷歌也是如此,Google Workspace 和 Gmail 用戶的數據量已經說明了一切。這些隱私問題確實存在,但我認為更可怕的是企業只是外包商,負責替政府進行數據收集的可能性。
過去是 ChoicePoint 和 Acxiom 這類公司,如今又出現了 Palantir 等企業。美國政府不能親自建立大規模公民數據庫,但法律卻不禁止企業自建數據庫,這就相當于政府把業務外包給了企業。這才是最大的問題,當然并不是 AI 時代的獨有難題。
以你所在的英國為例。眾所周知,英國的監控體系早已實現全面覆蓋,這也讓對監控數據的利用更加便捷。以及需要資源充足的機構投入足夠的人手,才能讓土地上發生的一切都盡在掌握,但現在 AI 能夠輕松完成。所以我不是說 AI 時代才帶來了隱私問題,但它至少讓隱私問題擴大化了。
https://www.youtube.com/watch?v=dHBEQ-Ryo24&t=3914s
聲明:本文為 AI 前線整理,不代表平臺觀點,未經許可禁止轉載。
會議推薦
OpenClaw 出圈,“養蝦”潮狂熱,開年 Agentic AI 這把火燒得不可謂不旺。在這一熱潮下,自托管 Agent 形態迅速普及:多入口對話、持久記憶、Skills 工具鏈帶來強大生產力。但這背后也暴露了工程化落地的真實難題——權限邊界與隔離運行、Skills 供應鏈安全、可觀測與可追溯、記憶分層與跨場景污染、以及如何把 Agent 納入團隊研發 / 運維流程并形成穩定收益。
針對這一系列挑戰,在 4 月 16-18 日即將舉辦的 QCon 北京站上,我們特別策劃了「OpenClaw 生態實踐」專題,將聚焦一線實踐與踩坑復盤,分享企業如何構建私有 Skills、制定安全護欄、搭建審計與回放機制、建立質量 / 效率指標體系,最終把自托管 Agent 從可用的 Demo 升級為可靠的生產系統。
特別聲明:以上內容(如有圖片或視頻亦包括在內)為自媒體平臺“網易號”用戶上傳并發布,本平臺僅提供信息存儲服務。
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.