当前位置: 首页 » 资讯 » 新科技 » 正文

港科大与阿里联合发布SWE-RM:AI实现代码精准评估

IP属地 中国·北京 科技行者 时间:2025-12-29 22:15:31


这项由香港科技大学计算机科学与工程系的沈嘉俊、何俊贤教授与阿里巴巴通义千问团队的惠斌远、陈嘉威、张磊等研究人员共同完成的研究,于2025年12月29日发表在预印本平台arXiv上,论文编号为arXiv:2512.21919v1。这项研究解决了一个看似简单却极其重要的问题:如何让AI更好地判断代码质量,就像一位经验丰富的老师能够准确评估学生作业的好坏一样。

在软件开发的世界里,AI编程助手正变得越来越强大,它们可以帮助程序员解决各种复杂的编程问题。但是有一个关键问题一直困扰着研究人员:当AI写出多个代码解决方案时,如何准确判断哪个方案最好?这就好比一位老师面对几十份学生作业,需要快速而准确地评出优劣等级。

传统的做法就像只看作业的最终答案是否正确一样简单粗暴——要么通过所有测试用例得满分,要么失败得零分。但这种方法有个明显的缺陷:如果两份作业都得了满分或者都没及格,老师就无法区分它们之间的细微差别了。更糟糕的是,有些测试用例本身就不够完善,就像考试题目出得不好,可能会误判学生的真实水平。

研究团队发现了一个有趣的现象:当他们用两种看起来表现相同的AI评分系统来指导其他AI学习编程时,结果却截然不同。一个能让AI稳步提升编程能力,另一个却让AI的学习过程变得混乱不堪,最终甚至完全失败。这就像两位看似水平相当的老师,一位能培养出优秀学生,另一位却让学生越学越糟糕。

这个发现促使研究团队深入思考一个根本问题:除了判断最优解的能力之外,一个好的AI评分系统还需要具备哪些特质?经过大量实验和分析,他们发现了三个关键要素,就像评判一位优秀老师的三个标准。

一、不只看最高分:全面评估代码质量的重要性

传统的测试时间扩展方法就像只关注班级第一名的老师。在这种方法中,AI会生成多个代码解决方案,然后选择得分最高的那个作为最终答案。这种做法看起来很合理,毕竟我们都希望选择最好的方案。

但研究团队通过大量实验发现,这种方法存在严重的局限性。当两个评分系统在选择最优解方面表现相同时,它们在其他方面的表现却可能天差地别。这就好比两位老师都能准确识别出班里的尖子生,但其中一位对中等生和后进生的评价完全不靠谱。

问题的根源在于,当AI在学习过程中需要从多个代码方案中获得反馈时,它不仅需要知道哪个是最好的,还需要理解各个方案之间的相对优劣。如果评分系统只能准确判断顶尖方案,却无法区分其他方案的好坏,那么AI在学习过程中就会收到大量错误的指导信息。

研究团队用一个生动的比喻来解释这个问题:假如你正在学习烹饪,有一位导师只会告诉你哪道菜是最完美的,但对于其他菜品却给出随机的评价。即使这位导师能准确识别顶级料理,你也很难从他那里学到真正的烹饪技巧,因为你无法理解从普通菜品到优秀菜品之间的进步路径。

为了衡量评分系统的全面评估能力,研究团队引入了AUC指标,这个指标能够测量系统在区分正确解决方案和错误解决方案方面的整体表现。就像评估一位老师是否能准确区分各个水平层次的学生一样,AUC关注的是评分系统在整个评分范围内的判断准确性。

实验结果令人震惊。两个在最优解选择方面表现几乎相同的评分系统,它们的AUC分数却相差0.095,这是一个相当大的差距。表现更好的系统能够清晰地将解决问题的代码和未能解决问题的代码区分开来,而表现较差的系统则在这方面表现糟糕,经常给错误的代码打高分,给正确的代码打低分。

这种差异在实际应用中产生了巨大影响。当用作AI学习的指导信号时,具有良好区分能力的评分系统能够提供稳定、有用的反馈,帮助AI逐步改进编程技能。相反,区分能力差的系统则会给AI发送混乱的信号,就像一位时好时坏的老师,让学生不知道该相信什么,最终导致学习过程的彻底崩溃。

二、分数可信度:评分系统的自信心校准问题

