天天看點

GPT 有關的技術原理

作者:咖啡茶說人工智能

因為在最近的這半年裡面,這個 ChatGPT 可以說引爆了我們的輿論圈,得到了社會各界的廣泛關注。今天就大概從三個方面來做對 GPT 有關的一些這個技術和未來的發展趨勢、工作的原理做一些介紹。

首先讨論一下這個 GPT 給我們帶來什麼,這個 GPT 的整個發展過程,首先從這個 2012 年CNN 網絡就是卷積神經網絡談起。我們知道2012 年以來,這個深度學習或者叫深度神經網絡成為了人工智能裡面乃至整個的這個計算機科學軟體工程領域非常重要的一個研究方向,在 17 年以前,實際上對視覺的這個神經網絡的主要的方法都是各種各樣的卷積神經網絡,我們簡稱叫CNN,從最早的這個 Alex net,包括後面的 rest net,就包括我們中國人自己提的 dance net 等等都屬于卷積神經網絡類型。重點的是對這個圖像,當然也能涵蓋一部分視訊的資料進行,包括像目标檢測、目辨別别、語義分割等等這樣的視覺的這個任務。

還有一類實際上就是面向語言的語言類型,主要是以 LSTM 和 RNN 這種偏序列型的網絡,那個可以支援像語言的一些文本的分析翻譯,包括像情感的分析等等這些任務,那麼最早這個這兩支實際上是獨立發展的。對于視覺和語言,那在 17 年以來,谷歌提出了一個新的架構,這個架構我們叫做 Transformer 架構,那麼這個架構的提出重點是引入了所謂的注意力機制,這注意力機制其實也說白了是一個很簡單的機制,就是說我們人類在認識這個世界的時候,他對所有的資料不是同等對待的,我們往往對世界的這個聯系和認識它是有一定的焦點。

這種焦點實際上就是所謂的注意力,就是抓重點,在一個很大的問題上我們就抓重點,是以這個 transformer 裡面就把這個注意力這個東西寫到了它的模型架構裡,這樣的話對自然語言處理,甚至對視覺都産生了非常重要的影響,當然最突出的影響是對自然語言,那在自然語言領域裡面就基于 Transformer 就冒出了很多新的模型。其中兩個最具有代表性的技術路線,一個就是谷歌的 Bert,這個 Bert 這個名字其實可能大家覺得不知道它什麼含義,實際上它是這個卡通片裡面的一個人物形象。這個系統具有這個雙向的這個自注意力能力,能夠抓住上下文之間的互相關系,更适合于對于文字語言的了解任務。

OpenAI 基于傳送狀架構提出了一種GPT 系列,待會講到會比 bert相對簡單一些,因為它隻有單向的注意力,更适合文字的生成,但是在從 17 年到這個目前來說已經過去了接近五六年的時間,Bert的架構也好, GPT 架構也好,實際上在競争當中這個 GPT 的架構明顯取得了一定的優勢。特别是從 GPT 3,我們知道 GPT 3 這個系統是在 2020 年提出的,然後到了 GPT 3. 5,也就是大家現在熟知的 ChatGPT 了,以及後面的 GPT 4,一下子這個能力就比谷歌的這個性能明顯有比較大的提升,是以呈現出一種獨領風騷的一個态勢。

同時大家也要注意到在視覺領域,因為視覺原來一直是這個卷積神經網絡的視覺領域,也在利用 Transformer 來對視覺領域的這個模型進行重新的設計和構造。在前幾天大家還看到的新聞上有這個新的對于語義分割的這樣的 Transformer 的架構提出,其實我們國内也有一些類似的系統。

好,那我們回過頭來重點看一下 GPT 系列在這五年裡面,它的大概的一個發展的路線。從 GPT 1是在 18 年釋出的,後面在 19 年釋出了 GPT 2,在 2020 年釋出了 GPT 3 這三個版本。實際上這個無論是模型還是參數還是訓練資料相對是公開的,當然并不是說能開源下載下傳,但是起碼大家對它的内部結構和采用的訓練方法大概是已知的。最早的 GPT1 是1億左右的參數,到 GPT 2 是15億參數,到了 GPT 3 的 1500億參數,訓練資料也從5 個 GB 到 45 個TB,涵蓋了相當多的自然語言的語料,到了ChatGPT3.5以及前不久的 GPT4,那麼模型參數、訓練量都已經不再對外公開了,大家看到的都是他的經驗的能力。

這些模型發展的特點,其實就是我們經常說的智能時代的這個技術發展的一個範式,就是大算力,加大資料,加大模型這樣的一個綜合體,誰能把這三項事情有機的綜合到一起,很好的能夠駕馭它的裡面的這種高度的技術的工程的複雜性,誰就能最終取得勝利。

按照這個邊界表提煉,也就是說大家可以看到,雖然 Transformer 是 2018 年提出來的,實際上這個在 2020 年之前,大家都在叫做大練模型。什麼叫大練模型?就是不管是機關的大小,大家都根據自己的業務需要,是吧?找一個合适的網絡架構,不管是 CNN 的、 RNN 的 或者Transformer 的神經網絡的,都是根據自己的業務,根據自己的資料标注,然後來訓練模型,呈現出一個非常豐富的一個模型生态。

但是到了 2020 年以來,實際上已經從大練模型變成了練大模型,就是以大模型為突出的。當然我們待會具體解釋一下這個大模型給我們帶來的在訓練上面一些新的技術問題,是以這個 OpenAI 有 GPT 3,谷歌有switch, Transformer 等等。然後從 2021 年以來,特别是這個 ChatGPT 以來,那麼已經從這個練大模型變成大練大模型,什麼意思?這個模型的是大模型的,幾乎人人都在搞,人人都在練,到底誰家能勝出?這個就是一個很有趣的話題了。那麼我們國内實際上是從大概從 2020 年開始就在做準備,比如說那個時候像這個百度就有這個文心一言,那麼包括後面的智源,實際上是清華的這個悟道系列,還有這個華為和深圳鵬程實驗室綜合打造的盤古系列,以及這個阿裡的達摩院弄了 M6 系列,這個還有自動化所的多模态的模型,稍微規模小一點,紫東太初系列,甚至連浪潮都退出了自己的模型,是以真的叫做大練大模型。

在這樣的大練大模型的時代裡面,其實 Transformer 的這個架構雖然能力很強,但是你要駕馭它還是很不容易的,因為它的架構是一個堆疊式的架構,裡面既有這個前向的神經網絡,又有非常靈活的這個自注意指引頭的這樣的連接配接關系。是以它本質上在訓練的時候,無論是對算力還是對資料量,特别是對記憶體的需求量都是巨大的。因為它這個注意力,是一個矩陣關系,是以形成了一個量級的增長,實際上是一種平方式的那增長,是以在進行大模型訓練的時候,往往靠單卡單擊很難搞定,因為大模型本身大家都知道起碼都是百億以上、千億甚至萬億以上的參數,是以它往往要動用很多卡同時來訓練。

是以怎麼樣把一個非常複雜的,因為這個這些神經網絡最終都會編譯成一個很大的計算圖,這個計算圖是這種有向無環圖的一個方式,等于是要把這個圖分割到不同的卡上,讓每個卡負責不同的這個圖的不同的面,然後在這個訓練過程是一個疊代的過程,一方面這個卡上要進行很密集的訓練,有的時候這個 GPU 弄得不好會燒掉的,它這個訓練的熱度很高,如果算法設計不好,有時候會把 GPU 超過安全的範圍。另一方面它有非常強的通訊的需求,因為卡與卡之間進行非常密集頻繁的通訊,因為它是把一個整個大大的這個圖切分成若幹個子圖來在這兒做訓練,是以必須要做資料傳輸。

說完這個總體的背景,我們可能要回顧一下這個制造出 GPT 這一個大模型的這個公司的 OpenAI 的這個特點,因為這個公司的發展史其實是比較短的,并不是一個很長的發展曆史的一個公司,本質上說它還是一個科技初創企業。我們都知道這個它的創始人主要就是薩姆奧特曼,這是這個人不是一個純粹的技術專家,而是跟像馬斯克一樣,是一個技術風險投資人,既懂技術,同時他很會去拉投資,做做這個企業的初創。

