← 返回部落格
Ai預計閱讀 9 分鐘

一個在實戰中學會寫程式的開源模型

發布於 2026年10月15日
一個在實戰中學會寫程式的開源模型

一個在實戰中學會寫程式的開源模型

JetBrains 於 10 月 8 日發布 Mellum2.1。這是一個 120 億參數的混合專家(mixture-of-experts)模型,專為程式代理打造,並以 Apache 2.0 授權在 Hugging Face 上開放。單看這些資訊,它只是本月眾多同類發布中的一個。真正讓它與眾不同的是訓練方式。

Mellum2.1 的後訓練在真實的程式環境中使用強化學習。不是模擬的基準測試框架,也不是由已解題目組成的靜態資料集。模型會像在職開發者一樣瀏覽版本庫、修改檔案、檢查自己的變更。

為什麼訓練方式比參數規模更重要

現今大多數程式模型先被訓練來預測下一段程式碼,再用優質修補的範例做微調。這是一條合理的流程,產出的模型能自動完成、能解釋程式碼。但面對一個根本建置不起來的版本庫,這種準備遠遠不夠:第一個修正弄壞了測試,第二個修正又弄壞了別的東西。

真正需要的能力不是寫出一個函式,而是閉合迴路:提出假設、做出變更、觀察結果、修正。在真實環境中用強化學習訓練,獎勵的正是這種行為,因為獎勵來自變更是否真的奏效。

這也正是程式代理開始變得有用的那次轉變。只能寫程式的模型只是花俏的自動完成。能執行測試、讀懂錯誤、再試一次的模型才是協作者。Mellum2.1 的訓練資料就是這條迴路本身。

一個發光的循環箭頭沿著一條細線繞行:讀取檔案、編輯、執行、校驗四段首尾相連,示意強化學習在真實倉庫中的閉環

120 億參數是刻意的規模

相較於前沿模型,120 億參數很小。而這正是重點。程式代理在緊湊的迴路中運作,讀檔案、跑指令、看差異,因此會被頻繁呼叫。一個執行成本低、回應快速的模型,可以比每一步都要花真金白銀的模型用得激進得多。

混合專家的設計進一步強化了同樣的思路。即使總容量增加,每個 token 的啟動量仍保持適中,讓推論維持低廉,又不會讓模型缺乏知識。對於一個完成任務可能要觸發數十次的工具,這筆取捨恰到好處。

整個 10 月正在形成一種模式。小巧、專用、開放授權的模型正陸續出現,承擔大型系統中的重複性工作:這裡有 JetBrains,還有 Liquid AI 的決策模型、Underdog AI 壓縮後的 27B 版本。前沿模型決定上限,小模型決定下限,而大多數 token 正好消耗在下限這一層。

開放權重作為一種散布策略

JetBrains 不是爭奪跑分冠軍的實驗室。它賣的是開發者工具,動機是讓這些工具更好用,而不是把模型捂在手裡。以 Apache 2.0 發布 Mellum2.1,能讓模型在整個生態系中擴散,包括進入競品編輯器與代理框架。

這點值得留意。當一家工具公司開源一個程式模型時,它是在押注價值在於整合與工作流程,而不在於權重。這跟今年許多基礎設施公司下的注一樣,而且這種注往往經得起時間考驗。一個沒人能採用的模型,就無法成為標準。

Apache 2.0 對採用尤其重要。寬鬆授權省去了讓大型企業試用新模型時拖慢進程的法務審查。對於客戶正是這些企業的公司來說,發布一個寬鬆授權的模型,是在真正開賣之前先培養熟悉度的辦法。

與前沿程式模型的比較

前沿程式模型更擅長難題。這點沒有爭議,短期內也不太會改變。真正有爭議的是:每個程式任務是否都需要前沿模型。大多數並不需要。替專案裡的函式改名、更新相依套件、為既有行為補一個測試:這些任務常見、枯燥,而且一個小模型配上好的框架就足以應付。

Mellum2.1 並不想在那些最強模型最擅長的任務上擊敗它們。它想做的是在填滿開發者一天的那些任務上足夠好。這是一個更窄的目標,也更持久,因為它不依賴去贏一場它贏不了的比賽。

對一家工具公司來說,把模型維持在這個規模還有策略上的理由。小到能在本機執行的模型,可以不必按查詢次數計費,從而免去讓開發者不敢放手使用代理的計量門檻。一個能不必透過網路往返就呼叫自家模型的編輯器,和做不到的編輯器是不同的產品,差別就體現在使用者願意多大膽地依賴它。

為什麼在真實環境中的強化學習不一樣

在範例上訓練與在結果上訓練的區別值得再講一遍,因為這是本次發布中最關鍵的細節。在範例上訓練的模型學的是好的輸出長什麼樣。在結果上訓練的模型學的是哪些動作能帶來好結果,這是另一種也更難的能力。

動作是序列。一個能通過測試的修補不是一次決定,而是一連串決定:該看哪裡、改什麼、跑什麼、怎麼讀懂一次失敗。在真實環境中做強化學習,會給模型關於整條鏈路的訊號,這也是學會「某些局部看似合理的選擇會通向壞結果」的唯一途徑。用真實版本庫而不是一組精挑細選的問題,背後的直覺就在這裡。

這種做法比監督式微調更貴、執行起來也更脆弱,這也是為什麼更多模型沒有這麼做。它還往往產出在不熟悉情境中表現更好的代理,因為它們練習的是從錯誤中恢復,而不只是模仿正確。

值得關注的地方

最直接的檢驗,是這樣一個以這種方式訓練的 120 億參數代理,能否在真實的版本庫任務上站得住腳:診斷一個失敗的測試、提出修補、驗證結果。如果能,那麼有趣的問題就變成:給它一個好的框架和一條緊湊的回饋迴路,一個小的開源模型能離前沿程式品質有多近。

這個問題比任何單一模型的發布都更重要。如果 120 億參數代理與前沿模型之間的差距在實務中縮小,那麼程式代理市場的一大部分就不再是誰擁有最好的模型,而是誰圍繞一個「足夠好」的模型做出了最好的工具。Mellum2.1 是這個方向上一個小小的、具體的註腳,而方向本身才是關鍵。

相關文章