編程的終結(jié):經(jīng)典計算機領(lǐng)域正迎來劇變

本文作者Matt Welsh (mdw@mdw.la)是一家最近成立的初創(chuàng)公司Fixie.ai(致力于開發(fā)人工智能功能來支持軟件開發(fā)團隊)的首席執(zhí)行官和聯(lián)合創(chuàng)始人。他曾是哈佛大學(xué)計算機科學(xué)教授、谷歌的工程總監(jiān)、蘋果的工程主管,以及OctoML的工程高級副總裁。他在加州大學(xué)伯克利分校獲得博士學(xué)位的時候,人工智能還不太會下國際象棋。
The End of Programming發(fā)表于 JANUARY 2023 | VOL. 66 | NO. 1 | COMMUNICATIONS OF THE ACM(《美國計算機協(xié)會通訊》),本文只代表著其中一種觀點,但由權(quán)威刊出,說明這種觀點值得關(guān)注。
上世紀(jì)80年代,我長大了,開始在家中為Commodore VIC-20和Apple等個人電腦編程。我在大學(xué)里繼續(xù)學(xué)習(xí)計算機科學(xué)(CS),并最終在伯克利獲得博士學(xué)位,我的大部分專業(yè)培訓(xùn)都植根于我稱之為“經(jīng)典”的CS:編程、算法、數(shù)據(jù)結(jié)構(gòu)、系統(tǒng)、編程語言。在經(jīng)典計算機科學(xué)中,最終目標(biāo)是將一個想法簡化為由Java、C++或Python等語言編寫的程序。經(jīng)典計算機科學(xué)中的每一個思想——無論多么復(fù)雜,從數(shù)據(jù)庫連接算法到令人難以置信而滑稽的Paxos共識協(xié)議——都可以表達(dá)為人類可讀、可理解的程序。
上世紀(jì)90年代初,當(dāng)我還在上大學(xué)的時候,我們還處于AI寒冬的深處,AI作為一個領(lǐng)域同樣被經(jīng)典算法所主導(dǎo)。我在康奈爾大學(xué)的第一份研究工作是和Dan Huttenlocher一起工作,他是計算機視覺領(lǐng)域的領(lǐng)軍人物(現(xiàn)在是麻省理工學(xué)院施瓦茨曼計算學(xué)院的院長)。1995年前后,在Huttenlocher 的計算機視覺的博士生課程中,我們從未討論過任何類似于深度學(xué)習(xí)或神經(jīng)網(wǎng)絡(luò)的東西,而是經(jīng)典算法,如Canny邊緣檢測、光流和Hausdorff距離。深度學(xué)習(xí)還處于起步階段,還沒有被認(rèn)為是主流人工智能,更不用說主流計算機科學(xué)了。
當(dāng)然,這是30年前的事情了,從那時起發(fā)生了很多變化,但有一件事沒有真正改變——計算機科學(xué)是一門“數(shù)據(jù)結(jié)構(gòu)、算法和編程”作為其核心的學(xué)科來教授的。如果再過30年,甚至10年,我們還在用這種方式研究計算機科學(xué),我會感到驚訝的。事實上,我認(rèn)為計算機科學(xué)作為一個領(lǐng)域正在經(jīng)歷一個巨大的變遷——我們中很少有人真正做好了準(zhǔn)備。
編程將被淘汰,我相信“寫程序” 的傳統(tǒng)觀念正在走向消亡。事實上,除了非常專業(yè)的應(yīng)用,我們所知道的大多數(shù)軟件將被經(jīng)過訓(xùn)練而不是編程的人工智能系統(tǒng)所取代。在需要一個“簡單”程序的情況下(畢竟,并不是所有的程序都需要一個運行在GPU集群上、有數(shù)千億個參數(shù)的大模型),這些程序本身將由人工智能生成,而不是手工編碼。
我不認(rèn)為這個想法很瘋狂。毫無疑問,從(相對)原始的電氣工程洞穴中走出的最早的計算機科學(xué)先驅(qū)們堅信,所有未來的計算機科學(xué)家都需要對半導(dǎo)體、二進制算術(shù)和微處理器設(shè)計有深刻的理解才能理解軟件??爝M到今天,我敢打賭99%的編寫軟件的人幾乎不知道CPU是如何工作的,更不用說晶體管設(shè)計的物理基礎(chǔ)了。進一步地說,我相信未來的計算機科學(xué)家將遠(yuǎn)離“軟件”的經(jīng)典定義,他們將很難逆轉(zhuǎn)鏈表或?qū)崿F(xiàn)快速排序。(見鬼,我不確定我是否還記得如何實現(xiàn)快速排序。)
像CoPilot這樣的AI編碼助手只是觸及了我所描述的內(nèi)容的表面。在我看來,很明顯,未來所有的程序最終都將由AI來編寫,而人類充其量只能扮演監(jiān)督的角色。任何懷疑這一預(yù)測的人只需看看AI內(nèi)容生成的其他方面(如圖像生成)正在取得的驚人進展。DALL-E v1和僅在15個月后宣布的DALL-E v2在質(zhì)量和復(fù)雜性上的差異是驚人的。如果說我在過去幾年的人工智能工作中學(xué)到了什么,那就是,人們很容易低估日益龐大的人工智能模型的力量。幾個月前還像是科幻小說的事情正在迅速成為現(xiàn)實。

