o1 剛出來的時候,很多人還質疑這還達不到AGI(通用人工智慧)。 o3 體現出的程式設計和數學能力,不僅達到了AGI 的門檻,甚至摸到了ASI(超級人工智慧)的邊。
o3 也進一步驗證了RL 和test-time scaling 的價值,在高品質預訓練資料基本上耗盡,模型能力「撞牆」 的情況下,提供了一條通過後訓練和增加推理時間,繼續提升模型智力,解決更困難問題的路徑。
o3 具體的效能指標很多人都看到了,我就不再重複了。省流版:
• o3 在Codeforces 程式設計競技中擊敗了99.9% 的程式設計師,在168076 名程式設計師中排名175 名。連o3 的作者都打不過o3。
• o3 在程式解決真實世界需求方面也比o1 有明顯提升,在SWE-Bench 軟體開發測試中,先前發布的o1-preview 是41.3%,o3 是71.7%,也就是70% 的真實世界需求,o3可以直接做對,並通過單元測試。也意味著只有剩下30% 的工作需要人類程式設計師去編碼完成了,而這部分工作AI 也可以幫助人類程式設計師大幅提升效率。
• 在AIME 2024 數學測驗中做對了96.7%,相當於在美國數學奧林匹克競賽上只答錯了一道題。
• 在博士級科學問題測驗的GPQA Diamond 中超過o1 10 個百分點,而o1 基本上已經是人類博士生的平均水準。
• 圖形邏輯推理的ARC-AGI,o3 經過微調後,達到87.5%,超過人類平均(85%)。
但o3 並不是萬能的,現實世界工程任務的處理能力也沒有想像的那麼強。我發現大型工程專案中的程式設計任務,o1 preview 的準確率並不如Claude 3.5 Sonnet。 o1 擅長的是邊界清晰、定義明確的封閉式科學問題。 o3 不知道怎麼樣,但從SWE Bench 只能做對71% 來看,還是不如人類軟體開發工程師的,因為一個合格的全端工程師不能說我只能完成70% 的需求,剩下30% 的需求做不了。 o3 在Codeforces 上超過99.9% 的人類,是因為程式設計競賽題都是邊界清晰、定義明確的,而在真實世界的工程任務上就遠不如程式設計競賽那麼強。
有些人說o3 現在太貴了,一個任務1000 美金什麼的,還是真人便宜。我想從幾個角度駁斥這個觀點:
大多數軟體專案的程式設計任務只要o3 mini 的能力就夠了,它比o1 preview 更強,但比o1 preview 便宜。而即使o1 preview 的價格已經低於人類工程師的開發成本,這意味著對於AI 能解決的軟體開發問題,AI 的成本是低於人類工程師純手工編程的。
• o3 mini 無法解決,需要o3 滿血版才能解決的問題,往往是比較困難的問題,普通程式設計師或數學專業的大學生並不能解決。如果要招一個可靠的大神程式設計師或數學專家來解決這些問題,所需的成本遠遠超過1000 美金。
• 大模型的知識密度不斷提高,劉知遠老師提出的知識密度定律(每3.3 個月模型知識密度提升一倍)對reasoning 模型仍然成立。例如僅僅半年過去,o3 mini 就以低10 倍的成本達到了o1 preview 的能力。因此,隨著硬體的摩爾定律和模型知識密度提高,推理成本會快速降低。
因此,我認為這一波大模型的進展證實了我一直相信的觀點:在能源有限的情況下,相較於人類,AI 是智慧更有效率的形式。很高興看到OpenAI 一直在引領整個產業,探索將能源轉化成智慧更有效率的解決方案。
從今年9 月o1 發布開始,我就陷入了迷茫:AI 的軟體開發能力已經超過人類,AI 的智力超越人類也已成定局。那人類程式設計師還能做什麼?
如果讓我和AI 上Codeforces 打比賽,不要說o3,連o1 不一定能打過。我也是NOI 演算法競賽保送的,在公司我對編碼能力還是有一些自信,比如我做面試官的時候,從來不讓候選人運行代碼,因為面試題這種幾十行的小程序,我基本上一眼就能看出他那裡寫錯了。但在AI 面前,我仍然感受到深深的無力感。
而真實專案中的簡單軟體開發需求,我也不一定能打過Claude 3.5 Sonnet。有時候我覺得Cursor 裡面的Composer Agent(或是類似的一款AI 程式軟體Windsurf)輸出比較慢,就想只改幾行程式碼的簡單需求,我自己寫會不會更快。但我試了幾次,往往是我剛剛在程式碼倉裡面定位到該改那塊程式碼,AI 就已經寫完了。大多數時候我做的事情反而是最沒有技術含量的,或者說更類似產品經理的:把需求用自然語言描述清楚告訴AI,然後看AI 輸出的東西是否符合我的需求。(當然今天AI 還沒這麼強,當它搞不定的時候,還得我動手去改代碼)今天o3 的demo 裡面,也能看到整個demo 裡面最慢的不是AI,而是操作AI 的人。
那麼AI Infra 這種相對專業的領域,是不是還只能靠人類專家呢? 例如給定一個萬卡叢集的訓練任務和硬體配置,問PP、DP、TP 三種並行方式最優的參數怎麼選擇?我在草稿紙上算了一整晚才算出來。如果直接去問o1-preview,它也會答錯,因為缺少領域知識,例如它不知道GPU 的硬體參數和LLaMA 70B 的tensor shape。但如果我從知識庫裡找到相關的背景知識告訴o1-preview,在它第一步輸出之後指出它的問題,讓它繼續改進,只要5 輪對話,半個小時(包括輸入prompt 的時間), o1-preview 就能列公式計算,得到跟我想了一整晚一樣的結論。一個好的推論是,基於推理能力最強的模型,AI 可以大大提升領域專家的工作效率。一個壞的推論是,領域專業知識和經驗並不是人在AI 面前的護城河。
昨天晚上我剛好跟老婆討論這個問題,我老婆就說,9 月我覺得AI 程式設計厲害,可以一個人寫一個大項目,不需要團隊。但實際呢?
首先,AI 的程式碼品質和軟體工程能力還不如專業程式設計師。 11 月開始我獨立負責一個專案的大部分技術開發工作,有了Cursor 和Claude 3.5 Sonnet,一個月4 萬多行的程式碼產量確實比之前高了很多,但AI 的程式碼品質不如人,例如不遵循DRY 原則,大量程式碼重複。由於測試案例不完善,AI 也常常把原本對的地方改錯了,導致專案裡到處都是bug。因此,人仍然需要身為AI 的守門員,類似軟體開發團隊裡committer 的角色。
其次,獨行快,眾行遠。一個人的思考容易陷入死胡同,也容易喪失動力。合夥人的角色並不簡單是幫忙分擔工作,更重要的是提供不同的思考角度,能在悲觀絕望的時候拉一把,能在得意自滿的時候澆一盆冷水,能在分心的時候催一催進展,能在技術行不通的時候換個路線甚至乾脆砍掉這個特性。
最後,技術只是公司的一個方面,還不一定是最重要的方面。例如這次o3 發表會,兩位技術專家的demo 明顯不如Sam Altman 會講。兩位技術專家都是我非常崇拜的大神,但做demo 的時候仍然很難讓外行人理解這技術有多麼牛逼。在demo 中,o3 mini 自己寫了個Agent 框架,一次跑通,用戶又在這個Agent 框架裡寫了一個評測自己的程序,也是一次跑通,最後出來一個61% 的性能指標。我們內行人直呼太強了,但旁邊的Sam Altman 提醒他們解釋下這是在幹啥。估計在許多外行人眼裡,這個demo 就是開發了一個粗糙的HTML 介面,輸入一段prompt 出來一個不知道是啥的測試結果,根本get 不到AI bootstrapping 的厲害。
讓我想起來去年底我們做出來第一版語音電話,做了Donald Trump 和Elon Musk 的數位分身,能夠給Trump 和Musk 打電話聊天,音色和說話風格都很類似。但投資人看了是蒙的,這玩意有啥用?用戶為何要打給Trump 和Musk 的數位分身?有些朋友就跟我說,別人是把一個100 分的東西講成500 分,我是把一個100 分的東西講成60 分。因此對一家公司而言,Sam Altman 這樣的角色是非常重要的。在闡明技術價值方面,目前AI 還是乾不過人類。
綜合以上三點,昨天晚上我就想通了,人類不該跟AI 拼智力。這就像在工業革命中,人類不該跟機器拼體力。但工業革命並沒有取代人類,因為機器擴展了人類體力的邊界,既能夠搬運人類搬不動的東西,也提升了重複體力勞動(例如種地、紡織)的效率,讓人類的體力勞動更體面了。今天的AI 也擴展了人類智力的邊界,未來既能解決人類需要最燒腦才能想出答案的難題,又能提升重複腦力勞動(例如填表、寫PPT)的效率,這樣人類的腦力勞動也將更加體面。
就像工業革命一樣,我認為AI 並不是程式設計師的終結者,相反,它可以大大提升程式設計師的工作效率。也不用擔心程式設計師效率普遍提升了會有很多人失業,因為社會的軟體開發需求目前是遠遠沒有被滿足的。
第一是獨立開發者。我有很多想做的東西,但沒有時間,開發不出來。現在效率提升了,就能把之前一直想做的東西做出來了。現在AI 只能提升我整體效率一倍,因為有很多AI 做不了或做不好的事情。但我相信有了更強大的模型和agentic workflow,2025 年整體效率提升10 倍是有希望的。在未來的一年裡,我希望能利用AI 能力,實現幾個心願。
第二是to B 行業。傳統產業裡也有很多沒有數位化的流程和知識,這也是ERP 在許多產業落地的最大挑戰。之前我們覺得客製化開發就是外包,成本收不回來,因此很多工作流程就是沒有數位化和自動化的。現在有了AI,為每個產業做客製化開發成本降低了,整理零散知識的成本也降低了,更多產業就可以實現數位轉型。
希望o3 mini 和o3 能夠早日開放使用,國內各家大模型也能盡快追上o1 的能力。(青稞AI)