當年成立這個 OpenAI 的主要目的,是因為谷歌發展的很快,我們知道在 16 年的時候,谷歌跟 deepmind就推出了 Alpha-g 系列,當時在世界圍棋上取得了很突出的成績,是以這一切這個對于這個矽谷的一些投資人和矽谷的其他一些企業,就覺得受到了谷歌的一些威脅,他不願意谷歌在這個人工智能正在蓬勃興起的這個企業裡面占據完全主導性的地位,是以就必須要成立一個跟可以跟谷歌抗衡的這麼一個科技企業,把它叫做OpenAI。

這裡頭一開始的時候,馬斯克是創始人之一,也有投資的使命,據說要投資 10 億美金,結果 18 年的時候,他們都覺得這個搞了半天,跟谷歌相比,競争優勢不明顯。是以這個馬斯克就跟奧特曼和其他董事會說,以後這個公司就由我來管,我肯定能管好,但實際上這些人對他的管理風格其實不買賬的,大家可以看到關于他的很多新聞,是以等于在這個董事會内部就産生了紛争,然後馬斯克就被從董事會裡踢出去了,踢出去以後他隻投資了 1 億美金,剩下的那個投資的缺口就沒了,就不再投錢了。

這個時候這個微軟正好看到了一個良機,因為我們知道 OpenAI 本來就是跟谷歌競争的,微軟就注資 10 億美金,那當然這個 10 億美金不是純粹都是錢,其中有一半全是那個azure的雲計算資源,等于巨量的計算資源的支撐,對于後面這個 GPT 系列的成功起到了至關重要作用。據說像 ChatGPT這樣的模型的訓練用到了這個 a 輪上面1萬張的這個 GPU 卡,是以沒有這樣的巨量算力,是很難想象能取得向的成功的。

我們也可以看一下,這幾年以來,谷歌和 OpenAI 在包括像強化學習,語言模型,包括像圖像,還有這個代碼自動生成這些方面,其實他們都在是一個展開的是一個競争的态勢。當然強化學習因為這個就是從AlphaGo系列以來,包括後面可以做這個蛋白質折疊預測的,像 alphafold two,包括像這個多人打遊戲的 Alphastar 等等,這個谷歌始終占據了先機,這個公司能力在這個領域的積累實在是太強大了。是以 OpenAI 雖然也做了寂寞,像OpenAI Five 在學術界有一定的影響力,但是無法撼動谷歌在這個領域的技術優勢的。

然後在下面兩個領域就不一樣了,特别是在語言模型方面,這個 OpenAI 這個從剛才講的從 GPT 1 到 2 到 3. 5,這一下子,特别是 3. 5 一下超出了谷歌一個身段。谷歌其實做的也不錯,包括前面講的這個 Bert5 等等一系列,都取得了不錯的這個業績,但是谷歌公司在推進大模型的真正的落地應用,特别是讓更多的使用者來參與,通過形成一個使用者輸入這個不斷改進的所謂叫資料飛輪的這樣的模式上來說,谷歌顯得有點保守了。

當然它這個保守也不是沒有道理的,因為作為一個這麼大的企業,要把這個這麼一個湧現的甚至會産生幻覺的東西,快速的比如說來用在它的搜尋業務上面,其實是風險極高的,即使到今天 GPT 4 都産生了,今天這個 GPT 系列的這個模型,仍然會輸出很多錯誤的、不正确的内容,是以這對谷歌來說是無法承受的一個風險,我們都知道在新聞裡面那個 LaMDA曾經因為有他的員工認為跟 LaMDA之間對話,這個LaMDA 是有知覺的,在新聞上冒出新聞來就被解雇的例子,是以可以想見谷歌對這個語言模型的發展其實是采取了一種相對審慎和保守的态度,但是也就是這一點,使得他在跟 OpenAI 的競争當中失去了先機,然後現在就處于一個相對不利的地位。

在這個視覺影像方面,特别是最近這個 diffusion 的出現,使得 OpenAI 的這個dalle 這些系列又比谷歌又強出了一些,而且 AIGC 和這個 ChatGPT 的結合,使得在這個領域這個 OpenAI 明顯具備了強的能力。最後一個領域在編碼,就實際上就是自動編碼,自動生成代碼方面, OpenAI 因為和微軟結成了聯盟,而微軟又掌握了我們世界上最大的開源的資源,也就是GitHub,是以生出的這個 Codex 和 Git Hub 上的 Copilot 都比谷歌的 Alphacode 在應用和穩定性方面要做得更好。

是以從全面的角度看,實際上 OpenAI 在很多方面目前都要超過谷歌了,是以這是一個非常有意思現象。想象一下谷歌是一個幾萬人的公司, OpenAI 其實總共也就是核心的開發人員是 100 來号人而已。那麼這個GPT 系列大家可能在新聞上或者是在網上都有一些自己的體會,那它的功能是全方位的。比如參考魯迅的文筆,寫一段疫情期間的這個感想,那他就能寫出來,比如說讓他根據你的需求,寫一段能夠實作壓縮檔案的代碼,他也能順暢的寫出來。然後比如說在我們部門裡面,可能這個經常會碰到各種這個填表格,生成表格,你隻要告訴他怎麼做,他也能幫你生成填表格的事情。甚至比如說讓你讓他告訴他你寫一個押韻的英文詩,或者有人故意難為他,你要寫一個不押韻的詩,管他押韻不押韻他也能寫出來,是以他的語言能力是非常強的。

然後對于一些我們在學術和産業領域裡面,對于自然語言的一些典型任務,包括像文字摘要,就是說給一段文字輸出一個對這個文字的摘要說明,包括對這段文字的情感的分析,包括對文字的分詞,就是把裡頭一個詞提出來,還要把這個裡頭的詞的這個具體的實體概念實體給它列出來,包括像中英文翻譯這些它都是很輕松的能予以完成。是以事實上 GPT 的這樣的一個多面手的有點給人感覺無所不能的這麼一個能力,使得它已經成為了下一個通用人工智能的資訊系統的入口,這個是一個非常重大的曆史性的變革,因為在過去,比如說無論是這個 PC 機時代還是移動網際網路時代,我們資訊的主要入口要麼過去是像 Windows 這樣的作業系統平台,要麼就是像移動網際網路時代,就是安卓或者蘋果手機上面的各種APP,那麼這裡頭的核心其實是作業系統和網絡作業系統,它成為了系統的主要入口。

但是 AI 領域實際上一直是分散的,沒有這樣統一入口的态勢,不存在說 AI 領域的一個真正的像Windows、安卓、 iOS 這樣的 AI 作業系統,其實是不存在的。雖然有人标榜說我做了一個 AI 作業系統,那個都不是真的。那麼目前以這個 ChatGPT 為代表的這類的,我們叫做 foundation model,具有很強能力的基礎性模型,它确實為智能時代的資訊呈現了一個統一的接口,也就是說當你把海量的資料,這些資料可能并不是這個标注的,大量的資料其實是它是自監督學習的,它是不需要标注的,自我标注然後給他用輸到這個大語言模型裡面,讓語言模型完全記住他們裡頭的概念、模式這些東西。然後在這上面它就會産生非常豐富的能力,這是我剛才提的這些,然後在這個能力上就可以加入各種各樣的應用,是以它實實在在的就是我們在 AI 時代裡面的新型的一個作業系統,或者叫做系統的接口。關于這個專門有一個論文叫做 language models a general purpose interfaces,國外已經很鮮明的提出來了,這個就是一個資訊入口的作用。另外 ChatGPT 的産業生态已經在迅速的發展中,這個 ChatGPT系列是英特網以來最具有所謂叫做現象級的,這個網際網路産品在過去能達到1億規模,網民隻有兩個月能完成,是前所未有的,從來沒有看到這種情況,那目前圍繞着 ChatGPT的這個 plugin 就是它的插件應用,正在非常豐富的迅猛的發展中。

大家關于它可以做各種各樣的東西,這個代碼助手,語音陪伴語音的助手,這個機器翻譯, AI 客服等等。事實上 ChatGPT 的産業生态,因為它作為一個萬能的人機互動接口正在形成中,而且正在形成一種颠覆式的服務模式,就未來可以想象一下,大家在對這個資訊接口來說就不再需要,比如說我們掏出個手機來 APP 上輸東西,敲字,在菜單上選來選去的,你可能對着手機說話就行了,完全通過自然語言交流表達你的意圖,輸出你的相應資訊,然後系統就能夠了解你,然後按照你的需求在背景去根據各種各樣的插件,然後去調用相應的功能完成你所需要的服務。

