DeepMind带来了大魔王阿尔法扣,程序员还有前途吗?

2023-05-16

最近著名的编程竞赛网站Codeforces发布了一篇名为《AlphaCode(DeepMind) Solves Programming Problems on CodeForce》的文章,将阿尔法扣(AlphaCode)带入人们的视野,更让DeepMind再次霸榜各大媒体的头条,这也是DeepMind在2015年成功推出阿尔法狗,击败人类最强围棋选手之后,再次推出改变世界的重榜产品。

笔者看到Codeforces的创始人Mikhail Mirzayanov也亲自下场为阿乐法扣打call,除了一些Codeforces的表现远超预期等客套话,Mirzayanov的一个重要观点就是阿尔法扣似乎表现出了比较强的创造性,这点很不寻常。

这次DeepMind给阿尔法扣选择的编程网站-Codeforces是很有必要向大家介绍一下的,与目前日趋商业化的力扣(LeetCode)不同,Codeforces最大的特点就是代码和题解的公开。所有人都可以随意查看其它大牛的代码,非常符合开源的调性而且Codeforces题目一般都不是那种传统科班的考察项目,往往会在题目中设置比较多的思维陷阱对于数据结构以及经典算法的相对没有那么侧重。

codeforces另外一特点就是拥有独特天梯排名上分系统,每周都会举办一到两次算法比赛,在阿尔法扣默默参加了10场编程比赛之后,获得了超过了一半人类程序员的好成绩,最终排名前54.3%,Elo评分1238。

阿尔法扣敢于挑战Codeforces这种比较偏向考察创造性思维而非数据结构的题目,还能取得不俗成绩,个人认为这也是Codeforces创始人Mirzayanov盛赞阿尔法扣具备创新性的一个关键佐证。

突破辅助编程-阿尔法扣还有多远的路要走?

在去年的8月底,微软旗下的两个大牌机构OpenAI与GitHub 联合推出了基于AI技术的自动辅助编程工具Copilot并基于VS Code的MarketPlace发布了预览版,结果预览版一经问世就取得了惊世效果。

Copilot 基于GPT-3模型,是针对编程任务适配版本,以部分完成的代码及注释作为输入输出完整的代码建议。Copilot的官方网站https://t.co/eWPueAXTFt 将其定位为“程序员结对编程实践中的AI对手”,笔者看到不少开始使用Copilot 的网友都提到,大多数情况下只要一个简单的函数签名Copilot就可以完成整个函数的代码编写甚至有时只需要一简单的注释,Copilot就能把整个功能模块全部搞定

虽然Copilot和阿尔法扣使用的技术类似,从本质上讲Copilot是定位于辅助编程的,不过辅助编程技术在前年GPT-3刚刚推出时就已经比较成熟,比如由界面需求描述,直接转化成代码的debuild.co,但这些辅助编程工具本质上都是对人类已有的实现进行模仿甚至是照搬。

这些辅助编程工具与阿尔法扣AI程序员的定位是完全不同的,阿尔法扣AI程序员的还需要不断完善但它的出现却提供了一个关于AI编程未来发展的思路,当AI学到了足够多的代码之后,是否会展示出相应的创造力,而AI的这种创造力是否意味着程序员群体将在未来会被AI取代,这些都引发了笔者深深的思考。

读书破万卷下笔如有神,代码学多了,是否能质变?

从DeepMind官方的博客上看,阿尔法扣的训练集还是基于Github和CodeForce建立的,这与阿尔法狗初始态下也是基于人类棋谱构建训练数据是比较一致的。

我们知道初代的阿尔法狗还没有那么高的统治力,在抛弃人类棋谱,两只阿尔法狗对局,并不断进化之后,人类棋手在面对AI时才会显得那么无能为力。

不过好消息是围棋的规则是长时间不变的,但是在编程方面技术的进步却是日新月异,也就是阿尔法扣所面对的数据集是要动态调整的,这可能使两个阿尔法扣相互结对编程,并取得质变的可能性并没有想象当中那么大,因此阿尔法扣想达到高级程序员的水平在短期看来不太可能,不过随着阿尔法扣能够普遍达到中级程序员的水平之后,IT行业35岁即失业的现象恐怕会更加严重,因为AI程序员不能独立工作,而带领AI编程团队需要更加精深的技术实力而非管理能力,这可能会给很多走上技术管理岗的程序员带来一定压力。

跨越之前,问题不少

