16,357
个编辑
更改
无编辑摘要
{{54}}
编程的终结:经典计算机科学的末日即将来临<br>
Matt Welsh 软件质量报道 2023-01-05 08:39 发表于上海<br>
我们大多数人都是恐龙,等待着流星的撞击。<br>
[[文件:编程的终结1.jpg|600px]]
<br>
【本文作者Matt Welsh (mdw@mdw.la)是一家最近成立的初创公司Fixie.ai(致力于开发人工智能功能来支持软件开发团队)的首席执行官和联合创始人。他曾是哈佛大学计算机科学教授、谷歌的工程总监、苹果的工程主管,以及OctoML的工程高级副总裁。他在加州大学伯克利分校获得博士学位的时候,人工智能还不太会下国际象棋。】
我不认为这个想法很疯狂。毫无疑问,从(相对)原始的电气工程洞穴中走出的最早的计算机科学先驱们坚信,所有未来的计算机科学家都需要对半导体、二进制算术和微进程设计有深刻的理解才能理解软件。快进到今天,我敢打赌99%的编写软件的人几乎不知道CPU是如何工作的,更不用说晶体管设计的物理基础了。通过扩展,我相信未来的计算机科学家将远离“软件”的经典定义,他们将很难逆转链表或实现快速排序。(见鬼,我不确定我是否还记得如何实现快速排序。)
像CoPilot这样的AI编码助手只是触及了我所描述的内容的表面。在我看来,很明显,未来所有的程序最终都将由AI来编写,而人类充其量只能扮演监督的角色。任何怀疑这一预测的人只需看看AI内容生成的其他方面(如图像生成)正在取得的惊人进展。DALL-E v1和仅在15个月后宣布的DALL-E v2在质量和复杂性上的差异是惊人的。如果说我在过去几年的人工智能工作中学到了什么,那就是,人们很容易低估日益庞大的人工智能模型的力量。几个月前还像是科幻小说的事情正在迅速成为现实。<br>
[[文件:编程的终结2.png|600px]]
<br>
(创造出令人惊艳的图像, https://openai.com/dall-e-2/)
未来的工程师只需敲击几下键盘,就能启动一个包含400亿亿个参数(four-quintillion-parameter)的模型实例,这个模型已经对人类知识的全部范围(包括子集)进行了编码,并随时准备执行机器要求的任何任务。让机器做我们想做的事情的大部分脑力工作将是提出正确的示例、正确的训练数据和正确的方法来评估训练过程。像基于小样本学习(few-shot learning)且能泛化的、这样强大的模型只需要执行任务的几个好的示例。在大多数情况下,大规模的、人工管理的数据集将不再是必要的,大多数人“训练”一个AI模型将不会在PyTorch中运行梯度下降循环( gradient descent loops )或类似的东西。他们只是教模型几个示例,机器将完成其余的工作。
<br>
[[文件:编程的终结3.jpg|600px]]
<br>
在这门新的计算机科学中——如果我们还称之为计算机科学的话——机器将如此强大,并且已经知道如何做很多事情,这一领域将看起来不像一个工程领域,而更像一个教育领域。也就是说,如何最好地教育机器,就像如何最好地教育学校里的孩子一样。不过,与(人类)孩子不同的是,这些人工智能系统将驾驶我们的飞机、运行我们的电网,甚至可能统治整个国家。我认为,当我们的注意力转向教授智能机器而不是直接编程时,绝大多数经典CS就变得无关紧要了。传统意义上的编程实际上将会消亡。