是以我們可以認為我們正在走讓一個全新的這個智能時代服務的一個這個關口上面,是以所有這些都标志着一個通用人工智能時代的到來。因為 ChatGPT 已經湧現了一定程度的類人語言智能和認知智能。另外這個 chat GPT 和 GPT 4的能力是多方面的,通用型的,它已經生成了一個強大的人工智能的基座,那麼正在開啟這個通用人工智能新時代,當然這個時代裡面還會有更多的更先進的産品技術出現,大家隻需要拭目以待。

下面介紹一下這個大語言模型的一些基本原理,因為前面是比較宏觀的講了一些它的能力,它的發展趨勢這些問題,這裡頭從原理就必須要講到這個 Transformer 的架構,這個就有點偏技術了,實際上 Transformer 架構您可以把它了解成一個編碼解碼器,實際上它是由編碼和解碼器的這兩個階段組成的。那麼所謂編碼實際上就是把我們的語言圖像都給它通過一種向量化的表示,給它輸到系統裡面,所謂向量化就是有點像我們人一樣,對事情要做一個編目,當然它是個非常高維的一個編碼,那麼在這個編碼過程當中會經曆過主要的是像一些全連接配接層,我們知道在神經網絡裡面,這個前向的這叫 feed forward network,這種全向的全連接配接層具有很強的這個函數逼近能力,它基本上可以拟合所有的函數,是以用它來記概念、記這些東西是最合适的。同時就是交織的進行這種所謂的自監自注意力機制。

自注意機制很好的可以把各種概念有機的給它關聯在一起,實際上就是 encoder 的作用,那在 decode 一方就是把你編碼的這些資訊怎麼解碼還原出來,能夠變成輸出成你需要的内容。簡單的說,是以 transfer 架構它是一個堆疊式形成的一個架構。在這樣的一個統一的 Transformer 的架構的定義下,就會演化出很多不同的類别來。比較典型的就是首先以編碼器為主的,叫 encoders 為主的,這裡頭剛才講的Bert,還有其他的一些類型,這個都是屬于偏編碼的,它能夠編碼的話就能夠進行雙向關聯,雙向關聯非常适合做這個文本的各種語義的分析地和了解。那麼 GPT 系列就是decoder, decoder 是單向的,也把它叫做自回歸語言模型,非常适合生成就是文字接龍這個任務,當然也有把這個做全的了,把 encoder 和 decoder 兩部分都結合在一起的,也有一些這個代表性的模型。那麼重點我們可以看一下這個 GPT2,就是 15 個億參數,和這個bert做一個簡單的對比。

GPT2全是decode的,一層一層壘起來的;而Bert是一個卡通人物形象,它是編碼層encoder,一層一層堆疊在一起了,實際上就是通過不斷的堆疊,能夠讓這些模型能夠吸收更多的資訊内容。當然通過每堆疊一層,那麼它的參數就會增加很多,是以這裡頭有一個簡單的這個示例,來看一下這個 GPT 2,它的這個文字接龍是怎麼完成的。比如說你在這個下面這行輸入相應的這個文字, recite the first law,然後你就要機器說,你來幫我預測一下一個最可能的詞是什麼?這個是 GPT 系列最擅長的一個任務,然後實際上他在處理的時候就是把這些序列,就剛才這個序列裡面出現的這些詞,通過編碼輸送到這個由 decoder 組成的一層一層的内容裡面,然後每一層實際上它會組合一個非常複雜的模式,分辨和這個詞代選詞出現的機率的預判,每一層同時形成一個合力,是以最後來共同投票決定這個實際上會輸出的下一個詞是什麼。

比如在這個例子裡面前面寫的是 Robert must Obey,那你問下一個詞是最大的可能是什麼呢?可能是orders,這樣他就猜出來了。那麼在這個過程當中要訓練這樣的能力,實際上主要就是靠這個所謂的自監督機制,就是其實就是完形填空,就是把這個你要猜的下一個詞給他蒙住,然後把真的結果告訴他以後,大量的語料告訴他以後他來反向的訓練這個每一層的這個 transformer 的這些參數,通過這樣的這個完形填空的方式,讓他能夠更加能從這個語料的這個詞嵌入當中,能精準的預測下一個輸出的機率是什麼。

你看到這可能太小了,這個詞那就是可能預測出來這些每一個詞的可能的機率,然後有一堆詞的機率,它可能挑最大的那個來進行輸出,那麼 GPT 家族的基本的工作方式就是這樣,但是不同的是從 GPT2到 GPT 4 這個首先層堆疊的層有大大增加,當然我們知道那個 ChatGPT 和 GPT4已經不公布它的那個架構參數了,是以大家無從知道,可以認為它肯定在 GPT3之上應該是增加了更多的層。

那麼大家可以看一下, GPT1是有 12 層堆疊在一起的, GPT2已經到了 48 層, GPT 3 到了 96 層,接近 100 層了,是以這個不同的層數,然後每一層對應的這個注意頭就是那個 attention 的那個頭也不一樣,資料也有增加,是以堆疊的層越多能力就越強。這是第一個。

第二個就是這個 GPT 能預測每這個下一個詞的上下文的這個篇幅也急劇增加了。在 GPT 2 也它可以對 1600 個詞的上下文進行分析,那麼 GPT 3 已經到了 12800 多個詞了,那麼我們現在看到 ChatGPT和 GPT 4,它對上下文肯定是更擴大了這個視窗,是以基于這樣的能力,實際上 ChatGPT 裡面有三個非常重要的技術對他的這個能力的保障,特别是湧現這個認知的能力有非常重要的作用。

一個叫做 prompt tuning,叫做提示調整。第二個叫做 instruction tuning,指令調整,就是思維鍊。第三個是基于人類回報的強化學習,英文就是 reinforcement learning for human feedback,這個我們可以逐個的來看一下,把一些最基本的概念說稍微說一下。

比如說機器學習,其實就是有原來就主要分成三類,一類就是監督學習。簡單的說,比如說你要訓練一個機器學習模型來認這兩種花,怎麼認?也就是把這兩種不同的花在不同的光照下不同的拍攝角度,把它這個标簽給它打上,這個是向日葵,那個是菊花,然後生成這個有标簽的訓練資料,然後拿這個資料去訓練模型,這個模型實際上就是一個分類器,它可以把不同的資料分成兩類,這個叫監督學習 supervise learning。

還有一類就是說我沒有标簽,我就把資料給你,你根據資料本身的特征去學習,這個叫做非監督,或者叫做無監督學習,英文就是 unsupervised learning。還有一種就是強化學習,就是他不給标簽,但也不是說什麼都沒有,給你一個遊戲的環境,讓你這個遊戲的個體在那環境裡去試錯,通過試錯來訓練自己。這個就是 Alphago 類型,像下圍棋,實際上到最後其實他不是跟人下,他是靠自己跟自己這個類似周博通左右手互搏來練的,是以他已經練的可以很高,水準很高,實際本質上就是自己幫助自己。

是以對于大語言模型來說,人們提出來一個 self supervise learning,就是自監督學習。為什麼不能直接采用監督學習?因為監督學習的标注的成本實在是太高了。你想象一下,如果把世界這個好幾千億的語料都拿來,每一個按照不同任務都來進行标注,這得花多少錢,花多少人工和時間,其實是不現實的。那麼實際上自監督學習就是類似的機理,就是這樣,比如說打個比方,以一個圖像的例子,比如說你要訓練這個機器試認這個字,這個手寫體,然後呢實際上是把這個部分給它蒙上那貼住,然後讓機器隻看到這個蒙住以後留下的部分去猜這個蒙的部分,這個就是所謂的自監督學習。也就是說通過在這個資料上面引入掩碼的方式來生成标簽。

比如說下面這個例子也是這樣,你要預測下一個詞,你把下一個詞給它,給它貼上,然後這個貼出來答案就是标簽,然後你就送到這個語言模型裡頭,實際上後面例子後面有一長串的相應的相應的詞,這就是自見度,這樣的好處很明顯,因為不需要找人标注了,按照一定的規則它就可以做掩碼來生成标注資料,然後拿這些資料來訓練,這樣的話就大大的減少了訓練的成本,你隻需要生成這個 self superlearning 的資料就行,那麼訓練這樣的原模型,實際上它原來其實在 bert之前這些模型也都有了,但是它實際上是作為一個這個基礎的條件存在的,它不能直接拿來做下遊任務。