虽然AI编程的发展已经形成趋势阿尔法扣的工作原理等方面分析,在阿尔法扣升级成为贝塔扣,伽马扣之前,还有很多坑要老老实实的填平

错误解答,反而后腿根据DeepMind官方博客显示阿尔法扣首先要进行的工作是通过NLP系统,试图理解需求的意思但是与人类的理解不同,阿尔法扣的理解的语义虽然大部分时候有效,但也存在一定完全理解不了的可能性,如果你所给出题目的问题描述完全不符合Codeforce之前题目文风的话,那么也很有可能得到一些完全没有意义的代码,也就是说在阿尔法扣能正常给出答案时,它的效率可能比人类程序员高得多,但一旦阿尔法扣不能工作,那么对不起它错的也会比一般人类程序员离谱,因此阿尔扣至少要搭建一名初级程序员帮助发现这些显尔易见的错误,并递交给高级程序员给出正确答案。

使用Github训练阿尔法扣到底不侵权?正如前文所说是基于GitHub和Codeforce两大编程网络上的公开代码进行的模型训练,而且无论是微软的Codplite还是Deepmind的阿尔法扣,都没有按照不同的开源许可证对于代码进行区分对待。

那么如果未来阿尔法扣用于商业用途那么用那些已经明确不允许用于商业用途的代码来训练阿尔法扣的AI模型是否涉嫌侵权?针对这个问题网上争论的声音很大,笔者认为如果AI最终给出的建议代码与原先训练集中的代码一模一样的话,那么这种情况肯定会涉嫌侵权,但建议代码与原训练代码的相似度如何判断才是关键所在,当然截止目前这还依旧是个开放性问题,业界尚未形成共识。

引用老旧类库代码,增加安全风险:正如前文所言,阿尔法扣的训练集是Github和Codeforce上已经存在的代码,从实操来讲,Deepmind很难对如此大量的代码进行有效标注,因此阿尔法扣生成的代码,即使有效能够正常运行,也不能代表些代码没有安全漏洞,这样的特性就使得开发人员去全面检查AI 生成的代码变得非常重要。

但无论如何未来都将到来,面对会编程的AI程序员,我们人类程序员们只有顺势而为,快速找到属于自己的生态位才能力于不败之地。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

