作者: Bei Chen, Fengji Zhang, Anh Nguyen, Daoguang Zan, Zeqi Lin, Jian-Guang Lou, Weizhu Chen
提交日期: 2022年7月21日 (v1)
摘要:
给定一个编程问题,像 Codex 这样的预训练语言模型已经证明了通过采样生成多种不同代码解决方案的能力。然而,从这些样本中选择一个正确或最佳的解决方案仍然是一个挑战。验证代码解决方案正确性的一个简单方法是执行测试用例,但生成高质量的测试用例成本极高。在本文中,我们探索使用预训练语言模型自动生成测试用例,并将我们的方法命名为 CodeT:使用生成的测试进行代码生成。CodeT 使用生成的测试用例执行代码解决方案,然后基于与生成的测试用例以及其他生成的解决方案的双重执行一致性来选择最佳解决方案。我们在五个不同的预训练模型上,使用 HumanEval 和 MBPP 基准评估了 CodeT。广泛的实验结果表明,CodeT 相比之前的方法取得了显著、一致且令人惊讶的改进。例如,CodeT 将 HumanEval 上的 pass@1 提升至 65.8%,在 code-davinci-002 模型上绝对提升了 18.8%,并且比之前的最先进结果有超过 20% 的绝对提升。
主题/分类:
- 计算与语言 (cs.CL)
- 人工智能 (cs.AI)
- 编程语言 (cs.PL)
- 软件工程 (cs.SE)