在人工智慧浪潮席捲全球的今天,大語言模型 (LLM) 正在重塑軟體開發流程。近日,位元組跳動首次對外披露其內部廣泛應用的程式碼審查系統 BitsAI-CR 的技術細節,展示了 AI 在提升企業研發效率方面的重要進展。
論文地址:https://arxiv.org/abs/2501.15134程式碼審查是保障軟體質量的關鍵環節,但在大規模企業環境下面臨嚴峻挑戰。位元組跳動內部資料顯示,67% 的工程師表示迫切需要更高效的工具支援。雖然 LLM 在程式碼理解方面展現出巨大潛力,但要實現工業級應用仍面臨三大挑戰:評論準確性不足、價值有限的評論過多,以及缺乏系統化的改進機制。為此,位元組跳動研究團隊提出程式碼審查系統 BitsAI-CR,在服務超 1.2 萬周活開發者的規模化驗證中,實現 75% 的審查準確率與 26.7% 的評論過時率(Outdated Rate)。傳統 LLM 程式碼審查方案受限於準確率較低和幻覺頻發,研究團隊透過系統性實驗發現,僅依賴單一模型微調,即使採用最佳化訓練樣本和強化學習等方法也收效有限。這促使研究團隊引入專門的驗證模組,形成了 "識別 + 驗證" 的兩階段生成架構:1. RuleChecker:針對 Code Diff,透過 Tree-sitter 實現精確的程式碼塊識別和函式邊界檢測來組成上下文,基於位元組內部 219 條多維審查規則,採用 LoRA 微調的 Doubao-Pro-32K-0828 模型來生成相關的審查評論。這些審查規則涵蓋程式碼缺陷、安全漏洞、可維護性和效能問題等 4 大維度,同時 RuleChecker 也整合了動態規則黑名單,可實時剔除低效規則,確保審查標準與企業實踐動態對齊。2. ReviewFilter:針對模型幻覺與低價值評論,透過另一個微調的 Doubao-Pro-32K-0828 對 RuleChecker 的輸出進行二次驗證。ReviewFilter 針對每一條審查評論,輸出一個二元判斷(Yes 或 No)來決定是否保留評論,以及相應的判斷依據。研究團隊對 ReviewFilter 的推理模式進行了深入實驗,比較了 "直接結論"、"推理在前" 和 "結論在前" 三種模式。最終,"結論在前" 模式以其優異的效能脫穎而出:準確率達 77.09%,同時保持了較低的推理時間。在完成審查後,系統透過評論聚合機制處理輸出結果。該機制使用基於 Doubao-embedding-large 的向量化方法計算評論相似度,從每組相似評論中隨機保留一條,有效避免了開發者被過多重複資訊打擾。實驗表明,該架構使系統的評論準確率在 Go 語言的離線評測集上達到 65.59%。其中 BitsAI-CR w/o Taxonomy 表示訓練資料來自於沒有進行審查分類的隨機取樣內部審查資料,BitsAI-CR 表示訓練資料是根據審查規則分類法特別構建的,兩者保持了相同的訓練資料規模。結果表明,基於兩階段評論生成都提高了準確度,但分類指導的版本在所有審查類別中實現了更高的準確度。研究團隊透過早期實踐發現,開發者面對大量審查評論時往往採取完全忽視的策略,而初期的不準確評論更會嚴重損害使用者信任。這促使團隊將準確率作為首要最佳化目標。透過兩階段評論生成審查架構,BitsAI-CR 將評論準確率提升至 75%,顯著提升了系統可用性。然而,僅依靠準確率指標存在兩個根本性限制:無法反映開發者是否真正採納了審查建議,且人工評估準確率需要大量人力投入。為此,研究團隊使用了評論過時率(Outdated Rate)指標,透過追蹤被標記程式碼行在後續提交中的修改比例,量化審查建議的實際價值。其中 表示在一週的度量視窗期間內程式碼提交者對 Reviewer 評論進行審查的評論集合,isOutdated(c)在評論 c 被認為評論過時才會返回 true,即表示當前評論標記的程式碼範圍內的任何行在後續提交中,有被修改。為完善審查規則集並更好地利用使用者反饋,研究團隊設計了資料飛輪。最初,研究團隊將程式碼樣式指南與實際審查經驗結合起來,設計了程式碼審查規則分類,包含 5 種程式語言和 219 條評審規則。隨後從內部倉庫中抽取了 12 萬條 MR 中的審查評論,包括靜態分析結果和人工審查反饋。在經歷了資料清洗(過濾非實質性的內容,並依照程式碼審查規進行分類)和質量控制環節後,最終構成了 BitsAI-CR 的訓練資料。實踐表明,程式碼審查規則需要持續最佳化以適應實際開發。某些規則雖然在技術上完全正確,但可能缺乏實際價值。BitsAI-CR 透過三個關鍵反饋渠道收集最佳化訊號:1. 使用者的直接反饋(如點贊點踩)能夠及時捕捉開發者的真實需求;2. 每日抽樣的人工準確率標註(抽樣率不超過 10%)提供了高質量的評估基準和資料;3. 每週的 Outdated Rate 監控則實現了大規模自動化評估。資料飛輪機制會檢測線上使用者資料,識別準確率高但 Outdated Rate 低的審查規則,透過最佳化這些規則,確保系統始終保持高實用性。這一機制的效果顯著。在過去 18 周的部署過程中,BitsAI-CR 的評論準確率從初期的 25% 提升至 75%,Go 語言場景下的 Outdated Rate 達到了 26.7%,接近人工審查水平。目前,系統已在位元組內部服務超過 1.2 萬名周活開發者,使用者調研顯示 74.5% 的開發者認可其實際價值。位元組跳動此次披露 BitsAI-CR 的技術細節,不僅展示了其在 AI 輔助開發領域的探索成果,也為業界提供了寶貴的實踐經驗。該系統的成功部署證明了 LLM 在提升企業軟體開發效率方面的巨大潛力,為未來 AI 程式設計助手的規模化應用提供了重要參考。