LeCun團隊開源首個代碼世界模型:能生成代碼還能自測自修!傳統(tǒng)編程模型一夜成古典
剛剛,Meta FAIR推出了代碼世界模型!
CWM(Code World Model),一個參數(shù)量為32B、上下文大小達131k token的密集語言模型,專為代碼生成和推理打造的研究模型
這是全球首個將世界模型系統(tǒng)性引入代碼生成的語言模型。
圖片
與現(xiàn)有代碼大模型相比,CWM最與眾不同的一點在于,它不僅能生成代碼、理解語義。
更關鍵的是,它“懂得”代碼如何執(zhí)行,能模擬代碼運行過程中變量的狀態(tài)變化與環(huán)境反饋,從而推動代碼理解、調(diào)試乃至規(guī)劃的整體能力提升。
也就是說,它具備接近人類程序員的思考能力。
在多個代碼與推理任務上,CWM均有出色表現(xiàn),譬如其在SWE-bench Verified得分65.8%,領先所有開源同規(guī)模模型,已接近GPT-4級別。
更重要的是,Meta FAIR這次開源了模型代碼、訓練細節(jié)以及多個階段的權重檢查點,誠意十足。
圖片
有人給LeCun留言問:
“你不是一直認為語言模型只是AI道路上的一個支線(LLMs are an off ramp),怎么又推出了以語言模型為基礎的世界模型?”
圖片
LeCun輕松回復稱:
是的,不過咱現(xiàn)在講的是編程,不是ASI喲~
讓大模型“懂動態(tài)執(zhí)行”
CWM的誕生,直擊當前大模型在代碼生成中的一大痛點:
盡管現(xiàn)有大模型已經(jīng)具備寫代碼的能力,但代碼執(zhí)行效果并不穩(wěn)定,生成內(nèi)容難以調(diào)試、不可執(zhí)行,甚至存在隱藏邏輯錯誤。
FAIR團隊認為,其根源在于大模型只是把代碼當作文本來預測。
它不理解代碼會如何運行,對變量狀態(tài)的變化、函數(shù)調(diào)用的副作用一知半解(甚至一無所知)。
在FAIR團隊看來:
如果希望模型像程序員一樣思考,就必須教會它代碼執(zhí)行的“世界狀態(tài)”變化。
圖片
因此,CWM首次在訓練過程中引入代碼世界建模(code world modeling)的概念,明確讓模型學習“代碼運行過程中,程序狀態(tài)如何一步步演變”。
這意味著,CWM的理解維度,從靜態(tài)文本躍遷到了動態(tài)執(zhí)行。
Meta FAIR專攻AI與代碼生成的資深研究科學家,也是CWM的資深核心貢獻者Gabriel Synnaeve在??上分享了CWM追蹤執(zhí)行計算”strawberry”中”r”個數(shù)的代碼的例子:
你可以把它想象成一個可以設置為任何初始幀狀態(tài)的神經(jīng)‘pdb’,推理可以作為工具在標記空間中查詢。
圖片
相較于傳統(tǒng)代碼大模型生成token接token的靜態(tài)預測,CWM在三大能力有所升級——
第一,代碼執(zhí)行模擬。
CWM可以逐行模擬代碼執(zhí)行過程,預測每一行代碼如何影響變量狀態(tài),甚至提前判斷出執(zhí)行中的潛在錯誤。
這種能力為構建“神經(jīng)調(diào)試器”提供了可能。
在CWM的推理過程中,變量狀態(tài)可以隨代碼運行不斷更新。
它甚至可以模擬終止條件、循環(huán)展開、邊界情況,從而更精準地理解程序邏輯。
第二,自我調(diào)試與修復。
不止會寫代碼,CWM還能自測、修錯。
它能夠在生成代碼后自動構造測試用例,并在發(fā)現(xiàn)代碼失敗后用多種修改路徑來嘗試自我修復。
整個流程模擬了人類程序員常見的開發(fā)閉環(huán):寫→測試→改→再測。
第三,推理與規(guī)劃能力。
面對復雜問題時,CWM還能進行推理與規(guī)劃。
例如,在編程競賽或數(shù)學任務中,它可以根據(jù)問題描述分析步驟、規(guī)劃函數(shù)結構,再結合執(zhí)行預測逐步生成并驗證代碼,展現(xiàn)出多輪邏輯推理能力。
CWM模型信息:參數(shù)、架構、性能一次看全
CWM的模型架構采用了64層的decoder-only Transformer,參數(shù)規(guī)模為32B。
它支持131k tokens的長上下文輸入——這大幅拓展了復雜項目、多文件代碼、文檔上下文的處理能力。
相對應的,Attention結構采用了局部+全局交替機制,兼顧效率與上下文覆蓋。
圖片
FAIR提供了以下3個checkpoints,供研究人員使用:
- CWM預訓練模型:例如用于新的后訓練方法。
- CWM SFT:例如用于強化學習研究。
- CWM:例如用于推理時間擴展。
圖片
在與多個一線模型的評測對比上,CWM成績?nèi)缦拢?/span>
- SWE-bench Verified得分65.8%,領先所有開源同規(guī)模模型,接近GPT-4級別;
- LiveCodeBench v5得分68.6%,展示高復雜度編程任務上的準確性;
- Math-500得分96.6%,AIME 2024模擬題達76.0%;
- Terminal-Bench得分26.3%,高于Gemini 2.5 Pro;
- Aider Polyglot(多語言代碼生成)得分35.1%,與Qwen3-32B相近。
綜合來看,CWM在理解、生成、驗證、修復等多個環(huán)節(jié)上,都有不俗表現(xiàn)。
圖片
FAIR團隊稱CWM驗證了“代碼世界建?!睂μ嵘评砼c代碼生成的價值。
Gabriel Synnaeve表示:
我對我的CodeGen團隊所做的工作感到無比自豪!這個團隊由博士生和經(jīng)驗豐富的資深員工組成。我們所有人都齊心協(xié)力,全力以赴,絕不將任何問題歸咎于他人。整個Meta AI社區(qū)都為此共同努力。非常感謝整個領導層始終如一的支持。
圖片
三階段訓練流程,與數(shù)據(jù)集構建
CWM分三階段進行訓練——
第一階段,預訓練階段(Pretrain)。
在這個階段,CWM使用了8T tokens的數(shù)據(jù)進行通用語言與代碼建模訓練。
其中代碼占比約30%,上下文長度為8k token。
第二階段,中期訓練階段(Mid-train),這也是CWM最具特色的一步。
在這個階段,模型引入了5T tokens的世界建模數(shù)據(jù),用于訓練模型識別“代碼運行過程中,程序狀態(tài)如何變化”。
這部分核心數(shù)據(jù)類型包括:
- Python執(zhí)行軌跡數(shù)據(jù)來自數(shù)千萬函數(shù)調(diào)用與代碼提交,記錄每一行代碼執(zhí)行時變量的值如何變化;
- ForagerAgent數(shù)據(jù)模型驅動的智能體在真實Docker環(huán)境中運行代碼,修復Bug,執(zhí)行任務,生成真實交互軌跡(共300萬條);
- 自然語言描述版本將執(zhí)行過程轉化為自然語言,便于泛化遷移。
圖片
也是在這一階段,CWM的上下文能力擴展到了131k token,支撐對大型項目和代碼流程的完整建模。
第三階段,后訓練階段(SFT+多任務RL)。
最后,CWM進行了100B tokens的監(jiān)督微調(diào)訓練(SFT)和172B tokens的多任務強化學習(RL)訓練。
訓練任務覆蓋了真實軟件工程任務(如SWE-bench)、編程競賽問題(CodeContests等)、數(shù)學推理題目(如AIME模擬題、MathQA)。
在這一階段,F(xiàn)AIR團隊使用異步RL機制、分布式環(huán)境以及自舉方法,提升了模型在多環(huán)境、多任務間的泛化能力。
圖片
基礎設施方面,CWM訓練使用了FlashAttention-3、FSDP+TP并行策略,并采用fp8低精度加速。
Meta FAIR強調(diào)其訓練過程遵循了Frontier AI Framework中的前沿AI安全框架。
結果表明,CWM不會對網(wǎng)絡安全、化學、生物等高敏感領域構成濫用風險。
此外需要注意的一點是,當前CWM的世界建模數(shù)據(jù)僅支持Python語言,尚未覆蓋C++、Java等主流語言或符號執(zhí)行任務。
不過,研究團隊表示未來將探索多語言擴展,有望形成自動化編程助手的通用框架。
Two More Things
BTW,如果你想使用使用CWM,有兩點需要特別注意:
第一點,CWM主要面向代碼理解與復雜推理研究,沒有做RLHF。
因此,它并不適合對話任務或作為Chatbot使用。
第二點,CWM明確定位是“研究用”,即僅供非商業(yè)研究使用。
Anyway,總之,CWM團隊選擇了模型開源、數(shù)據(jù)透明、訓練復現(xiàn)全開放。借此也向研究社區(qū)拋出一個重要問題:
如果大模型能理解世界,它能成為更好的程序員嗎?



































