LLM 带来了「编程末日」?哥本哈根大学计算机教授称“永远不会”

xxn 阅读:25944 2025-01-11 16:01:59 评论:0

编程是否会被LLM取代?最近,哥本哈根大学的计算机教授通过对计算理论中的定理进行分析得出结论:距离编程的终结还有很长的一段路要走。

LLM的发展会导致编程被淘汰吗?

根据哥本哈根大学计算机教授Hans Hüttel的说法:永远不会。

文章来源:https://cacm.acm.org/opinion/on-program-synthesis-and-large-language-models/

尽管当今人工智能已经达到新的高度,尤其是大语言模型在文本生成等方面的能力令人印象深刻。

然而,一些计算社区的人似乎太过激进,声称"编程将成为过去"。

2023年1月,《Communications》专栏中,Matt Welsh提出了这样的看法:"编程将逐渐过时——传统意义上编写程序的概念正在消失,实际上,除了某些专业应用程序外,大多数软件将会被经过训练的AI系统所取代"。

"在需要简单程序的情况下(毕竟并非所有程序都需要在GPU集群上运行数千亿个参数的模型),这些程序将由AI生成,而非手动编码"。

对Hans Hüttel来说,这种说法太过激进。

Welsh的观点包含两个方面。首先,未来大部分非"简单"软件将采用AI系统的形式。其次,任何不符合这一形式的软件将自动生成。

这似乎是一个相当笼统的说法,其结果是:如果不再需要编程,那么对于编程或程序属性的研究也将不再需要。计算机科学最终可能会走向消失!

客观来看,Welsh提出的第一个说法很难反驳。因为到底何为"简单"尚不明确?(按照引用的观点,任何不使用AI系统形式的软件都被认为是简单的)

目前的操作系统、游戏引擎和SaaS平台等系统软件算是"简单软件"吗?它们能否被AI取代还存在疑问。

Welsh提出的第二个说法涉及程序代码的生成。在早期的一篇评论中,Daniel Yellin从软件开发实践的角度讨论了LLM的使用情况。

而在本文中,Hans Hüttel教授主要关注计算理论中的定理所施加的基本限制,以及这些规范如何影响代码的生成。最终结论是:编程的终结并非近在眼前。

最受欢迎的编程语言

还记得大神Andrej Karpathy在推特上说过:"最受欢迎的新编程语言是英语"。

这一想法并非源自当前LLM几乎全能的现状,自然语言编程的概念可以追溯至2020年7月。当GPT-3推出时,Osama Qarem曾表示:"使用GPT-3仍旧属于编程","它将使用英语作为其代码的语法"。

考虑到实际情况,这一想法具有一定合理性:人类口语不够精炼、不太清晰,更容易引起误解。与GPT-3对话时,人们需要对名词、形容词、动词等进行练习,以获得他们想要的结果。这意味着你需要学会根据GPT-3的理解来"调试"你的英语语句。

如果要追溯消灭编程的想法,可以回溯至1954年FORTRAN报告中,作者声称"FORTRAN几乎可以消除编码和调试",——正如我们所知,并未发生。

随后,FORTRAN的主要作者John Backus继续设计了一系列有影响力的编程语言,并于1977年获得了图灵奖。

在FORTRAN报告十年后(1966年),Jean Sammet在《Communications》上写道,英语可能会成为未来的编程语言,但这从未发生,另一位图灵奖得主Edsger W. Dijkstra认为这种想法是"愚蠢"的。

今天会发生这种情况吗?经受了太多ChatGPT等大模型带来的惊艳表演,仅几句话就可以快速构建项目,生成看起来十分出色的代码。

人们可能会想,在这个时代,我们终于见证了编程的终结,英语(或通用的自然语言)成为创建程序的主要语言。

然而,实际上从规范角度生成程序代码并非如此简单。如果我们关注生成代码的准确性,考虑计算复杂性理论方面的精确性,那么即便是"简单"的程序也可能会相当困难。

生成正确的代码具有挑战性

从规范中生成正确的程序代码是计算机科学中的一个核心问题。这涉及到程序综合的问题,Gulwani曾表...

...

但是,普遍认为,PSPACE完备问题的决策算法随着输入规模的增加将经历指数级的增长。

换句话说,对于大小为n的规范S,算法可能需要2的n次幂步骤才能生成满足S的程序。

因此,即使是对于中等大小的输入,PSPACE-complete问题的算法也可能非常慢。

可以使用一种称为完全量化布尔公式(QBF)的一阶逻辑形式作为规范语言,并尝试进行模型化。

当涉及生成程序时,也需要对程序进行建模。不过,由于这是PSPACE完备的问题,因此对于具有一定复杂性的程序,其合成算法可能需要不合理的资源。

"编程末日"尚未来到

因此,计算机科学并未停止对程序综合的研究也就不足为奇。Gulwani曾全面调查过现有的程序综合方法,发现所有这些方法都存在局限。

一些程序综合方法是近似的,无法构建完整规范下的程序,比如静态程序分析工具,这些工具通常只考虑特定的程序属性。

另一些方法可能需要大量内存或时间来构建程序,如使用SMT求解器的方法和基于类型的开发形式。

还有些方法只能在有限的资源限制或狭窄的问题领域中进行综合,比如用于生成编译器和解释器的工具。

这些方法从未被视为"编程的终结",更不用说计算机科学的终结!

因此,期望ChatGPT等工具能超越这些限制是不合理的。

实际上,在使用类似AI软件进行编程环境时,人们会发现有时AI可以生成看似合理的代码,而有时则会生成无意义的程序。

这种现象并非偶然,因为LLM是在现有代码上进行训练的。这意味着,无论生成何种代码,都会反映出聊天机器人在训练阶段接触的编码风格。

因此,自然语言在软件开发中的真正作用在于开发人员与最终用户之间发生的探索性对话。LLM可能推动这种对话,但取代编程仍然是遥不可及的。

参考资料:

  • https://cacm.acm.org/opinion/on-program-synthesis-and-large-language-models/

本文来自微信公众号:新智元(ID:AI_era)

广告声明:文内含有的对外跳转链接(包括不限于超链接、二维码、口令等形式),用于传递更多信息,节省甄选时间,结果仅供参考。

声明

1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

搜索
排行榜
关注我们

扫一扫关注我们,了解最新精彩内容