危!这回,我真的失业了!

因公众号更改推送规则,请点“在看”并加“星标”第一时间获取精彩技术分享

点击关注#互联网架构师公众号,领取架构师全套资料 都在这里73b8b2fe3de76292dde1027520115a73.png

0、2T架构师学习资料干货分

上一篇:赞!ChatGPT能接入微信了!

大家好,我是互联网架构师!

来源|量子位(ID:QbitAI)报道

最近这些天,ChatGPT可以说爆火了,一时间在互联网上被讨论得热火朝天。

而今天要聊的主角不是ChatGPT,而是隔壁另外一个AI编程系统AlphaCode。

d0bba6569c3011e4e8bde006d74f34b5.png

因为正当ChatGPT爆火之际,那个曾经卷趴一半程序员的AlphaCode最近也登上了Science封面!

3f4283a2af61086d53db8b47ad437b5e.png

伴随着各种AI系统在网上爆火,有网友调侃道:“危,这回,我要失业了b441ba4bca1d03d998e1651ba2b8a06b.png。”

0eb8e79c0b66689eda82afa90e01861e.png

什么是AlphaCode

聊到AlphaCode,想必大家也并不陌生,它是DeepMind发布的AI编程系统。

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

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

而早在之前,它就参加过著名网站Codeforces所举行的10场编程比赛,并且成绩超过一半程序员。

Codeforces是一个由俄罗斯程序员Mikhail Mirzayanov创办的编程竞赛网站,大约每周举行一次名为“Codeforces Rounds”的编程比赛。

当看到AlphaCode的成绩后,连创始人Mirzayanov都惊讶不已。

c57fe66752f17716cbefc19edb4d17af.png

他原本对AI持怀疑态度,因为编程比赛考验的是发明算法的能力,这是最困难的,没想到AlphaCode的结果完全超出了他的预期。

AlphaCode如何编程

说了这么多,下面我们来看看AlphaCode是如何成为“编程做题家”的。

以下是Codeforces上的1553D问题:

