大语言模型AI会代替程序员的编程工作吗

2017年,谷歌研究人员推出了一种名为“transformer”的新型机器学习程序,最初用于处理语言。尽管他们主要关注的是改进机器翻译,但很快人工智能社区意识到这种transformer具有巨大而深远的潜力。

编程,电脑,屏幕,程序,程序员

transformer的潜力

这种transformer通过对大量文档的训练,根据先前的上下文来预测接下来会发生什么,展现了对书面文字节奏的惊人洞察力。无论你开始一个思想,就像一个深知你的朋友一样,transformer都能完成你的句子。如果你的序列以一个问题开始,那么transformer将生成一个答案。更令人惊讶的是,如果你开始描述一个程序,它将接着你的思路并输出那个程序。

编程的挑战

编程一直被认为是困难的,具有晦涩的符号和对错误不宽容的态度。即使是初学者程序员在正确指定甚至像计算数值平均这样简单的任务时都会遇到困难,有超过一半的时间会失败。即便是专业程序员也曾编写导致太空船、汽车甚至整个互联网崩溃的有缺陷的代码。

transformer改变游戏规则?

当发现像ChatGPT这样基于transformer的系统能够将人类可读的描述转化为可工作的代码时,这无疑让人兴奋。想象一下,通过生成式人工智能的帮助,任何会写作的人都可以编写程序。Andrej Karpathy,当前人工智能浪潮的一位架构师,宣称:“最炙手可热的新编程语言是英语。”尽管近期的发展似乎已经从根本上改变了初学者和专家可能编写代码的方式,但编程的民主化使学习编码变得比以往任何时候都更加重要,因为它使更广泛的人群能够利用其益处。生成式人工智能使事情变得更容易,但并不是轻而易举。

对使用transformer编程的怀疑

对于认为没有编码经验的人可以轻松使用transformer进行编码的想法,我有三个主要的怀疑。首先是幻觉的问题。transformer以产生听起来合理的废话而臭名昭著,特别是当它们不确定接下来会发生什么时。毕竟,它们被训练来做出合理的猜测,而不是承认错误。想象一下在编程的情境中会发生什么。

挑战和解决方案

可能可以通过减少transformer的错误性和提供更多的测试和反馈来解决这一挑战,以便更清晰地了解它们输出的程序实际上是做什么的。然而,还有一个更深层次和更具挑战性的问题。实际上,编写任务的口头描述甚至让人们能够遵循都是相当困难的。这对于尝试按照家具组装说明来操作的人来说应该是显而易见的。人们取笑宜家的说明书,但他们可能不记得在宜家出现之前的现代艺术是多么糟糕。我在70年代的时候买了很多恐龙模型套件,每次组装恐龙模型的成功几率都像投掷硬币一样。

程序设计的未来

总的来说,在生成式人工智能时代,每个人都有参与类似编程活动的能力,告诉计算机代表他们执行行为。但准确传达你的愿望——给人类、传统编程语言,甚至是新潮的transformer——都需要培训、努力和实践。生成式人工智能通过大大扩展计算机理解我们的能力,正在帮助人们迈出这一步。但要被理解,我们仍然需要学习如何理解。