当前位置: 江南文明网 > 科技 > 智能 >

微软提出CodePlan,跨168个代码库编码任务

条评论

微软提出CodePlan,跨168个代码库编码任务

这一次,微软提出的CodePlan让码农的生产力又提高了!

对于大模型来说,擅长的是本地化编码任务。

但如果任务跨越了多个相互依赖的文件,LLM却无法解决。

对此,微软研究人员设计了一个任务无关的神经网络框架,名为CodePlan。

论文地址:https://arxiv.org/pdf/2309.12499.pdf

论文中,CodePlan综合了多步骤编辑链(chain-of-edits),是一种将程序分析、规划和LLM结合在一起的新方法。

一起来具体看看,CodePlan是如何设计的?

CodePlan:大模型+规划

软件工程活动中,例如软件包迁移、修复静态分析或测试的错误报告,以及向代码库添加类型提示或其他规范,涉及到对整个代码存储库的普遍编辑。

研究人员将这些活动规划,为「存储库级别的编码任务」。

随着编码工具如GitHub Copilot、Code Whisperer得到了大模型能力加持,已经为码农在本地化编码问题提供了解决方案。

然而,现实是,「存储库级别的编码任务」更加复杂,不能直接通过LLM解决,因为存储库中的代码是相互依赖的,整个存储库可能太大而无法纳入提示。

 

这项研究中,微软团队将库级编码框架作为一个规划问题,并提出了一个任务不可知的框架,称为CodePlan。

CodePlan综合了一个多步骤的编辑链(计划) ,其中每一步都会调用代码位置上的LLM。该代码位置上的上下文来自整个存储库、以前的代码更改和特定于任务的指令。

CodePlan是基于增量依赖分析、变更可能影响分析和自适应规划算法的新型组合