作者簡(jiǎn)介
Jane.Zhong是復(fù)睿微電子算法科學(xué)家,畢業(yè)于中科院高能物理所,曾就職于清華大學(xué)聯(lián)合研究所,先后擔(dān)任資深算法專(zhuān)家、系統(tǒng)架構(gòu)專(zhuān)家,長(zhǎng)期從事圖像算法和人工智能領(lǐng)域科學(xué)研究工作。
2022年是AIGC(AIGenerateContent)的元年,OpenAI的大型預(yù)研生成模型ChatGPT自去年底推出以來(lái)迅速火遍全球,敲代碼、寫(xiě)文章、高情商對(duì)話(huà),ChatGPT流利的語(yǔ)言能力讓人驚嘆。
有人說(shuō)ChatGPT顛覆了人們對(duì)聊天機(jī)器人的認(rèn)知,人工智障終于出人工智能的雛形。作為一個(gè)偉大的產(chǎn)品,ChatGPT到底有怎樣的突破創(chuàng)新呢?
Meta首席人工智能科學(xué)家LeCun認(rèn)為“就底層技術(shù)而言,ChatGPT 并沒(méi)有什么特別的創(chuàng)新,與其說(shuō) ChatGPT 是一個(gè)科學(xué)突破,不如說(shuō)它是一個(gè)像樣的工程實(shí)例?!?ChatGPT的底層技術(shù)依賴(lài)于兩個(gè)劃時(shí)代的技術(shù)Word2Vec和Transformer。
Word2Vec
“Word2Vec是一種基于神經(jīng)網(wǎng)絡(luò)的技術(shù),可以將文本中給的每一個(gè)單詞轉(zhuǎn)換成N維向量。它通過(guò)學(xué)習(xí)文本語(yǔ)料庫(kù)中不同單詞出現(xiàn)的上下文,把距離盡可能相近的單詞映射到一起,實(shí)現(xiàn)對(duì)文本的數(shù)字化表示”(此段文字來(lái)源于ChatGPT查詢(xún))。ChatGPT使用Word2Vec詞向量技術(shù)來(lái)做embedding,將文字轉(zhuǎn)換成數(shù)字向量。
圖中是一個(gè)Word2Vec embedding模塊,將文本轉(zhuǎn)換成768維向量(ChatGPT沿用GPT3,向量長(zhǎng)度為12288),然后相同維度的位置embedding(Position Embedding是為了位置的時(shí)序特點(diǎn)進(jìn)行建模)相加,輸出向量序列。
上圖是GPT針對(duì)不同單詞產(chǎn)生的數(shù)字向量,將文本向量化后,詞與詞之間就可以定量地去度量他們之間的關(guān)系,挖掘詞之間的聯(lián)系。
Transformer
“Transformer是一種用于自然語(yǔ)言處理(NLP)的深度學(xué)習(xí)技術(shù)。它基于注意力機(jī)制,主要通過(guò)將原始的輸入信息映射到另一個(gè)空間,來(lái)給出預(yù)測(cè)結(jié)果。
在自然語(yǔ)言處理中,Transformer模型可以幫助我們了解文本之間的關(guān)系,用來(lái)處理語(yǔ)言模型,做機(jī)器翻譯,文本分類(lèi)等”(此段文字來(lái)源于ChatGPT查詢(xún))。
ChatGPT將Word2Vec產(chǎn)生的向量序列輸入到Transformer網(wǎng)絡(luò)中,基于注意力機(jī)制查詢(xún)生成結(jié)果。ChatGPT采用Transformer的Decoder結(jié)構(gòu)。
上圖是Transformer整體架構(gòu)圖,Transformer模型中有幾個(gè)關(guān)鍵算子,第一個(gè)就是向量輸入后產(chǎn)生Q、K、V時(shí)經(jīng)過(guò)的權(quán)重矩陣WQ,WK,WV,權(quán)重矩陣的維度為向量長(zhǎng)度x向量長(zhǎng)度(GPT1向量長(zhǎng)度為768,ChatGPT向量長(zhǎng)度為12888)。
通常,矩陣與向量相乘完成的是一個(gè)空間到另外一個(gè)空間的轉(zhuǎn)換,例如,在3D坐標(biāo)系中,一個(gè)4x4矩陣可以對(duì)一個(gè)向量進(jìn)行XYZ三維空間變換。那么在Transformer中大型的權(quán)重矩陣(例如768x768矩陣)可以將輸入的文字向量(n x 768)在高維空間中做變換,使得在這個(gè)空間中,更容易找到文字之間的相關(guān)性。下圖是權(quán)重矩陣的一個(gè)示例。
第二個(gè)重要的算子就是Attention(注意力機(jī)制),注意力機(jī)制可以捕捉到長(zhǎng)距離向量之間的相關(guān)性(相隔較遠(yuǎn)的詞),注意力包括了兩個(gè)部分,一個(gè)是Masked Self-Attention,一個(gè)是Cross-Attention。
Masked是因?yàn)樵谧鰏elf-attention的時(shí)候decoder只會(huì)attend到它已經(jīng)產(chǎn)生出來(lái)的信息,self-attention的輸入和輸出個(gè)數(shù)一樣。Cross-attention將兩個(gè)相同維度的嵌入序列不對(duì)稱(chēng)地組合在一起,而其中一個(gè)序列用作查詢(xún)Q輸入,而另一個(gè)序列用作鍵K和值V輸入,因此Cross-attention可以生成任意長(zhǎng)度文字的輸出(輸入輸出向量長(zhǎng)度相同,向量的個(gè)數(shù)不同)。
在Attention機(jī)制中還有一個(gè)multi-head的attention,即把向量長(zhǎng)度裁剪成若干個(gè)向量(例如把向量長(zhǎng)度為768的文字向量分成8個(gè)head去做attention,那么每個(gè)head的向量長(zhǎng)度就是96),形成多個(gè)子空間,可以讓模型去關(guān)注不同方面的信息。
對(duì)ChatGPT底層技術(shù)有了初步了解后,我們可以一起看看涉及到的工程問(wèn)題。AI最主要的工程問(wèn)題就是數(shù)據(jù)和算力。
ChatGPT數(shù)據(jù)
OpenAI在開(kāi)發(fā)ChatGPT時(shí)使用了超過(guò)800萬(wàn)個(gè)標(biāo)注數(shù)據(jù),模型數(shù)據(jù)集分成六類(lèi),分別是維基百科、書(shū)籍、期刊、Reddit鏈接、Common Craw以及專(zhuān)門(mén)為任務(wù)設(shè)計(jì)的數(shù)據(jù)集。
ChatGPT數(shù)據(jù)集按照訓(xùn)練步驟來(lái)分可以分為SFT數(shù)據(jù)集(訓(xùn)練有監(jiān)督模型)、RM數(shù)據(jù)集(訓(xùn)練獎(jiǎng)勵(lì)模型)和PPO數(shù)據(jù)集(強(qiáng)化學(xué)習(xí)訓(xùn)練)。
ChatGPT 的模型參數(shù)量和訓(xùn)練數(shù)據(jù)量還沒(méi)有公開(kāi),但ChatGPT是基于GPT-3.5架構(gòu)開(kāi)發(fā)的,可以看到GPT-3的預(yù)訓(xùn)練數(shù)據(jù)有45TB,有人推測(cè)ChatGPT數(shù)據(jù)集規(guī)模在百T級(jí)別。
ChatGPT算力
不同于Bert采用Transformer編碼器(Encoder)結(jié)構(gòu),GPT采用Transformer解碼器(Decoder),其模型結(jié)構(gòu)如上圖右所示(其中Trm是一個(gè)Transformer結(jié)構(gòu))。
GPT系列模型包括GPT-1、GPT-2和GPT-3,模型層數(shù)、頭數(shù)和詞向量長(zhǎng)度越來(lái)越大,其中GPT-3是ChatGPT的前一代模型,模型結(jié)構(gòu)為96層、96注意頭、12888向量長(zhǎng)度的模型,可以完成1800種以上的任務(wù),參數(shù)量達(dá)到1750億。
GPT-3的訓(xùn)練使用了上萬(wàn)塊Nvidia V100 GPU和28.5萬(wàn)個(gè)CPU,總算力為3.14E+23FLOPS,僅訓(xùn)練成本就超過(guò)了1200萬(wàn)美元,訓(xùn)練時(shí)長(zhǎng)14.8天,訓(xùn)練的二氧化碳排放量約552噸。
ChatGPT基于GPT3.5架構(gòu)的模型參數(shù),訓(xùn)練成本和GPT-3同一數(shù)量級(jí)甚至更高。此外,ChatGPT的運(yùn)營(yíng)成本高,查詢(xún)成本遠(yuǎn)高于Google傳統(tǒng)搜索,Open AI的CEO山姆指出,調(diào)用運(yùn)行ChatGPT進(jìn)行聊天,每次回答問(wèn)題的成本約為幾美分。
ChatGPT距離商業(yè)落地還有很長(zhǎng)的路要走,有科學(xué)家對(duì)GPT-3.5進(jìn)行了心智理論測(cè)試,它的正確率逼近了人類(lèi)九歲孩子的成績(jī),這已經(jīng)是一個(gè)史無(wú)前例的成績(jī)。
在某種程度上ChatGPT的成長(zhǎng)歷程和人類(lèi)的大腦發(fā)育有一定的相似性,在幼兒階段增加神經(jīng)元數(shù)量(網(wǎng)絡(luò))并灌輸大量數(shù)據(jù)去訓(xùn)練,到了一定的知識(shí)積累就可以采取強(qiáng)化學(xué)習(xí)的方式去增強(qiáng)認(rèn)知。
不同的是在人類(lèi)的教育過(guò)程中我們會(huì)有一些規(guī)則去約束(14歲時(shí)神經(jīng)突觸的數(shù)量減少,但是認(rèn)知得到了大幅提升),而ChatGPT目前的神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)不可控,且有不確定性。
加州大學(xué)伯克利分校的Russell教授認(rèn)為,“我們目前不清楚ChatGPT的工作原理,也很可能無(wú)法弄清楚它們,這需要一些概念上的突破,而這樣的突破很難預(yù)測(cè)”,他認(rèn)為“構(gòu)建真正智能的系統(tǒng),我們應(yīng)當(dāng)更加關(guān)注數(shù)理邏輯和知識(shí)推理,我們需要將系統(tǒng)建立在我們了解的方法之上,這樣才能確保AI不會(huì)失控,擴(kuò)大規(guī)模不是通往智能的答案”。
參考文獻(xiàn)
https://writings.stephenwolfram.com/2023/02/what-is-chatgpt-doing-and-why-does-it-work/
'Training language models to follow instructions with human feedback.' *arXiv preprint arXiv:2203.02155* (2022). https://arxiv.org/pdf/2203.02155.pdf,Ouyang, Long, et al.
Patterson D, Gonzalez J, Le Q, et al. Carbon emissions and large neural network trainingJ. arXiv preprint arXiv:2104.10350, 2021
END