首页 >>  正文

codeorg编程网站

来源:baiyundou.net   日期:2024-09-22

鱼羊 萧箫 发自 凹非寺

量子位 | 公众号 QbitAI

DeepMind的NS论文又新添一篇。

这回,是“信息学竞赛选手”AlphaCode,登上了最新一期Science封面。

对,就是那个悄悄潜入10场编程比赛敲代码,成绩超过了一半人类的编程AI。

并且就在这篇最新更新的论文中,DeepMind还首次透露了AlphaCode的“一次通过率”:66%

也就是说,AlphaCode近三分之二的提交,都是一次AC(Accepted)的。

CMU博世人工智能中心教授J. Zico Kolter的最新评论文章也同时发表在了这一期Science上,他认为:

AlphaCode不仅仅是复制现有的解决方案。

在面对以前没见过的编程题时,它表现得非常好,无论它是在多大程度上真正“理解”了这个任务。

而在DeepMind的官方推特下,还有不少人把AlphaCode同当红炸子鸡ChatGPT联系了起来。

有人已经迫不及待看到两者同台演出:

首次通过率66%

尽管AI编程领域,GitHub的Copilot已经快进到收费模式,甚至还和程序员们“法庭上见”了。

但在DeepMind看来,AlphaCode还是颇有些不同之处。

一方面,编程竞赛对于AI而言本身就是比纯编程更为复杂的任务,关键是要为无法预见的问题构建解决方案。

另一方面,在架构上,AlphaCode采用了不同的机制来编码赛题文本。

值得一提的是,AlphaCode“打”的这10场编程比赛都来自Codeforces

相比其他针对算法和数据结构的编程比赛,Codeforces更偏好考查思维能力,这意味着AI无法仅仅通过“背题”来完成挑战。

例如这是Codeforces上关于1553D问题的描述:

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

如果按下Backspace键,就删除该光标前到上一个未删除字符之间的所有字符。

也就是说,假设字符串s是”abcbd”,你分别在第一个位置和第四个位置按下Backspace,那么将得到字符串”bd”。

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

针对这个“前提”,我们需要解决的问题如下:

我们能否从前向后扫描一次s字符串,让s变为t?如果可以就输出YES,否则输出NO。

针对这个问题,AlphaCode给出的解法如下:

那么,我们只需要给定输入的字符串数量(4)和具体的字符串内容,就能让程序输出对应的结果:

第一组ababa(ba),第二组ababa(bb),第三组aaa(aaaa),第四组aababa(ababa)

对此程序输出的结果分别是YES、NO、NO和YES。

在做题过程中,AlphaCode的“解题思路”也不再是黑箱。

它不仅成功解决了问题,还能将代码和注意力高亮的对应位置显示出来:

上述还只是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

— 完 —

量子位 QbitAI · 头条号签约

","force_purephv":"0","gnid":"93c878709aeca293c","img_data":[{"flag":2,"img":[{"desc":"","height":"1280","title":"","url":"https://p0.ssl.img.360kuai.com/t01598d543977864561.jpg","width":"1005"},{"desc":"","height":"1004","title":"","url":"https://p0.ssl.img.360kuai.com/t012dcd671b25fc5634.jpg","width":"1008"},{"desc":"","height":"158","title":"","url":"https://p0.ssl.img.360kuai.com/t01e4c3e58ef6af9470.jpg","width":"1080"},{"desc":"","height":"599","title":"","url":"https://p0.ssl.img.360kuai.com/t0193d61a006ad4ff4a.jpg","width":"1080"},{"desc":"","height":"674","title":"","url":"https://p0.ssl.img.360kuai.com/t0115d9d8a7f9dbf213.jpg","width":"1080"},{"desc":"","height":"706","title":"","url":"https://p0.ssl.img.360kuai.com/t011bdcb9c272e54e6f.jpg","width":"454"},{"desc":"","height":"880","title":"","url":"https://p0.ssl.img.360kuai.com/t01382d7955b8a0e1c9.jpg","width":"940"},{"desc":"","height":"382","s_url":"https://p0.ssl.img.360kuai.com/t01a1fbaf854d748aec_1.gif","title":"","url":"https://p0.ssl.img.360kuai.com/t01a1fbaf854d748aec.gif","width":"720"},{"desc":"","height":"464","title":"","url":"https://p0.ssl.img.360kuai.com/t0140336e72347301f9.jpg","width":"734"},{"desc":"","height":"466","title":"","url":"https://p0.ssl.img.360kuai.com/t019df4869699a4d4aa.jpg","width":"754"},{"desc":"","height":"337","title":"","url":"https://p0.ssl.img.360kuai.com/t019929491684af2d4d.jpg","width":"1080"},{"desc":"","height":"112","title":"","url":"https://p0.ssl.img.360kuai.com/t01bdcee65e3cadc6eb.jpg","width":"1080"},{"desc":"","height":"931","title":"","url":"https://p0.ssl.img.360kuai.com/t01dd1dc1425e6b1fba.jpg","width":"1080"}]}],"original":0,"pat":"art_src_3,fts0,sts0","powerby":"hbase","pub_time":1670558760000,"pure":"","rawurl":"http://zm.news.so.com/b8918b64a25e97fd73fa8c00a67f2021","redirect":0,"rptid":"5164e8a65d074c90","s":"t","src":"量子位","tag":[],"title":"AI编程登上Science封面:AlphaCode打竞赛,三分之二赛题一遍过