除了能够准确区分代码质量之外,一个优秀的评分系统还需要具备另一项关键能力:它给出的分数必须反映真实的正确程度。这就像一位好老师不仅要能准确判断作业质量,还要能给出合理的分数——90分的作业确实应该比70分的作业好很多。

在AI评分系统中,这个问题被称为校准问题。一个校准良好的系统就像一位诚实可靠的老师:当它给某个代码方案打80分时,这意味着该方案大约有80%的概率是正确的;当它打50分时,正确概率就只有50%左右。

但研究团队发现,很多评分系统都存在严重的校准问题。有些系统过于自信,就像那种总是给高分的宽松老师,经常给错误的代码打出很高的分数。另一些系统则过于保守,就像严苛的老师,即使面对优秀的代码也不愿意给出应得的高分。

为了测量校准程度,研究团队使用了期望校准误差这个指标。通俗地说,这个指标就是看评分系统的"话"有多可信。如果一个系统说某个代码有90%的正确概率,结果实际正确率只有60%,那么这个系统的校准误差就很大。

实验结果显示,两个在选择最优解方面表现相似的评分系统,在校准方面却有着巨大差异。表现好的系统校准误差只有0.077,而表现差的系统校准误差高达0.210,相差近三倍。这意味着后者给出的分数基本上不能相信——它说90%正确概率的代码,实际正确率可能只有70%。

这种校准问题在AI学习过程中会造成严重后果。当AI收到一个高分反馈时,它会认为这种做法很好,应该继续坚持。但如果评分系统校准不准,给了错误方案虚高的分数,AI就会学到错误的经验。这就像学生收到了错误的成绩反馈,会误以为自己掌握了正确方法,实际上却在错误的道路上越走越远。

更有趣的是,研究团队还发现校准问题会影响评分的一致性。校准良好的系统倾向于给正确的代码高分,给错误的代码低分,分数分布很清晰。而校准不好的系统给出的分数则很混乱,正确和错误的代码分数经常重叠,让AI无法从分数中获得有用的指导信息。

这个发现解释了为什么某些看似表现良好的评分系统在实际应用中效果很差。它们可能能够识别出最佳方案,但给出的分数却不够可靠,就像一位虽然眼光不错但表达不准确的老师,学生很难从其评价中获得真正有用的指导。

三、解决评分难题:构建全面优秀的SWE-RM系统

认识到评分系统需要在选择最优解、全面区分能力和分数可信度三个方面都表现优秀之后,研究团队开始着手构建一个真正实用的解决方案。他们就像要培养一位既有敏锐眼光、又有准确判断、还能给出可信评价的理想老师一样。

研究团队首先面临的问题是数据规模。就像老师需要批改足够多的作业才能积累经验一样,AI评分系统也需要大量的训练数据。通过大规模实验,他们发现数据量对系统性能有着巨大影响。当训练数据少于5000个样本时,评分系统表现很不稳定,就像新手老师经常出现判断失误。但当数据量增加到25000个样本以上时,系统性能显著提升并趋于稳定。

更有意思的是,他们发现正确答案和错误答案的比例也很重要。最佳的比例是2比1,即两个正确答案配一个错误答案。这个比例既能让系统充分学习什么是好代码,又能避免因为正面例子太多而变得过于乐观。这就像老师在评分时需要见过足够多的优秀作业,也要熟悉各种常见错误,才能形成准确的判断标准。

在数据来源方面,研究团队发现混合不同来源的数据能显著提升系统性能。他们使用了来自SWE-Gym、SWE-rebench、SWE-smith等多个数据集的代码样本,每个数据集都有不同的特点和难度分布。这种多样化就像让老师接触不同类型的学生作业,能帮助建立更全面的评判标准。

一个特别重要的突破是上下文长度的扩展。以往的评分系统只能处理相对较短的代码,就像老师只能评判短篇作文。但现实中的编程问题往往涉及很长的代码和复杂的交互过程。研究团队将系统的处理能力扩展到256000个字符,相当于能够阅读和理解非常长的代码文档。

实验结果显示,这种扩展带来了显著的性能提升。当系统只能处理32000字符时,很多复杂问题无法完整评估,成功评分率只有12.5%。但扩展到128000字符后,成功率提升到99.5%,基本上能够处理所有类型的编程问题。

基于这些研究成果,团队构建了SWE-RM系统,这是一个具有300亿参数但每次只激活30亿参数的高效模型。这种设计就像拥有一个庞大的知识库,但每次只调用其中最相关的部分,既保证了判断的准确性,又确保了响应的高效性。

