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


Transformer架构
DeepMind 团队对各种大小的模型进行了实验。经实验,较大规模的模型往往表现更好。编码器和解码器本身由多头注意力层组成,且这些层非常标准。

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


8

其他技巧
该论文有许多进步之处。在这里,我不打算全部介绍,只想强调一个我认为很酷炫的点,就是标签和评级增强,以及问题描述。

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

我们总是将元数据作为Transformer的输入。这包括问题的编程语言难度等级。一些问题的标签与解决方案在训练时是否正确?他们显然知道这些字段的值是什么,但是在测试时他们并不知道什么是酷炫的,那就是他们实际上可以在测试时将不同的内容输入到这些字段中以影响生成的代码。例如,你可以控制系统将生成的编程语言,甚至影响这种解决方案。
它尝试生成比如是否尝试动态编程方法或进行详尽搜索的答案。他们在测试时发现有帮助的是,当他们对 100 万个解决方案的初始池进行抽样时,是将其中的许多字段随机化。通过在这个初始池中拥有更多的多样性,其中一个代码脚本更有可能是正确的。
9

结语
以上就是 Tea Pearce 对 AlphaCode 工作原理的讲解。
从AlphaCode的工作出发,他谈到自己的思考:为什么DeepMind团队在这些编码问题上实现的性能水平比在围棋(AlphaGo)或星际争霸(AlphaZero)游戏中的超人水平系统要低得多呢?
Tea Pearce的分析是,从自然语言描述中编写代码本质上就比玩游戏要困难得多,但这也可能是因为游戏中可用的数据少得多。你可以根据需要模拟尽可能多的数据,而编码问题的数量是有限的。
最后,Tea Pearce抛出问题:AI写代码之所以难的原因可能是什么?在未来,AI的代码水平要怎样才能超越人类最优水平?
欢迎在评论区留言讨论。
参考链接:
1. https://www.youtube.com/watch?v=YjsoN5aJChA
2. https://www.reddit.com/r/MachineLearning/comments/slwh69/p_alphacode_explained/
3. https://storage.googleapis.com/deepmind-media/AlphaCode/competition_level_code_generation_with_alphacode.pdf
4. https://www.deepmind.com/blog/article/Competitive-programming-with-AlphaCode

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

雷峰网雷峰网