冷門新語言AI寫不動?IEEE論文:從零到及格線,MoonBit給出完整訓練路線

宗恩投稿

量子位 | 公眾號 QbitAI

對於Python、Java、Java這些語言,大模型通常能給出相當成熟的答案論文

但如果換做小眾的、樣例不足的年輕語言呢論文

大模型到底是真的掌握了通用程式設計能力論文,還是更擅長那些在訓練資料裡出現過無數次的語言?

一篇新論文把這個問題拉到了臺前論文

論文題為《No Resource, No Benchmarks, No Problem? Evaluating and Improving LLMs for Code Generation in No-Resource Languages》,已在arXiv釋出,並標註被IEEE Transactions on Software Engineering接收論文。研究物件不是Python、Java這類高資源語言,而是兩門較新的語言:MoonBit和Gleam。

論文作者來自瑞士USI Software Institute/SEART研究組和西班牙塞維利亞大學SCORE Lab/I3US Institute論文。SEART長期研究軟體分析、開發者推薦系統和AI4SE,這讓這項工作更接近一次來自軟體工程研究界的外部評估。

論文把它們稱為no-resource programming languages,可以理解為“無資源程式語言”論文

這裡的“無資源”,不是說語言本身能力不足,而是指它們太新,公開程式碼、教程、問答和專案樣例還不夠多,大模型在預訓練階段很可能沒有充分見過它們論文

注:本篇論文統計資料時節點為24年論文,MoonBit截止26年6月語料相對豐富

注:本篇論文統計資料時節點為24年論文,MoonBit截止26年6月語料相對豐富

換句話說論文,這篇論文問了一個現實問題:

如果一門語言還沒有被網際網路語料充分覆蓋論文,大模型還能寫好它嗎?

答案是:一開始很難論文

但更重要的是,論文也展示了另一件事:新語言並不是只能等待大模型自然學會論文。只要有足夠清晰的語言設計、文件、程式碼和工具鏈,它可以被系統性地教給大模型。

程式語言被放進了新語言考場

論文構建了三個程式碼生成benchmark:HumanEval、MBPP和McEval-Hard論文

測試方式很直接:給模型自然語言描述和函式簽名,讓模型補全函式實現,再用測試用例判斷是否正確論文

展開全文

評價指標主要是pass@1論文

也就是模型只有一次生成機會論文。一次寫出的程式碼能透過測試,就算成功;否則失敗。

論文對比了三類語言論文

高資源語言:Python、Java論文

低資源語言:R、Lua、Haskell、Julia、Racket論文

無資源語言:MoonBit、Gleam論文

高資源語言:Python、Java論文

低資源語言:R、Lua、Haskell、Julia、Racket論文

無資源語言:MoonBit、Gleam論文

參與評測的模型包括GPT-4o、o3-mini、Qwen 2.5 Coder、Qwen 3等論文。論文說明,HumanEval和MBPP被翻譯到MoonBit和Gleam,McEval-Hard則基於McEval中的hard tasks構建,最終形成跨語言比較用的函式級程式碼生成任務。

冷門新語言AI寫不動?IEEE論文:從零到及格線,MoonBit給出完整訓練路線

△論文中對不同語言GitHub倉庫規模和資源型別的劃分零樣本幾乎失靈

結果並不意外,但很有代表性論文

在Python、Java這類高資源語言上,大模型表現依然很強;在低資源語言上,表現有所下降但仍可用;但到了MoonBit和Gleam這樣的新語言,零樣本程式碼生成能力明顯下滑論文

尤其是在更難的McEval-Hard上,高資源語言的pass@1大約在59%到89%之間,低資源語言大約在27%到84%之間,而無資源語言只有0%到1%論文。論文還指出,無資源語言在多個模型和benchmark上的表現通常處於0%到20%之間,平均約9%。

冷門新語言AI寫不動?IEEE論文:從零到及格線,MoonBit給出完整訓練路線

△零樣本設定下,不同模型在不同語言上的pass@1對比

更關鍵的是,失敗原因不只是“演算法沒想明白”論文

論文分析發現,在Gleam和MoonBit上,大量失敗來自語法錯誤論文。也就是說,模型經常連合法程式碼都生成不出來。

這並不說明MoonBit不行論文

更準確地說,是模型還沒有真正學過MoonBit論文

大模型寫Python很穩,很大程度上是因為它見過太多Python論文。MoonBit作為一門年輕語言,公開語料規模遠小於成熟語言,因此天然更適合用來觀察一個問題:

AI時代的新程式語言論文,如何被模型學習和理解?

臨時給示例有用論文,但不夠

論文先測試了兩種常見方法:few-shot和RAG論文

few-shot是在prompt中放入幾個MoonBit程式碼示例,讓模型模仿論文

RAG是從MoonBit文件中檢索相關內容,放進prompt中,讓模型參考論文

這兩種方法都有提升論文。論文觀察到,few-shot通常比RAG略好:在MoonBit的12組比較中,few-shot有8組優於RAG。作者推測,面對陌生語言時,模型從程式碼示例中抓語法,往往比從文件片段中理解規則更直接。

但這類方法的上限也很明顯論文

臨時把幾段程式碼或文件塞進prompt,只能補一些語法知識,很難讓模型真正掌握語言本身論文

繼續預訓練論文:讓模型真正學會

真正有效的是繼續預訓練論文