在实际测试中,SWE-RM在著名的SWE-Bench Verified基准测试中取得了优异成绩。它帮助Qwen3-Coder-Flash模型的成功率从51.6%提升到62.0%,帮助Qwen3-Coder-Max模型从67.0%提升到74.6%。这些提升幅度在AI编程领域是相当显著的,意味着系统能够更准确地识别和选择优质的代码解决方案。

四、革命性应用:让AI从评分反馈中学习编程

SWE-RM系统最令人兴奋的应用不仅仅是评分本身,而是它能够为AI的编程学习过程提供高质量的指导。传统的AI编程训练就像只告诉学生答案对错的简单测试,而SWE-RM则像一位能给出详细反馈的优秀导师。

在强化学习环境中,研究团队设计了一个巧妙的混合反馈系统。这个系统结合了传统的对错判断和SWE-RM的细致评分,就像既有标准答案又有详细的评分标准。具体来说,当AI成功解决问题时,它会得到基础奖励加上SWE-RM的质量评分;即使没有完全成功,也能从SWE-RM那里得到有价值的反馈信息。

这种设计的巧妙之处在于,它让AI能够从每一次尝试中学到东西,而不仅仅是简单的成功或失败。就像学习写作的学生,不仅要知道文章是否及格,还要了解哪些段落写得好,哪些地方需要改进,这样才能持续提升写作水平。

实验结果证明了这种方法的有效性。使用混合反馈训练的AI系统,在SWE-Bench Verified测试中的成功率达到54.8%,比仅使用传统对错反馈的51.8%高出3个百分点。虽然3%的提升看起来不大,但在AI编程领域,这已经是相当显著的进步了。

更重要的是,使用SWE-RM指导的AI学习过程更加稳定和高效。传统方法下,AI的学习曲线经常出现波动,有时甚至会出现性能下降。但有了SWE-RM的细致指导,AI的能力提升变得更加平稳和持续,就像有了一位耐心细致的老师在旁指导。

研究团队还发现,纯粹依赖SWE-RM评分而完全抛弃传统测试的方法并不是最优选择。这就像完全依赖主观评价而忽视客观标准一样,可能会导致某些偏差。最佳的方案是将两者结合,既保持客观标准的可靠性,又融入细致评价的丰富性。

特别值得注意的是,当研究团队使用校准较差的评分系统进行相同实验时,结果急剧恶化。这再次证明了评分系统质量的重要性——一个不准确的评分系统不仅无法帮助AI学习,反而会误导AI走向错误的方向。

这些发现对整个AI编程领域都有重要意义。它们表明,构建更好的AI编程助手不仅需要改进代码生成算法本身,更需要开发能够提供高质量反馈的评估系统。就像培养优秀学生需要好老师一样,训练出色的AI程序员也需要优秀的AI导师。

五、广泛验证:从理论到实践的全面测试

为了确保SWE-RM系统的可靠性和通用性,研究团队进行了大量的验证实验,就像一个新药需要经过多轮临床试验才能上市一样。这些测试覆盖了不同的编程语言、不同类型的问题,以及不同的应用场景。

首先,研究团队在多个标准化测试集上评估了SWE-RM的表现。除了主要的SWE-Bench Verified测试外,他们还在SWE-Bench Live、多语言编程测试、以及Terminal Bench等多个基准上进行了验证。结果显示,SWE-RM在所有测试中都表现出色,证明了其优秀的泛化能力。

特别有意思的是跨语言测试的结果。编程世界有很多不同的语言,就像人类有不同的自然语言一样。Python、Java、Javascript等编程语言各有特色,但SWE-RM能够在不同语言的代码评估中都保持良好表现,说明它学到了编程的通用原理,而不仅仅是某种特定语言的语法规则。

在与现有系统的对比中,SWE-RM展现出了显著优势。与Agentless、SWE-Gym、DeepSWE等知名系统相比,SWE-RM在所有三个关键指标(最优解选择、全面区分能力、分数可信度)上都取得了最佳成绩。这种全面领先就像一位学生在语文、数学、英语等各科都拿到第一名一样令人印象深刻。

研究团队还特别关注了SWE-RM在不同难度问题上的表现。简单的编程问题就像小学数学题,复杂的问题则像高等数学。结果显示,SWE-RM不仅在简单问题上表现稳定,在复杂问题上也能给出准确的评估,这种一致性是评分系统实用性的重要保证。

