chatgpt来了,会砸了程序员的饭碗吗?

简介: 最近著名的编程竞赛网站Codeforces发布了一篇名为《AlphaCode(DeepMind) Solves Programming Problems on CodeForce》的文章,将阿尔法扣(AlphaCode)带入人们的视野,更让DeepMind再次霸榜各大媒体的头条,而近期CHATGPT更是阿尔法扣的集大成者,本文根据阿尔法扣的建设思路,来推理CHATGPT的相关情况


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

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

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

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

image.png

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

可以说阿尔法扣就是目前爆火的CHATGPT有着千丝万缕的联系,而由于CHATGPT没有相关论文发表,所以我们只能通过一窥究竟。

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

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

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

image.png

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

image.png

 

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

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

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

image.png 

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

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

跨越之前,问题不少

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

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

 

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

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

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

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

相关文章
|
人工智能 自然语言处理 安全
【网安AIGC专题10.19】论文3代码生成:ChatGPT+自协作代码生成+角色扮演(分析员、程序员、测试员)+消融实验、用于MBPP+HumanEval数据集
【网安AIGC专题10.19】论文3代码生成:ChatGPT+自协作代码生成+角色扮演(分析员、程序员、测试员)+消融实验、用于MBPP+HumanEval数据集
180 0
|
5月前
|
人工智能 程序员
ChatGPT无法取代人类程序员! IEEE 35页论文测出困难编码正确率仅为0.66%
【7月更文挑战第20天】IEEE 35页论文揭示ChatGPT在复杂编码任务上的正确率仅0.66%,表明大型语言模型虽能生成语法正确代码,但在逻辑和可读性上不及人类程序员。研究强调AI在深度领域知识与推理上的局限性,提示AI辅助而非替代的角色。[链接:https://ieeexplore.ieee.org/document/10507163]
53 2
|
人工智能 算法 架构师
ChatGPT无法替换最初级的程序员
ChatGPT无法替换最初级的程序员
|
7月前
|
自然语言处理 算法 程序员
chatgpt如何赋能程序员
ChatGPT作为一种先进的自然语言处理模型,可以为程序员提供多方面的赋能,助力他们更高效地完成编程工作。以下是ChatGPT如何赋能程序员的几个关键方面: **1. 代码理解与解释**: ChatGPT能够解析和理解复杂的编程逻辑,帮助程序员理解代码的功能和意图。当程序员遇到难以理解的代码段时,ChatGPT可以提供解释和说明,帮助他们快速掌握代码的核心逻辑。 **2. 代码自动生成与优化**: 基于其强大的自然语言处理能力,ChatGPT能够根据程序员的描述或需求,自动生成相应的代码片段。这不仅可以节省程序员的编写时间,还能提供多种可能的实现方式,供程序员选择和优化。 **3. 错误
|
7月前
|
机器学习/深度学习 人工智能 自然语言处理
ChatGPT发展到了什么程度?代码生成,程序员将被取代?
ChatGPT发展到了什么程度?代码生成,程序员将被取代?
79 0
|
人工智能 自然语言处理 程序员
ChatGPT 的出现会导致底层程序员失业吗?
ChatGPT 的出现会导致底层程序员失业吗?
101 0
|
7月前
|
人工智能 算法 数据挖掘
ChatGPT 调教日记(二):程序员转量化的背景知识
ChatGPT 调教日记(二):程序员转量化的背景知识
69 0
|
机器学习/深度学习 人工智能 自然语言处理
ChatGPT即将取代程序员
ChatGPT即将取代程序员
113 1
|
人工智能 程序员 开发者
|
SQL 运维 Java
如何用ChatGPT提高程序员开发效率?
如何用ChatGPT提高程序员开发效率?
575 0