楊立昆團(tuán)隊(duì)將世界模型塞進(jìn)了代碼生成,AI也能一邊寫一邊“調(diào)試”代碼了
Meta旗下的人工智能研究部門FAIR(Facebook AI Research)發(fā)布了全球首個(gè)代碼世界模型(CWM),把“世界模型”(World Model)用在了代碼生成上。

傳統(tǒng)的代碼模型,通過(guò)看海量的代碼,學(xué)到的是“別人一般這么寫”。
而CWM的思路,是通過(guò)模擬代碼運(yùn)行時(shí)內(nèi)部發(fā)生的一切,預(yù)測(cè)每一行指令下去,程序的狀態(tài)會(huì)變成什么樣。這樣一來(lái),模型在寫代碼的時(shí)候,腦子里就像有個(gè)小型沙盒在不斷預(yù)演“調(diào)試”代碼。它會(huì)一邊寫,一邊想,“我下一步這么寫,那個(gè)變量會(huì)變成啥?會(huì)不會(huì)崩?”,從而動(dòng)態(tài)調(diào)整,寫出更靠譜的代碼。
這模型是怎么煉成的
要讓模型有這種“預(yù)判”能力,光靠“讀萬(wàn)卷碼”是不夠的,還得“行萬(wàn)里路”,親眼看代碼是怎么跑的。
Meta給CWM設(shè)計(jì)了一套三段式的訓(xùn)練流程。


“預(yù)訓(xùn)練”(Pre-training)找了8萬(wàn)億(8T)個(gè)tokens的通用代碼和自然語(yǔ)言資料,先讓模型把基礎(chǔ)打好,學(xué)會(huì)認(rèn)字、組詞、造句,對(duì)代碼有個(gè)基本的理解。
“中段訓(xùn)練”(Mid-training),模型不再是簡(jiǎn)單地看靜態(tài)代碼了,而是開(kāi)始大規(guī)模觀摩代碼的“現(xiàn)場(chǎng)直播”。Meta準(zhǔn)備了超過(guò)3萬(wàn)個(gè)可執(zhí)行的Docker容器鏡像,這玩意可以理解為一個(gè)個(gè)打包好的、真實(shí)的軟件運(yùn)行環(huán)境。然后,他們讓超過(guò)2億條Python程序在這些環(huán)境里跑起來(lái)。
跑的時(shí)候,CWM全程在旁邊盯著。它記錄下程序內(nèi)存里發(fā)生的一切,形成所謂的“內(nèi)存軌跡”(memory traces)。比如一個(gè)變量被賦值了,一個(gè)函數(shù)被調(diào)用了,一個(gè)列表的元素被修改了,甚至程序拋出了一個(gè)異常,這些細(xì)節(jié)全都被CWM看在眼里,記在心里。
這就像讓一個(gè)醫(yī)學(xué)生不光背誦理論,還直接把他扔到手術(shù)室里,觀摩成千上萬(wàn)臺(tái)手術(shù),看主刀醫(yī)生怎么處理各種狀況,看病人的生命體征如何變化。
訓(xùn)練數(shù)據(jù)里還包括300萬(wàn)條模擬的智能體交互軌跡。在這些軌跡里,模型需要自己嘗試和文件系統(tǒng)、解釋器這些計(jì)算環(huán)境打交道,完成一個(gè)個(gè)小任務(wù),在一次次交互和試錯(cuò)中,學(xué)習(xí)行為和結(jié)果之間的因果關(guān)系。
經(jīng)過(guò)這個(gè)階段5萬(wàn)億tokens數(shù)據(jù)的“熏陶”,CWM逐漸就有了“代碼感”,也就是對(duì)代碼執(zhí)行動(dòng)態(tài)的理解能力。
“后訓(xùn)練”(Post-training)階段則包含監(jiān)督微調(diào)(SFT)和強(qiáng)化學(xué)習(xí)(RL)。監(jiān)督微調(diào)主要是教模型如何更好地理解和遵循人類的指令。而強(qiáng)化學(xué)習(xí)則更有意思,它不是靠人來(lái)打分(RLHF),而是靠環(huán)境來(lái)反饋。
比如,讓CWM去修復(fù)一個(gè)bug,修復(fù)成功了,單元測(cè)試通過(guò)了,環(huán)境就給它一個(gè)“獎(jiǎng)勵(lì)”;修復(fù)失敗了,就給個(gè)“懲罰”。讓它去證明一道數(shù)學(xué)題,證明對(duì)了,獎(jiǎng)勵(lì);證錯(cuò)了,懲罰。這種來(lái)自環(huán)境的、可驗(yàn)證的獎(jiǎng)勵(lì)信號(hào),比人的主觀判斷要客觀、高效得多,也更容易規(guī)模化。
通過(guò)這種方式,CWM的各項(xiàng)專業(yè)技能被進(jìn)一步打磨,最終成型。
它的身體構(gòu)造有何不同
CWM是一個(gè)擁有320億(32B)參數(shù)的“大塊頭”,屬于稠密(dense)架構(gòu)模型。
它最長(zhǎng)能處理131,072個(gè)tokens的上下文,這意味著它可以一口氣讀完一個(gè)非常非常長(zhǎng)的代碼文件,理解里面的來(lái)龍去脈,這對(duì)于處理復(fù)雜的現(xiàn)代軟件項(xiàng)目至關(guān)重要。
在最核心的注意力機(jī)制上,CWM也玩了點(diǎn)新花樣。它沒(méi)有一視同仁,而是創(chuàng)新地把局部注意力和全局注意力結(jié)合起來(lái)用,并且按3:1的比例交替進(jìn)行。
局部注意力的“視野”是8192個(gè)tokens,負(fù)責(zé)精讀一小段代碼里的細(xì)節(jié)。全局注意力的“視野”則拉滿到131,072個(gè)tokens,負(fù)責(zé)鳥(niǎo)瞰整個(gè)代碼文件的宏觀結(jié)構(gòu)。
這種設(shè)計(jì)很聰明,就像我們讀一本書(shū),既要仔細(xì)看懂當(dāng)前這一頁(yè)的字句,也要時(shí)不時(shí)抬頭想想這一章和前后章節(jié)的聯(lián)系。這樣既能高效處理局部邏輯,又不會(huì)丟失長(zhǎng)距離的依賴關(guān)系,比如一個(gè)在文件開(kāi)頭定義的函數(shù),在文件末尾被調(diào)用了,模型也能捕捉到。
為了在保持高性能的同時(shí)省點(diǎn)力氣,CWM還用了分組查詢注意力(Grouped-Query Attention, GQA)技術(shù),算是一種在效果和計(jì)算開(kāi)銷之間的精明平衡。
CWM的實(shí)戰(zhàn)能力如何
Meta用一系列業(yè)界公認(rèn)的基準(zhǔn)測(cè)試,把它和同期的一些頂尖模型放在一起比了比。