也就是說當你拿到這些原始的語料,通過剛才講的自監督方式訓練模型以後,你要做各種下遊的任務,比如說就相當于剛才寫詩,做這個情感分析,做這些任務的時候,做分類的任務的時候,你還需要我們叫做 fine tuning,就是做微調的操作,那微調的操作實際上就是才能夠真正的讓那個下遊的模型能夠得到能力提升。

比如說這裡有一個例子,你要問這個美國國旗誕生在什麼地方,其實就是訓練的時候就是把這個蒙上來訓練,然後你在真正下遊任務的時候,需要所謂的這個 fine tuning 來完成。比如說在這裡寫了一個例子,在 bert 和 T5 上面做方案 tune 的時候,就是生成了這個預訓練模型的時候,還需要再找一部分資料,這部分資料是自己要打标簽的,就跟那監督學習一樣。然後對于下遊任務的這些監督資料,在對語言模型的一部分地方進行監督訓練,這樣叫做微調,能夠達到比較好的能力。

但是進入到超大語言,特别是這個 ChatGPT 以來,實際上這個微調的工作變得大為簡單了,也就是說它并不需要去專門再找一批資料再做标注,而是直接寫提示就行,也就是說原來是要再找一些資料标注了再訓練,等到他這個 prompt 出來以後,他隻需要在預訓練的模型下寫提示,然後他就通過提示的學習就自動的學會提示,這個時候就不是那種标簽資料了。

提示其實就是一些語言的例子,它實際上是通過一種例子來學習.

等到那個 instruction 部分就更厲害了,例子都不用學了,直接發指令,也就是說你跟一個人一樣,你隻要給他發指令,甚至對于沒見過的任務自動具備這樣的能力。你原來訓練的任務是能做的,任務是b、c、d,然後自動的它就會做a,是以這是三種不同的這個微調方式。再舉一個更具體的例子,比如說在這是一個 bot 模型了,這個 bot 實際上就這個形象的。然後比如說這是 this is very cool 這句話,然後你要看哪些通過掩碼的方式能夠替代這個 very 這個詞,比如說可以有pretty、really, super 都是可以的,實際上就是通過這樣的方式來進行掩碼來訓練的。然後在訓練的時候,如果剛才講的這個prompt,那模型原來做要做這個就 tuning 的時候,是要對每一個任務再有新參數,新的這個資料進來,然後才能對每一個任務 task a, task b, task c 做這個 fine tuning 微調才能出結果。

後面就不用了,直接比如說對 a 任務你就寫一個 prompt 例子,這 b 任務寫一個 prompt 例子, c 任務寫,寫完了以後直接發給他,不用訓練了,直接就出結果,直接具備這個能力。這裡頭也舉一些這個簡單的例子,比如說這個就是講一個電影,這個電影是怎麼樣的,然後這裡頭有這個great非常棒的一個電影,一個 terrible 的電影,然後說這個電影看起來是這個 painful 的,還是artistic painful 等等。是以在訓練的時候先拿這個掩碼給他掩住,然後讓他來練,然後再寫。

就是具體的這個提示的時候,我隻要把相應的這個資訊發給他,比如說給他一個例子,就像這樣,那麼這個 instruction 就是告訴他你要把這個影評分類成好的, great 就是 positive 的和 terrible分類成 negative 的。把這例子告訴他以後這模型自動的就具備這樣的能力,就不需要再訓練了。

那麼在這個 instruction 就比這個剛才講的那個 prompt 還要更靈活,就相當于這樣,比如說這個,這是一個訓練推理的例子,也開始給一個instruction,比如說怎麼樣在夏天睡一個好覺這麼個目标。然後這裡頭有兩個選擇,一個是把這個東西放在冰箱裡,一個是把東西放在微波爐裡,然後讓你選哪個是對的方式,當然是冰箱裡更合适,是吧?你夏天要睡覺不可能越搞越熱。然後這個例子右邊這個也是一個instruction,是讓這個讓他能夠做翻譯的一個例子,然後你還可以給他很多其他的 instruction 例子,下一次你讓他幹一個活,完全不是這裡都覆寫的了。還可以讓它做一個這個自然語言類似的一個邏輯推理的任務,這樣的任務在前面顯然都沒有訓練過,但是通過前面的 instruction 這個系統很快的就會掌握這樣的能力,簡單的總結一下,其實這個 prompt 本身它是在具有大模型的情況下去激發,進一步的激發這種模型的補全能力,本質上還屬于這個語言模型任務,本身這 instruction 就比它更高了一個級别,它等于是激發了語言的了解能力,通過不同的任務的例子,然後讓他掌握新的例子。

語言還有一個能力就是泛化能力,做 AI 最追求的一個東西,這裡頭就涉及到大家經常在看到文檔裡面的所謂的思維鍊,就是 China thought,其實就是把剛才講的這個 prom instruction 再給它按照邏輯推理整一遍。比如說這裡舉個例子,簡單的這個國小的這樣的數學題,這個 Roger 有 5 個 tennis ball,然後他買了兩罐,每一罐裡頭都有三個那個球,這個 tennis ball,然後問現在有多少個經典的方式就是告訴他答案就完了,然後你下一個問題就是問你這個換了一個場景了,這袋裡頭有 23 個蘋果,然後這個蘋果這個買進買出,你最後還剩幾個蘋果。

這樣的問題實際上是咱們經常教孩子做數學題的一個方式,給他一個例子,然後讓他告訴他根據題意怎麼了解,然後再舉一個,那麼在這個思維鍊裡面是要把這個解題的這個步驟分步驟的告訴這個機器。比如說在這個例子裡面,前面這個例子是直接給了個答案,右面這個就會說我怎麼算的。這個人一開始是 5 個球,然後這兩個罐子裡頭每個罐子有 3 個,是以是 6 個球, 5 + 6 = 11,是以答案是11。

然後用這樣的一個思維鍊的方式來更好的訓練它,結果研究表明這個其實也好了解,如果隻告訴答案,它隻能根據一個一些表面的東西去猜下一次做的題,他就是錯的。但是如果你把推理過程告訴他,他實際上是可以模仿這個思維的過程去做推理,是以他就可以得出正确的答案,那麼也就是說思維鍊實際上是在這個 prompt 這個格式上的一個更進一步,他把原來的輸入輸出的模式變成輸入推理過程加輸出的模式,因為它這個模闆這個提示模闆一般就是 question 和answer,它在 question answer 之間把這個解題步驟比較細的一步一步都列出來了。這樣的話就實際上幫助這個,讓這個模型能更好的了解這個推理過程,能夠模仿這個方式來做推理。

實際上就是把推理任務分解成這個具體步驟,這樣的話用少量的例子,而不需要重新訓練,是以他非常适合做那些剛才咱們見到這個數學題、國小數學題,或者是一些這個常識性的推理、邏輯推理等等研究表明,思維鍊對于這個大模型的認知湧現具有非常重要的作用。

另外一個很重要的技術實際上就是人類回報的強化學習。這個人類回報強化學習其實很有意思的是,也不是 OpenAI 提出來的,這是 17 年那個谷歌 DeepMind 提出來的,因為在這個剛才講的類似 Alphago 這樣的這個問題裡面,它需要對這個 agent 這個智能體做長時間的訓練,但是讓智能體自己在那摸索的時候就發現那個智能體有的時候試了半天,會卡在一些局部最優的那個圈子裡出不來,達不到最佳的效果。

是以在這個時候需要人在邊上再加一些回報,比如說我打個比方,比如說你訓練一個智能地走迷宮,可能走着走着某一步智能你就學不出來了,這時候就需要人你試着往左走,或者說你走的這個方向不對,提示他一下就是feedback。這樣的話他就在關鍵點上能夠避免出現陷入到局部最優的情況,可以走出那個局部最優點來,最後達到一個相對好的結果。

