中文

利用大语言模型修复 Python 作业中的错误

软件工程 2022-09-30 v1 人工智能

摘要

学生在入门编程作业中犯错是其学习过程的常见部分。不幸的是,为这些错误提供定制化修复需要授课教师投入大量时间与精力。自动化程序修复(APR)技术可用于合成此类修复。已有工作探索了在教育领域使用符号与神经网络技术进行 APR。两类方法均需大量工程投入或大量数据与训练。我们提出使用在代码上训练的大语言模型(LLM),如 Codex,来构建面向入门 Python 编程作业的 APR 系统——MMAPR。我们的系统通过结合多模态提示、迭代查询、基于测试用例的 few-shot 选择以及程序分块,可修复句法与语义错误。我们在 286 个真实学生程序上评估 MMAPR,并与结合最先进 Python 句法修复引擎 BIFI 及最先进面向学生作业的 Python 语义修复引擎 Refactory 的基线比较。我们发现 MMAPR 可修复更多程序且平均产生更小补丁。

关键词

引用

@article{arxiv.2209.14876,
  title  = {Repairing Bugs in Python Assignments Using Large Language Models},
  author = {Jialu Zhang and José Cambronero and Sumit Gulwani and Vu Le and Ruzica Piskac and Gustavo Soares and Gust Verbruggen},
  journal= {arXiv preprint arXiv:2209.14876},
  year   = {2022}
}