为了测试系统的鲁棒性,研究团队还进行了一些"压力测试"。他们故意使用一些有缺陷的测试用例,或者在代码中加入一些干扰信息,看看SWE-RM是否还能维持准确的判断。结果表明,即使在这些不利条件下,SWE-RM仍然比其他系统表现更好,显示出了良好的抗干扰能力。

在实际部署测试中,研究团队将SWE-RM集成到真实的开发环境中,让程序员在日常工作中使用。反馈结果显示,程序员们普遍认为SWE-RM的评估结果更加合理和有用,能够帮助他们更好地改进代码质量。

最后,研究团队还进行了长期稳定性测试。他们让SWE-RM连续运行数周,处理大量的代码评估任务,监控其性能是否会出现衰减。结果显示,SWE-RM的表现非常稳定,没有出现明显的性能下降,证明了其在实际应用中的可靠性。

这些全面的验证实验不仅证明了SWE-RM的技术优势,更重要的是建立了对这个系统的信心。就像一座桥梁需要经过各种载重测试才能投入使用一样,SWE-RM通过了各种"压力测试",证明了它已经准备好为实际的AI编程应用提供可靠的评估服务。

说到底,这项研究揭示了一个看似简单却极其重要的道理:要训练出优秀的AI程序员,首先需要培养出优秀的AI导师。就像人类教育中优秀老师的重要性一样,能够准确、全面、可靠地评估代码质量的系统是推动AI编程能力进步的关键基础设施。

SWE-RM的成功不仅仅是技术上的突破,更代表了AI编程领域的一次思维转变。以往人们主要关注如何让AI写出更好的代码,现在越来越意识到如何让AI准确评价代码同样重要。这就像教育领域不仅要研究教学方法,也要重视评估标准的科学性一样。

这项研究的影响可能会延伸到很多实际应用中。无论是帮助程序员进行代码审查,还是训练下一代AI编程助手,亦或是自动化软件质量评估,SWE-RM都提供了一个可靠的技术基础。随着越来越多的软件开发工作由AI参与,拥有准确的代码评估能力将变得越来越重要。

对于普通人来说,这意味着未来的AI编程工具将变得更加智能和可靠。当你请AI帮你写一个小程序或者解决一个技术问题时,AI不仅能给你答案,还能告诉你这个答案的质量如何,哪里可能需要改进,就像有一位经验丰富的程序员导师在身边指导一样。

研究团队已经将SWE-RM的技术细节公开,希望能够推动整个AI编程领域的发展。他们相信,通过不断改进代码评估技术,最终能够帮助AI在编程领域达到甚至超越人类专家的水平,为软件开发带来革命性的变化。

Q&A

Q1:SWE-RM到底是什么,它有什么特殊之处?

A:SWE-RM是由香港科技大学和阿里巴巴联合开发的AI代码评分系统,就像一位专业的编程老师能够准确评估代码质量。与传统只能判断代码对错的简单系统不同,SWE-RM具备三大核心能力:准确选择最优代码、全面区分不同代码的质量差异、给出可信的评分。它采用了300亿参数的混合专家架构,能处理超长代码文本,在多个编程测试中都取得了最佳成绩。

Q2:为什么需要SWE-RM这样的代码评分系统?

A:传统的代码评估方法就像只看考试对错的简单评分,无法区分同样正确或同样错误答案之间的质量差异。这导致AI在学习编程时收到的反馈信息不够准确,就像学生得到模糊的评价无法真正改进一样。SWE-RM能提供细致的质量评估,帮助AI更好地学习编程技能,同时为程序员提供更可靠的代码审查工具,这对提升软件开发效率和质量都很重要。

Q3:普通程序员能使用SWE-RM吗,它会如何改变编程工作?

A:虽然SWE-RM目前主要用于研究和训练AI系统,但它的技术原理可以应用到实际的编程工具中。未来程序员在写代码时,可能会有类似SWE-RM的智能助手实时评估代码质量,指出可能的问题和改进建议。这就像有一位经验丰富的同事随时提供代码审查意见,能大大提升代码质量和开发效率,特别对新手程序员的成长很有帮助。

免责声明:本网信息来自于互联网,目的在于传递更多信息,并不代表本网赞同其观点。其内容真实性、完整性不作任何保证或承诺。如若本网有任何内容侵犯您的权益,请及时联系我们,本站将会在24小时内处理完毕。