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', 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——一种用于代码生成的系统,能够针对需要深度推理能力的编程问题提出新颖的解决方案。在 Codeforces 平台近期编程竞赛的模拟评估中,AlphaCode 平均排名达到前 54.3%,在参赛人数超过 5,000 人的竞赛中表现优异。我们发现,实现稳定且出色的性能依赖于三个关键要素:(1)用于训练与评估的广泛且高质量的编程竞赛数据集;(2)基于 Transformer 架构的大规模、采样效率高的模型结构;(3)通过大规模模型采样探索解空间,并结合程序行为进行筛选,最终保留少量高质量的提交结果。