注:GPT-5與gpt-oss-20B使用自定義477問(wèn)題子集,CWM使用完整500問(wèn)題集評(píng)估。
LiveCodeBench(LCB)這個(gè)榜單,衡量的是模型在真實(shí)編程任務(wù)里的表現(xiàn)。CWM在v5和v6兩個(gè)版本上分別拿到了68.6%和63.5%的成績(jī)。
Math-500是數(shù)學(xué)推理測(cè)試,CWM考了96.6%的高分,和Qwen3-32B的97.2%幾乎持平。這顯示出它在邏輯嚴(yán)密的數(shù)學(xué)證明和推理這類任務(wù)上,能力非常強(qiáng)。
AIME(美國(guó)數(shù)學(xué)邀請(qǐng)賽)是更難的數(shù)學(xué)競(jìng)賽題。CWM的表現(xiàn)也還不錯(cuò),但在這一項(xiàng)上比Magistral-small和Qwen3-32B稍微遜色一些。
真正的亮點(diǎn)在SWE-bench Verified這個(gè)榜單上。這是一個(gè)衡量模型解決真實(shí)世界軟件工程問(wèn)題的基準(zhǔn),比如修復(fù)GitHub上的bug、給開(kāi)源項(xiàng)目加新功能等。CWM的基礎(chǔ)版拿到了53.9%的成績(jī),已經(jīng)很不錯(cuò)了。如果再給它加上一個(gè)叫“測(cè)試時(shí)擴(kuò)展”(test-time scaling, tts)的輔助技術(shù),成績(jī)直接飆到65.8%,把榜單上其他幾個(gè)模型都甩在了身后。
說(shuō)明CWM憑借其對(duì)代碼執(zhí)行的理解能力,在處理復(fù)雜、真實(shí)的軟件工程任務(wù)時(shí),確實(shí)比其他模型更有優(yōu)勢(shì)。
開(kāi)源:非商業(yè)研究許可
Meta把CWM的模型權(quán)重開(kāi)源了,并且一次性放出了三個(gè)版本:
cwm指令微調(diào)版,開(kāi)箱即用,適合絕大多數(shù)通用代碼任務(wù)。cwm-sft監(jiān)督微調(diào)版,只完成了基礎(chǔ)指令跟隨訓(xùn)練,還沒(méi)經(jīng)過(guò)強(qiáng)化學(xué)習(xí)的“打磨”。cwm-pretrain預(yù)訓(xùn)練版,最原始的“毛坯房”,供研究者們進(jìn)行更深度的二次開(kāi)發(fā)。
遵循的是FAIR非商業(yè)研究許可。
CWM的發(fā)布,在AI圈和開(kāi)發(fā)者社區(qū)里激起了不小的浪花。
Yann LeCun(楊立昆)親自下場(chǎng)解釋,他說(shuō)CWM的核心價(jià)值就在于“生成代碼時(shí),通過(guò)提前預(yù)測(cè)即將生成的代碼指令可能產(chǎn)生的效果,來(lái)更好地規(guī)劃出能夠滿足人類期望達(dá)成的效果的代碼”。
標(biāo)志著代碼生成模型開(kāi)始從一個(gè)只會(huì)“模仿”的復(fù)讀機(jī),向一個(gè)懂得“思考”和“規(guī)劃”的智能體進(jìn)化。
它就像是給代碼AI裝上了一雙能看透程序內(nèi)部狀態(tài)的眼睛,讓它在敲下每一個(gè)字符之前,都能先在腦子里過(guò)一遍“如果我這么寫,會(huì)發(fā)生什么”。
這種能力的價(jià)值,將在自動(dòng)化軟件工程、智能代碼調(diào)試、復(fù)雜算法生成等領(lǐng)域,逐漸顯現(xiàn)出來(lái)。



























