解码器|清华博士后用10分钟讲解AlphaCode背后的技术原理,原来程序员不是那么容易被取代的!

解码器|清华博士后用10分钟讲解AlphaCode背后的技术原理,原来程序员不是那么容易被取代的!
文章插图

AI科技评论报道
不久前,DeepMind 的团队发布了一个可以自动生成竞赛级代码的人工智能系统——AlphaCode,号称「媲美普通程序员」,一经发表就在国内外的AI圈里引起了巨大轰动。
解码器|清华博士后用10分钟讲解AlphaCode背后的技术原理,原来程序员不是那么容易被取代的!
文章插图
-论文地址:https://storage.googleapis.com/deepmind-media/AlphaCode/competition_level_code_generation_with_alphacode.pdf
-数据集:https://github.com/deepmind/code_contests
根据DeepMind的博客介绍,AlphaCode 在号称「全球最强算法平台」Codeforces 上的 5,000 名用户解决的 10 项挑战中进行了测试。AlphaCode能够以与人类完全相同的格式在这10项挑战中自动输入代码,生成大量可能的答案,然后像人类程序员一样通过运行代码和检查筛选出可行答案,最终在人类程序员中取得了排名前 54%的好成绩。
也就是说,AlphaCode的代码能力媲美在Codeforces上参加过测试的几乎一半程序员(2300名)。按照一个初级程序员月薪2万的算法,AlphaCode有望每年替全球人类资本家省下5.52亿的人力成本,使一半程序员失业……
不过,DeepMind团队当时也明确指出了:AlphaCode目前只适用于竞争类编程比赛。
不可否认,这也是继DeepMind发布Alpha Go、AlphaZero与AlphaFold之后的又一研究突破,极大地增加了其Alpha系列的传奇色彩。但与该系列的其他工作(如AlphaGo打败世界围棋冠军)相比,AlphaCode的性能似乎并不突出,
目前正在清华大学朱军门下担任博士后研究员的Tea Pearce对AlphaCode的技术原理十分感兴趣,对DeepMind的这篇31页论文进行仔细阅读后,制作了一个短视频发表在油管上,从系统概述、测试阶段、数据集的预训练与微调、Transformer模型的训练过程与Transformer架构等维度对AlphaCode的细节进行了较为详细的讲解。
视频地址:https://www.youtube.com/watch?v=YjsoN5aJChA
与OpenAI之前开发的GPT-3一样,AlphaCode也是基于Transformer模型,只不过前者侧重于言生成,后者则强调对顺序文本(如代码)的解析。
下面AI科技评论对该短视频进行了简单整理:
1

AlphaCode的代码问题
当前,AlphaCode的目标编码问题集中为特定的竞赛类型,在诸如Codeforces的网站上参加编码挑战,其中,这些挑战包含对一个问题的简短描述与带有测试案例的示例,为挑战者提供了能与正确预期输出相匹配的输入。
简而言之,这些挑战的目标就是编写一些代码,为示例的测试案例与一组隐藏测试案例提供符合预期的输出。如果你的代码通过了所有测试,那么你就解决了这个问题。
根据DeepMind的介绍,AlphaCode在Codeforces网站所举办的编码挑战中取得了与普通用户相媲美的成功率。
2

AlphaCode系统概述
那么,AlphaCode的工作原理究竟是怎样的呢?
在DeepMind团队所发表的“Competition-Level Code Generation with AlphaCode”一文中,他们给出了一个高级的概要图(如下)。如图所示,AlphaCode的核心组件仍然是Transformer语言模型,其余单独组件也是旧的。
解码器|清华博士后用10分钟讲解AlphaCode背后的技术原理,原来程序员不是那么容易被取代的!
文章插图
图注:AlphaCode的系统图

3

使用的协议
我们先看看AlphaCode在测试时是如何工作的。