CodeMMR: Bridging Natural Language, Code, and Image for Unified Retrieval
CodeMMR 將圖像、文字與程式碼整合於統一檢索空間,使程式生成執行率提升 10.0 分。
- MMCoIR 是首個涵蓋 5 大視覺領域與 8 種程式語言的多模態程式碼檢索基準測試。
- CodeMMR 透過指令型多模態對齊,於 nDCG@10 評測中超越基準模型 10 個百分點。
- 在 RAG 架構下引入 CodeMMR,可將網頁截圖生成程式碼的視覺準確度提升 9.4 分。
現有程式碼檢索系統多半專注於純文字比對,忽略網頁排版與資料圖表等關鍵視覺元素。研究團隊為此推出首個多模態檢索基準測試 MMCoIR,並開發統一模型 CodeMMR,在指標 nDCG@10 上平均超越現有強勢模型 10 個百分點,大幅提升跨模態檢索精準度。
建立 MMCoIR 測試:涵蓋 5 大視覺領域與 8 種語言
軟體工程領域的程式碼檢索長期依賴資訊檢索技術,幫助開發者尋找並重複使用程式碼片段。近期 RAG(檢索增強生成,結合外部資料庫提升生成準確度的技術)也被用來減少 LLM(大型語言模型)的幻覺。然而,現有系統大多以文字為中心,僅比對程式碼與自然語言的語義。實務上,現代軟體開發產出往往具備強烈的視覺功能,像是定義網頁版面、渲染資料圖表或生成 UML(統一塑模語言,用於系統設計的標準圖表)。開發者經常需要從視覺結果反推對應的程式碼,或是預覽一段程式碼執行後的畫面。
為填補這項空白,研究團隊建立了 MMCoIR,這是目前第一個針對多模態、多語言程式碼檢索的全面性基準測試。此資料集涵蓋了 5 個具代表性的視覺領域:WebUI(網頁使用者介面)、資料圖表、SVG(可縮放向量圖形,以 XML 格式定義的圖像)、示意圖與 UML 圖表。內部整合了如 WebSight、Chart2Code 與 SVGStack 等多個資料集,並包含成對的圖像與程式碼,橫跨 HTML、CSS、Python、LaTeX 等 8 種程式語言與 11 個常用函式庫。這個統一架構不僅支援文字到程式碼、圖像到程式碼,還支援複合查詢,為跨模態模型提供嚴格的測試環境。
多模態對齊:CodeMMR 統一文字、程式碼與圖像
面對 MMCoIR 呈現的複雜檢索場景,現有基於大規模圖文訓練的多模態嵌入模型表現並不理想。因此,研究團隊提出了 CodeMMR,一個旨在將自然語言、程式碼結構與視覺特徵投影到共用嵌入空間的統一檢索模型。它以 Qwen2-VL-2B-Instruct 這個 VLM(視覺語言模型,能同時處理圖像與文字的模型)為基礎,進一步擴展其理解結構化程式碼的能力。
訓練過程中,模型採用了以指令為基礎的多模態對齊技術。每個查詢指令都會附帶一句明確的自然語言提示(例如:「請檢索與這張圖像相符的程式碼」),藉此明確定義任務語義。核心演算法運用對比學習中的 InfoNCE(一種常用於拉近正樣本並推遠負樣本的損失函數),拉近配對的查詢與目標特徵,並透過批次內負樣本與困難負樣本將其他無關結果推遠。團隊運用 LoRA(低秩適應,一種參數高效微調技術)更新語言模型參數,並將視覺編碼器完全凍結,確保系統能高效捕捉不同模態之間的深層語義關聯。
跨領域效能:CodeMMR 於 nDCG@10 領先 10 百分點
經過廣泛實驗評估,CodeMMR 在所有 MMCoIR 子任務中皆展現強大的泛化能力。數據顯示,該模型在評估指標 nDCG@10 上,平均領先 VLM2Vec-v2 高達 10 個絕對百分點。在已知領域的測試中,CodeMMR (2B) 達到 65.4 的 Hit@1 準確率,大幅超越包含 UniIR 與 GME 等所有經過微調的基準模型,證明其能有效整合程式碼推理與視覺語義。
不同視覺領域的難度差異也在實驗中浮現。UML 圖表的檢索準確率最高,達到 100% 的 Hit@1,原因是其程式碼較短且依賴高度對稱的符號化文字匹配。相對而言,SVG 圖形是最艱鉅的挑戰,因為 SVG 的程式碼往往非常冗長且具備高度幾何複雜度。消融實驗進一步揭示,將模型的最大輸入長度從 256 個 token(詞元)增加到 512 個 token,能使 SVG 的準確率從 7.5 提升至 13.7,顯著提升對長結構程式碼的檢索精度。此外,團隊發現單純混入傳統的多模態圖文資料集並未帶來額外效益,這表明 MMCoIR 本身的資料多樣性已足夠充實跨領域的特徵學習。
強化生成:ChartMimic 執行率顯著提升 10.0 分
除了單純的檢索任務,研究團隊進一步探討 CodeMMR 作為 RAG 系統檢索器的實務價值,特別是在未見過的「圖像到程式碼生成」任務上。在 ChartMimic Direct 與 WebCode2M-Mid 兩大零樣本生成基準測試中,搭配 CodeMMR 的 RAG 系統展現出優異的程式生成保真度。相較於不使用檢索的基準設定,CodeMMR 成功使 ChartMimic 的平均執行率提升了 10.0 分,高階評分增加 7.6 分。
在 WebCode2M-Mid 針對網頁截圖生成程式碼的測試中,搭配 Qwen2VL-7B 的系統使視覺準確度大幅提升 9.4 分。質性分析指出,檢索擴充主要減少了兩種常見錯誤:一是文字與標籤遺漏,檢索到的範本能提供準確對齊的描述供模型參考;二是版面配置不一致,例如圖例錯位或子圖排列扭曲。透過提供可靠的結構與風格先驗知識,CodeMMR 成功幫助多模態大型語言模型生成視覺上精準且可完美執行的程式碼,證明多模態檢索將是下一代智慧程式輔助系統的核心基石。
結合視覺特徵與程式碼結構的跨模態檢索,能有效消除生成程式碼時的視覺誤差與結構幻覺。