程序员危!传OpenAI全球招外包大军,手把手训练ChatGPT取代码农
码农真的危了!
最近有消息称,OpenAI已经在悄悄地训练ChatGPT,让它学习人类的思考过程,从而真正掌握软件工程,彻底代替「初级码农」。
OpenAI招外包大军,教AI学人类思考
会编程的AI,几家硅谷大厂都在做。
DeepMind的AlphaCode,据说「吊打72%人类程序员」,但尚未开放;传闻中谷歌的「神秘项目」Pitchfork,也还在酝酿中;而微软的GitHub Copilot主要是一个代码补全工具。
要说完全代替人类码农,它们还不够格。
但如果真的让ChatGPT学会了用人类思维去编程,这些友商/自家的产品恐怕要被吊打。
而从种种迹象看来,OpenAI似乎正在下一盘大棋。
根据Semafor的报道,在过去的六个月里,OpenAI已经从拉美和东欧等地区招募了大约1000名外包人员,来训练他们的AI码代码。
这个新闻中,有两个「华点」。
首先,为什么地点选在拉美和东欧?这个咱们都明白,现在硅谷的泡沫戳破了,各家互联网大厂都在绞尽脑汁「降本增效」,有的靠裁员,有的就去其他国家找廉价劳动力。
第二个「华点」是,这些外包人员中,很多人并不是计算机专业的毕业生,也不具备高级的编程技能。他们的作用是,编写OpenAI期待实现的「自动化」基本代码。
具体来说,其中的60%从事「数据标注」工作——创建大量的图像、音频片段等信息,用来训练人工智能工具或自动驾驶汽车。
另外的40%则是实打实的程序员,他们正在为OpenAI的模型「手搓」数据,从而让AI学习软件工程任务。
此前,OpenAI一直是用从GitHub上抓取的代码训练其模型。
而这次,OpenAI想建立的数据集中,不仅有代码,还包括背后用自然语言编写的人类解释。
论文地址:https://arxiv.org/abs/2107.03374
对此,Semafor特地采访了一位南美的开发者,而他曾无偿为OpenAI完成了5小时的编码测试。
在这个测试中,他被要求处理两个任务。
首先,他会得到一个编程问题,OpenAI要求他用书面的英语解释自己将如何处理这个问题。
然后,他需要提供一个解决方案。
如果他发现了一个bug,OpenAI就会要求他详细说明问题是什么,应该如何纠正,而不是简单地修复。
「他们很可能是想用一种非常特殊的训练数据来投喂这个模型,在这种情况下,就需要展示人类是如何一步步思考的。」这位开发者说。
此前的ChatGPT,写的代码就被揪出过不少问题。
原因在于,ChatGPT没有任何标记了对错的内部记录,它其实是一个统计模型。ChatGPT的答案,本质上就是从构成GPT-3的互联网数据语料库中收集的概率结果。
当时OpenAI也说,ChatGPT最合适的定位,应该是编码辅助工具。
但想象一下,如果OpenAI真的教会了ChatGPT「像人类一样一步一步思考」,那它完全可以代替一些需要死记硬背的写代码工作,后果就是,一些「初级」码农被彻底淘汰。
现在,硅谷的高管们正在设想这样的产品,让几乎没有编程经验的人士向AI描述自己的创意和愿景,然后就能构建出任何自己想要的东西,无论是一个网站,还是一个游戏。
几天前,特斯拉的前人工智能主管Andrej Karpathy刚刚在推特上说:「最热门的新编程语言是英语」。
用ChatGPT来debug,效果拔群
这可能并不是一个玩笑,比如当红炸子鸡ChatGPT,就很有潜力。
最近,一项来自美因茨大学和伦敦大学学院的研究发现,ChatGPT不仅可以出色地修复bug,而且开发者还能通过对话来显著提高成功率。
研究人员表示,ChatGPT的debug性能与常见的深度学习方法CoCoNut和Codex相差无几,并且明显优于标准的自动程序修复方法(APR)。
论文地址:https://arxiv.org/abs/2301.08653
用ChatGPT来解决代码问题并不新鲜,但与人类对话的独特能力,使它比其他方法和模型更具优势。
为了评估ChatGPT的debug性能,研究人员使用QuixBugs基准的40个纯Python问题对其进行了测试,然后手动检查建议的解决方案是否正确。
由于ChatGPT给出的答案存在一定的随机性,因此研究人员针对每个问题都会单独测试4次。
与其他自动程序修复的基准不同,QuixBugs包含了相对较小的问题(代码行数少),而这非常适合在对话系统中使用。
在测试过程中,研究人员删除了所有的注释,并询问ChatGPT这段代码是否有bug以及如何修复它。
比如,图1中就是一个关于BITCOUNT问题的例子。其中,第1-2行是向ChatGPT提出的需求;从第4行开始是错误的代码片段。
对于这个例子,我们希望ChatGPT的回答能解决第7行的错误,即nˆ= n – 1应该被替换为n &= n – 1。做为回应,ChatGPT要么给出一段修复完的代码,要么给出一个描述告诉我们应该如何修改。
结果显示,ChatGPT解决了40个bug中的19个,与CoCoNut(19)和Codex(21)相当,但标准的APR方法只解决了其中的7个问题。
当然,因为ChatGPT和Codex都是来自于同一个语言模型系列,所以解决问题的数量差不多也就不足为奇了。
此外,如果我们仔细观察结果还可以发现,ChatGPT并不是每次都能解决基准测试中的bug。仅在BUCKETSORT和FLATTEN这两个问题上,四次都发现了bug,而其他的通常只能成功1-2次。
也就是说,用户在实际使用时,可能需要尝试数次才能获得正确的结果。
不过,ChatGPT有一个强大的优势:我们可以在对话中与系统互动,更详细地对问题进行说明,从而获得正确的答案。
实际测试结果,也确实如此。
经过与模型更进一步的对话,研究人员成功地将ChatGPT的正确率刷新到了77.5%,也就是修复了40个错误中的31个,远超SOTA。
至少,目前看来,这件事是完全有可能的:开发人员将不再需要编写样板代码。
相反,他们可以专注于复杂的应用程序架构或网络安全等领域。
也就是说,虽然ChatGPT可能会完成某些编程工作,例如编写通用函数或样板代码,但它不会完全取代程序员。因为程序员的工作需要的不仅仅是写代码。
成为一名程序员需要技巧——能够构建程序、遵循逻辑并生成比各部分总和更宏大的东西。
码农:我自己「杀」自己
显然,ChatGPT不是码农们做出的第一个「自我迭代」的产品。
咱们来排一排,那些会写代码的AI。
谷歌的Pitchfork
去年11月,坊间传闻,谷歌正在酝酿一个秘密项目,这个产品会通过机器学习训练代码,自己编自己,自己修复bug,还能自己更新。
据知情人士透露,这个项目起初是由Alphabet的登月部门——X部门开发的,代号为Pitchfork,去年夏天被转移到了谷歌实验室。
根据内部资料,Pitchfork的作用是「教代码自行编写、自行重写」。
它能够学习不同的编程风格,并且根据这些风格写出代码。
一名谷歌员工表示,开发Pitchfork的初衷是希望建立一个工具,将谷歌的Python代码库更新到新版本。
AlphaCode:吊打72%程序员
2022年2月,DeepMind推出了「AlphaCode」系统,可以使用人工智能生成代码。
根据DeepMind的说法,AlphaCode可以与人类匹敌。
DeepMind使用编程竞赛平台Codeforces上托管的10个现有竞赛来测试AlphaCode,它的总体排名位于前 54.3%,也就是说,它击败了46%的参赛者 。
DeepMind声称,在使用编程竞赛平台Codeforces进行检测时,AlphaCode解决了100万个样本中34.2%的问题。
另外在过去6个月参加过比赛的用户中,AlphaCode的数据排到了前28%,可以说「吊打72%人类程序员」!
当时,DeepMind就指出,虽然AlphaCode目前只适用于具有竞争性编程领域,但显然,它未来的能力绝不会止步于此。
它为创造某些工具打开了大门,而这些工具将使编程变得更容易被人们接受,并且有朝一日可以完全实现自动化。
Copilot:代码补全神器
再往前,在2021年,GitHub与OpenAI共同推出了一款AI编程神器——GitHub Copilot。
输入代码时,Copilot会自动提示程序中接下来可能出现的代码片段,就像一个经过训练用Python或JavaScript说话的自动补全机器人。
Copilot能够填充必要的代码块,只要它们不是特别复杂或者特别有创造性,这对于相当于手工劳动的编程,可太有用了。
2022年6月22日,Copilot正式面向C端上线,定价10美元/月或100美元/年,并向学生用户和流行开源项目的维护者免费提供。
现在,成千上万的开发者都在用Copilot。在十几种最流行的语言编写代码中——有高达40%是依靠它来生成的。
GitHub预测,开发人员将在五年内使用Copilot编写多达80%的代码。
微软首席技术官Kevin Scott还表示:「我们确信:GitHub Copilot可以应用到数千种不同类型的工作中。」
不过,因为涉嫌侵权,在发布不到5个月后,Copilot已经被愤怒的程序员一举告上法庭,索赔90亿美元。
而学会「软件工程思维」的ChatGPT,能吊打它们吗?按OpenAI的速度,恐怕我们不用等太久。
参考资料:
https://www.semafor.com/article/01/27/2023/openai-has-hired-an-army-of-contractors-to-make-basic-coding-obsolete
https://www.zdnet.com/article/chatgpt-can-write-code-now-researchers-say-its-good-at-fixing-bugs-too/