本文從基本概念出發(fā),介紹和解釋ChatGPT用到的一系列關鍵技術,如機器學習、神經網絡、大模型、預訓練+微調范式、Scaling Law……希望幫助讀者更為深入地了解和使用以ChatGPT為代表的相關工具,助力讀者成為人工智能時代的弄潮兒。 2022年11月30日,一家名不見經傳的公司(OpenAI)悄悄上線了一個產品ChatGPT。彼時,誰也沒有想到這款產品會在短短幾個月內風靡全球;而2023年3月14日GPT-4的發(fā)布更是激起了一場屬于生成式人工智能(artificial intelligence generated content, AIGC)的科技革命。對于普通人來說,面對這個正在給生產和生活帶來巨大改變的人工智能產品,不禁會產生無數的疑問: ●ChatGPT為什么引起如此大的重視? ●它的原理是什么? ●它真的具備人類的智慧嗎? ●它將給人類社會帶來哪些變化? …… ChatGPT原理概覽: ChatGPT最令人印象深刻的能力是它能夠通過對話的方式回答用戶的問題,那么ChatGPT回答問題的原理是什么呢?傳統(tǒng)的問答系統(tǒng)本質上是基于數據庫和搜索引擎,即通過搜索引擎在網絡與數據庫中搜索相關信息,然后把結果直接返回給用戶。比如我們使用百度搜索“機器學習的原理是什么”,百度會跳轉出各式各樣的網站。這些網站是由各個企業(yè)早就開發(fā)好的,百度僅僅是根據相關度做了一個排序。 不同于傳統(tǒng)問答系統(tǒng)中答案來源于現成的網絡或者數據庫,ChatGPT的回答是隨著提問的進行自動生成的。這一點有點像文字接龍游戲,ChatGPT會基于前面的話不斷地生成下一個合適的詞匯,直到覺得不必繼續(xù)生成為止。 比如我們問ChatGPT:“蘋果是一種水果嗎”,ChatGPT會基于這句話進行文字接龍,大概流程如下: (1)考慮下一個可能的詞匯及其對應的概率,如右表(為了方便理解只寫了3個可能的形式)所示。 (2)基于上述概率分布,ChatGPT會選擇概率最大的答案,即“是的”(因為其概率0.8明顯大于其他選項)。 (3)此時這句話的內容變成 “蘋果是一種水果么?是的”,ChatGPT會看下一個可能的詞和對應概率是什么。 不斷重復這個步驟,直到得到一個完整的回答。 從上面例子可以看出: (1)不同于傳統(tǒng)問答基于數據庫或搜索引擎,ChatGPT的答案是在用戶輸入問題以后,隨著問題自動生成的。 (2)這種生成本質上是在做文字接龍,簡單來說是不斷在所有可能詞匯中選擇概率最大的詞匯來生成。 有些聰明的讀者會有一個疑問,ChatGPT是怎么知道該選擇什么詞匯,又是如何給出各個可能詞匯的概率呢?這正是機器學習技術的神奇之處。 機器學習的核心: ChatGPT是機器學習的一個非常典型的應用,那么什么是機器學習呢? 機器學習整體思想是借鑒人類學習的過程。人類觀察、歸納客觀世界的實際情況,并從中學到相關的規(guī)律,當面對某一未知情況的時候,會使用已經學到的規(guī)律來解決未知的問題。同理,我們希望計算機能夠自動地從海量數據中發(fā)現某種“規(guī)律”,并將這種規(guī)律應用于一些新的問題。這種規(guī)律在機器學習領域就被稱為“模型”,學習的過程被稱為對模型進行訓練。 機器學習和模型訓練卡通示意圖 關于模型訓練,實際上所有機器學習模型背后都有一個假設:學習的規(guī)律是能夠通過數學表示的。機器學習的核心就是想辦法找到一個數學函數,讓這個函數盡可能接近真實世界的數學表達式。然而很多時候人類并不知道真實的數學表示是什么形式,也無法通過傳統(tǒng)數學推導的方式獲得;人類唯一擁有的是一堆來源于真實情境的數據。機器學習的方法就是使用這些數據(訓練數據)去訓練我們的模型,讓模型自動找到一個較好的近似結果。比如人臉識別的應用,就是想找到一個函數,這個函數的輸入是人臉照片,輸出是判定這張照片對應哪個人。然而人類不知道人臉識別函數是什么形式,于是就拿來一大堆人臉的照片并且標記好每個臉對應的人,交給模型去訓練,讓模型自動找到一個較好的人臉識別函數。這就是機器學習在做的事情。 神經網絡與神經元: 理解了機器學習是什么,另一個概念是機器學習模型的數學表達能力。機器學習模型本質上是想要盡可能接近真實世界對應的那個函數。然而正如我們不能指望僅僅通過幾條直線就畫出精美絕倫的美術作品,如果機器學習模型本身比較簡單,比如高中學到的線性函數 Y=kx+b 那么它無論如何也不可能學習出一個復雜的函數。因此機器學習模型的一個重要考慮點就是模型的數學表達能力,當面對一個復雜問題的時候,我們希望模型數學表達能力盡可能強,這樣模型才有可能學好。 過去幾十年科學家發(fā)明了非常多不同的機器學習模型,而其中最具影響力的是一種叫作“神經網絡”的模型。神經網絡模型最初基于生物學的一個現象:人類神經元的基礎架構非常簡單,只能做一些基礎的信號處理工作,但最終通過大腦能夠完成復雜的思考。受此啟發(fā),科學家們開始思考是否可以構建一些簡單的“神經元”,并通過神經元的連接形成網絡,從而產生處理復雜信息的能力。 基于此,神經網絡的基礎單元是一個神經元的模型,其只能進行簡單的計算。假設輸入數據有2個維度(x, x),那么這個神經網絡可以寫成 y=σ(wx+wx+b) 從神經元到神經網絡 (a)神經元架構(生物);(b)基礎神經元架構(人工智能);(c)簡單多層感知機。 上述神經元的數學表達能力非常弱,只是一個簡單的線性函數和一個激活函數的組合;但是我們可以很輕松地把模型變得強大起來,方案就是增加更多的“隱藏節(jié)點”。在這個時候雖然每個節(jié)點依然進行非常簡單的計算,但組合起來其數學表達能力就會變得很強。感興趣的讀者可以嘗試類比上述公式寫出下圖中簡單多層感知機對應的公式,將會得到一個非常復雜的公式。這個模型也是日后深度學習的基礎模型,即多層感知機[1]。 多層感知機的原理非常簡單,但是透過它可以很好地了解神經網絡的原理:雖然單個神經元非常簡單,但是通過大量節(jié)點的組合就可以讓模型具備非常強大的數學表達能力。而之后整個深度學習的技術路線,某種程度上就是沿著開發(fā)并訓練更大更深的網絡的路線前進的。 深度學習新范式: 深度學習領域從2012年開始蓬勃發(fā)展,更大更深且效果更好的模型不斷出現。然而隨著模型越來越復雜,從頭訓練模型的成本越來越高。于是有人提出,能否不從頭訓練,而是在別人訓練好的模型基礎上訓練,從而用更低的成本達到更好的效果呢? 例如,科學家對一個圖像分類模型進行拆分,希望研究深度學習模型里的那么多層都學到了什么東西[2]。結果發(fā)現,越接近輸入層,模型學到的是越基礎的信息,比如邊、角、紋理等;越接近輸出層,模型學到的是越接近高級組合的信息,比如公雞的形狀、船的形狀等。不僅僅在圖像領域如此,在自然語言、語音等很多領域也存在這個特征。 深度神經網絡中不同層的輸出 接近輸入層(左側)一般是基礎信息,接近輸出層(右側)一般是某個具體的物體等信息[2]。 基礎信息往往是領域通用的信息,比如圖像領域的邊、角、紋理等,在各類圖像識別中都會用到;而高級組合信息往往是領域專用信息,比如貓的形狀只有在動物識別任務中才有用,在人臉識別的任務就沒用。因此一個自然而然的邏輯是,通過領域常見數據訓練出一個通用的模型,主要是學好領域通用信息;在面對某個具體場景時,只需要使用該場景數據做個小規(guī)模訓練(微調)就可以了。這就是著名的預訓練+微調的范式。 預訓練+微調這一范式的出現與普及對領域產生了兩個重大影響。一方面,在已有模型基礎上微調大大降低了成本;另一方面,一個好的預訓練模型的重要性也更加凸顯,因此各大公司、科研機構更加愿意花大量成本來訓練更加昂貴的基礎模型。那么大模型的效果到底與什么因素有關呢?OpenAI在2020年提出了著名的Scaling Law,即當模型規(guī)模變大以后,模型的效果主要受到模型參數規(guī)模、訓練數據規(guī)模和使用算力規(guī)模影響[3]。 Scaling Law積極的一面是為提升模型效果指明了方向,只要把模型和數據規(guī)模做得更大就可以,這也是為什么近年來大模型的規(guī)模在以指數級增長,以及基礎算力資源圖形處理器(graphics processing unit, GPU)總是供不應求;但Scaling Law也揭示了一個讓很多科學家絕望的事實:即模型的每一步提升都需要人類用極為夸張的算力和數據成本來“交換”。大模型的成本門檻變得非常之高,從頭訓練大模型成了學界的奢望,以OpenAI、谷歌、Meta、百度、智譜AI等企業(yè)為代表的業(yè)界開始發(fā)揮引領作用。 GPT的野心: 除了希望通過訓練規(guī)模巨大的模型來提升效果以外,GPT模型在發(fā)展過程中還有一個非常雄大的野心:上下文學習(in-context learning)。 正如前文所述,在過去如果想要模型“學”到什么內容,需要用一大堆數據來訓練我們的模型;哪怕是前文講到的預訓練+微調的范式,依然需要在已訓練好的模型基礎上,用一個小批量數據做訓練(即微調)。因此在過去,“訓練”一直是機器學習中最核心的概念。但OpenAI提出,訓練本身既有成本又有門檻,希望模型面對新任務的時候不用額外訓練,只需要在對話窗口里給模型一些例子,模型就自動學會了。這種模式就叫作上下文學習。 舉一個中英文翻譯的例子。過去做中英文翻譯,需要使用海量的中英文數據集訓練一個機器學習模型;而在上下文學習中,想要完成同樣的任務,只需要給模型一些例子,比如告訴模型下面的話: 下面是一些中文翻譯成英文的例子: 我愛中國 → I love China 我喜歡寫代碼 → I love coding 人工智能很重要 → AI is important 現在我有一句中文,請翻譯成英文。這句話是:“我今天想吃蘋果”。 這時候原本“傻傻的”模型就突然具備了翻譯的能力,能夠自動翻譯了。 有過ChatGPT使用經歷的讀者會發(fā)現,這個輸入就是提示詞(prompt)。在ChatGPT使用已相當普及的今天,很多人意識不到這件事有多神奇。這就如同找一個沒學過英語的孩子,給他看幾個中英文翻譯的句子,這個孩子就可以流暢地進行中英文翻譯了。要知道這個模型可從來沒有專門在中英文翻譯的數據集上訓練過,也就是說模型本身并沒有中英文翻譯的能力,但它竟然通過對話里的一些例子就突然脫胎換骨“頓悟”了中英文翻譯,這真的非常神奇! 上下文學習的相關機制到今天依然是學界討論的熱點,而恰恰因為GPT模型具有上下文學習的能力,一個好的提示詞非常重要。提示詞工程逐步成為一個熱門的領域,甚至出現了一種新的職業(yè)叫作“提示詞工程師”(prompt engineer),就是通過寫出更好的提示詞讓ChatGPT發(fā)揮更大的作用。 ChatGPT原理總結如下: (1) ChatGPT本質是在做文字接龍的游戲,在游戲中它會根據候選詞匯的概率來挑選下一個詞。 (2) ChatGPT背后是一個非常龐大的神經網絡,比如GPT-3有1700億個參數(訓練成本在100萬美元以上)。 (3)基于龐大的神經網絡,面對一句話時,模型可以準確給出候選詞匯的概率,從而完成文字接龍的操作。 (4)這種有巨大規(guī)模進行語言處理的模型,也叫作大語言模型(large language model)。 (5)以GPT為代表的大語言模型具備上下文學習的能力,因此一個好的提示詞至關重要。 參考文獻: [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 機器學習 神經網絡 大模型 多模態(tài)智能體 來源:科學雜志1915 原標題:ChatGPT發(fā)展史:從基礎神經元到多模態(tài)智能體 編輯:未 |
19款電子扎帶
電路板識別電子標簽