原标题:LLM带来了「编程末日」?哥本哈根大学CS教授:别做梦了!
文章来源:人工智能学家
内容字数:11999字
大型语言模型能否终结编程?
本文探讨了大型语言模型(LLM)的兴起是否会淘汰编程这一问题。哥本哈根大学计算机教授Hans Hüttel以及其他专家认为,编程不会消亡。
1. 对“编程过时”论点的质疑
一些人认为,未来大多数软件将由AI系统取代,而其余的“简单”软件则由AI自动生成,从而终结编程。Hüttel教授对这一观点提出了质疑。首先,“简单”的定义模糊不清,许多复杂的系统软件能否被AI取代仍是未知数。其次,自动生成代码的难度远超预期。
2. 程序合成难题与计算复杂性
从规范生成正确代码是程序合成的核心问题,而这是一个计算复杂性理论意义上的难题。Richard Statman在1979年证明,在简单类型的λ演算中是否存在具有给定类型τ项的问题是PSPACE完备的,这意味着算法运行时间将随输入大小呈指数级增长。即使对于中等规模的输入,算法也可能极其缓慢。因此,完全依靠AI自动生成复杂程序是不现实的。
3. 现有程序合成方法的局限性
现有的程序合成方法,例如静态程序分析工具、使用SMT求解器的方法和基于类型的开发形式,都存在局限性。一些方法是近似的,无法生成满足完整规范的程序;另一些方法则需要大量的计算资源。这些方法从未被认为是“编程终结”的标志。
4. LLM生成的代码质量问题
LLM在现有代码上进行训练,生成的代反映其训练数据中的编码风格。这意味着LLM有时能生成看起来合理的代码,有时却会产出无意义的程序。因此,LLM并不能完全取代程序员。
5. 自然语言在软件开发中的实际作用
自然语言在软件开发中的真正价值在于促进开发人员和最终用户之间的探索性对话。LLM可以辅助这种对话,但无法取代编程本身。这与过去一些类似的预言(例如FORTRAN报告中关于消除编码和调试的断言)一样,并没有成为现实。
6. 结论:编程的未来
虽然LLM等技术令人印象深刻,并能辅助编程工作,但它们并不能取代编程。程序合成面临着计算复杂性上的根本限制,现有技术也远未达到能够完全替代程序员的地步。编程的“末日”尚未到来,程序员的技能仍然至关重要。
联系作者
文章来源:人工智能学家
作者微信:
作者简介:致力成为权威的人工智能科技媒体和前沿科技研究机构