2022年11月30日,一家名不見經(jīng)傳的公司(OpenAI)悄悄上線了一個產(chǎn)品ChatGPT。彼時,誰也沒有想到這款產(chǎn)品會在短短幾個月內(nèi)風(fēng)靡全球;而2023年3月14日GPT-4的發(fā)布更是激起了一場屬于生成式人工智能(artificial intelligence generated content, AIGC)的科技革命。對于普通人來說,面對這個正在給生產(chǎn)和生活帶來巨大改變的人工智能產(chǎn)品,不禁會產(chǎn)生無數(shù)的疑問:
●ChatGPT為什么引起如此大的重視?
●它的原理是什么?
●它真的具備人類的智慧嗎?
●它將給人類社會帶來哪些變化?
……
ChatGPT最令人印象深刻的能力是它能夠通過對話的方式回答用戶的問題,那么ChatGPT回答問題的原理是什么呢?傳統(tǒng)的問答系統(tǒng)本質(zhì)上是基于數(shù)據(jù)庫和搜索引擎,即通過搜索引擎在網(wǎng)絡(luò)與數(shù)據(jù)庫中搜索相關(guān)信息,然后把結(jié)果直接返回給用戶。比如我們使用百度搜索“機(jī)器學(xué)習(xí)的原理是什么”,百度會跳轉(zhuǎn)出各式各樣的網(wǎng)站。這些網(wǎng)站是由各個企業(yè)早就開發(fā)好的,百度僅僅是根據(jù)相關(guān)度做了一個排序。
不同于傳統(tǒng)問答系統(tǒng)中答案來源于現(xiàn)成的網(wǎng)絡(luò)或者數(shù)據(jù)庫,ChatGPT的回答是隨著提問的進(jìn)行自動生成的。這一點(diǎn)有點(diǎn)像文字接龍游戲,ChatGPT會基于前面的話不斷地生成下一個合適的詞匯,直到覺得不必繼續(xù)生成為止。
比如我們問ChatGPT:“蘋果是一種水果嗎”,ChatGPT會基于這句話進(jìn)行文字接龍,大概流程如下:
(1)考慮下一個可能的詞匯及其對應(yīng)的概率,如右表(為了方便理解只寫了3個可能的形式)所示。
(2)基于上述概率分布,ChatGPT會選擇概率最大的答案,即“是的”(因為其概率0.8明顯大于其他選項)。
(3)此時這句話的內(nèi)容變成 “蘋果是一種水果么?是的”,ChatGPT會看下一個可能的詞和對應(yīng)概率是什么。
不斷重復(fù)這個步驟,直到得到一個完整的回答。
從上面例子可以看出:
(1)不同于傳統(tǒng)問答基于數(shù)據(jù)庫或搜索引擎,ChatGPT的答案是在用戶輸入問題以后,隨著問題自動生成的。
(2)這種生成本質(zhì)上是在做文字接龍,簡單來說是不斷在所有可能詞匯中選擇概率最大的詞匯來生成。
有些聰明的讀者會有一個疑問,ChatGPT是怎么知道該選擇什么詞匯,又是如何給出各個可能詞匯的概率呢?這正是機(jī)器學(xué)習(xí)技術(shù)的神奇之處。
ChatGPT是機(jī)器學(xué)習(xí)的一個非常典型的應(yīng)用ynhSryjsihbPDVxafivNPw==,那么什么是機(jī)器學(xué)習(xí)呢?
機(jī)器學(xué)習(xí)整體思想是借鑒人類學(xué)習(xí)的過程。人類觀察、歸納客觀世界的實(shí)際情況,并從中學(xué)到相關(guān)的規(guī)律,當(dāng)面對某一未知情況的時候,會使用已經(jīng)學(xué)到的規(guī)律來解決未知的問題。同理,我們希望計算機(jī)能夠自動地從海量數(shù)據(jù)中發(fā)現(xiàn)某種“規(guī)律”,并將這種規(guī)律應(yīng)用于一些新的問題。這種規(guī)律在機(jī)器學(xué)習(xí)領(lǐng)域就被稱為“模型”,學(xué)習(xí)的過程被稱為對模型進(jìn)行訓(xùn)練。
關(guān)于模型訓(xùn)練,實(shí)際上所有機(jī)器學(xué)習(xí)模型背后都有一個假設(shè):學(xué)習(xí)的規(guī)律是能夠通過數(shù)學(xué)表示的。機(jī)器學(xué)習(xí)的核心就是想辦法找到一個數(shù)學(xué)函數(shù),讓這個函數(shù)盡可能接近真實(shí)世界的數(shù)學(xué)表達(dá)式。然而很多時候人類并不知道真實(shí)的數(shù)學(xué)表示是什么形式,也無法通過傳統(tǒng)數(shù)學(xué)推導(dǎo)的方式獲得;人類唯一擁有的是一堆來源于真實(shí)情境的數(shù)據(jù)。機(jī)器學(xué)習(xí)的方法就是使用這些數(shù)據(jù)(訓(xùn)練數(shù)據(jù))去訓(xùn)練我們的模型,讓模型自動找到一個較好的近似結(jié)果。比如人臉識別的應(yīng)用,就是想找到一個函數(shù),這個函數(shù)的輸入是人臉照片,輸出是判定這張照片對應(yīng)哪個人。然而人類不知道人臉識別函數(shù)是什么形式,于是就拿來一大堆人臉的照片并且標(biāo)記好每個臉對應(yīng)的人,交給模型去訓(xùn)練,讓模型自動找到一個較好的人臉識別函數(shù)。這就是機(jī)器學(xué)習(xí)在做的事情。
那么它無論如何也不可能學(xué)習(xí)出一個復(fù)雜的函數(shù)。因此機(jī)器學(xué)習(xí)模型的一個重要考慮點(diǎn)就是模型的數(shù)學(xué)表達(dá)能力,當(dāng)面對一個復(fù)雜問題的時候,我們希望模型數(shù)學(xué)表達(dá)能力盡可能強(qiáng),這樣模型才有可能學(xué)好。
過去幾十年科學(xué)家發(fā)明了非常多不同的機(jī)器學(xué)習(xí)模型,而其中最具影響力的是一種叫作“神經(jīng)網(wǎng)絡(luò)”的模型。神經(jīng)網(wǎng)絡(luò)模型最初基于生物學(xué)的一個現(xiàn)象:人類神經(jīng)元的基礎(chǔ)架構(gòu)非常簡單,只能做一些基礎(chǔ)的信號處理工作,但最終通過大腦能夠完成復(fù)雜的思考。受此啟發(fā),科學(xué)家們開始思考是否可以構(gòu)建一些簡單的“神經(jīng)元”,并通過神經(jīng)元的連接形成網(wǎng)絡(luò),從而產(chǎn)生處理復(fù)雜信息的能力。
上述神經(jīng)元的數(shù)學(xué)表達(dá)能力非常弱,只是一個簡單的線性函數(shù)和一個激活函數(shù)的組合;但是我們可以很輕松地把模型變得強(qiáng)大起來,方案就是增加更多的“隱藏節(jié)點(diǎn)”。在這個時候雖然每個節(jié)點(diǎn)依然進(jìn)行非常簡單的計算,但組合起來其數(shù)學(xué)表達(dá)能力就會變得很強(qiáng)。感興趣的讀者可以嘗試類比上述公式寫出下圖中簡單多層感知機(jī)對應(yīng)的公式,將會得到一個非常復(fù)雜的公式。這個模型也是日后深度學(xué)習(xí)的基礎(chǔ)模型,即多層感知機(jī)[1]。
多層感知機(jī)的原理非常簡單,但是透過它可以很好地了解神經(jīng)網(wǎng)絡(luò)的原理:雖然單個神經(jīng)元非常簡單,但是通過大量節(jié)點(diǎn)的組合就可以讓模型具備非常強(qiáng)大的數(shù)學(xué)表達(dá)能力。而之后整個深度學(xué)習(xí)的技術(shù)路線,某種程度上就是沿著開發(fā)并訓(xùn)練更大更深的網(wǎng)絡(luò)的路線前進(jìn)的。
深度學(xué)習(xí)領(lǐng)域從2012年開始蓬勃發(fā)展,更大更深且效果更好的模型不斷出現(xiàn)。然而隨著模型越來越復(fù)雜,從頭訓(xùn)練模型的成本越來越高。于是有人提出,能否不從頭訓(xùn)練,而是在別人訓(xùn)練好的模型基礎(chǔ)上訓(xùn)練,從而用更低的成本達(dá)到更好的效果呢?
例如,科學(xué)家對一個圖像分類模型進(jìn)行拆分,希望研究深度學(xué)習(xí)模型里的那么多層都學(xué)到了什么東西[2]。結(jié)果發(fā)現(xiàn),越接近輸入層,模型學(xué)到的是越基礎(chǔ)的信息,比如邊、角、紋理等;越接近輸出層,模型學(xué)到的是越接近高級組合的信息,比如公雞的形狀、船的形狀等。不僅僅在圖像領(lǐng)域如此,在自然語言、語音等很多領(lǐng)域也存在這個特征。
基礎(chǔ)信息往往是領(lǐng)域通用的信息,比如圖像領(lǐng)域的邊、角、紋理等,在各類圖像識別中都會用到;而高級組合信息往往是領(lǐng)域?qū)S眯畔ⅲ热缲埖男螤钪挥性趧游镒R別任務(wù)中才有用,在人臉識別的任務(wù)就沒用。因此一個自然而然的邏輯是,通過領(lǐng)域常見數(shù)據(jù)訓(xùn)練出一個通用的模型,主要是學(xué)好領(lǐng)域通用信息;在面對某個具體場景時,只需要使用該場景數(shù)據(jù)做個小規(guī)模訓(xùn)練(微調(diào))就可以了。這就是著名的預(yù)訓(xùn)練+微調(diào)的范式。
預(yù)訓(xùn)練+微調(diào)這一范式的出現(xiàn)與普及對領(lǐng)域產(chǎn)生了兩個重大影響。一方面,在已有模型基礎(chǔ)上微調(diào)大大降低了成本;另一方面,一個好的預(yù)訓(xùn)練模型的重要性也更加凸顯,因此各大公司、科研機(jī)構(gòu)更加愿意花大量成本來訓(xùn)練更加昂貴的基礎(chǔ)模型。那么大模型的效果到底與什么因素有關(guān)呢?OpenAI在2020年提出了著名的Scaling Law,即當(dāng)模型規(guī)模變大以后,模型的效果主要受到模型參數(shù)規(guī)模、訓(xùn)練數(shù)據(jù)規(guī)模和使用算力規(guī)模影響[3]。
Scaling Law積極的一面是為提升模型效果指明了方向,只要把模型和數(shù)據(jù)規(guī)模做得更大就可以,這也是為什么近年來大模型的規(guī)模在以指數(shù)級增長,以及基礎(chǔ)算力資源圖形處理器(graphics processing unit, GPU)總是供不應(yīng)求;但Scaling Law也揭示了一個讓很多科學(xué)家絕望的事實(shí):即模型的每一步提升都需要人類用極為夸張的算力和數(shù)據(jù)成本來“交換”。大模型的成本門檻變得非常之高,從頭訓(xùn)練大模型成了學(xué)界的奢望,以O(shè)penAI、谷歌、Meta、百度、智譜AI等企業(yè)為代表的業(yè)界開始發(fā)揮引領(lǐng)作用。
除了希望通過訓(xùn)練規(guī)模巨大的模型來提升效果以外,GPT模型在發(fā)展過程中還有一個非常雄大的野心:上下文學(xué)習(xí)(in-context learning)。
正如前文所述,在過去如果想要模型“學(xué)”到什么內(nèi)容,需要用一大堆數(shù)據(jù)來訓(xùn)練我們的模型;哪怕是前文講到的預(yù)訓(xùn)練+微調(diào)的范式,依然需要在已訓(xùn)練好的模型基礎(chǔ)上,用一個小批量數(shù)據(jù)做訓(xùn)練(即微調(diào))。因此在過去,“訓(xùn)練”一直是機(jī)器學(xué)習(xí)中最核心的概念。但OpenAI提出,訓(xùn)練本身既有成本又有門檻,希望模型面對新任務(wù)的時候不用額外訓(xùn)練,只需要在對話窗口里給模型一些例子,模型就自動學(xué)會了。這種模式就叫作上下文學(xué)習(xí)。
舉一個中英文翻譯的例子。過去做中英文翻譯,需要使用海量的中英文數(shù)據(jù)集訓(xùn)練一個機(jī)器學(xué)習(xí)模型;而在上下文學(xué)習(xí)中,想要完成同樣的任務(wù),只需要給模型一些例子,比如告訴模型下面的話:
下面是一些中文翻譯成英文的例子:
我愛中國 → I love China
我喜歡寫代碼 → I love coding
人工智能很重要 → AI is important
現(xiàn)在我有一句中文,請翻譯成英文。這句話是:“我今天想吃蘋果”。
這時候原本“傻傻的”模型就突然具備了翻譯的能力,能夠自動翻譯了。
有過ChatGPT使用經(jīng)歷的讀者會發(fā)現(xiàn),這個輸入就是提示詞(prompt)。在ChatGPT使用已相當(dāng)普及的今天,很多人意識不到這件事有多神奇。這就如同找一個沒學(xué)過英語的孩子,給他看幾個中英文翻譯的句子,這個孩子就可以流暢地進(jìn)行中英文翻譯了。要知道這個模型可從來沒有專門在中英文翻譯的數(shù)據(jù)集上訓(xùn)練過,也就是說模型本身并沒有中英文翻譯的能力,但它竟然通過對話里的一些例子就突然脫胎換骨“頓悟”了中英文翻譯,這真的非常神奇!
上下文學(xué)習(xí)的相關(guān)機(jī)制到今天依然是學(xué)界討論的熱點(diǎn),而恰恰因為GPT模型具有上下文學(xué)習(xí)的能力,一個好的提示詞非常重要。提示詞工程逐步成為一個熱門的領(lǐng)域,甚至出現(xiàn)了一種新的職業(yè)叫作“提示詞工程師”(prompt engineer),就是通過寫出更好的提示詞讓ChatGPT發(fā)揮更大的作用。
ChatGPT原理總結(jié)如下:
(1) ChatGPT本質(zhì)是在做文字接龍的游戲,在游戲中它會根據(jù)候選詞匯的概率來挑選下一個詞。
(2) ChatGPT背后是一個非常龐大的神經(jīng)網(wǎng)絡(luò),比如GPT-3有1700億個參數(shù)(訓(xùn)練成本在100萬美元以上)。
(3)基于龐大的神經(jīng)網(wǎng)絡(luò),面對一句話時,模型可以準(zhǔn)確給出候選詞匯的概率,從而完成文字接龍的操作。
(4)這種有巨大規(guī)模進(jìn)行語言處理的模型,也叫作大語言模型(large language model)。
(5)以GPT為代表的大語言模型具備上下文學(xué)習(xí)的能力,因此一個好的提示詞至關(guān)重要。
理解了ChatGPT的原理,相信有讀者會進(jìn)一步提問:ChatGPT雖然很神奇但終歸是一個語言模型,為什么大家對它抱有如此高的期望呢?
為了解ChatGPT為什么引起如此高的關(guān)注,我們可以回顧人類文明發(fā)展歷史上公認(rèn)的3次工業(yè)革命。
(1)第一次工業(yè)革命以瓦特蒸汽機(jī)為代表,其本質(zhì)是發(fā)明并使用一些簡單機(jī)器來解放人類的體力勞動。
(2)第二次工業(yè)革命以內(nèi)燃機(jī)和電力的使用為代表,其本質(zhì)是能夠使用各種能源來解決機(jī)器的動力問題。
(3)第三次工業(yè)革命以電子和信息技術(shù)為代表,其本質(zhì)是通過電子信息的方式加快信息收集、傳輸、處理的效率,并進(jìn)一步優(yōu)化了對機(jī)器的控制。
工業(yè)革命的本質(zhì)在于用機(jī)器替代人類勞動從而解放生產(chǎn)力。前3次分別從機(jī)器、動力(能源)和控制(電子和信息)的KgsN5BcxN2OT/7R8e+j/vQ==角度解放了人類勞動,人類已經(jīng)能夠通過簡單的方式來指揮機(jī)器生產(chǎn)。此時的生產(chǎn)邏輯是人類的大腦對外部信息做判斷,機(jī)器根據(jù)人類大腦的判斷來具體執(zhí)行動作。這之后人類文明面對的最直接的問題就是如何將大腦也解放出來。這個問題成為人工智能研究中最核心的問題,即面對一個復(fù)雜的問題,能夠同領(lǐng)域?qū)<乙粯涌焖僬_地做出回應(yīng)——這恰好就是ChatGPT的能力所在。
表面上看以ChatGPT為代表的大語言模型的能力是正確回答問題,實(shí)際上它可以像人類大腦一樣對復(fù)雜問題進(jìn)行準(zhǔn)確的決策,這就打通了人類技術(shù)的所有環(huán)節(jié)。比如在自動化實(shí)驗領(lǐng)域,過去我們花了很多時間研究可編程機(jī)器人和機(jī)器人的精確控制,希望能夠用機(jī)器人取代人類做一些科學(xué)實(shí)驗,但是最后發(fā)現(xiàn)終歸還是要由科學(xué)家來確定具體合成實(shí)驗的操作,并給機(jī)器人詳細(xì)編碼(硬件或者軟件方式)。有了ChatGPT,科學(xué)家只需要說出自己的需求,ChatGPT會自動在文獻(xiàn)庫里搜索相關(guān)材料配方,然后編寫相關(guān)機(jī)器人指令,并指揮機(jī)器人自動合成相關(guān)材料,從而實(shí)現(xiàn)真正意義上的自動化實(shí)驗[5]。這種能夠自動感知環(huán)境、做出決策并采取行動的AI機(jī)器人,被稱為AI智能體(agent)。
既然我們希望AI智能體能夠處理現(xiàn)實(shí)生活中的復(fù)雜情況,那么傳統(tǒng)大語言模型只能通過語言進(jìn)行對話的能力就不夠了。AI智能體要求模型能夠讀取各式各樣的輸入,比如圖像信息、聲音信息、不同傳感器的信息、互聯(lián)網(wǎng)的信息等,并能夠根據(jù)智能體做出的決策再反過來進(jìn)行合適的動作,比如輸出一張圖像或一段聲音、寫一段代碼、操作機(jī)器人完成某項動作等。這種能夠使用多種不同類型的輸入或輸出模式來處理信息和任務(wù)的能力,叫作多模態(tài);而具備這種能力的智能體,被稱為多模態(tài)AI智能體。以ChatGPT為代表的大語言模型的完善實(shí)際上為多模態(tài)AI智能體提供了強(qiáng)大的“大腦”,人類過去相關(guān)科學(xué)技術(shù)將會以前所未有的速度串聯(lián)起來,相信《鋼鐵俠》(Iron Man)里的人工智能助理賈維斯(J.A.R.V.I.S.)會在不遠(yuǎn)的將來成為現(xiàn)實(shí)。
對ChatGPT的介紹已經(jīng)接近尾聲,然而隨著ChatGPT出現(xiàn),另一個問題引起了廣泛爭議,那就是以ChatGPT為代表的大語言模型真的具有智慧甚至自我意識嗎?這個問題實(shí)際上見仁見智,比如一部分學(xué)者認(rèn)為ChatGPT本質(zhì)上就是文字接龍的概率游戲,根本沒有什么智慧可言,更不用說是自我意識;而另一部分學(xué)者則認(rèn)為大語言模型龐大的參數(shù)里可能蘊(yùn)含著一些對人類知識的理解,雖然不一定到“意識”的程度,但可以認(rèn)為已經(jīng)具備了一些智慧。
這些爭論的本質(zhì)實(shí)際上是因為在深度學(xué)習(xí)領(lǐng)域,實(shí)踐應(yīng)用已經(jīng)遠(yuǎn)遠(yuǎn)領(lǐng)先于模型理論的研究。展望未來,一方面希望看到更多更先進(jìn)的人工智能算法與應(yīng)用的落地,從而更好地方便我們的生活;另一方面也希望人類能夠更加了解我們創(chuàng)造出來的人工智能模型,從而打造出更加安全可靠的模型,讓人工智能真正助力人類社會的進(jìn)步。
[1]Rumelhart D E, Hinton E G, Williams R J. Learning representations by back-propagating errors. Nature, 1986, 323(6088): 533–536.
[2]Wei D L, Zhou B L, Torralba A,et al. mNeuron: A matlab plugin to visualize neurons from deep models. (2015)[2024-07-05]. https:// donglaiw.github.io/proj/mneuron/index.html.
[3]Kaplan J, McCandlish S, Henighan T, et al. Scaling laws for neural language models. arXiv preprint arXiv: 2001.08361, 2020.
[4]Zhao W X, Zhou K, Li J, et al. A survey of large language models. arXiv preprint arXiv: 2303.18223, 2023.
[5]Boiko D A, MacKnight R, Kline B, et al. Autonomous chemical research with large language models. Nature, 2023, 624(7992): 570-578.
關(guān)鍵詞:ChatGPT 機(jī)器學(xué)習(xí) 神經(jīng)網(wǎng)絡(luò) 大模型 多模態(tài)智能體 ■