秋生怡3402电脑编辑、编程
仇峡豪18099406902 ______ 我也是初学者,首先推荐你学会这个网站的内容: http://www.w3school.com.cn/ 里面含web 、html 、xml 等 其次、下面的也是很好的网站,不过深入了!最受计算机专业学生欢迎的IT技术网站公布 1,中国软件开发网(www.csdn.net)2,希...

秋生怡3402请问哪里有编程论坛,谢~
仇峡豪18099406902 ______ CSDN 国内最大的程序开发社区 codeproject 国外的应该经常去的网站 sourceforge 开源项目发布的地方

秋生怡3402哪里有比较好的学编程的网站
仇峡豪18099406902 ______ 编程爱好者网站-- 中文编程开发类门户网站: http://www.programfan.com/

秋生怡3402谁知道一个有优秀C++代码的网站 -
仇峡豪18099406902 ______ http://www.vckbase.com/code/ VC知识库 http://www.codefans.net/sort/list_8_1.shtml 源码爱好者的C++专区 源码免费下载.蛮不错的.希望对你有所帮助.

秋生怡3402谁介绍一个C++编程网站
仇峡豪18099406902 ______ C++博客-专注于C++技术 (58,05-15 20:32,59260)69. http://www.cppblog.com/cyin8/(149,02-22 22:37,58240)70.子弹のVISIONS(112,01-19 09:39,57862)71.Bluesea(80,04-28 14:54,54709)72.... www.cppblog.com/

秋生怡3402介绍一些教人编软件的书或网站
仇峡豪18099406902 ______ 编程爱好者网站-- 中文编程开发类门户网站 -- www.programfan.com

秋生怡3402我是敲代码的,比较关注IT科技,有没有什么好的网站,最好能当首页的 -
仇峡豪18099406902 ______ 嗯,C主页吧,玩IT都挺喜欢,这个网站,网站边上那个科技专栏都是我平时常去的一些网站,关键是搜索,有时候编程遇到问题,百度不够用,就得用Goo

秋生怡3402codelite怎么用?
仇峡豪18099406902 ______ http://codelite.org/ 准确的说是一个跨平台的C/C++整合开发环境. 上面是它的官方网站,既然你要学C++,也就要多学学英语了.可以看看它的官网.不过现在还比较少人用这个开发平台啊.

秋生怡3402C语言,求网友发可以刷C语言编程题的网址,不甚感激,OJ题! -
仇峡豪18099406902 ______ 在线编程网站:https://oj.leetcode.com/problemset/algorithms/ 题库不断更新,注册以后能记录自己的答题内容,题的类型偏向实际应用,很多找IT方向工作的人都会在这刷题练习,效果很好.根据自己找工作的经验,有的公司招聘编程题与这上面的题目很类似,所以个人感觉这个网站练习编程很有效果~

秋生怡3402哪个软件能搜python编程题? -
仇峡豪18099406902 ______ 哪个软件能搜python编程题在线编程平台:有许多在线编程平台提供Python练习题和挑战,例如LeetCode、HackerRank、Codewars等.这些平台通常提供各种难度级别的练习题,可以帮助您提高编程技能. LeetCode是一家知名的在线刷题网...

(编辑:自媒体)
关于我们 | 客户服务 | 服务条款 | 联系我们 | 免责声明 | 网站地图 @ 白云都 2024