那麼 ChatGPT 實際上是把這樣的方式用在了對自然語言模型的這樣的訓練上面,也就是說讓人把這個 GPT 的輸出做一個排序,通過這樣的排序生成這個獎勵函數。因為我們知道強化學習最重要的是要獎勵函數,而且這個獎勵函數其實在做強化學習時候,一般都把它認為是一種art,不是science,那需要非常精巧的去根據任務去調,越複雜的問題,那個獎勵函數越複雜,是以往往這個時候就需要人來标記。但而且這個很有意思是其實人是給不出定量的 reward 來的,這就給不出一個定量的獎勵。但是人非常善于排序,比如說這個東西好壞,它可以排個序,實際上是通過這個排序裡面的資料來生成訓練一個獎勵的神經網絡,然後能夠更好地幫助這個GPT,能夠讓它的輸出能符合人的需要。這就是為什麼他現在說話能跟人差不多一個重要的原因。

這裡頭就舉個例子,比如說你這有一個問題是這個什麼是香蕉,讓 GPT 給出一段話來解釋一下香蕉這概念,那麼原來這個 GPT 在訓練當中這個版本,那麼它會訓練出很多版本,那個不同的版本的輸出是不一樣的,是以 openai雇了一些人,然後把他們相應的這個不同版本的這個輸出的結果做一個,讓這些人做一個評價。

這個評價的方式就是我剛才說的好的排前面,差的排後面,然後把這個答案按照順序排一排,然後綜合了這些排序的結果以後,我來設計一個獎勵函數,然後後面我就可以拿這獎勵函數去訓練這個模型,本身這個訓練就是不停的練,就跟這個遊戲一樣,自我互搏是一樣。然後他讓他自己去調參數,一直能練到他輸出的結果,獎勵函數最大、最吓人的那個評判的結果,是以這就是所謂人類回報的強化學習。

可以說 ChatGPT 其實是把很多人工智能的方法,就目前人工智能方法做了一個大的綜合。一直有人批評說這個,其實 ChatGPT 這些東西不是原創,理論上也沒啥創新,沒啥新鮮的,都見過了,是都見過了,但是他把這三件東西在這麼大的資料規模情況下,這麼複雜的模型下,把它有機的玩在一起玩到極緻,确實是有相當難度的。不能低估這種內建創新的重要性。它目前已知的情況是它已經用到了這個 45 TB 的資料,這個近萬億的單詞相當于這個 1351 萬本牛津字典的單詞量,這個數是很驚人的,以及數十億行的源代碼,有一種估計可能不精确,就是全球就是這些産生的文本,高品質的文本也就是5萬億個TOKEN,5萬億就是那 ChatGPT 這個系列已經用了1萬億就用了 1/ 5 了。是以有一個斷言認為可能在兩三年内,可能世界上能看到的那個語料全部都被訓到大模型裡面,這個就是一個真的是一個全新的時代了。

然後當然模型本身這個參數規模還有訓練,剛才我講了一萬張的 V100 的這個卡,投資是 10 億人民币 1 億美金,但是同時要訓練還花錢,這花電費很厲害,不是說光有卡就行了, GPU 還是很耗電的,是以算力的開銷是一天是 63640 個 Pad Flops,大家可以算他電費得花多少錢?訓練這個 ChatGPT 起碼是幾十億美金起,是以是個非常昂貴的東西。好,我們現在就可以把這個 ChatGPT 的一些基本的就特征稍微總結一下。

第一條就是大道至簡。為什麼是這麼說?因為過去從這個大練模型,CNN, RNSTMGN 這些,那麼目前看起來起碼在語言甚至未來在視覺上面都有可能不見得彙聚到 Transformer 架構,就是萬宗皈依了是吧?隻有這個最靈,為什麼原因?其實它是有理論原因的,已經有人理論上證明 Transformer 架構是圖靈完備的。什麼叫圖靈完備?也就是說世界上的這些可解的問題,這個通用的機器就是圖靈完備的,因為圖靈我們知道是英國的一位計算機創始時代的科學家,專門有圖靈獎,它定義了什麼叫圖靈完備,這個是問題的可計算性,也就是說 Transformer 是一種非常通用的計算機器,是以大道至簡就這個概念。

第二,暴力美學,這個大家都經常在新聞裡看到,對吧?實際上最後就是靠大量的算力、海量的資料以及非常強大的駕馭這種複雜的模型工程的能力到了極緻,才能使得這個模型具有極強的這個資訊的擷取和學習能力。第三個就是認知湧現,所謂的量變到質變,就是人們原來認為這個智能的形成可能是一個很漫長很難的過程,現在發現通過暴力美學到了模型到了一定規模,他的能力就躍遷了,是吧?超過了一定的臨界點,引爆了,相變了,就完全跟原來的面目不一樣了,是以這個就是所謂的湧現問題,突然一下子他就這個進階的各種認知能力都能看得到了。

最後一點就是價值對齊,其實這個也是目前 GPT 系列裡面内在的,它的缺陷就是這種湧現其實是一個很非常複雜的現象,目前在首先 GPT 也沒開放,然後其實對湧現的限制人肯定要比他複雜的多,但是模型是比較簡單粗暴的,他就是拿了資訊預測下個值,是以它既沒有價值觀也沒有事實的各種檢查。

是以大家會看到最早各種關公戰秦瓊這個跟你亂編造事實的東西,看确實像這麼回事,但你一查事實是錯的。另外就是缺乏價值觀的引導,可以亂說話,說很多冒犯的話,說很多錯誤的話,是以這些都把它叫做illusion ,就是所謂的認知錯覺。那麼要想防止這些,讓那個機器能夠更好的遵守我們人類的道德觀、倫理道德就必須要進行價值對齊,這價值對齊主要就是靠剛才講的人類回報的強化學習來完成。

最後介紹一下大語言模型這個認知智能的湧現到底是怎麼産生的?為什麼會産生這樣湧現?當然這裡頭可能裡頭會涉及到的技術比較多一點。首先一個在大語言模型裡面有很多,因為大語言模型目前的評測其實有非常豐富的Benchmark,有幾十項之多,涉及到了很多不同能力。這裡面就舉了幾個典型的,比如說像三位數的加減法,比如說一些翻譯性的任務,比如說從打亂的詞裡面恢複單詞,比如說像波斯語的開放語的問答,這都是一些不同的這個Benchmark。然後大家都發現這個參數就是剛才講的這個思維鍊,這些能力怎麼才能發揮作用呢?一般來說就要在 100 億規模以上的參數才行,是以看到這個曲線的模式都是一樣的,就在這些點上都在 100 億左右,它的能力一下子就能上去,否則一開始感覺好像沒什麼進展,這個就是所謂的湧現問題。

那麼當然這個湧現的時候要一定要把思維鍊用上,就是說如果你沒有思維鍊的話,即使參數到了一定程度,湧現出來的能力也不太行,一旦用上思維鍊了,很多的能力就會比如說像這個數學題,做數學題這個一下子又會提升很多。是以這裡頭不明讓我們要問了,就是說第一,什麼是湧現對吧?湧現這個詞可能詞義大家都知道,但是從科學含義上到底指的是什麼?第二就是這類系統的湧現的機理大概什麼?這其實是目前還沒有完全很好解決的一個科學問題。湧現,簡單的說就是多者一眼, 量變到質變,當這個參數逐漸擴大的時候,它的能力一下子很多能力就會冒出來。當然這個很多高階的能力其實冒出來的這個目前的情形來說還有提高的空間,因為畢竟這個大語言模型,在因果這些方面還有很大的這個未知的地方,并不是說它能夠知其然,而且知其是以然的,是以這裡頭就有這個所謂的還原論和這個系統論的這樣的科學思辨。過去的研究很多實體學包括化學都強調的是還原論,就是把複雜的世界的問題還原成它的部分的來解決。比如說這個世界的實體學是不是都歸結到了這個原子分子的規律就能解,全部都能解釋了,那這樣。但實際上還原假說是是有缺陷的。很多複雜的問題其實是會有湧現現象,也就是說它的整體性會比部分的簡單疊加要複雜很多,會産生很多新的性質。那麼湧現的問題在自然界就是我們這個宏觀世界上是普遍存在的,大家看到這個鳥一塊飛,這個魚群一塊遊,包括像這個蜂群、蟻群,大家一塊行動覓食,這些都是在宏觀世界上能看到湧現,包括我們人每天的交通各種大型的活動,其實這都是湧現,也就是都是從一個原來相對無序的狀态,它變成一個有序的狀态的一個突變相變。

