13 天前

基于AlphaCode的竞争级代码生成

Yujia Li, David Choi, Junyoung Chung, Nate Kushman, Julian Schrittwieser, Rémi Leblond, Tom Eccles, James Keeling, Felix Gimeno, Agustin Dal Lago, Thomas Hubert, Peter Choy, Cyprien de Masson d&#39, Autume, Igor Babuschkin, Xinyun Chen, Po-Sen Huang, Johannes Welbl, Sven Gowal, Alexey Cherepanov, James Molloy, Daniel J. Mankowitz, Esme Sutherland Robson, Pushmeet Kohli, Nando de Freitas, Koray Kavukcuoglu, Oriol Vinyals
基于AlphaCode的竞争级代码生成
摘要

编程是一种强大且无处不在的问题解决工具。开发能够辅助程序员甚至独立生成程序的系统,有望显著提升编程的效率与可及性。然而,迄今为止,将人工智能领域的创新成果融入编程系统仍面临巨大挑战。近期的大规模语言模型已展现出生成代码的惊人能力,能够完成一些简单的编程任务。但在面对更复杂、未曾见过的问题时,这些模型的表现依然不佳,尤其是当问题需要超越简单指令到代码翻译的深层推理能力时,例如需要理解算法和复杂自然语言的编程竞赛题目,仍然极具挑战性。为弥补这一差距,我们提出了 AlphaCode——一种用于代码生成的系统,能够针对需要深度推理能力的编程问题提出新颖的解决方案。在 Codeforces 平台近期编程竞赛的模拟评估中,AlphaCode 平均排名达到前 54.3%,在参赛人数超过 5,000 人的竞赛中表现优异。我们发现,实现稳定且出色的性能依赖于三个关键要素:(1)用于训练与评估的广泛且高质量的编程竞赛数据集;(2)基于 Transformer 架构的大规模、采样效率高的模型结构;(3)通过大规模模型采样探索解空间,并结合程序行为进行筛选,最终保留少量高质量的提交结果。