(链接:https://codeforces.com/problemset/problem/1553/D)

8b1ef363269450936330456e63ac89a7.png e7ec6b5c077e1be0ba6ddd9c77c212e1.png

针对Codeforces上这样一道编程题目,AlphaCode给出的代码是这样的:

t=int(input()) 
for i in range(t):  s=input()  t=input()  a=[]  b=[]  for j in s:  a.append(j)  for j in t:  b.append(j)  a.reverse()  b.reverse()  c=[]  while len(b)!=0 and len(a)!=0:  if a[0]==b[0]:  c.append(b.pop(0))  a.pop(0)  elif a[0]!=b[0] and len(a)!=1:  a.pop(0)  a.pop(0)  elif a[0]!=b[0] and len(a)==1:  a.pop(0)  if len(b)==0:  print("YES")  else:  print("NO")

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

4 
ababa 
ba 
ababa 
bb 
aaa 
aaaa 
aababa 
ababa

得到的输出是:

YES
NO
NO
YES

在这里,AlphaCode不再是黑箱。

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

5fea790df8a70de9f99813b25fca42f4.gif

至于更多的案例,可以去AlphaCode网站上观摩。

大致原理

所以,AlphaCode究竟是凭借什么原理达成这一“战果”的呢?

DeepMind说,在Codeforces比赛中所需解决问题的能力,已经超出了现有AI系统的能力。

整个AlphaCode模型的流程如下:

c74b8e2fbb7e0544d72c0b58c9da20bb.png

它仍然基于预训练-微调的范式打造,采用Transformer架构,其中编码器具备“解读能力”,解码器则具备“写码能力”。

  1. 用标准的语言建模目标在GitHub代码上预训练一个基于Transformer的语言模型。这个模型可以合理地代表人类编写代码的空间,大大减少了问题的搜索空间。

  2. 在竞争性编程数据集上微调模型,使用GOLD与tempering作为训练目标,进一步减少了搜索空间,并利用预训练弥补了少量的竞争性编程数据。

  3. 为每个问题从模型中生成非常多的样本。

  4. 对样本进行过滤,以获得一小部分候选提交的样本(不超过10个),在隐藏的测试案例上进行评估,方法是利用实例测试和聚类,根据程序行为挑选样本。

总而言之,通过将大规模Transformer模型与大规模采样和过滤相结合,DeepMind在可以解决的问题数量方面取得了重大进展,比之前的工作高出一个数量级。

而这次发表在Science上的论文,也给出了更直观的原理图,并以Python作为案例,讲解具体训练的过程。

在预训练(pre-training)时,研究人员会先整理出GitHub上的各种代码集,并“喂”给AlphaCode上的编码器和解码器。

以Python上的print("hello")为例,这里print()是一个常见的函数,即“打印输出”,“hello”则是具体需要打印输出的内容。

e9d4dc58c87d67dce8a90c3bd39fba06.png

经过预训练后的模型,就具备了基本的“按指令完成任务”的要求,其中编码器负责生成指令,解码器则负责填充剩余的部分。

在微调(fine-tuning)环节,研究人员会整理出竞争性编程竞赛的数据集,包括问题和解决思路两部分,并以GOLD与tempering作为训练目标,进一步减少搜索空间。

其中,问题以注释#的形式交给编码器“学习”,解决思路则交给解码器来尝试理解:

cb9b1131393b3336634ddaefaffeb583.png

微调完成后,解码器就懂得通过编码器生成注释的内容,来尝试输出对应的代码。

经过预训练-微调后,就来到了最终的评测环节。

Codeforces的题目会被直接以注释的形式交给编码器,解码器则尝试输出数百万个不同的程序,对它们进行过滤和聚类(cluster)之后,提交其中的10个程序来解决问题。

8450fa205b01ce007b13a00823ecd1d4.png

讨论

其实AlphaCode不是第一个编程工具,之前Codex以及GitHub Copilot都给人留下过深刻的印象。

但DeepMind认为,AlphaCode和前辈们大有不同:

“最近的大规模语言模型展示了生成代码的惊人能力,现在能够完成简单的编程任务。然而,当对更复杂、看不见的问题进行评估时,这些模型的表现仍然很差,这些问题需要解决问题的技能,而不仅仅是将指令翻译成代码。”

对于AlphaCode的出现,有程序员会表示有一些担心:

d38b385713d4a841b6e0f749318780cb.png

不过,DeepMind官方对于AlphaCode的定调并非“AI版程序员”,而是希望它能作为软件开发者的助手,作为一个辅助的角色出现在编程工作中。

所以文末也做个小调查,大家都是怎么看待AI写代码的呢?

扩展阅读:

[1]https://www.science.org/doi/10.1126/science.abq1158 

[2]https://www.science.org/doi/10.1126/science.add8258 

[3]https://mp.weixin.qq.com/s/wZcY_hEk_M61wTJVVIXfIg 

[4]https://www.deepmind.com/blog/competitive-programming-with-alphacode

1、Alibaba开源内网高并发编程手册.pdf

2、2T架构师学习资料干货分享

3、10000+TB 资源,阿里云盘,牛逼!!

4、基本涵盖了Spring所有核心知识点总结

  · END ·

最后,关注公众号互联网架构师,在后台回复:2T,可以获取我整理的 Java 系列面试题和答案,非常齐全。

67c803b17a9fc7a787c52dcbd742c99b.png

如果这篇文章对您有所帮助,或者有所启发的话,帮忙扫描下发二维码关注一下,您的支持是我坚持写作最大的动力。

求一键三连:点赞、转发、在看。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/41046.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

智能化时代的软件工程:拥抱大模型的正确姿势

智能化时代 Foundation Model Software Engineering 软件工程 以ChatGPT为代表的大模型技术对于包括软件工程在内的很多领域都带来了巨大的冲击,也引发了广泛的焦虑。为了在迷雾中看清一点方向,近期我们基于各种技术文献和实践分享以及我们自身的一些初步…

Apple Watch 发布 | 历史上的今天

整理 | 王启隆 透过「历史上的今天」,从过去看未来,从现在亦可以改变未来。 今天是 2023 年 4 月 24 日,中国航天日,在 1970 年的今天,中国第一颗卫星“东方红一号”发射升空。“东方红一号”是我国于 1970 年 4 月 24…

若依前后端分离 使用富文本编辑器 wangEditor

用于 Vue React | wangEditor 组件下载地址 有视频教程 vue版本 2的使用 进入项目cmd输入安装命令 yarn add wangeditor/editor 新建一个文件夹 新建一个文件名字为MyEditor <template><div><div><div class"header-height"><el-bu…

智能AI伪原创工具文章在线生成源码

​ 今天我将分享一个更有趣的PHP源码&#xff0c;您可以直接使文章在线伪原创&#xff0c;有需要的朋友可以尝试 它。 所有网站管理员朋友都必须对网站的原始内容感到头疼。 作为草根网站管理员&#xff0c;您不可能自己撰写原创文章。 当然&#xff0c;我并不是说您不能写一个…

百度编辑器ueditor的简单使用

最近刚被分配了以个消息发布的任务&#xff0c;其中用到了富文本编辑器。以前也用过&#xff0c;不过这次我选择的是百度富文本编辑器ueditor1_4_3-utf8-jsp版的。 其实看ueditor功能很强大&#xff0c;不过百度的设计还是很不错的。只需要稍微配置一下就可以用了。 首先下载到…

只需2步uniapp集成富文本编辑器wangEditor4

官网文档地址 首先安装 npm i wangeditor --save 使用 <div id"div1"><p>欢迎使用 <b>wangEditor</b> 富文本编辑器</p> </div>import E from wangeditoronReady() {this.initEditor() },/*** 初始化富文本编辑器*/ initEdi…

tui-editor富文本编辑器组件

tui-editor富文本编辑器 记录项目中使用富文本编辑器 安装 npm init & npm install --save tui-editor创建组件文档 tuieditor 在 default-options.js中 // doc: https://nhnent.github.io/tui.editor/api/latest/ToastUIEditor.html#ToastUIEditorexport default {minH…

ueditor 百度富文本编辑器后端配置(上传图片)

在前端已经写好的情况下进行以下操作 1&#xff0c;在public/assets/addons/ueditor内新建 config.json并加入以下代码 {"imageActionName": "uploadimage","imageFieldName": "upfile","imageMaxSize": 2048000,"im…

百度富文本编辑器UEditor配置及功能实现详解

当前功能基于PHP&#xff0c;其它语言流程大抵相同。 大概流程&#xff1a; 1. 将docx文件上传到服务器中 2. 使用PHPoffice/PHPword实现将word转换为HTML 3. 将HTML代码返回并赋值到编辑器中 1 编辑器配置修改 1.1 新增上传word json配置 在ueditor\php\config.json中新…

开源版ai智能写作软件源码 一键写作生成器 含完整搭建教程

分享一个开源版ai智能写作软件系统的源码&#xff0c;含详细的搭建教程&#xff0c;可以一键生成原创高质量文章。 它是一款人工智能对话系统&#xff0c;它可以聊天&#xff0c;写文章&#xff0c;写论文&#xff0c;写代码&#xff0c;写小说&#xff0c;创意策划&#xff0c…

AI自动写文章生成器系统源码 一键生成高质量原创文案

分享一个AI自动写文章生成器系统源码&#xff0c;程序包含电脑端手机端详细的搭建教程&#xff0c;源码开源可二开。 功能介绍&#xff1a; 是一款人工智能对话系统&#xff0c;它可以聊天&#xff0c;写文章&#xff0c;写论文&#xff0c;写代码&#xff0c;写小说&#xff0…

简历中的“项目经验”该怎么写?

找工作&#xff0c;简历是最关键的一步&#xff0c;只有通过了简历筛查才能往下继续进行。 很多人写简历&#xff0c;都是在记录流水账&#xff0c;看来没有任何平淡寡味。其实简历的核心价值就在于游说 hr 和面试官&#xff1a;看我&#xff0c;看我&#xff0c;看我 —— 即&…

java程序员简历项目经验_程序员简历中的项目经验怎么写

程序员简历项目经验范文一 项目&#xff1a;河北省风电监控系统 时间&#xff1a;2014—2015 开发环境&#xff1a;windowseclipsetomcatoracle 框架&#xff1a;springspringmvchibernate 插件&#xff1a;jquery&#xff0c;raphael,highcharts,validate, 个人主要工作内容&a…

软件测试简历没有项目经验怎么写?

目录 前言&#xff1a; 1、项目名称: 家电购 2、项目名称: 瑞德商城 3、项目名称:随意读(APP) 前言&#xff1a; 之前很多小伙伴问我说自己是转行或者自学的想找工作但是没有工作经验&#xff0c;简历上面不知道怎写&#xff1f;今天就给大家带来几个可以直接写进简历的项目…

简历中的项目经历可以怎么写?

概述 工作这10多年来&#xff0c;也经常做招聘的工作&#xff0c;面试过的人超过50人次了&#xff0c;而看过的候选人的简历则有几百份了&#xff0c;但是清晰且能突出重点的简历&#xff0c;确实很少遇到。这里基本可以说明一个问题&#xff0c;很多候选人是不太清楚如何写出…

简历上面的项目经历怎么写?怎么写才能显得突出?

项目经历可不可以是课堂项目? 其实对很多同学来说,不是不会写项目经历,而是根本不知道什么是项目经历,哪些内容可以写在项目经历中。所以看到简历中的项目经历模块,感觉不知道怎么写?那么对于大学生来说,即使你大学四年中没有太多活动、竞赛、科研的经历,但是你一定上过…

程序员简历项目经验怎么写?

我是一个典型的互联网公司程序员&#xff0c;也见过无数的程序员简历&#xff0c;包括很多优秀的程序员简历&#xff0c;看了可以让人眼前一亮&#xff0c;优美简洁的简历模板&#xff0c;项目经验工作重点突出;也见过更多的写得不好的简历。程序员怎么写简历?程序员简历项目经…

【软件测试】简历中的项目经历可以怎么写?

工作这10多年来&#xff0c;也经常做招聘的工作&#xff0c;面试过的人超过50人次了&#xff0c;而看过的候选人的简历则有几百份了&#xff0c;但是清晰且能突出重点的简历&#xff0c;确实很少遇到。这里基本可以说明一个问题&#xff0c;很多候选人是不太清楚如何写出一份好…

简历中“项目经历“该如何写?

前言 找工作&#xff0c;简历是最关键的一步&#xff0c;只有通过了简历筛查才能往下继续进行。 很多人写简历&#xff0c;都是在记录流水账&#xff0c;看来没有任何平淡寡味。其实简历的核心价值就在于游说 hr 和面试官&#xff1a;「看我&#xff0c;看我&#xff0c;看我」…

【DeepL Write】AI润色

DeepL Write 是著名的机器翻译工具 DeepL 最新发布的新功能&#xff0c;通过「检查语法及标点错误&#xff0c;重新表述句子&#xff0c;运用精确措辞&#xff0c;并为你的文本选择最恰当的语气。」&#xff0c;目前支持英文、德语。 使用 DeepL Write 完善你的写作 这是一款通…