那麼這個其實在更微觀情況下,比如說你去看這個病毒或者是這個細菌,它也是湧現,它都是按成群出現的,裡頭也有非常有趣的湧現現象。是以湧現實際上是一種從這個有機到無機,從這個微觀到宏觀,可以說是一個普适性的問題。在哲學上很多科學上面都有相當多的研究,是以可以簡單的說湧現可以對它的這個類型做一個基本的分類,這是一個非常粗的一個分類。比如說這個沒有回報的,這就簡單湧現,就是把系統簡單的拼在一起,有回報的就是有一定難度的湧現了,但這個湧現還屬于稍微弱的湧現,而人類的科學對弱有限研究比較多,比如剛才講的這些這個社會的螞蟻的這些行為,包括我們網際網路上這些行為。

那麼還有就比較難的,比如說股票,我們知道股票是沒法預測的,是以股票市場上面存在着非常複雜的回報,是以它的湧現就變成了一個比剛才講的那個容易預測的那個湧現要難得多的湧現了。最難的就是咱們這些跟宇宙生命、大腦這些本源性的問題,這些一般都是列在 SARS 每年年度問題多少個裡面的,這些問題目前太多的未知答案,是以這種都是屬于叫做強湧現,就目前科學都難以解釋,那麼湧現在我們的這個人工智能裡面,特别是群體智能裡面具有非常重要的地位。

在2017 年的國家規劃裡面,當時我們列了四個在群體智能領域裡面,其中有一條就是激勵與湧現,專門寫在 17 年國家新一代人工智能的這個戰略規劃裡面,作為國務院的檔案我要釋出的。那麼這裡頭實際上本質上就是說世界上這些智能系統,它是一種動态的這個認知的複雜網絡,那麼實際上這個網絡的這些上面,用這些行為模式的特點強弱就是一種湧現。好,那其實和大語言模型最相關的湧現還是大腦的湧現,那這裡頭我們也可以借鑒對大腦的這個湧現的一些研究,來看一看我們怎樣看待這個神經網絡這種大語言模型的湧現問題。對這樣的湧現現象一般要從這個跨池子角度,從這個宏觀界觀、微觀三個層面來看,我們知道微觀這個人的大腦是由上千個神經元,人工就是自然的神經元和這個上萬億個那連接配接神經元的軸突這些東西組成的。那不管是人腦,你就是拿一個昆蟲,比如說像果蠅,果蠅這個是物種是已經把這個神經元的結構關系研究的比較透的,它就是大概 7000 個神經元,然後裡頭的這個神經元連接配接的這個關系都已經能畫出這個所謂的神經圖譜來。

那麼在這樣的網絡裡面,它的微觀就是單個的神經元的運作模式,那現在已經對這個單個神經元的運作模式,人類有很多的觀測和分析方法,數值模拟也很清楚,那麼在界觀層面,也就是說你通過成千上萬個這樣的神經炎組成的神經的這個功能柱,是吧?還有這樣神經環路,這樣的研究實際上是現在人類蹲在這個如火如荼進展的,但是這類研究實際上缺乏的這個神秘環節太多,因為很簡單,這個觀測很難。

目前來說一種方法,就是說當你有的人得了這個腦部疾病的時候,在這個腦内部植入電極,這個電極可以對腦區内部的神經的這個鄰居的團體,就是成千上萬的神經元的這個脈沖細胞的一個彙總進行研究。但是這樣的研數量樣本很少,而且也不能實時的來弄,現在人們都在想做這種更厲害的這種顯微鏡的方式,非侵入的方式能夠有研究,這個探索路還是很長的。

那麼宏觀層面,人們對腦區的這個宏觀研究,這個做得很好,現在大家這個都有那個叫核磁共振, FMRI 這些裝置,這個在厘米和毫米級對于這個不同的腦區的互相的,因為他是看這個腦區的血液流量來進行解碼的,是以對腦區的這個協同作用關系已經有相當多的進展。是以其實湧現就是從微觀的單個神經元組成神經的功能的區域或者環路,然後再組成更大規模的腦區互相作用産生的。那麼其實語言能力隻是一部分,腦區那像 Transformer 這樣架構已經具有了千億的這個參數了,是以它的神經元從某種意義上說和人類的這個大腦的規模也有所接近,是以也需要從宏觀界觀和微觀來研究。

那麼宏觀層面就大家看到它已經具有這種能力了,是不是各種各樣的能力?是以你可以拿各種各樣的這個 Benchmark 來測,它能做題,能編代碼,甚至能夠回答一些複雜的邏輯問題。微觀層面,實際上這涉及到對神經網絡的這個人工神經網絡的訓練和這個疊代。這些問題研究有很多,目前最缺乏的是對 Transformer 語言模型的界觀層面,也就是說剛才講了它是一個堆疊式的,對吧?有按照很多層來堆疊在一起,那麼每一層到底代表什麼樣的含義?實際上目前的科學研究也還在進展當中。

基本的一個認識是每一層負責的功能可能側重點不一樣,一般來說最較低的層負責那個偏,比如說詞法,更高的就是文法語義,還有語境越來越複雜的這樣的層面,是以需要研究像這個可解釋性的方法,還有類似像這個就像那個神經網電極一樣,對吧?我們要需要有這種探評技術,能夠把這個 Transformer 内部的腦區的這些,這内部的神經元、人工神經元的一些參數規律給它有機的解讀出來。

那麼目前已經有一些相關的研究在做,特别是把這個人類大腦的語言處理能力和 GPT 系列的這個能力做一些類比分析,就是那麼人的大腦,就是我剛才說的利用那個有一些人裡面腦部植入了電極,利用這個電極裡的這個信号的模式來進行解碼分析,然後給人腦和這個 GPT 模型都示意同樣的任務,比如說這種文字接龍的任務。

那麼研究表明,實際上在起碼在這個語言的這個接龍這種任務上面,他們具有類似的一些這個計算原理,比如說都可以具備在連續上下文的情況下對下一個單詞進行很好的預測。另外當他發現預測和實際情況不比對的時候,會産生預測誤差,然後這個預測誤差能夠刺激人腦或者刺激神經這個人工神經網絡進行相應的調整,都具有這個通過上下文來表示單詞的能力,是以起碼從目前的一些研究進展表明,這個 GPT 系列的模型在語言能力上具有了一定的類似人的計算的模式。

第二個就是說因為 GPT 4和 ChatGPT 都沒公布參數,這還是對 GPT 3 裡面的這個 1750 億參數的構成可以做一個分析。首先這個參數裡頭有 1% 的參數是用來表達單詞的,就是把這個單詞通過刻畫成了 12001220080 維的一個向量,比如說這個你把一個學校,比如浙大或者是北航,或者咱們這個某公司這個詞作為一個向量輸進去,實際上這個跟這個詞相關的就有很多資訊,對不對?這些資訊都可以編到這個這1萬多元的這個資訊裡面。是以在 GPT 系列裡面首先它具備這樣的能力,這樣的話它可以把這個詞跟詞的相應的一些含義建立起聯系好。再就是是關聯,這就是那個注意力機制,就是在 1750 億參數裡頭,有 30% 的參數是用來做注意力的,而且有 96 種機制來做各種注意力的分析。因為注意力實際上什麼意思?就是把這個概念跟概念之間給連接配接在一起,是以有了這樣的這個極緻的這樣的關聯挖掘,它就能夠觸類旁通,能夠湧現能力。是以這是第二個 30% 參數。還有最重要的最多的一份參數占據了60%。就是我剛才說的那個 feed forward 全連接配接層的這樣的網絡是用來專門記概念的,它可以把這個文法裡面,這個詞,這個文字裡面各種各樣形态的多态性的概念,多種層次的概念模式都給記住,是以說是叫細水長流般的思考,通過這樣結合這三個方面的要素參數要素,它才能湧現認知能力。

那麼已經有這個一些更理論的研究表明,其實人工神經網絡其實是它是在一種做叫做幾何流行式的表示學習,因為世界上這些資料,因為它是通過資料驅動的,資料裡面其實有非常的複雜的次元資訊,那麼這些次元資訊通過神經網絡它會把它映射到一個低維的流行上,這低維流行其實對應的就是這些概念,就是相當于資料實際上是這個紛繁複雜世界的一個表征,他需要把這個世界上的各種資訊給它綜合在一個更低維的,可以更好地了解的這個世界上,是以就越複雜的網絡,實際上它的能力的強在于它能夠了解更大的世界,能夠掌握更多的資訊量,然後能夠記住的這樣的流行的容量更大。是以為什麼要一定的規模的模型?就是在這個道理,因為你技術的容量不夠多,那你對這個世界的了解認識就是不夠深或者不夠全的,那麼這是一個疑點。

