伊人六月,97自拍超碰,久久精品亚洲7777影院,五月婷婷综合在线观看,日本亚洲欧洲无免费码在线,2019国产精品视频,国产精品第一页在线

首頁  ?  財經(jīng)  ?  財經(jīng)要聞

專治大模型不懂行:浙大團隊CatCoder解決AI編程水土不服難題

2025-12-13 22:24:00

來源:市場資訊

  (來源:DeepTech深科技)

  近日,浙江大學副教授胡星和團隊開發(fā)出一款名為 CatCoder 的 AI 框架,它能夠讀懂一個完整的軟件項目,生成準確、可用的代碼。在 Java 任務上,它在代碼編譯通過率和測試通過率上,比業(yè)內表現(xiàn)突出的代表之一 RepoCoder 最高提升了 14.44% 和 17.35%。

  同時,它擁有很強的通用性。該團隊使用不同大小和不同類型的 AI 模型對其進行測試,發(fā)現(xiàn)它能夠提升所有被測模型的性能。

圖 | 胡星(來源:胡星)

  胡星告訴 DeepTech:“我們考慮到不同公司或團隊使用的編程語言各異,因此選擇了兩種語言進行驗證:應用廣泛的 Java 和較新但日益重要的 Rust。我們發(fā)現(xiàn),即使對于 Rust 這種相對低資源(使用人群和訓練數(shù)據(jù)較少)的語言,我們的方法也能生成高質量的代碼?!?/p>

  此外,尤其是對于那些比較小的模型,提醒效果更是尤為明顯,能夠幫助小模型彌補和大模型之間的差距。同時,它就好比給 AI 配置了一個超級助理,這位助理不僅懂得編程語法,而且熟悉所在項目的所有規(guī)定,比如哪些類可以調用、該怎么使用函數(shù),這樣一來就能寫出既不會“迷路”也不會“犯錯”的代碼。

  胡星還表示:“我們的方法是可插拔的松耦合設計,不需要對大模型本身進行訓練。這意味著它可以靈活地與任何大模型或程序分析技術組合,適應日新月異的大模型發(fā)展,避免了重復訓練的高成本。

  其次,它精準解決了工業(yè)界的實際痛點——大模型通常不理解企業(yè)內部的私有代碼庫和業(yè)務邏輯。通過引入本地上下文,我們的方法能讓大模型“讀懂”當前代碼庫,生成更高質量、更領域相關的代碼?!?/p>(來源:https://arxiv.org/pdf/2406.03283)

  解決代碼世界的尋路難題

  在使用 AI 寫代碼時,此前人們所遇到的難題是:當你正在參與開發(fā)一個大型游戲,代碼分散在成百上千個文件里。假如你需要添加“計算一個角色的跳躍軌跡”的新功能。

  對于此前的 AI,即使經(jīng)過了大量訓練可能也只知道物理公式,它并不知道在你這個特定項目中,“角色”這個對象應該如何創(chuàng)建、它的坐標屬性叫什么名字、或者“跳躍”這個動作應該調用哪個現(xiàn)成的函數(shù)。

  CatCoder 的創(chuàng)新之處在于給 AI 提供了兩件關鍵工具:第一個工具是相似代碼雷達,能夠在相似項目里尋找功能或結構相似的代碼作為范例;第二個工具是類型關系地圖,它能自動分析并告訴 AI,在當前的代碼環(huán)境中,有哪些類、接口、函數(shù)和屬性是可以直接使用的。

  這就好比你要在一個巨大的圖書館里找資料,CatCoder 不僅可以幫你找到基本主題類似的書籍也就是相關的代碼,還可以直接給你一張圖書館的樓層索引和書籍關聯(lián)圖也就是類型上下文,從而讓你生成的代碼更加準確和專業(yè)。

(來源:https://arxiv.org/pdf/2406.03283)

  助力我國發(fā)展底層基礎軟件和工業(yè)軟件

  在使用 CatCoder 的時候,主要分為三大步。

  第一步是搜集線索也就是檢索相關代碼。CatCoder 首先會把整個項目所有的源代碼文件智能地切割成小塊。然后,它會根據(jù)你需要實現(xiàn)的功能描述,啟動兩種搜索引擎。第一種是關鍵詞搜索,就像傳統(tǒng)搜索引擎一樣,可以匹配函數(shù)名和變量名等關鍵詞。第二種是語義搜索,其能理解代碼的含義,找到功能上相似的片段。然后,CatCoder 會把兩種搜索結果綜合起來,最初最相關的幾個代碼片段作為參考范例。

  第二步是繪制地圖也就是提取類型上下文。這是 CatCoder 的獨門絕技。對于像 Java、Rust 這類靜態(tài)類型語言,CatCoder 會啟動一個靜態(tài)分析器。這個分析器可以繪制出項目中所有類和接口之間的依賴關系圖。比如,假如你的新函數(shù)屬于“角色”類,那么分析器就能找出“角色”類能夠調用的所有方法,以及它關聯(lián)的其他類,并把它們的使用說明書整理出來。這張“地圖”的存在確保 AI 不會調用一個不存在的函數(shù)。

  第三步是生成代碼。CatCoder 會將前兩步搜集到的參考范例和類型地圖打包,連帶你的任務描述一起形成一個超級詳細的提示,提交給背后的 AI 模型。AI 在這樣充分的上下文提示下,就能像一位熟悉項目的開發(fā)者一樣,生出既符合語法、又能完美融入現(xiàn)有項目、甚至能夠通過測試的代碼。

(來源:https://arxiv.org/pdf/2406.03283)

  胡星總結稱:“由于我們的研究覆蓋了 Rust,而 Rust 多用于開發(fā)系統(tǒng)軟件,這對于我國發(fā)展底層基礎軟件和工業(yè)軟件具有積極意義,能幫助更快地生成高質量的代碼。”

圖 | CatCoder logo(來源:胡星)

  基于此成果,她有兩個后續(xù)計劃:一是進一步探索“低資源”編程語言的代碼生成,即針對那些大模型訓練數(shù)據(jù)覆蓋不足的語言(如 Ruby、Julia),提升其代碼生成質量;二是研究“大小模型協(xié)同”的代碼生成,讓強大但昂貴的大模型指導輕量級小模型,使后者能在計算資源有限的實驗室或中小企業(yè)中部署,提供優(yōu)質的代碼生成服務。

  參考資料:

  相關論文 https://arxiv.org/pdf/2406.03283

  運營/排版:何晨龍

免責聲明:本網(wǎng)對文中陳述、觀點判斷保持中立,不對所包含內容的準確性、可靠性或完整性提供任何明示或暗示的保證。請讀者僅作參考,并請自行承擔全部責任。 本網(wǎng)站轉載圖片、文字之類版權申明,本網(wǎng)站無法鑒別所上傳圖片或文字的知識版權,如果侵犯,請及時通知我們,本網(wǎng)站將在第一時間及時刪除。