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

文暄生活科普
2024-11-19 · 百度认证:宜昌文暄生活服务科技官方账号
文暄生活科普
向TA提问
展开全部
AI科技评论报道

DeepMind的团队发布了一个可以自动生成竞赛级代码的人工智能系统——AlphaCode,它在号称「全球最强算法平台」Codeforces 上的 5,000 名用户解决的 10 项挑战中进行测试。AlphaCode能以与人类相同格式输入代码,生成大量可能答案,通过运行和筛选出可行答案,最终在人类程序员中取得了排名前 54%的成绩。这意味着,AlphaCode的代码能力媲美参加过测试的近一半程序员(2300名)。按照一个初级程序员月薪2万的算法,AlphaCode有望每年为全球人类资本家节省5.52亿人力成本,可能导致一半程序员失业。

然而,DeepMind团队强调,AlphaCode目前仅适用于竞赛类编程比赛。Tea Pearce,一位在清华大学朱军门下担任博士后研究员,对AlphaCode的技术原理产生浓厚兴趣。他仔细阅读了DeepMind的31页论文,并制作了一个短视频,从系统概述、测试阶段、数据集的预训练与微调、Transformer模型的训练过程与Transformer架构等维度对AlphaCode的细节进行了较为详细的讲解。

AlphaCode基于Transformer模型,类似于OpenAI之前开发的GPT-3,但重点在于对顺序文本(如代码)的解析而非生成。以下是对AlphaCode工作的详细概述:

AlphaCode的目标编码问题集中在特定的竞赛类型,在诸如Codeforces的网站上参加编码挑战,这些挑战包含对一个问题的简短描述与带有测试案例的示例,为挑战者提供了与正确预期输出相匹配的输入。

AlphaCode的工作原理包括三个阶段:首先使用大规模的Transformer模型,将问题描述、示例测试和元数据作为输入,生成大量潜在解决方案。然后对这100万个潜在代码脚本进行筛选,选出可能有用的10个方案。最后,使用第二个Transformer模型生成测试案例输入,根据这1000个编译并运行的脚本的输出对脚本进行聚类,从中选择10个脚本,这些脚本通过所有隐藏测试即为解决编码问题的最终方案。

AlphaCode使用了当今深度学习中相当标准的预训练微调过程。包含两个数据集:一个用于预训练,包含715 GB的公共Github存储库代码,用于让Transformer学习通用知识,如代码结构和语法;另一个数据集服务于目标,用于微调,是从编码挑战网站抓取的问题描述、测试用例和人工编写的解决方案。

Transformer模型的训练过程包括预训练阶段,使用github代码,随机选择枢轴点,编码器仅输出代码的向量表示,解码器则在自回归方式下运行,预测代码的每个标记并重建整个代码,损失函数为预测的softmax输出与真实令牌之间的交叉熵。微调阶段,将问题描述的元数据和示例输入投喂到编码器中,使用解码器生成人工编写的代码。

最后,AlphaCode架构由多头注意力层组成,且整个系统遵循编码器-解码器架构。DeepMind团队对各种模型规模进行了实验,发现较大规模的模型往往表现更好。此外,他们还提出了标签和评级增强以及问题描述的策略,以改进生成的代码。

总的来说,AlphaCode通过生成和筛选代码,展示了在特定竞赛类编程任务上的能力,其工作原理涉及Transformer模型、预训练与微调、以及策略优化等技术。然而,其性能水平与在围棋或星际争霸游戏中的AlphaGo、AlphaZero相比,显示出编写代码的复杂性。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式