专栏名称: 机器之心
专业的人工智能媒体和产业服务平台
目录
相关文章推荐
机器之心  ·  为什么让大模型理解「内外远近」更重要? ·  21 小时前  
爱可可-爱生活  ·  【[58星]ComfyUI_LoRA_Sid ... ·  昨天  
爱可可-爱生活  ·  【[2.6k星]txiki.js:超轻量级的 ... ·  2 天前  
浙江公安  ·  “蛇”警官的新年愿望竟然是…… ·  2 天前  
浙江公安  ·  “蛇”警官的新年愿望竟然是…… ·  2 天前  
爱可可-爱生活  ·  通俗版解读 查看图片-20250130060958 ·  5 天前  
51好读  ›  专栏  ›  机器之心

字节跳动BitsAI-CR:基于LLM的代码审查系统技术揭秘

机器之心  · 公众号  · AI  · 2025-02-03 15:29

主要观点总结

字节跳动披露其内部代码审查系统BitsAI-CR的技术细节,展示了AI在提升研发效率方面的进展。该系统利用大语言模型(LLM)重塑软件开发流程,通过两阶段评论生成架构实现高效的代码审查。

关键观点总结

关键观点1: 背景介绍

随着人工智能的普及,大语言模型(LLM)在软件开发流程中发挥着重要作用。字节跳动首次对外披露其内部代码审查系统BitsAI-CR的技术细节。

关键观点2: 代码审查的挑战与解决方案

在大规模企业环境中,代码审查面临诸多挑战,如准确率低、评论过时等。字节跳动通过引入两阶段评论生成架构解决这些问题,实现了较高的审查准确率和较低的评论过时率。

关键观点3: BitsAI-CR系统的技术细节

BitsAI-CR系统包括两个阶段:RuleChecker和ReviewFilter。RuleChecker通过识别代码缺陷和安全漏洞等,生成相关审查评论。ReviewFilter则对RuleChecker的输出进行二次验证,通过判断每条评论的准确性来决定是否保留。系统还采用评论聚合机制处理输出结果,有效避免重复信息对开发者的干扰。

关键观点4: 评论准确率与Outdated Rate的优化

为提高系统可用性,研究团队将准确率作为首要优化目标。通过两阶段评论生成架构,BitsAI-CR将评论准确率提升至75%。同时,研究团队引入了Outdated Rate指标来量化审查建议的实际价值,并通过数据飞轮机制持续优化审查规则。

关键观点5: BitsAI-CR系统的实际应用与效果

目前,BitsAI-CR系统已在字节跳动内部服务超过1.2万名周活开发者,用户调研显示74.5%的开发者认可其实际价值。该系统的成功部署证明了LLM在提升企业软件开发效率方面的巨大潜力。


正文

机器之心发布

机器之心编辑部


在人工智能浪潮席卷全球的今天,大语言模型 (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 表示训练数据是根据审查规则分类法特别构建的,两者保持了相同的训练数据规模。结果表明,基于两阶段评论生成都提高了准确度,但分类指导的版本在所有审查类别中实现了更高的准确度。


Outdated Rate 评价指标

研究团队通过早期实践发现,开发者面对大量审查评论时往往采取完全忽视的策略,而初期的不准确评论更会严重损害用户信任。这促使团队将准确率作为首要优化目标。通过两阶段评论生成审查架构,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 编程助手的规模化应用提供了重要参考。


© THE END 
转载请联系本公众号获得授权
投稿或寻求报道:[email protected]