簡單說,就是不再讓模型臨時查資料,而是直接用MoonBit程式碼和官方文件繼續訓練模型論文

論文中,MoonBit的繼續預訓練資料包括約1310萬code tokens和60萬documentation tokens,總計約1370萬tokens;相比之下,可用於fine-tuning的MoonBit資料只有約50萬tokens論文

冷門新語言AI寫不動?IEEE論文:從零到及格線,MoonBit給出完整訓練路線

△論文中用於MoonBit/Gleam的預訓練與微調資料規模

結果明顯提升論文

以Qwen 2.5 Coder 32B Base為例論文,繼續預訓練之後,模型在MoonBit上的pass@1達到:

HumanEval論文:41.62%

MBPP論文:44.76%

McEval-Hard論文:25.86%

HumanEval論文:41.62%

MBPP論文:44.76%

McEval-Hard論文:25.86%

也就是說,從幾乎不會寫,到能在相當一部分任務上寫出可透過測試的程式碼,MoonBit可以被模型系統性學會論文

指令遷移:既懂程式語言論文,也聽懂開發者

不過,繼續預訓練還沒有解決全部問題論文

它能讓模型學會語言知識,但不一定讓模型更擅長遵循使用者指令論文。而真實的AI程式設計助手,不只是續寫程式碼,還要能理解開發者需求,比如解釋型別錯誤、重構程式碼、補測試、根據反饋修改實現。

所以論文進一步使用了instruction transferring論文

它的思路是:先用MoonBit程式碼和文件讓base model學會MoonBit;再把instruct model的“指令跟隨能力”遷移到已經學過MoonBit的模型上論文

這樣得到的模型,既懂MoonBit,又更像一個能對話、能聽懂需求的程式設計助手論文

這一方法給出了論文中最強的MoonBit結果:在Qwen 2.5 Coder 32B上論文,instruction transferring後,MoonBit的pass@1達到:

HumanEval論文:50.71%

MBPP論文:53.04%

McEval-Hard論文:32.60%

HumanEval論文:50.71%

MBPP論文:53.04%

McEval-Hard論文:32.60%

尤其是最難的McEval-Hard,MoonBit從零樣本接近0,提升到了32.60%論文

冷門新語言AI寫不動?IEEE論文:從零到及格線,MoonBit給出完整訓練路線

△進一步預訓練與instruction transferring的效果對比

這組數字背後有一個關鍵訊號:新語言的AI支援,不一定只能等待更大的通用模型自然覆蓋論文。透過高質量程式碼、官方文件、benchmark和合適的訓練方法,可以主動構建。

觀察價值論文:讓模型更容易學會新語言

這也是MoonBit值得觀察的地方論文

MoonBit官方將其定位為面向雲和邊緣計算的AI-native程式語言工具鏈,支援wasm、wasm-gc、js和native後端,並支援在一個模組中構建混合後端專案論文。官方文件還將更小的WASM輸出、更快執行時效能、先進編譯效能,以及簡單實用、面向資料的語言設計列為主要優勢。

對AI程式設計來說,這一點很重要論文

因為AI寫程式碼不是一次性生成文字,而是一個迴圈論文。語言設計越清晰,工具鏈反饋越完整,這個迴圈就越容易自動化。

MoonBit的AI-native設計也體現在語言結構上論文。其官方部落格曾討論過flattened design:明確區分toplevel和local definitions,toplevel definitions強制型別簽名,並採用structural interface implementation,減少額外巢狀程式碼塊。部落格還提到,這種減少巢狀的設計不只提升可讀性,也更KV-cache friendly,有利於RAG、decoder correction、backtrack等場景下的模型推理效率。

對開發者來說,這意味著更清晰的程式碼組織;對模型來說,則意味著更適合線性生成論文。模型不用在複雜巢狀結構裡頻繁來回跳轉,上下文組織更穩定,生成錯誤也更容易被工具鏈及時發現。

過去評價一門程式語言,通常看效能、語法、型別系統、標準庫、工具鏈和生態等論文。到了AI程式設計時代,還要多一個維度:模型是否容易學會這門語言。

這篇論文的價值也正在於此論文。它不只是指出“大模型不會天然寫新語言”,更重要的是給出了一條可執行路徑:先構建benchmark,知道模型哪裡不會;再利用真實程式碼和官方文件繼續訓練,讓模型掌握語言;最後透過instruction transferring,把指令跟隨能力遷移回來。

MoonBit在這條路徑中的表現說明,AI-native程式語言不只是一個概念,而是可以體現在模型學習效率、程式碼生成質量和工具鏈閉環中的工程優勢論文

大模型寫Python很強,是因為它見過太多Python論文。大模型一開始不熟悉MoonBit,是因為MoonBit足夠新。但當模型真正接觸MoonBit的程式碼、文件和語言設計之後,它可以快速提升。

這也許正是AI時代新語言生態的核心問題論文

不是等待模型某一天自然支援你,而是從語言、文件、工具鏈和資料開始,讓模型更容易理解你論文

MoonBit提供了一個值得觀察的樣本論文

論文標題論文:《No Resource, No Benchmarks, No Problem? Evaluating and Improving LLMs for Code Generation in No-Resource Languages》

連結論文

MoonBit相關資料來源論文:swe-agi (

本站內容來自使用者投稿,如果侵犯了您的權利,請與我們聯絡刪除。聯絡郵箱:835971066@qq.com

本文連結://www.haizhilanhn.com/post/52397.html

🌐 /