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

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

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

大師兄: 編程本身是物理世界到計(jì)算機(jī)世界映射,這個(gè)映射本身是可以被機(jī)器替代的,我們?nèi)祟愇磥?lái)可做為監(jiān)督員或者領(lǐng)域?qū)<遥贏I還沒(méi)有產(chǎn)生意識(shí)之前,AI只能執(zhí)行,不能思考,所以軟件還得需要我們來(lái)設(shè)計(jì),但寫(xiě)代碼的活可能用AI來(lái)替代,以后我們專注系統(tǒng)設(shè)計(jì),問(wèn)題解決等能力。從目前實(shí)際情況來(lái)看,大部分公司已經(jīng)把AI工具納入研發(fā)體系,和cicd 流水線, 自動(dòng)化測(cè)試一樣,屬于提效工具,各個(gè)大廠已經(jīng)接入或正在接入,未來(lái)程序員主要負(fù)責(zé)系統(tǒng)設(shè)計(jì)和解決程序問(wèn)題,其實(shí)對(duì)程序員要求更高了,需要非常扎實(shí)基礎(chǔ),才能判斷AI給東西是否正確,大部分初級(jí)程序員的活(比如具體coding工作)會(huì)交給AI來(lái)執(zhí)行,人類其實(shí)已經(jīng)進(jìn)入AI-dev時(shí)代,預(yù)測(cè)未來(lái)研發(fā)形態(tài),在AI沒(méi)有意識(shí)之前:AI+高級(jí)/專家程序員組合。
參考文獻(xiàn)
[1] Berger, E. Coping with copilot. SIGPLAN PL Perspectives Blog, 2022; https://bit.ly/3XbJv5J
[2]Bostrom, N. Superintelligence: Paths, Dangers, Strategies. Oxford University Press, 2014.
[3]Brown, T. et al. Language models are few-shot learners. 2020; https://bit.ly/3Eh1DT5
[4]Kojima, T. et al. Large language models are zero-shot reasoners. 2022; https://bit.ly/3Ohmlqo
[5]Nye, M. et al. Show your work: Scratchpads for intermediate computation with language models. 2021; https://bit.ly/3TLnfMY

1、C++訓(xùn)練營(yíng),來(lái)了!
2、HarmonyOS 學(xué)習(xí)資料分享(無(wú)套路免費(fèi)分享)
我組建了一些社群一起交流,群里有大牛也有小白,如果你有意可以一起進(jìn)群交流。
歡迎你添加我的微信,我拉你進(jìn)技術(shù)交流群。此外,我也會(huì)經(jīng)常在微信上分享一些計(jì)算機(jī)學(xué)習(xí)經(jīng)驗(yàn)以及工作體驗(yàn),還有一些內(nèi)推機(jī)會(huì)。
加個(gè)微信,打開(kāi)另一扇窗
感謝你的分享,點(diǎn)贊,在看三連