字節(jié)跳動BitsAI-CR解析:基于LLM的代碼審查系統(tǒng)技術(shù)
字節(jié)跳動此次披露為業(yè)界提供了寶貴的實踐經(jīng)驗。
原標(biāo)題:字節(jié)跳動BitsAI-CR解析:基于LLM的代碼審查系統(tǒng)技術(shù)
文章來源:智猩猩GenAI
內(nèi)容字?jǐn)?shù):4281字
字節(jié)跳動BitsAI-CR代碼審查系統(tǒng):AI賦能軟件開發(fā)
在人工智能浪潮下,大語言模型(LLM)正在重塑軟件開發(fā)流程。字節(jié)跳動近日首次公開其內(nèi)部廣泛應(yīng)用的代碼審查系統(tǒng)BitsAI-CR的技術(shù)細(xì)節(jié),展現(xiàn)了AI在提升企業(yè)研發(fā)效率方面的顯著進(jìn)展。該系統(tǒng)在服務(wù)超過1.2萬周活開發(fā)者的規(guī)模化驗證中,實現(xiàn)了75%的審查準(zhǔn)確率和26.7%的評論過時率。
1. 解決LLM代碼審查的挑戰(zhàn)
傳統(tǒng)的LLM代碼審查方案存在準(zhǔn)確率低、幻覺頻發(fā)、低價值評論過多以及缺乏系統(tǒng)化改進(jìn)機制等問題。為了克服這些挑戰(zhàn),BitsAI-CR采用了兩階段評論生成架構(gòu),并引入了評論過時率(Outdated Rate)作為新的評價指標(biāo)。
2. 兩階段評論生成架構(gòu):RuleChecker和ReviewFilter
BitsAI-CR的核心是“識別+驗證”的兩階段評論生成架構(gòu):
RuleChecker:利用Tree-sitter進(jìn)行代碼塊識別和函數(shù)邊界檢測,基于字節(jié)內(nèi)部219條多維審查規(guī)則(涵蓋代碼缺陷、安全漏洞、可維護(hù)性和性能問題等),通過LoRA微調(diào)的Doubao-Pro-32K-0828模型生成審查評論。該模塊還集成了動態(tài)規(guī)則黑名單,確保審查標(biāo)準(zhǔn)與企業(yè)實踐動態(tài)對齊。
ReviewFilter:對RuleChecker的輸出進(jìn)行二次驗證,判斷是否保留評論。研究團(tuán)隊通過實驗比較了三種推理模式,最終選擇“結(jié)論在前”模式,準(zhǔn)確率達(dá)到77.09%。
此外,系統(tǒng)還采用基于Doubao-embedding-large的向量化方法進(jìn)行評論聚合,避免開發(fā)者被過多重復(fù)信息打擾。
3. 評論過時率(Outdated Rate)指標(biāo)
為了更全面地評估審查建議的實際價值,BitsAI-CR引入了評論過時率(Outdated Rate)指標(biāo)。該指標(biāo)追蹤被標(biāo)記代碼行在后續(xù)提交中的修改比例,量化審查建議的實際應(yīng)用情況。 這有效彌補了僅依靠準(zhǔn)確率指標(biāo)的不足。
4. 數(shù)據(jù)飛輪驅(qū)動系統(tǒng)優(yōu)化
BitsAI-CR通過數(shù)據(jù)飛輪機制持續(xù)優(yōu)化審查規(guī)則集并利用用戶反饋。該機制包含三個關(guān)鍵反饋渠道:
用戶的直接反饋(點贊點踩)
人工準(zhǔn)確率標(biāo)注(抽樣率不超過10%)
每周的Outdated Rate監(jiān)控
通過這些反饋,系統(tǒng)能夠識別準(zhǔn)確率高但Outdated Rate低的規(guī)則,并進(jìn)行優(yōu)化,從而確保系統(tǒng)始終保持高實用性。在過去18周的部署過程中,BitsAI-CR的評論準(zhǔn)確率從25%提升至75%,Go語言場景下的Outdated Rate達(dá)到了26.7%,接近人工審查水平。
5. 結(jié)論
字節(jié)跳動的BitsAI-CR系統(tǒng)在規(guī)模化應(yīng)用中取得了顯著成功,證明了LLM在提升企業(yè)軟件開發(fā)效率方面的巨大潛力。其兩階段評論生成架構(gòu)、評論過時率指標(biāo)以及數(shù)據(jù)飛輪機制為未來AI編程助手的規(guī)模化應(yīng)用提供了寶貴的實踐經(jīng)驗和參考。
聯(lián)系作者
文章來源:智猩猩GenAI
作者微信:
作者簡介:智猩猩旗下賬號,專注于生成式人工智能,主要分享技術(shù)文章、論文成果與產(chǎn)品信息。