所以,我不只是在談?wù)撓馟ithub的CoPilot[1]取代程序員,而要說的是,用訓(xùn)練模型取代編寫程序的整個概念。在未來,計算機科學(xué)的學(xué)生將不需要學(xué)習(xí)諸如如何向二叉樹添加節(jié)點或C++代碼這樣的平凡技能。這種教育將會過時,就像教工程專業(yè)的學(xué)生如何使用計算尺一樣。
未來的工程師只需敲擊幾下鍵盤,就能啟動一個包含400億億個參數(shù)(four-quintillion-parameter)的模型實例,這個模型已經(jīng)對人類知識的全部范圍(包括子集)進行了編碼,并隨時準(zhǔn)備執(zhí)行機器要求的任何任務(wù)。讓機器做我們想做的事情的大部分腦力工作將是提出正確的示例、正確的訓(xùn)練數(shù)據(jù)和正確的方法來評估訓(xùn)練過程。像基于小樣本學(xué)習(xí)(few-shot learning)且能泛化的、這樣強大的模型只需要執(zhí)行任務(wù)的幾個好的示例。在大多數(shù)情況下,大規(guī)模的、人工管理的數(shù)據(jù)集將不再是必要的,大多數(shù)人“訓(xùn)練”一個AI模型將不會在PyTorch中運行梯度下降循環(huán)(gradient descent loops)或類似的東西。他們只是教模型幾個示例,機器將完成其余的工作。

在這門新的計算機科學(xué)中——如果我們還稱之為計算機科學(xué)的話——機器將如此強大,并且已經(jīng)知道如何做很多事情,這一領(lǐng)域?qū)⒖雌饋聿幌褚粋€工程領(lǐng)域,而更像一個教育領(lǐng)域。也就是說,如何最好地教育機器,就像如何最好地教育學(xué)校里的孩子一樣。不過,與(人類)孩子不同的是,這些人工智能系統(tǒng)將駕駛我們的飛機、運行我們的電網(wǎng),甚至可能統(tǒng)治整個國家。我認(rèn)為,當(dāng)我們的注意力轉(zhuǎn)向教授智能機器而不是直接編程時,絕大多數(shù)經(jīng)典CS就變得無關(guān)緊要了。傳統(tǒng)意義上的編程實際上將會消亡。
我認(rèn)為CS作為一個領(lǐng)域正在經(jīng)歷一場相當(dāng)大的劇變,我們中很少有人真正做好了準(zhǔn)備。
這一切將如何改變我們對計算機科學(xué)領(lǐng)域的看法?新的原子計算單元不再是處理器、內(nèi)存和I/O系統(tǒng),而是一個大規(guī)模的、預(yù)先訓(xùn)練過的、高度自適應(yīng)的AI模型。這對我們思考計算的方式來說是一個巨大的轉(zhuǎn)變——不再是一個可預(yù)測的、靜態(tài)的、受指令集、類型系統(tǒng)和可判定性概念支配的過程?;谌斯ぶ悄艿挠嬎阍缫芽缭搅遂o態(tài)分析和形式證明的界限。我們正在迅速走向這樣一個世界,在這個世界里,計算的基本構(gòu)件是有氣質(zhì)的、神秘的、自適應(yīng)的代理。
沒有人真正了解大型人工智能模型是如何工作的,這一事實突顯了這種轉(zhuǎn)變。人們發(fā)表的研究論文實際上發(fā)現(xiàn)了現(xiàn)有大型模型的新行為,即使這些系統(tǒng)是由人類“設(shè)計”出來的。大型人工智能模型能夠做一些它們沒有受過明確訓(xùn)練的事情,這應(yīng)該會把Nick Bostrom[2]和其他擔(dān)心超級智能人工智能橫行的人嚇得魂飛魄滅?(這是正確的)。除了實證研究,我們目前沒有辦法確定當(dāng)前人工智能系統(tǒng)的局限性。至于未來更大更復(fù)雜的人工智能模型——祝我們好運!
對于任何讀過現(xiàn)代機器學(xué)習(xí)論文的人來說,焦點從程序到模型的轉(zhuǎn)變應(yīng)該是顯而易見的。這些論文幾乎沒有提到創(chuàng)新背后的代碼或系統(tǒng):人工智能系統(tǒng)的構(gòu)建模塊是更高層次的抽象,如注意力層(attention layers)、標(biāo)記器(tokenizers)和數(shù)據(jù)集。即使是20年前的時間旅行者,也很難理解GPT-3論文[3](描述為該模型構(gòu)建的實際軟件)的三句話(three sentences):
“我們使用與GPT-2相同的模型和架構(gòu),包括其中描述的修改后的初始化、預(yù)歸一化和可逆標(biāo)記化,除了我們在Transformer Layer中使用交替的密集和局部稀疏注意力模式,類似于?稀疏矩陣(Sparse Transformer)。為了研究ML性能對模型大小的依賴關(guān)系,我們訓(xùn)練了8種不同大小的模型,從1.25億個參數(shù)到1750億個參數(shù),范圍超過三個數(shù)量級,最后一個是我們稱之為GPT-3的模型。先前的工作表明,在足夠的訓(xùn)練數(shù)據(jù)下,驗證損失的縮放應(yīng)該近似于一個平滑冪律(power law)作為規(guī)模的函數(shù)。許多不同規(guī)模的訓(xùn)練模型允許我們測試這個假設(shè)的驗證損失(validation loss)和下游語言任務(wù)?!?/p>
計算基礎(chǔ)定義的這種轉(zhuǎn)變帶來了巨大的機遇,也帶來了巨大的風(fēng)險。然而,我認(rèn)為現(xiàn)在是時候接受這是一個很有可能的未來,并相應(yīng)地發(fā)展我們的思想,而不是只是坐在這里等待流星撞擊。