第二點就是這個 Transformer 網絡裡面這個在這個前連結層就是 FF 層,對這些概念的了解其實是比我們人說的那個概念要豐富多,它的概念很細緻,比如說這邊都是從那個模型裡面提取的一些東西,比如在第一個例子裡面是具有相同連字元的年齡,在第二個例子裡面是具有相同字尾的單詞。第三個例子裡面是具有所有德國的一些底名。第四個是帶有百分比的十進制數,第五個是代表金額的十進制數,第六個是 1819 世紀的年代,當然有數字表示的,有英文單詞表示的,還有一些其他的,那就不贅述了。那麼這些實際上各種各樣的這種概念模式,實際上都是在語言裡面這種多樣性的表現。

總的研究表明,實際上是底層的話,把這個詞法句法更好的記錄起來,然後在堆疊上面越高往高的地方走,就把這個情境語義相應的模式給記錄起來,是以它的權重是不一樣的。另外就是說它實際上實作了一個叫做 key value 的子庫,那個 key 就是我們剛才講的那些概念,各種各樣多種形态的概念。這個 value 是什麼呢?因為我們回到剛才我們最早講的這個模型的最強最主要的功能就是做文字接龍,就是在一個上下文情況下預測下一個詞是什麼。是以在預測的時候,其實這裡頭舉了幾個例子。

在預測的時候,實際上它不是一層預測的,它每一層都會出力,而每一層都會去首先去識辨出這個上下文裡面它能記憶的那些概念,就是那個key,那個模式,然後從那個模式裡面找到對應的這個值,這個值把若幹個層的值都彙聚到一起來,形成對那個機率的判斷,然後找到那個最接近的詞本質上就是這個意思。

是以這裡頭也可以舉一些例子,比如說在這是在這個第一層的第 449 号的這個 key 編碼的,那實際上他記得都是什麼呢?都是這個單詞是以這個 substu 結尾的這些句子,看到沒有?這句子全部都是以 substu 結尾的。然後在第六層這個 2546 個,這個他記得是一些和military,就是和軍隊有關的基地的這些詞。實際上到了第六層已經出現了一些比較淺層的語義了。

到了第十層就一個更抽象的語義,就是 part of,就這個部分的這個關系,可以想見這個,這裡頭大家可以翻翻這個例子,其實裡頭它都是一些,它們裡頭甚至沒有出現 part of 這個詞對不對?但實際上它的含義都是部分的含義,那到後面就會記更多這樣的東西,是以這是key,然後 value 實際上就是這些是 value 的例子,是記住了說在這樣的例子底下,對這個詞的這個預測的時候,它會輸出什麼樣的值?是以也就是說它實際上是讓不同的層次的這個神經網絡有transformer,然後根據你輸入的上下文,然後共同判斷一下大家下一個那個詞會是啥。但是這個判斷不是一個人決定的,不是一層決定的,而是讓這 100 多層甚至更高的層同時來決定。是以具有這樣的能力就使得它具有非常強的精準預測一個詞的能力。

但是光有這個還不夠,跟我們剛才講的那個instruction,還有思維鍊這些東西聯系起來,這個就要涉及到一個叫做情境學習的概念,因為在情境學習裡實際上是通過舉一些例子,讓模型快速的生成某一方面的能力。比如說這裡面有一個例子,我們讓他首先學習一些名人的這個生平事迹,比如說這是一個愛因斯坦的一個簡介,愛因斯坦是一個德國的什麼理論實體學家,他做過什麼什麼偉大的工作,是以通過這個他記住了一個概念,愛因斯坦跟這堆詞是有關系的。然後比如說同時他也記住了甘地、居裡夫人等等這些相應的詞。然後這時候你來教他,比如說愛因斯坦是德國人,甘地是聖雄,甘地是印度人,然後下一個就讓他回答居裡夫人是誰,他就通過這個例子他就能判斷出來。

為什麼呢?因為前面的語言模型我們知道它具有很強的預測能力,它可以把這個通過概念上下文進行比對,然後實際上通過例子來說,就是把這些概念更進一步的連接配接起來,使得它能夠根據某種特定的任務,然後去選取那些跟這個任務最有關的那些概念,然後來做小樣本。的推理。我們這個叫做,在我們的學術語裡面把它叫做貝葉斯的網絡,因為貝葉斯網絡對資料要求很低,但是過去我們訓練一個貝葉斯網絡是要人設計的,但是在大語言模型裡面它是可以動态生成的,通過這個它很強的這個文字的剛才講的這幾種能力來根據不同的任務來動态的元件自己的這個貝斯網絡。

講到這我們可以把這些資訊技術點糅合在一起來,給這個湧現機頂做一個大概的分析。

首先第一個通過海量的語料,這個語言模型在各個層面上都得到了足夠多的概念模式。第二個通過概念模式它可以實作文字接龍,這跟人的對話方式是一樣。第三個就是剛才講的通過這種 instruction 的這個情景學習,他把這些概念組建成了一個動态的網絡,根據所需要的任務能夠激活這些網絡,然後達到人所期望的能力,就是一個非常強的泛化能力。當然為什麼現在可能要到百億級别才能湧現出來?主要的原因就是這裡都存在一個資訊瓶頸問題,就是你要想讓他根據這樣的任務,你隻給少量的資訊,就是例子,它能夠組建,你首先要把足夠多的概念給記住,對吧?這概念模式要足夠多,如果不夠多沒有超過那個門檻值,那麼你在即使給施少量的這個instruction,它也是沒辦法完成剛才講的這個邏輯推理過程的。是以為什麼?這也就是為什麼要訓練這麼大的網絡的原因。

将來這裡頭有一個很有意思的問題,就是這樣龐大的網絡如果用在比如說我們的A部門,用到B部門,對吧?或者用到其他的C部門裡面,是不是需要記住這些全量的概念資訊,或者說換而言之,我怎麼樣從一個大的網絡裡面将來給它縮小、蒸餾出一個面向業務的這個資訊,而不丢失所需要的這些概念網絡?這個就是一個現在很多人正在研究的問題,可能需要通過更高超的這個模型的,像蒸餾、壓縮、剪枝的技術,然後再根據業務場景去識别出哪些概念模式是不可缺的,然後要保留這部分概念,而讓這個模型逐漸忘掉那些可能無關的,因為他記的東西太多了,實際上有一部分肯定是沒用的。

怎麼樣忘掉這些,然後就把那忘掉部分給它删掉,這樣來壓縮模型的規模,使得我們最後這樣的一個,比如說中小尺度的規模的模型能夠适用于我們業務的需求,那麼實際上大語言模型咱們前面講了它很多經驗的地方,但是它還存在幻覺,這個幻覺的原因是什麼啊?那這裡頭也舉了一些例子,比如說這大,這都是大語言模型裡面出現一些典型的例子,比如說單複數不一緻,比如說這地方主語是個kiss,這是個複數,本來應該用are,還用那個is,還有這個數算錯了。

這個大家都常見,在很多那個新聞報道裡都有,比如說這個地方這個概念錯誤,他說這個獎杯放不到這我的一皮箱裡面,因為這獎杯太小了,這顯然是一個自我沖突的陳述。那還有這個指代錯誤,比如說本來是一個女的she,上面寫的是 she sister,下面卻出現了 he指代的,發現了這個變化不一緻,是以這些其實都是相當于模型裡面經常犯的。那麼在 ChatGPT 發表以後,其實在 GPT 4 對這些問題做了進一步的改進,有所改觀,但是仍然不能完全避免。這個原因其實是也很好了解,因為這個現在的語言模型重點是實作了這個語言方面的人腦語言方面的功能,那麼它的認知能力是因為我們大量的認知的載體是在語言上,是以通過外溢的效應使得它也具備了一定的認知分析推理能力。但是從根本上說這部分還是語言功能,而人腦内部除了語言隻占腦區的一部分,隻是一個腦區,它還有很多其他部分的東西,包括像邏輯推理、記錄世界知識這個情境意圖這些地方,在腦神經研究表明它不在那個語言腦區裡面,是以那麼我們目前的語言能力對吧?雖然已經很強了,但是并不能覆寫人的所有能力,是以出現這樣那樣的不足也是很容易了解的。那這裡頭可以舉一個也是這個研究的一些很有趣的例子。

