譯者丨張雨佳
作者認(rèn)為神經(jīng)網(wǎng)絡(luò)在許多方面取代了傳統(tǒng)的編碼方式,這種轉(zhuǎn)變帶來(lái)的影響比大家想象的要深。因?yàn)樯窠?jīng)網(wǎng)絡(luò)已經(jīng)不僅僅是一種簡(jiǎn)單的分類方法,,而是一種全新的編程范式,。
你可以同意或否認(rèn)他的觀點(diǎn),但不可否認(rèn)的是,,深度學(xué)習(xí)已經(jīng)有了一定程度的發(fā)展,。直至去年 GPT-3 的出現(xiàn),,讓我們看到了另一種編程范式,??萍疾┛妥髡?GwernBranwen 將這種可能改變游戲規(guī)則的編程方式叫做“Prompt programming”(提示符編程),,我們從此進(jìn)入了軟件 3.0 時(shí)代,。
2020 年 OpenAI 提出了 GPT-3 模型,,它表現(xiàn)出來(lái)的高性能震驚了人工智能領(lǐng)域,。GPT-3 可以按照英文指令編寫代碼或吉他樂(lè)譜,,也可以用它進(jìn)行對(duì)話,、寫詩(shī)或者思考未來(lái)和生活的意義,。而且未經(jīng)訓(xùn)練過(guò)的 GPT-3 就可以完成這些任務(wù),它是一個(gè)多任務(wù)元學(xué)習(xí)模型,。
GPT-3 的創(chuàng)新之處在于,,當(dāng)我們用自然語(yǔ)言書(shū)寫一個(gè)帶有任務(wù)的文本(提示符)時(shí),GPT-3 就能自動(dòng)“理解”要完成哪些任務(wù),。
例如,,提示符是:“我愛(ài)你→Te quiero(西班牙語(yǔ))。我有很多工作→Tengomucho trabajo,。GPT-3是有史以來(lái)最好的人工智能系統(tǒng)→_____”,,GPT-3 就能知道需要完成英語(yǔ)-西班牙語(yǔ)的翻譯。
Gwern 認(rèn)為,,可以將提示符理解為一種新的編程范式:“因?yàn)閇提示符]采用了另一種方式去使用[深度學(xué)習(xí)]模型,,所以最好將其看成一種新的編程方式。利用提示符“程序”可以對(duì) GPT-3 進(jìn)行編程,,以完成新的任務(wù),。”
每當(dāng)讓系統(tǒng)執(zhí)行任務(wù)時(shí),,我們都會(huì)創(chuàng)建一個(gè)特定的 GPT-3 版本,。用特定任務(wù)“編程”得到的 GPT-3,可以完成其他 GPT-3 版本不能完成的任務(wù),。
但是如果編程效果較差,,GPT-3 執(zhí)行任務(wù)的能力也會(huì)隨著變差。因此一些人認(rèn)為 GPT-3 缺乏邏輯和常識(shí)推理能力,,但 Gwern 認(rèn)為 GPT-3 的失敗應(yīng)該歸因于糟糕的提示符,。為了顯示科學(xué)的嚴(yán)謹(jǐn)性,,Gwern 對(duì)多個(gè)不同的提示符反復(fù)進(jìn)行測(cè)試,發(fā)現(xiàn)好的提示符可以對(duì) GPT-3 進(jìn)行充分“編程”以執(zhí)行任務(wù),,證明 GPT-3 并不是缺乏邏輯和常識(shí)推理能力的,。
同時(shí),Gwern 認(rèn)為良好的提示符是發(fā)揮 GPT-3 真正潛力的關(guān)鍵,。與其他編程形式一樣,,我們可以通過(guò)大量的實(shí)踐對(duì)提示符進(jìn)行改進(jìn)和標(biāo)準(zhǔn)化。而且人們?cè)谙到y(tǒng)中發(fā)現(xiàn)的局限性,,往往是因?yàn)槿祟惾狈υ摬糠值哪芰Α?/span>
如果我們想讓系統(tǒng)完成特定的行為,,就得先學(xué)會(huì)與它溝通。
比如你想用 Python 或 C 語(yǔ)言進(jìn)行編程,,就需要提前知道語(yǔ)法規(guī)則,,否則編寫的任何程序都會(huì)無(wú)法運(yùn)行。但你并不能將這推卸給電腦,,并認(rèn)為電腦不具備完成這項(xiàng)任務(wù)的能力,。
以下是將提示符作為編程范式的兩個(gè)原因:
第一:提示符允許用戶從系統(tǒng)中生成具體的符合自己要求的行為,這與編碼的定義類似,。即給定一個(gè)輸入,,然后程序按照一組特定指令執(zhí)行以完成具體功能。
第二:提示符有好有壞,,所以我們應(yīng)該多次實(shí)驗(yàn)以確定最佳方法并對(duì)其標(biāo)準(zhǔn)化,。在傳統(tǒng)編碼中,我們必須學(xué)習(xí)語(yǔ)言語(yǔ)法,、變量操作,、函數(shù)等等。對(duì)于神經(jīng)網(wǎng)絡(luò),,我們必須學(xué)會(huì)去除數(shù)據(jù)集中的偏差和噪聲,。提示符與上面兩種方法類似。
如果將提示符編程理解為軟件 3.0,,那么該如何對(duì)待傳統(tǒng)的編碼方式(軟件 1.0)和神經(jīng)網(wǎng)絡(luò)(軟件 2.0)呢,?
提示符是否可以取代這些編程范式?
程序員是否需要將提示符作為一項(xiàng)新的必備技能添加到技能庫(kù)中,?
提示符會(huì)改變我們與機(jī)器的溝通方式嗎,?
去年,,F(xiàn)rederik Bussler 在《Towards Data Sciencearguing(數(shù)據(jù)科學(xué))》上寫了一篇很受歡迎的文章,,認(rèn)為 GPT-3 可能會(huì)推進(jìn)編碼方式的發(fā)展,達(dá)到我們可理解(以及無(wú)代碼和 autoML)編碼的盡頭,。
GPT-3 具有生成良好代碼的能力,,但它能完成的功能很大程度上取決于使用的提示符是否能傳達(dá)人們的意圖。并且使用 GPT-3 也不會(huì)影響編程的簡(jiǎn)單性,,不然就無(wú)異于大材小用了,。
神經(jīng)網(wǎng)絡(luò)也是如此。
Karpathy 認(rèn)為軟件 2.0 可以取代軟件 1.0 中的一部分,,比如有些問(wèn)題很難用明確的程序完成和解決,,但如果采用收集數(shù)據(jù)對(duì)神經(jīng)網(wǎng)絡(luò)進(jìn)行訓(xùn)練的方法,可能就很容易解決這些困難問(wèn)題,。不過(guò)對(duì)于某些問(wèn)題來(lái)說(shuō),,傳統(tǒng)編碼仍然是首選的最優(yōu)方法。
軟件 3.0 可以覆蓋的任務(wù)范圍并不會(huì) 100% 包含軟件 1.0 或 2.0 的范圍,。
因此雖然每種范式的能力范圍會(huì)有重疊,,但它們各自都會(huì)有比其他范式表現(xiàn)得更好更有效的領(lǐng)域,從而找到一種穩(wěn)定的和諧,。因此,,這些軟件范式間并不是相互競(jìng)爭(zhēng)關(guān)系,而是試圖找到一種完美的共生關(guān)系,。
這些范式都是實(shí)現(xiàn)真正人工智能的重要組成部分,。人類也是由生物軟件組成的,某種程度上可以與這些范例相對(duì)應(yīng),。
“[軟件 2.0]的未來(lái)毫無(wú)疑問(wèn)是光明的,因?yàn)楫?dāng)我們開(kāi)發(fā) AGI 時(shí),,必然會(huì)使用軟件2.0進(jìn)行編寫,。”
——Andrej Karpathy
我不同意 Karpathy 的預(yù)測(cè),。我認(rèn)為 AGI(人工通用智能)將會(huì)是三種編程范式(或者其他尚未發(fā)現(xiàn)的范式)的組合,。想要理解其中的原因,最好的方法是與真正的智能體——人類,,進(jìn)行類比,。
軟件1.0
在二十一世紀(jì) 10 年代神經(jīng)網(wǎng)絡(luò)廣泛興起之前,所有的代碼都需要手動(dòng)編寫,。所以想要讓系統(tǒng)完成特定的行為,,就必須明確每種情況下系統(tǒng)需要遵循的指令。傳統(tǒng)編碼的程序完全按照編寫的代碼運(yùn)行,,不是黑盒,,也不會(huì)進(jìn)行學(xué)習(xí)。
這也是進(jìn)化論在創(chuàng)造遺傳編碼時(shí)所考慮的東西,。
我們出生時(shí)并不像一張白紙,,而是有一套由基因決定的,、根植于大腦中的模版。我們將這稱為生物軟件 1.0,?;驔Q定了我們有兩只眼睛、兩條胳膊和兩條腿,,包括金發(fā)和棕綠色的眼睛,。
軟件2.0
Karpathy 說(shuō),軟件 2.0 包括數(shù)據(jù)集的管理和神經(jīng)網(wǎng)絡(luò)架構(gòu)的設(shè)計(jì),。
我們需要指定程序的結(jié)構(gòu)并提供程序的輸入數(shù)據(jù),,但不用定義具體內(nèi)容。神經(jīng)網(wǎng)絡(luò)可以通過(guò)訓(xùn)練,,“編寫”自己內(nèi)部的“程序權(quán)重”來(lái)自主學(xué)習(xí)需要完成的任務(wù),。
生物軟件 2.0 則是成長(zhǎng)過(guò)程中的經(jīng)歷和感悟。
人們生來(lái)就是一個(gè)半空的結(jié)構(gòu),,等待著各種物質(zhì)和社會(huì)信息的灌輸,。基因會(huì)硬性要求我們有兩只手臂,,但我們是學(xué)習(xí)西班牙語(yǔ)還是英語(yǔ),,什么時(shí)候?qū)W會(huì)走路,如何更好地掌握世界的運(yùn)作方式,。這些都不是由基因決定,,而是取決于環(huán)境和我們與世界的接觸,類似于通過(guò)數(shù)據(jù)集來(lái)優(yōu)化程序,。
軟件 3.0
通過(guò)提示符可以生成特定的 GPT-3,。某種意義上,特定的提示符 GPT-3 可以完成其他系統(tǒng)沒(méi)有學(xué)習(xí)到的任務(wù),。每個(gè)特定的 GPT-3 都有學(xué)習(xí)任務(wù)的潛力,,但只在有激勵(lì)時(shí)才會(huì)發(fā)生。
生物軟件 3.0 則是作為成年人所經(jīng)歷的具體學(xué)習(xí):學(xué)習(xí)的東西,、讀的書(shū),,從事的工作,掌握的能力和技能,。因此,,所有人都有類似的潛力去學(xué)習(xí)這些技能,但每個(gè)人都只選擇了一部分技能和知識(shí)進(jìn)行學(xué)習(xí),。這些選擇會(huì)改變我們的大腦,,就像提示符改變了 GPT-3 的能力一樣。
值得一提的是,,以上對(duì)生物軟件的類比雖然能說(shuō)明問(wèn)題,,但同時(shí)也簡(jiǎn)化了問(wèn)題,。生物軟件實(shí)際上在各個(gè)層面上都起作用。我們的基因取決于環(huán)境,,選擇學(xué)習(xí)工程學(xué)或醫(yī)學(xué)取決于我們是否有與生俱來(lái)的天賦,。所以通過(guò)這個(gè)類比,,只是想讓大家意識(shí)到要想實(shí)現(xiàn) AGI 需要更多樣的軟件范式,。
AGI 可能需要傳統(tǒng)編碼來(lái)定義基礎(chǔ)的、不可改變的結(jié)構(gòu)元素,。通過(guò)神經(jīng)網(wǎng)絡(luò)(或其他深度學(xué)習(xí)框架)學(xué)習(xí)外部和內(nèi)部數(shù)據(jù),。最后還要通過(guò)提示符進(jìn)行交互,以掌握特定知識(shí),。
正如 Karpathy 所說(shuō),,只通過(guò)軟件 2.0 是無(wú)法構(gòu)建 AGI 的,它需要從每種范例中獲取不同的東西,。未來(lái)的 AGI 將擁有人工基因組來(lái)感知世界,,成為一個(gè)元學(xué)習(xí)者(meta-learner)。人們則是利用身體進(jìn)行實(shí)賤,,與世界交互,。發(fā)展型機(jī)器人則試圖通過(guò)結(jié)合人工智能、機(jī)器人技術(shù)和認(rèn)知科學(xué)來(lái)實(shí)現(xiàn)更好的性能,。
*聲明:該篇文章只代表作者觀點(diǎn),。