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