slot deposit pulsa slot mahjong slot gacor slot gacor slot gacor resmi slot gacor 2025 slot gacor terpercaya slot gacor 2025 slot gacor hari ini slot gacor hari ini slot gacor hari ini
开发者的坏消息?这个AI越来越会写代码!
17611538698
webmaster@21cto.com

开发者的坏消息?这个AI越来越会写代码!

资讯 0 1991 2022-02-09 11:52:51

图片


决定学习哪种编程语言对于当今的开发者来说都是一个大问题,因为这都需要大量的时间投入。但在未来使用人工智能 (AI) ,通过它理解需求描述并编码来完成所有工作时,这个问题可能会变得无所谓了。  


这不,2月3日Alphabet 旗下的 AI 公司 DeepMind 又搞出了新进展。DeepMind 表示,该公司设计的 AlphaCode AI系统具备能撰写程序的能力,且在竞赛中证明已经具备人类中级程序员的水平!


DeepMind开发的 AlphaCode 属于机器学习范畴,可自主学习并具体解决问题的能力。


DeepMind 利用大量现存代码及数据集训练后,AlphaCode 的转换器(transformer)语言模型随后产出大规模的程序代码,从中产出指定的程序。


AlphaCode 经过编程平台Codeforces的比赛,被认为具各中等开发人员的水准,这也是AI编写代码系统首次达到具有竞争力的成绩。而这些比赛是需要人类理解自然语言描述的问题,然后才能有效地编写算法。 


图片


以下示例是 Codeforces 上的 1553D 问题:(链接:https://codeforces.com/problemset/problem /1553/D)。


图片


有两个字符串 s 和 t,都是由小写字母组成。对于字符串 s,我们从前向后扫描整个字符串。


如果按下 Backspace 键,就删除该光标前到上一个未删除字符之间的所有字符。例如字符串 s 是”abcbd”,你分别在第一个位置和第四个位置按下 Backspace,那么将得到字符串”bd”。


因为在第一个光标位置前没有字符,所以第一次没有动作。第四个光标位置前的字符是 c,上一个未删除字符是 a,所以按下 Backspace 将删除前三个字符”bd”。


好了,现在问题来了:们能否从前向后扫描一次 s 字符串, 让 s 变为 t。如果可以输出 YES,否则输出 NO。


AlphaCode 给出的代码是这样的:

图片

向以上程序输入 4 组字符串:

图片

得到的输出结果是:

图片

AlphaCode 不再是黑箱,它不仅成功解决了问题,还能将代码和注意力用高亮的对应位置显示出来。

图片


如果把这个分数放到过去六个月总体来看,AlphaCode的成绩更为优秀,因为它只刷了10周的题目,就已经达到了前28%用户的水平。


DeepMind指出,程序算法竞赛本质上是程序员解决问题的过程。参赛者接到多个问题描述,并被要求在几小时内编写程序并解决问题。赢得编程竞赛需要的问题解决能力超出现有AI系统能力,而这集结了分析思维、逻辑、演算法、程序编写及自然语言理解。为此,DeepMind结合了大规模转换器(transformer)模型大量程序取样(sampling)及筛选(filtering)试图开发出能解决未知问题的AI系统。


在执行层面,AlphaCode 的预训练数据集包含了 715 GB 的代码,这些代码取自 GitHub ,分别用 C++、C#、Go、Java、JavaScript/TypeScript、Lua、Python、PHP、Ruby、Rust 和 Scala 编写。该团队使用从 Codeforces 和类似数据集中抓取的竞争性编程问题数据集对模型进行了微调。 


在评估阶段,他们为编程比赛主办方给定的问题各建立了该公司历来最大量C++和Phyton代码,然后开始针对这些程序进行筛选、集合及重新排名,最后完成10支最有希望的程序,然后提交给比赛方。


模型原理


DeepMind指出,这套自动化模型系统运作不同于一般比赛者使用的尝试错误(trial and error)过程,即除错、编译、测试及提交。

图片

图片来源/DeepMind


最后,他们在主办方同意下,模拟参赛近年10次竞赛,每一次AlphaCode都必须编写出新的解决方案。总结而言,AlphaCode能力在所有参赛者中,大约名列前54%的水准,居中等能力。虽然无法完全赢得大赛,但DeepMind认为AlphaCode已显示深度学习模型解决分析思维任务的能力进展。


Codeforces由俄罗斯程序员Mikhail Mirzayanov创办,大约每周举行一次名为“Codeforces Rounds”的编程比赛。通过Codeforces的Elo评分可以衡量一位程序员的编程水平。


当看到AlphaCode的成绩后,连创始人Mirzayanov都惊讶不已。他原本对AI持怀疑态度,因为编程比赛考验的是发明算法的能力,这是最困难的,没想到AlphaCode的结果完全超出了他的预期。


DeepMind相信这有助于推进问题解决型AI的研究。DeepMind也将AlphaCode使用的资料集公布在GitHub上,包括每一次测试的资料供外界开发者参考。


DeepMind发布这条消息仅半天,在Twitter上已经有2000多次转发、5000多点赞。


还值得注意的是,微软 GitHub 也正在开发一个名为 Copilot 的类似项目,该项目充当人类开发者的编码助手,使用公开可用的代码来训练 AI 系统。


英国曼彻斯特大学的Riza Theresa Batista-Navarro这样评价道,鉴于DeepMind 在其预印本论文中提供的示例,它似乎确实可以解决问题,同时从训练数据中复制的代码比人类已经做的要多一些。


她说,AlphaCode 似乎经过精心调整,可以解决复杂的算法挑战,而以前的 AI 编码工具在更简单的任务上仍然可以胜过它。


“虽然 AlphaCode 在竞争挑战上比 GPT 等最先进的 AI 做得好,但在入门挑战上的表现却相对较差,”Batista-Navarro 说。“假设他们想做竞赛级别的编程问题,以解决更具挑战性的编程问题,而不是介绍性的一般问题。这似乎表明该模型在更复杂的问题上得到了很好的调整,在某种程度上,它有点忘记入门级问题了。”


DeepMind 的 Oriol Vinyals 在一份声明中表示:“我从未期望 ML (机器学习) 在竞争对手中达到人类平均水平。但是,这表明要达到最高绩效水平,并提高我们人工智能系统解决问题的能力,还有很多工作要做。”


如此看来,这些写代码的AI,是来帮助我们开发者的,未来几代开发者的生活可能会轻松一些了。


作者:万能的大雄


评论