共计 2528 个字符,预计需要花费 7 分钟才能阅读完成。

智东西(公众号:zhidxcom)
编译 | 程茜
编辑 | 李水青
据智东西 12 月 9 日报道,今天,DeepMind 开发的 AI 编程模型 AlphaCode 登上了国际顶级学术杂志《科学》的封面!
当人工智能与人类共同参与编程比赛时,会产生怎样的结果呢?在 Codeforces 的十场竞赛中,AlphaCode 在模拟评估中平均排名前 54.3%,其编程能力超越了大多数人类选手。

▲ AlphaCode 的比赛模拟评估结果
外媒 GIZMODO 报道,AlphaCode 在测试中展现出“接近人类的表现”,该模型能够预测代码片段,从而生成大量潜在解决方案,成功应对之前从未遇到过的自然语言问题,其整体表现相当于经过几个月到一年的培训的新手程序员。

▲ AlphaCode 所提供的解决方案示例
AlphaCode 生成的代码示例链接:https://alphacode.deepmind.com/#layer=18,problem=114,token=79,heads=11111111111

论文链接:https://www.science.org/doi/10.1126/science.add8258
一、AI 从理解到解决问题,代码生成能力趋近人类
创造出意想不到的解决方案是人工智能发展的重要方向。目前,机器学习在生成和理解文本数据方面取得了显著进展,但在复杂问题的解决上仍然局限于简单的数学和编程问题,或是对已有解决方案的检索与复制。
为此,DeepMind 推出了 AlphaCode 系统,旨在解决那些需要结合批判性思维、逻辑推理、算法知识、编码技能和自然语言理解的新问题。
值得注意的是,AlphaCode 并不具备关于计算机代码结构的先天知识,而是通过“数据驱动”的方式进行编码。简单来说,它通过分析大量现有代码学习程序结构,并依托机器学习模型 LLM,通过对问题描述中的字符进行预测来学习。
为了评估其性能,AlphaCode 参与了 Codeforces 的十场比赛。这些比赛的挑战在于,参与者不能单靠复制过去的解决方案或尝试所有已知算法来应对问题。因此,AlphaCode 必须生成创新且有趣的解决方案才能获胜。
在生成了大量解决方案后,AlphaCode 会筛选出最多 10 个最佳方案。

▲ AlphaCode 的编程处理流程
研究人员指出,相较于现有的 AI 系统,AlphaCode 在解决问题的能力上已经取得了进展。
虽然从 AlphaCode 的比赛排名来看,其表现似乎并不突出,但研究人员强调,成功应对编码比赛是极其困难的挑战。
在面对未知的编码问题时,AlphaCode 首先需要理解自然语言中的复杂问题,然后进行推理,而非仅仅记忆代码片段。研究者们认为,没有证据表明该模型只是简单地从训练数据中复制了核心框架。
二、经过 1 万多个文本预训练,整合多样化解决方案
AlphaCode 之所以能在竞争性编程任务中超越其他系统,关键在于其预训练和候选解决方案的整合。
研发团队构建了 CodeContest 数据集,包含约 13500 个竞争性编程问题的描述、所需输入输出的简单测试用例,以及涵盖多种编程语言的潜在解决方案。
此外,GitHub 中包含多种语言且没有问题描述的非结构化字符也用于该模型的训练。

▲ 研发人员通过数据集对 AlphaCode 进行预训练
在评估过程中,研发人员发现该模型单独生成问题解决方案的代码表现不佳,因此 AlphaCode 会生成成千上万的候选解决方案,通过简单测试进行过滤,并整合相似方案以避免重复,增加解决方案的多样性。
然而,该模型也显露出明显的局限性,它能够高效记忆数据集中的解决方案并重新排列输出,这使得模型对潜在问题的理解并不深入,更多是在盲目模仿。
综合来看,AlphaCode 在编码领域展现出潜力。卡内基梅隆大学博世人工智能中心教授 J. Zico Kolter 在一篇博文中提到:“尽管其对任务的理解程度尚不可知,但 AlphaCode 在应对前所未见的编码挑战时表现出了优异的能力。”
三、AI 辅助生成代码的早期阶段,引发代码所有权争议
AlphaCode 并不是唯一一个为编码开发而设计的 AI 模型。
早些时候,OpenAI 对其 GPT- 3 自然语言模型进行了调整,以期实现自动完成代码行的功能。GitHub 也推出了 AI 编程工具 Copilot。然而,这两个工具在应对复杂的竞争问题时并未展现出与人类相抗衡的实力。
目前,AI 在代码编写方面的应用仍处于相对初级阶段,但 AlphaCode 在竞赛中的表现显示了深度学习模型在解决需要批判性思维和逻辑判断的任务中的巨大潜力。
研究人员表示,AlphaCode 除了能提高整体生产力外,还可能“让新一代开发者的编程变得更加轻松。”随着技术的不断演进,AlphaCode 未来有望对编程文化产生深远影响,或将使人类的角色转变为提出问题,而由 AI 来解决这些问题。
与此同时,一些 AI 领域的批评者对许多 AI 模型在训练过程中实际效果表示质疑。
就在上个月,一位名叫 Matthew Butterick 的程序员对微软旗下的 GitHub 提起了首起诉讼,指控其 Copilot AI 助手在训练和测试阶段忽视或删除软件工程师提供的许可证。
Butterick 认为,随意使用其他程序员的代码相当于“前所未有的软件盗版”。该诉讼的结果可能会影响未来 AI 开发人员在研发和改进模型时的便利程度,因为以往开发人员可以利用人类代码来训练模型。
结语:AI 解决问题的能力展现出巨大潜力
尽管与复杂棋类游戏中的 AI 模型相比,AlphaCode 在比赛中的表现并不算突出,但这却昭示着 AI 模型在解决问题能力上的重大进步。
DeepMind 的研究团队相信,这只是一个新的起点。AI 模型在代码编写领域为研发人员带来了巨大的改进空间。DeepMind 将继续开展相关探索,期待研发出更能增强编程能力的工具,朝着真正能够解决问题的 AI 迈进。


AlphaCode的表现确实让人印象深刻,但在实际应用中,它是否能够应对多样化的项目需求仍然值得探讨。希望未来能有更多案例验证其能力。