大家可以看到在邏輯推理方面,在這個這是 GPT 3 它表現出來的一些很有意思的不足。比如說有一個很荒謬的場景,就是讓告訴語言模型說你怎麼把這個你的沙發搬到你們家房頂上,那開始問 GPT 3 GPT3 就是說我怎麼辦?我要找一個很好的梯子,是吧?再找一個力氣很大的朋友幫我一塊搬,如果是人的話就這個人反正是就可以,就說我租一個力量很大的精靈,然後幫我搬好。這是第一個,這個看來人跟機器說的差不多,那看第二個就是說限制這些條件,就是你要搬這個你沙發到房頂,但是不讓你用滑輪。那這時候 GPT 3 就是說提供的一個概念,就是我把這個沙發用繩子捆上,然後連到我車上,是以這時候他答的就不太好了。那人怎麼回答?就是說我要搞個大調車,然後通過大調車調到房頂上去,是以人明顯比他答的要好。如果你再施加這個邏輯的一些限制條件,不能用各種工具的話,吊車也不讓用,梯子也不讓用,那這個 GPT 3 你看就亂說了,他說就要把沙發給它 p 成好幾塊,然後把那個沙發底從窗戶裡塞進去,就是胡亂編造一些東西,那人就是還可以想出别的招來。是以你可以看出來,這個實際上當你設計例子的時候,你要差別人跟機器還是比較容易的,就是你把這個推理的要求條件越變難的時候,你會發現他就想不出來了,他就開始亂造了。

是以這種幻覺實際上是大語言模型就是很難避免的,而且語言模型還會發現它其實對這個模式統計模式非常依賴。比如說我們在研究表明裡頭,你可以插入一些特定的模式,比如說标點符号或者是數字系列,可以徹底把它搞亂,把它腦子給攪糊,因為它這個這些模式進去以後,它可能會産生一些你意想不到的結果,根本就弄不對的結果。是以這也就引發了一個新的學問,叫做提示攻擊,就是怎麼樣寫一個,寫些提示,把這個語言的一些後門、一些弱點給它揭露出來,這變成了一個新的研究方向。另外剛才講的這個它的推理能力、事實性錯誤還是廣泛存在的。而且作為一個這個語言模型,實際上你可以想到人其實在學習語言的時候,并不像他一樣要把世界上所有的東西都收集齊了來學,人其實從國小習人都是少量的資料,逐漸的我們就可以學習,是以在語言模型方面還有相當多的可以進一步改進的地方,那改進的方法就是要進入子產品化的設計,那現在已經有很多研究工作在這麼做了,把這個邏輯推理、世界知識、情境這些變成不同的子產品和語言的子產品進行一個結合,同時對于更為豐富的認知的這樣的能力。因為它本身現在已經具有了一定的類似人的能力,就需要建設計更精巧的評測的方法和評測的資料集。是以這也是能夠對目前我們國内正在不斷湧現的大煉大模型的生态進行一個更好的引導。

因為在沒有一個非常客觀的、全面的,就像對于人策智商的這樣的 Benchmark 情況下,那每個商家都可以造一個模型,然後舉幾個好例子,就是說我已經具備了這樣的能力,但實際上可能拿出來就不是這麼回事,是以這将來這些對這個語言模型的評測是要标準化的。

其實在我們國家甚至在國際上都有現在的标準化的工作在做。這個标準的評測就比過去的那個模型、機器學習模型,包括一般的深度學習模型就更難一些,因為它實際上已經具備了一定的認知的能力以後,是以對這個 Benchmark 的設計就要從語料核心和認知結合語料語言學和這個認知心理學的很多方法,設計相應的一些這個評測任務。

另外就是語言模型的方法,它的内在的不足使得我們還需要用借鑒人工智能的一些其他方面的技術來進行進一步的補償和增強,最可以互補的就是符号主義裡面的知識圖譜,還有邏輯推理、認知這方面的東西。實際上這個對于語言模型來說,它隻是在認知模型裡面的語言功能。那麼剛才講的,比如說邏輯分析是吧?對于經驗的檢討,對于這個事實的驗證,對于輸出的糾錯,這些都可以設計不同的子產品和這個大語言模型連通的進行工作,使得它能夠更好的符合人類的需要。那事實上已經有這樣的工作在做,比如說這是一個比較去年的一個論文,也是國内做的,把這個我們前面講到了在 Transformer 的全連接配接 FF 層,實際上是有這些 key value,記錄了好多和事實有關的内容,是以當你有一個比較可靠的知識圖譜的情況下,你可以把知識圖譜的資訊的結果輸到這樣的語言模型裡面,對語言模型内部存在的這些 key 進行檢查,然後去發現那些錯誤的地方。

比如說這裡頭就舉了例子問這個某一個,比如說斯裡蘭卡的首都,對吧?發現它是錯誤輸出的,這時候就要根據語言模型内部的這個工作機理,找到這些錯誤的地方,然後去修正那一層這個它的權重,這樣的話可以進一步的減少将來出現一些事情錯誤的可能。是以要全面的解決這個問題,實際上是需要根據我們的業務的需要,比如說我們在某部門的内部系統下,我們本身在不同的領域已經有很好的資料積累,要把這些大的這個知識給更好的集合起來,然後和未來的語言模型形成一個有機的互動關系。一方面可以利用語言模型的方,幫助讓我們去自動的提取知識,包括實體關系的抽取,然後納入到我們的這個動态的這些知識庫裡面。同時需要用知識圖譜的讓實時檢查推理,對它起碼進行檢查,進行分析判斷,進行糾錯,以保證它的輸出能夠符合我們業務的需求。很多部門肯定好有很多問題需要咨詢,這咨詢通常現在的系統是現場的或者是有客服的,那麼 GPT 系統具有這樣的語言對話能力以後,他對這個征大的互動咨詢問答将來的自動化是非常有幫助的。但是他的問題還是剛才說的他有這個幻覺的問題,是以他有的時候會輸出一些錯誤的回答或者是不正确的事實。要保證我們的系統也能夠是有權威的答案,是以剛才講的怎樣利用知識的方法能夠對這種語言模型生成内容的準确性進行校驗,進行一個把關,這個就變成一個非常重要的技術問題和實踐當中要探索和摸索的地方。

報表的分析生成,我相信這個這種語言模型也是比較擅長的,也是能做的。那麼當然這個需要更多的這個和專業知識進行結合,要把知識給它變成這個instruction,設計成一個 prompt 的集合。現在大家知道做這個 promp 已經有可能變成一個新職業了,叫做這個提示工程師,本質上就是說要學會怎麼樣跟這種大語言模型打交道,能夠更好地誘導它産生相應的結果,并不是說你簡單的說話就可以達到自己喜歡的效果的,專業的領域需要有專門的人來設計相應的提示,而且對這個提示要進行專門的維護和管理。未來這個對提示可以說不亞于咱們對于像資訊系統的管理一樣。同時因為這樣的語言模型配合知識圖譜,它的認知分析、判斷能力、決策能力也會顯著增強,是以将來也可能輔助我們的對于這個的合規審查、風險分析判斷做一些更好的注意。

那麼我們知道大量的檔案其實它都是自然語言的,在司法部門,比如說在智能司法領域裡面,對于司法案中的歸檔,還有這些司法案件的快速的判決等等,已經在用人工智能在一些做一些輔助的手段,因為它本身具有了自然語言的很強的處理能力以後,甚至它具有這個常識推斷能力,你隻要把這你的這個裁決、判決這個邏輯寫出來,寫成這個思維鍊,他可能就能夠像真的像法官一樣做一些簡單的判斷。有相應的規範流程經驗在裡面,如果你給以相應的示例,把這個思維鍊寫清楚,可能他就能部分的甚至相當一部分像法官,稽核人員一樣做這個稽核。另外這各種行為可以用系統更好的自動的來分析和識辨,以便更早的發現各種風險,提高監管水準。這個 AI 的發展已經在迅速改變我們的生活,當時我們覺得是天際線冒出幾個點,就像那個太陽出生一樣,可能現在太陽已經出了一半,等它整個這個紅日當頭的時候,我們會徹底感受到我們這個世界正經真正進入到了智能化的時代。