AI编程登上Science封面:AlphaCode打竞赛,三分之二(2)
时间:2022-12-12 12:33 来源:网络整理 作者:采集插件 点击:次
上述还只是AlphaCode解的其中一道题。 整体来说,在Codeforces平台举办的编程比赛模拟评估中,AlphaCode在超过5000名参与者的比赛中平均排名前54.3%——击败了一半的选手。 并且第一次提交就通过的概率达到了66%。 AlphaCode是如何读题写码的 所以,AlphaCode究竟是凭借什么原理达成这一“战果”的呢? 它仍然基于预训练-微调的范式打造,采用Transformer架构,其中编码器具备“解读能力”,解码器则具备“写码能力”。 这次发表在Science上的论文,也给出了更直观的原理图,并以Python作为案例,讲解具体训练的过程。 在预训练(pre-training)时,研究人员会先整理出GitHub上的各种代码集,并“喂”给AlphaCode上的编码器和解码器。 以Python上的print(“hello”)为例,这里print()是一个常见的函数,即“打印输出”,”hello”则是具体需要打印输出的内容。 经过预训练后的模型,就具备了基本的“按指令完成任务”的要求,其中编码器负责生成指令,解码器则负责填充剩余的部分。 在微调(fine-tuning)环节,研究人员会整理出竞争性编程竞赛的数据集,包括问题和解决思路两部分,并以GOLD与tempering作为训练目标,进一步减少搜索空间。 其中,问题以注释#的形式交给编码器“学习”,解决思路则交给解码器来尝试理解: 微调完成后,解码器就懂得通过编码器生成注释的内容,来尝试输出对应的代码。 经过预训练-微调后,就来到了最终的评测环节。 Codeforces的题目会被直接以注释的形式交给编码器,解码器则尝试输出数百万个不同的程序,对它们进行过滤和聚类(cluster)之后,提交其中的10个程序来解决问题。 (当然前面也提到,有不少问题在第一次提交后就通过了) 对于AlphaCode的出现,有程序员调侃称“可以在艺术家旁边排队等领救济粮了。” 不过,DeepMind官方对于AlphaCode的定调并非“AI版程序员”,而是希望它作为一个辅助的角色出现在编程工作中: 我们希望它能作为软件开发者的助手,尤其是为0编程基础的人提供写代码的机会。 论文地址: https://www.science.org/doi/10.1126/science.abq1158 参考链接: [1]https://www.science.org/doi/10.1126/science.add8258 [2]https://mp.weixin.qq.com/s/wZcY_hEk_M61wTJVVIXfIg [3]https://www.deepmind.com/blog/competitive-programming-with-alphacode 特别声明:以上文章内容仅代表作者本人观点,不代表新浪网观点或立场。如有关于作品内容、版权或其它问题请于作品发表后的30日内与新浪网联系。 (责任编辑:admin) |
- 上一篇:现在上海的别墅市场怎么样
- 下一篇:教资面试通过率最高的学科是哪门?你选对了吗