DeepMind带来了大魔王阿尔法扣,程序员还有前途吗? 的相关文章

  • linux的nohup命令的用法

    http www cnblogs com allenblogs archive 2011 05 19 2051136 html 在应用Unix Linux时 xff0c 我们一般想让某个程序在后台运行 xff0c 于是我们将常会用 amp
  • Mysql中创建用户帐户的方法

    http www eygle com digest 2008 01 mysql create user html 1 CREATE USER CREATE USER user IDENTIFIED BY PASSWORD 39 passwo
  • 用mysql触发器自动更新memcache

    mysql 5 1支持触发器以及自定义函数接口 UDF 的特性 xff0c 如果配合libmemcache以及Memcached Functions for MySQL xff0c 就能够实现 memcache的自动更新 简单记录一下安装测
  • 一个很爽的前端网站,有大量的资源

    http www gbin1 com technology css index html firstentry 61 0
  • Html5 Geolocation获取地理位置信息

    http www cnblogs com lwbqqyumidi archive 2012 11 10 2764352 html Html5中提供了地理位置信息的API xff0c 通过浏览器来获取用户当前位置 基于此特性可以开发基于位置的
  • openfire整合外部数据库的方法

    http www igniterealtime org builds openfire docs latest documentation db integration guide html 看了这篇教程 xff0c 发现了一个问题 xff
  • 金融机构如何应对核心系统分布式智能化升级大潮?

    过去40多年 xff0c 中国金融业实现了技术上的引进 借鉴 xff0c 并逐渐开始进行原创性创新 比如 xff0c 在 支付系统建设方面 xff0c 我国现在就走在了世界的前列 从二代大小额支付系统CNAPS到跨境人民币支付系统CIPS再
  • ajax请求中session无效的问题

    遇到一个问题 xff0c 发现网站中的所有ajax在某个服务器中的session总是无效 xff0c 后来同事查了资料 xff0c 原来php的配置文件中有个选项 xff1a Whether or not to add the httpOn
  • 解决seesion在二级域名下无效的问题

    开发中遇到了一个问题 xff0c 当用户在www aa com登陆了 xff0c 在二级域名下的登陆无效 例如 aa com 后来检查了很久 xff0c 终于知道了问题所在 xff0c 在www aa com下生成的cookie不适用于 a
  • 提供全球商家信息的网站

    做LBS的应用 xff0c 商家信息的获取和维护是个很重要的问题 xff0c 在中国的某些大型网站是雇佣了兼职人员去维护这些数据 xff0c 但对于小公司来说这种方法是不现实的 现在发现了一个网站 xff0c 提供了全球的商家信息 xff0
  • 使用web端连接xmpp

    在apache的配置文件中加入下面3句 xff1a ProxyRequests Off ProxyPass xmpp httpbind http 127 0 0 1 7070 http bind ProxyPassReverse xmpp
  • ubuntu apache开启重写模块

    http www iblue cc 2011 09 ubuntu apache E5 BC 80 E5 90 AF E9 87 8D E5 86 99 E6 A8 A1 E5 9D 97 Ubuntu下apache2的rewrite模块默认
  • openfire xmpp 如何判断用户是否在线

    http iammr 7 blog 163 com blog static 49102699201041961613109 想象中如此简单的功能 xff0c 想不到却这般大费周折 如要实现 xff0c 必须先确保 xff1a 1 openf
  • sql 分组统计

    原始的数据结构是这样的 xff1a 这是一个信息表 xff0c 记录下每个app每天对应什么等级 现在需求是 xff1a 统计每天每个等级有多少个app xff1f 实现的sql如下 xff1a select count as num le
  • Errors running builder JavaScript Validator的问题

    http jc dreaming iteye com blog 1038995 最近使用eclipse时 xff0c 在编译项目总是出现问题 Errors occurred during the build Errors running b
  • coreseek索引更新机制

    k索引更新机制 版权声明 xff1a 转载时请以超链接形式标明文章原始出处和作者信息及本声明 http fatal blogbus com logs 45153968 html 61 61 xff0c 昨晚太晚睡觉 xff0c 所以日记又没
  • golang生成自定义标签名(带CDATA标识)的xml

    在golang中 xff0c 有时候需要生成带CDATA标识的xml值 xff0c 例如这种 xff1a lt xml version 61 34 1 0 34 gt lt xml gt lt to User gt lt CDATA use
  • 有人痴狂,有人跑路,开源软件新一年的冰火两重天

    最近有关开源软件的话题始终占领着IT界的新闻头条 xff0c Log4j开源软件的惊天漏洞 xff0c 才刚刚出现不久 xff0c Fake js的作者也惊天删库跑路了 xff0c CurL的作者怒怼苹果只会白嫖开源却不出力 xff0c L
  • linux下通过ssh用户名密码的rsync传输文件方法

    一般用rsync传输文件都会使用密钥的方式实现免密码验证 xff0c 但有些机器由于特殊的原因 xff0c 不能配置密钥 xff0c 这时就要用ssh的用户名和密码方式使用rsync 1 首先 xff0c 通过ssh 命令登录一次远程的主机
  • codeigniter验证码类库

    http hi baidu com mediumgirl item c734b8f5a1cacfc3a835a2ae 折腾了我四五个小时 xff0c 终于 xff0c ci的验证码类库成功的整出来了 下面请看源码 xff1a 在applic

