新闻资讯

让AI替码农卷复杂任务,贾佳亚团队提出MoTCoder,准确率刷新SOTA

让AI替码农卷复杂任务,贾佳亚团队提出MoTCoder,准确率刷新SOTA

论文一作李靖瑶,香港中文大学博士生(DVLab),师从贾佳亚教授。主要研究方向是大语言模型,包括模型预训练、后训练、推理优化。作者陈鹏光、夏彬等均为DVLab成员。

让AI替码农卷复杂任务,贾佳亚团队提出MoTCoder,准确率刷新SOTA
(图侵删)

大模型写代码早就是基操了,但让它写算法竞赛题或企业级系统代码,就像让只会煮泡面的人去做满汉全席——生成的代码要么是“铁板一块”毫无章法,要么是“一锅乱炖”难以维护。

如何让大模型像工程师一样思考,用模块化思维拆解复杂问题?

近日,贾佳亚团队提出MoTCoder(Module-of-ThoughtCoder),通过创新的模块化思维指令微调(MoTInstructionTuning),显著提升了模型在复杂编程任务中的准确率与可维护性。实验显示,在APPS和CodeContests等权威编程基准上,MoTCoder的pass@1准确率直接刷新记录,甚至超越SOTA6%,让大模型在“疯狂打码”时更接近「人类智慧」。

论文标题:MoTCoder:ElevatingLargeLanguageModelswithModularofThoughtforChallengingProgrammingTasks论文链接:https://arxiv.org/abs/2312.15960

目前,团队已发出程序员快乐包——代码、模型与数据集通通开源,欢迎在线体验:

代码库:https://github.com/dvlab-research/MoTCoder32B模型:https://huggingface.co/JingyaoLi/MoTCoder-32B-V1.57B模型:https://huggingface.co/JingyaoLi/MoTCoder-7B-v1.5350K训练数据集:https://huggingface.co/datasets/JingyaoLi/MoT-Code-350K

复杂编程的解耦神器

当前主流代码生成模型(如Qwen2.5-Coder)生成的代码往往就是这种单块式的结构,虽然在简单任务上表现良好,但面对复杂场景时难掩缺陷:

拆解复杂任务:不存在的!让它写个分布式系统,输出代码堪比灾难现场;维护成本爆炸:生成的代码注释比程序员(bushi)头发还少,debug时被同事怀疑是祖传咒语。

试想象一下,你让模型写个自动驾驶算法,结果它吐出几千行密密麻麻的代码,像一团乱麻根本无从下手。这就是传统模型的单块式代码——把所有逻辑塞进一个函数,不讲章法地一锅乱炖。

图1a:传统模型生成的单块式代码

而MoTCoder则能“遇招拆招”,把复杂任务拆成“输入解析”、“核心算法”、“异常处理”等标准化模块,像乐高积木般严丝合缝组装,每个模块还自带“说明书”,强迫症患者看完都直呼舒适!

图1b:MoTCoder生成的模块化代码

图2:MoTCoder的两阶段模块化设计流程

MoTCoder的三大核心突破

(1)性能开挂:复杂任务准确率刷新SOTA

得益于模块化思维对复杂逻辑的拆解能力,在APPS数据集上,MoTCoder-32B的pass@1超越同等规模模型5.8%;在CodeContests数据集上,MoTCoder-32B更是直接上演「屠榜」戏码,超越SOTA5.9%!

图3:MoTCoder的战斗力曲线

(2)大模型代码质检员

MoTCoder通过多轮自我反思机制,能自动检测并修正代码错误。实验显示:

未修正状态下,MoTCoder可达到SOTA模型5轮人工修正后的效果开启自检后,准确率更进一步提升4%

(3)代码质量全面碾压传统模型

通过专业的代码质量分析工具Radon对APPS和CodeContests数据集上的生成代码进行评估,MoTCoder在所有难度级别中都保持了明显更高的可维护性指数(MaintainabilityIndex)。

实验数据显示,相比普通微调模型和基线模型,MoTCoder生成的代码具有更低的复杂度、更精简的代码量和更合理的注释比例。

程序员狂喜:简直好用哭了!

图4:MoTCoder生成的代码具有更优的可维护性特征

智能调度:简单题极简模式,难题乐高模式

这种优势源于MoTCoder的模块化训练方法,使生成的代码结构更清晰、逻辑更简明。在时间和内存消耗的对比中(图5),MoTCoder生成的代码展现出显著优势。虽然其运行时间与普通微调模型相当,但在内存占用上始终低于基准模型。这得益于MoTCoder对全局变量和函数局部变量的智能区分,能够及时释放未使用的内存资源。

图5:MoTCoder生成的代码具有更低的内存消耗

图6:不同难度的代码函数数量与准确率关系

贾佳亚团队在开发过程中发现了一个有趣的现象(图6):

-入门题:函数数量增加,准确率反而下降(简单问题无需拆解)

-面试题:函数数量变化对准确率影响较小(保持稳定)

-竞赛题:函数数量与准确率呈正相关(复杂问题必须模块化)

MoTCoder自带智能调度系统,问题复杂度决定了其模块化策略:面对两行代码就能搞定的题目,启动极简模式;而遭遇代码量堪比毕业论文的变态需求,则秒切乐高模式。而这种思维方式已达到人类工程师的解题路径。

这种特性也使得MoTCoder可覆盖从算法竞赛到工业级开发多个落地场景:

算法竞赛:秒解Codeforces/LeetCode难题,生成带注释的标准答案;大型系统设计:自动生成微服务架构代码,接口清晰、模块解耦;企业级应用开发:生成可长期维护性的代码库,降低技术债务累积速度。

MoTCoder让代码生成从“功能实现”跃迁至“工程实践”,或许是时候重新定义智能编程了——不仅要生成代码,更要生成好代码。贾佳亚团队表示,将继续深化智能编程的研究,并探索其在更多工业界场景的深度应用。

  • 生成式信息检索如何重塑搜索
  • 全球REITs发展情况如何?我国公募REITs是什么?
  • 都有数|乌镇峰会发布两本蓝皮书,看互联网如何向“新”向“智”
  • 4月7日汇添富外延增长股票A净值下跌7.10%,近6个月累计下跌14.81%
  • 福达合金4月2日获融资买入2953.51万元,融资余额2.75亿元
  • 康欣新材跌2.33%,成交额2143.73万元,主力资金净流出138.89万元
  • 博信股份:公司未与特斯拉、谷歌合作
  • 田中精机:拟1.5亿元参设基金海南佑富半导体,投资于海南航芯公司等
  • 力源信息股价上扬 股东人数稳定 入选重要指数成分股
  • 梅轮电梯9.96%涨停,总市值25.08亿元
  • 长篇报告文学《团泊的春天》出版 讲述一座“小康新城”建成的故事
  • 国管局加快推进全国公物仓“一张网”建设
  • 让AI替码农卷复杂任务,贾佳亚团队提出MoTCoder,准确率刷新SOTA的相关内容

    关键词: