大模型的前世今生

0 評論 1684 瀏覽 13 收藏 23 分鐘

在本文中,通過深入淺出的方式,為讀者提供了對大模型技術全面而深入的理解,同時也強調(diào)了理性看待大模型的重要性。

為什么要聊這個話題?

原因有三:

  1. 讀懂歷史才能預測未來。我們了解一個新事物最快速的方式就是從它歷史出發(fā),更能清楚的知道它從哪里來要到哪里去;
  2. 知其然更要知其所以然。了解大模型生成能力背后的運作方式,才能更好地結合我們自有的一些業(yè)務來提升效率。
  3. 祛魅。相信我們大家也都看過很多鼓吹大模型的一些文章,當然也有一些diss大模型的一些文章。知道它的原理、流程之后,我們就更能夠理解大模型的能力邊界,更理性地看待這一場大模型的風波。

一、大模型之前的人工智能——弱人工智能(Weak AI)

在大模型之前的人工智能,屬于弱人工智能,你可以把它理解為它就是一個專才,它是服務于某個專業(yè)領域的一個技術人員。即使是強者如阿爾法狗,它是在這個地球上最強的一個下圍棋的智能體。但是它除了圍棋之外,其他領域依舊是一個小白。

但大模型是一個通才。因為它接受了大量的各種領域的數(shù)據(jù)訓練,像語文、數(shù)學、圍棋等等,ChatGPT也在兩個月的時間突破了一億的用戶,也超過了之前tiktok 9個月創(chuàng)下的記錄。

那為什么它在這個時間點橫空出世呢?以下是三個必不可少的一個因素,而且這三個因素也是訓練大模型的一些核心要素,也就是數(shù)據(jù)、算法以及算力。

數(shù)據(jù)的話貫徹了字節(jié)的大力出奇跡,把模型的參數(shù)量還有訓練數(shù)據(jù)搞的無限量大,然后就出現(xiàn)了某種程度上的智能,也叫涌現(xiàn),也就是他可以執(zhí)行他之前沒有預料到的一些任務;

第二個就是算法,目前國際上以及國內(nèi)的主流的大模型都是transformer作為底層的模型架構;

第三個就是算力,有一篇論文就是在講訓練大模型的時候,用GPU來訓練大模型會比CPU訓練的效率更好。所以我們就開始用GPU來進行訓練大模型,后來也造就了英偉達目前兩兆億美元的市值。

二、大模型是通往強人工智能(strong AI)/通用人工智能(AGI)之路嗎?

剛才說到像大模型這樣的通才,更符合我們對于人工智能的想象,我們的想象可能就像是鋼鐵俠里面的他的助手賈維斯一樣,他是跟我們?nèi)丝梢赃@種這種可以自在流暢的一個交流,而不是像siri或小愛同學,某種程度上它是有點像人工智障。因為它是這種關鍵詞的一個匹配,觸發(fā)到某個關鍵詞,它就會有對應的回復。我們想象中的這種人工智能,我們也把它稱為強人工智能(strong AI),或者就是通用人工智能(AGI)。

AGI時代的大模型是一個通才,是一個無所不知的一個一種能力,它也是AGI時代機器人的大腦,給它裝上四肢后,他就是一個機器人。所以大模型也帶火了另一個產(chǎn)業(yè),就叫具身智能(Embodied AI),這個賽道我也很看好。

三、大語言模型與 AGI 的關系

那大模型和人工智能之間是什么樣的關系呢?

通用人工智能是我們在追尋的一個目標,機器學習和深度學習,它都是我們想去實現(xiàn)這個目標的一個手段。

生成式人工智能其實是通用人工智能的目標之一,但是因為目前我們的生成式人工智能都是用深度學習這樣的技術來去實現(xiàn)的,所以我們把它歸到深度學習里面。大模型是生成式人工智能的一個技術之一。

因為大語言模型是目前非常多,像主流的國內(nèi)主流的像文心言、kimi、通義千問,國際上ChatGPT、llama、gemini,但他們的原理都是很類似的,這里講解主要用ChatGPT作為例子。

那什么是機器學習呢?我們剛才有提到機器學習和深度學習,機器學習其實就是在去再去從一堆資料當中去找一個方程式。相信我們大家都會解這樣的一個方程式:y=ax+b

給定X1多少,Y1是多少,然后X2是多少,Y2是多少,那我們就可以把這個未知數(shù)a和b給求出來,也就是兩個已知條件,兩個未知數(shù)。那時候我們叫未知數(shù)a、b,在機器學習當中他們就叫參數(shù)。ChatGPT中介紹的那種參數(shù),千億級別的或者10億級別的,其實就是這邊的一個參數(shù)量,目前普遍的定義是大于10億的參數(shù)量才叫大語言模型,小于10億的它就不叫大語言模型。有了這樣的一組參數(shù)之后,我們給他一個輸入,他是就會有一個輸出了,這也就是ChatGPT在做事情。

四、ChatGPT在做的事:預測下一個字的文字接龍游戲

那ChatGPT它其實就是一個大于10億參數(shù)量的方程式。給模型一批訓練資料,從這些訓練資料去把數(shù)10億參數(shù)給找出來,這個過程就叫訓練,或者我們要叫學習過程。訓練好之后,給它一個輸入,它有一個輸出,這個使用的過程叫推理,或者叫測試的階段。

我們在買GPU的時候,廠商就會介紹說,這樣的GPU是適合訓練階段的,還是適合推理階段的??梢岳斫鉃橥评砭褪俏覀冎苯邮褂眠@樣的一個大語言模型,訓練的階段就是要把它訓練成我們想要的這種大語言模型的樣子。

ChatGPT在做的事情就是預測下一個字的文字接龍的游戲。比如說一個輸入(比如:保護地)給它,在其內(nèi)部有多個可以選擇的選項以及概率,這時候就擲骰子,看看他最有可能出現(xiàn)哪一個。像圖片中概率最高“球”,那它就是50%,它就大概率用輸出球。所以ChatGPT的輸出是那種流式的那種結構,一個字一個字的吐出來,它其實就是在預測下一個字。

五、大模型訓練三階段

大模型訓練就是分為三個階段,第一個就是預訓練,ChatGPT的P就是pretrain,就是預訓練的意思。這個階段可以理解為是ChatGPT它使用網(wǎng)絡上面的大量的數(shù)據(jù)自己來學習,是積累實力的過程。第二個階段就是微調(diào)的階段,微調(diào)成我們?nèi)祟愊胍蔀榈臉幼?,第三個階段是人類反饋強化學習。

1. 預訓練(Pre-train)

我們再依次來簡單介紹一下這三個階段。第一個階段預訓練,參數(shù)量可以理解為模型的復雜度,也可以理解為這個模型的它的一個天資。ChatGPT 1的參數(shù)量是117M,大概在一億多一點。其實也算不上大語言模型,因為超過10億才算大語言模型。

訓練數(shù)據(jù)量就是給到他,讓他去把這個參數(shù)量給計算出來的,就是用來拿文字學習文字接龍的一個資料量,也就是他后天的努力。在ChatGPT 1這個時候,只有7000本書的量。

高手的話其實就是有非常高的天資,也就是說“大力出奇跡”的參數(shù)量要大,且它的訓練數(shù)據(jù)比較大時,那就有可能會出現(xiàn)非常牛的一些大語言模型。

對比ChatGPT 1到3,它的一個訓練量和和參數(shù)量。2018年的時候,1億多個參數(shù)量,2019年的ChatGPT 2就變成了15個億多的一個參數(shù)量,這個階段已經(jīng)算是大語言模型的一個陣列了,到了ChatGPT 3的時候,一下擴充到了一百多倍,也就是1750億個參數(shù)的量,訓練數(shù)據(jù)也達到了580G。

2. 找參數(shù)的過程——最佳化(optimization)

剛才講到就是再去算那些未知數(shù),也就是說算參數(shù)的這樣一個過程,這個過程叫最佳化。也就是這些訓練資料丟給大模型,然后它會自動會計算出這些參數(shù)。計算參數(shù)其實還有一個關鍵因素就是叫超參數(shù)。這個超參數(shù)是可以輔助他找參數(shù)的一個計算,可以理解為你要寫一篇作文的話,我們給你一個范例這種感覺。

但是在算這個參數(shù)的時候,他是有可能失敗的。那什么叫失敗呢?失敗的話也就是說我們給他一個輸入,他沒有符合我們的訓練資料,或者是沒有符合我們的測試集。比如說我們現(xiàn)在給他輸入“床前明月光”,那他下面輸入它不是“疑是地上霜”,那這樣的話他參數(shù)就找錯了,對不對?那參數(shù)找錯怎么辦呢?我們就要重新再來一遍,要調(diào)整這個超參數(shù),讓他重新再把這些訓練資料再丟給他,讓他重新再找一遍參數(shù)。

這個過程它是非常痛苦的,需要去調(diào)參數(shù),重新再去跑這個流程。所以在這個流程當中,它是需要非常消耗算力的,算力其實就硬件資源就是GPU。這也就是為什么英偉達顯卡賣那么貴,英偉達的市值那么高的一個其中很大的原因。

3. 訓練三階段之指令微調(diào)(instruction fine-turning)

在第二個階段就是指令微調(diào),這個部分其實就是人工去標注一些數(shù)據(jù),去給到模型進行訓練。你可以看到它標注的大概的流程就是用戶的問題及產(chǎn)出的答案,由于這個需要人力的介入,也叫監(jiān)督學習。

這個階段也是要進行找參數(shù)的,所以也是要有這樣最佳化找參數(shù)的過程。預訓練時候的參考參數(shù)它是叫超參數(shù),參考參數(shù)它可以直接用預訓練結束時的參數(shù),所以只做了預訓練的模型也叫基座模型,在此開源模型基礎上再做微調(diào),比如現(xiàn)在我們國內(nèi)一般就調(diào)通義千問了的開源的接口去做的微調(diào)訓練模型。借助于預訓練基座模型的參數(shù)做的微調(diào),參數(shù)不會和第一階段的參數(shù)差太多,所以也是這個階段叫微調(diào)的其中的一個原因。

業(yè)界常用的一個微調(diào)手段是Laura,舉一個例子來講,如果我們現(xiàn)在想要ChatGPT去寫一個公文的風格的一篇文章,那其實他的輸出的這種形式很大程度上是要取決于他之前的訓練數(shù)據(jù)是怎樣的,但是他訓練的數(shù)據(jù)跟我想要的,這時候就想對他進行微調(diào)。就是人工標注數(shù)據(jù)對,給他輸入是怎么樣的,輸出是怎么樣子。微調(diào)后產(chǎn)出的文章,就會符合具體的業(yè)務場景。

這個在底層的原理就是對于原本的這個參數(shù)不改變,只不過是在這個參數(shù)的基礎上再去加一些參數(shù)。所以它的好處就是第一個減少了運算量。從而就不需要那么大的一個算力支出;第二個就是新的參數(shù)跟初始參數(shù)是類似的,因為它是在原本的基礎上再加的,所以就保證模型的質(zhì)量就不會太差。

4. 人類反饋強化學習(IReinforcement Learning from Human Feedback, RLHF)

模型訓練的最后一個階段,也就是人類反饋的強化學習,我們也稱之為RLHF。之前都是相當于是給一個輸入和輸出的一個過程,RLHF是輸出結果的對比。它的一個原理就是問答結果概率的提升或下降,比如說一個問題是中國最美的城市在哪?一個上海一個北京。你如果給上海點了點贊,那他以后就會提高輸出上海的一個概率,然后從而降低北京的輸出的這樣的一個概率,這就是它的一個最基本的一個原理。

在ChatGPT中也可以找到這樣的一個入口,相當于我們每個人也為ChatGPT做這樣的一個步驟。比如說你輸入:中國最美城市,然后點擊重新生成。在第二次生成的一個回答當中就會有這樣的一個入口是詢問你我現(xiàn)在這個回答是相較于第一個回答是更好了,更差了還是一樣?那你這個如果做出反饋的話,你這筆數(shù)據(jù)就會給ChatGPT去做第三步RLHF。

5. 訓練三階段對比

再對比一下這三個階段。第一個階段就是預訓練,第二個階段就是微調(diào),第三個階段也就是RLHF。在第一個階段我們也稱之為訓練基座模型,第二階段和第三階段我們稱之為對齊。那么對齊的是什么?也就是我們?nèi)祟惖囊粋€需求,以及我們?nèi)祟惖囊恍┢谩?/p>

同時他的訓練數(shù)據(jù)上面也會有略有一些區(qū)別,第一個階段他訓練數(shù)據(jù)就是我在網(wǎng)絡上面能抓到什么樣的資料,然后都都丟進去掉。所以他是自己在學習的,是self supervisor learning自監(jiān)督的一個學習;第二個階段它的一個輸入輸出的資料是有這種user和AI這種標識符的,它是由人類進行一個介入的一個學習的,所以叫監(jiān)督學習;第三個階段它其實是這個回答的一個對比,他就是算是一個增強式學習,哪個回答更好一點,哪個回答更差一點這樣子。

六、Chatgpt可以做什么?

我們訓練好之后,ChatGPT可以用來做什么?我們把這個問題丟給ChatGPT,可以看他的回答一下。然后他的回答是他覺得他自己的核心能力有對話信息檢索、文本理解,像這個圖片生成,代碼編寫等等。

Chatgpt能做挺多的,我覺得它比較牛的一些功能是,第一個是編程。編程可能不僅僅是把如何編的給你展示出來,更重要是它是有集成一個python的一個編輯器。然后是可以直接直接去把這個代碼給編譯出來,然后去把最終結果也生成出來。當然你也可以通過寫代碼形式去生成一些圖之類的。

然后第二個就是通過prompt的一些角色扮演。比如我們就他預設,他是一個面試的一個專家。然后我們把面試的一些文字的記錄丟給他,然后他就會根據(jù)我們這些記錄去給我們一些面試相關的一些建議。然后通過這種方式來進行面試復盤,這個方式也是非常有效的。

還有非常多其他的功能,比如說像通過ChatGPT可以生成文字云,然后也可以總結文章的重點,寫工作總結,繪制圖表,分類新聞等。

分類新聞這一點其實也挺厲害的,這個點是我們之現(xiàn)在接觸的一個業(yè)務上面,你給它預設幾個新聞類別,我們現(xiàn)在的文章我們可能有八卦、財經(jīng)、政治等等,然后你現(xiàn)在就是輸入一篇文章,說去幫我根據(jù)以上我的一些所定義的分類,把這篇這個新聞給我一個分類,它屬于哪一類。然后他就會跟你講,這個就直接把之前那個需要一些開發(fā)的一些流程就給就給省略掉了。

七、ChatGPT的缺陷

ChatGPT也不是萬能的,它也有它自己的一些缺陷:

  1. 幻覺(胡說八道的能力)。最大的缺陷我認為是他的幻覺,也就是胡說八道的能力。其實你了解ChatGPT的原理,你就可以理解為它為什么會有這樣的一個胡說八道的。因為它本質(zhì)上它是在預測下一個字的文字接龍游戲,他是在做這樣的一個事情,所以它是不保證下一個,不保證我們整體的一個真實性的。我只保證我下一個字的一個概情況,對不對?所以就出現(xiàn)像律師他用ChatGPT來寫,就是有一些假的一些案例。那像馬斯克也說,我們需要的是說真話的GPT。
  2. 過時的數(shù)據(jù)。訓練是有時間差的,ChatGPT3.5的數(shù)據(jù)只更新到2022年11月份,到現(xiàn)在基本上兩年的gap,當然這個部分也可以通過一些聯(lián)網(wǎng),RAG知識庫的一些方式來部分的解決,我覺得聯(lián)網(wǎng)這部分kimi做的挺好的。
  3. 有限的上下文窗口。ChatGPT3.5的上下文只支持大概3000個詞的信息,也就是說你跟他聊著天,我們之前聊天信息突然忘記了,他是一個健忘的朋友或者助手。

當然,AI一天,人間十年,假以時日,以上三點缺陷我相信在未來的某個時間點,它都可以一定程度上進行突破!

本文由人人都是產(chǎn)品經(jīng)理作者【圈圈】,微信公眾號:【lovepm】,原創(chuàng)/授權 發(fā)布于人人都是產(chǎn)品經(jīng)理,未經(jīng)許可,禁止轉(zhuǎn)載。

題圖來自Unsplash,基于 CC0 協(xié)議。

更多精彩內(nèi)容,請關注人人都是產(chǎn)品經(jīng)理微信公眾號或下載App
評論
評論請登錄
  1. 目前還沒評論,等你發(fā)揮!