随机推荐

  • golang json.Marshal 特殊html字符被转义解决方案

    pages goods goods gid 61 56 amp code 61 1 会在转json中变成pages goods goods gid 61 56 u0026code 61 1 解决方案 xff1a content 61 str
  • mongodb 错误src/mongo/db/query/plan_enumerator.cpp的修复

    某个mongodb 3 2的库执行下面的查询就报错 xff1a db 34 xxxx 34 find 34 createdAt 34 34 gte 34 34 2019 04 23T00 00 00 43 08 00 34 34 lte 3
  • MySQL新建用户,授权,删除用户,修改密码

    http www cnblogs com analyzer articles 1045072 html grant all privileges on test to test 64 96 96 identified by 39 1234
  • HTTP/HTTPS, without index.php, using htaccess, plus XHR

    http ellislab com forums viewthread 86113 Removing index php and forcing HTTP HTTPS I have read many posts about people
  • 解决mysql返回的字段值全变成string型的问题

    使用php的CI框架的时候 xff0c 发现在数据库中是int型的数据 xff0c 返回的时候全变成了string了 对于弱类型的语言来说 xff0c 这个没多大关系 xff0c 但是 xff0c 如果是用于其它语言 xff0c 例如obj
  • STM32学习路线

    随笔 停更了好久啊 xff0c 有偷懒 xff0c 但不是完全偷懒 xff0c 主要还是意识到 xff0c 自己太菜了 xff0c 需要补很多东西 xff0c 以下算是学习中的一些体会吧 关关难过关关过 xff0c 成为专家可能需要天赋 x
  • 做个爱读书的程序员

    很多时候我们抱怨工作过于忙碌 xff0c 疲于应付各种事情 但是往往即使有时间也总是会无所事事地浪费掉 xff0c 我们可以找很多理由去给自己解脱 xff0c 固然是想在忙碌之外给自己放松一下 xff0c 大多却是过于可惜的时候 今天跟一个
  • 共用体结构体位域的应用

    1 xff09 增加位域定义 我们经常需要直接访问寄存器中的某个位域 C281x C C 43 43 头文件及外设示例所涉及的位域结构体方法 xff0c 为多数片上外设寄存器提供了位域定义 例如 xff0c 可以为CPU 定时器 xff08
  • C#的并发机制优秀在哪?

    笔者上次用C 写 Net代码差不多还是10多年以前 xff0c 由于当时Java已经颇具王者风范 xff0c Net几乎被打得溃不成军 因此当时笔者对于这个 Net的项目态度比较敷衍了事 xff0c 没有对其中一些优秀机制有很深的了解 xf
  • 集合中常见接口与实现类的基本介绍

    1 Iterable java中集合顶级接口之一 xff0c 实现Iterable接口的集合都是可迭代到 xff0c 可遍历 2 Collection Collection接口继承了Iterable xff0c 并且实现了Iterator迭
  • KEIL5 打开时候很多文件都自动打开解决方法

    Keil5 中修改配置 Edit gt Configuration gt Other gt Open most recent project 选中既可以 xff0c 下次打开Keil时候不会再打开很多文件
  • 新手小白,求教matlab

    用matlab写了个求阶乘的函数 xff0c function y 61 digui n n为元素个数 if n lt 61 1 y 61 1 end y 61 digui n 1 n end 结果显示 xff1a 内存不足 可能的原因是程
  • 字符串有长度限制吗?是多少?

    首先字符串的内容是由一个字符数组 char 来存储的 xff0c 由于数组的长度及索引是整数 xff0c 且String类中返回字符串长度的方法length 的返回值也是int xff0c 所以通过查看java源码中的类Integer我们可
  • C++实现推理, 基于Onnx-simplifier、onnx-tensorrt、TensorRT和Cuda编程

    Cuda基础 深度学习模型推理 为啥需要学习tensorRT 因为需要加速 需要C 43 43 部署 为啥又需要学习cuda编程呢 因为有些前处理 后处理需要cuda编程来并行运算进行加速 比如anchor的解码 nms等后处理 1 CUD
  • nuScenes、Culane数据集、Camera选型及内参标定、TX2外接双目相机ZED

    1 xff1a nuScenes数据集 https zhuanlan zhihu com p 295549692 nuScenes mini data 点云数据集 针对cuda10 0 spconv版本 安装cu100版本 torch 1
  • 指针指向0的问题

    问 xff1a 定义指针变量int a 61 0 是指针变量指向地址为零的数据吗 xff1f 答 xff1a 指针赋0 xff0c 就是不指向任何对象 xff0c 相当于NULL
  • pip install basicsr安装时在Preparing metadata (setup.py)卡住

    pip install basicsr安装时在Preparing metadata setup py 卡住 如下图pip安装basicsr时卡在Preparing metadata 查了很多资料也没解决 xff0c 最后从pypi下载包通过
  • Ros 图(节点,消息,话题)命令

    1 启动守护进程 xff1a roscore xff1a ros 43 core这条命令会启动ros的核心模块 xff0c 我感觉这个是一个守护进程 xff0c 会在11311端口 xff08 可能会有不同的配置 xff09 启动一个soc
  • Android 串口通信(二)

    前言 上一篇中主要介绍了串口基础内容和基于谷歌官方android serialport api库 对Android设备进行的串口操作 xff0c 这篇文章主要介绍基于Usb转串口驱动库usb serial for android 的相关内容
  • DeepMind带来了大魔王阿尔法扣,程序员还有前途吗?

    最近 著名的编程竞赛网站C odeforces 发布了一篇名为 AlphaCode DeepMind Solves Programming Problems on CodeForce 的文章 xff0c 将阿尔法扣 xff08 AlphaC