最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會(huì)員登陸 & 注冊(cè)

大白話chatGPT內(nèi)部原理之Transformer

2023-02-16 12:45 作者:智慧科技工廠  | 我要投稿

上次我們只是大概性的了解了下chatGPT,今天我們的任務(wù)是更進(jìn)一步地去認(rèn)識(shí)它的內(nèi)部世界。

Transformer是chatGPT非常復(fù)雜的一個(gè)內(nèi)部結(jié)構(gòu),大話這個(gè)主題,真是有些挑戰(zhàn),至少要自己必須理解它。好在我在5年前,研習(xí)過(guò)另外一個(gè)語(yǔ)言模型Bert,這也是GOOGLE的重磅產(chǎn)品,它的內(nèi)部就是采用的Transformer,并且也是他們提出的Transformer。這次因?yàn)閏hatGPT的大火,我又將其研讀了一次。上次研讀時(shí),Transformer算是非常新的概念了,所能看的資源比較少,特別是國(guó)內(nèi)的資料更是少。這次研讀時(shí)發(fā)現(xiàn)國(guó)內(nèi)有了很多解讀,便是方便了很多。

估計(jì)你我都不是搞這個(gè)專業(yè)的,于是我盡可能地用大白話去說(shuō),你就將就著聽(tīng)咯。下面我們開(kāi)始。

Transforme是GOOGLE,這位IT界的領(lǐng)頭羊貢獻(xiàn)的語(yǔ)言模型,下面我引用百科的定義:

Transformer模型(直譯為“變換器”)是一種采用自注意力機(jī)制的深度學(xué)習(xí)模型,這一機(jī)制可以按輸入數(shù)據(jù)各部分重要性的不同而分配不同的權(quán)重。該模型主要用于自然語(yǔ)言處理(NLP)與計(jì)算機(jī)視覺(jué)(CV)領(lǐng)域。與循環(huán)神經(jīng)網(wǎng)絡(luò)(RNN)一樣,Transformer模型旨在處理自然語(yǔ)言等順序輸入數(shù)據(jù),可應(yīng)用于翻譯、文本摘要等任務(wù)。

重點(diǎn)的詞,我用紅色標(biāo)了出來(lái),下面的任務(wù)是讓我們先以最快的速度解決掉這幾個(gè)概念。


編輯切換為居中



首先,我們來(lái)看深度學(xué)習(xí)模型,正如上面的圖示,深度學(xué)習(xí)模型就是一個(gè)非常復(fù)雜的網(wǎng)絡(luò)結(jié)構(gòu),它將樣本輸入后經(jīng)過(guò)復(fù)雜的處理,然后去學(xué)習(xí)樣本的特征,再根據(jù)樣本的特征信息來(lái)識(shí)別新的文字或圖像。


編輯



然后,我們來(lái)看循環(huán)神經(jīng)網(wǎng)絡(luò)(RNN),它是神經(jīng)網(wǎng)絡(luò)中的一種。如上圖所示,它是一個(gè)順序結(jié)構(gòu),即一步一步地處理輸入的數(shù)據(jù)。用個(gè)表達(dá)式就可以如下圖所示:


編輯



即在當(dāng)前狀態(tài)下,有了新的輸入,產(chǎn)生新的狀態(tài)出來(lái)。正因?yàn)檫@種模型不能并行處理,所以非常不適合當(dāng)今訓(xùn)練大數(shù)據(jù)的需求。但它非常符合我們思維方式,如下面所示用來(lái)做翻譯時(shí)的場(chǎng)景,是不是非常符合我們內(nèi)心中的翻譯過(guò)程呢?


編輯切換為居中



還有兩處標(biāo)紅的概念,我們先不做解釋,等你看完了文章自然就明白了,之所以標(biāo)紅是因?yàn)樗鼈兙褪荰ransformer的特色,你需要在心中先記住它們。

下面我們將進(jìn)入Transformer的內(nèi)部來(lái)看個(gè)究竟,我們來(lái)看下面這張圖:


編輯



這張復(fù)雜的讓人不由得恐懼的圖,所示的就是Transformer的內(nèi)部。為了更加直觀一些,我們將它分成輸入,輸出,處理過(guò)程3個(gè)部分。

在輸入端,我們?cè)賮?lái)看下面這個(gè)圖:


編輯切換為居中


注意的是我們輸入的詞不是原樣送進(jìn)入處理的,首先要經(jīng)過(guò)編碼,編碼的過(guò)程就是上面的圖示,最終得到一個(gè)輸入矩陣。詞的Embedding是由某種預(yù)訓(xùn)練得到,主要是把單詞轉(zhuǎn)換成相應(yīng)的向量,比如:queen=king-man+woman。位置Embedding,GOOGLE采用了下面的公式得到:


編輯切換為居中


將單詞的詞 Embedding 和位置 Embedding 相加,就可以得到單詞的表示向量 x,x 就是 Transformer 的輸入。

在輸出端就是它的輸出了,如果是翻譯那就是翻譯后的結(jié)果,這沒(méi)有什么好說(shuō)的了。

下面的我們重點(diǎn)是處于中間的處理部分。首先我們將處理部分分成Encoder層和Decoder層??聪聢D:


編輯切換為居中


在Encoder層,輸入編碼器的文本數(shù)據(jù),在處理過(guò)程中帶上了全局信息,即上下文信息,這有助于關(guān)聯(lián)當(dāng)前詞和其他詞。

在Decoder層,被編碼的信息被層層解碼,通過(guò)聯(lián)系上下文,從詞庫(kù)中找到那個(gè)最高概率的翻譯詞出來(lái),這樣這個(gè)詞就被翻譯了。

注意這里給出的RNN的串行結(jié)構(gòu),實(shí)際中應(yīng)該是并行的,看下圖所示:


編輯切換為居中



現(xiàn)在我們將鏡頭再離中間處理部分進(jìn)一些,我們來(lái)看看它中間的那些部件??聪聢D:


編輯切換為居中


這是一個(gè)Encoder的內(nèi)部,它包含一個(gè)自注意力機(jī)制和一個(gè)前饋神經(jīng)網(wǎng)絡(luò)。

首先來(lái)看自注意力機(jī)制,看下圖:


編輯切換為居中


左邊是一個(gè)注意力機(jī)制,由邊是多頭注意力機(jī)制,在Transformer中是多頭的。我們先看單頭的,它其實(shí)就是一個(gè)公式,公式如下:


編輯


大體上解釋下上面的公式,Q,K,V是我們通過(guò)將詞的Embedding值與WQ,WK,WV相乘的結(jié)果,WQ,WK,WV則是我們要訓(xùn)練的參數(shù),原始值可以給個(gè)隨機(jī)數(shù)。如果忽略激活函數(shù) softmax 的話,那么事實(shí)上它就是三個(gè) n×dk,dk×m,m×dv 的矩陣相乘,最后的結(jié)果就是一個(gè) n×dv 的矩陣。即Q跟K的相關(guān)度,再乘上一個(gè)放大,縮小值V,這樣就會(huì)將相關(guān)的放大,不相關(guān)的縮小。softmax函數(shù)用來(lái)歸一化,就是讓它們統(tǒng)一到統(tǒng)一個(gè)維度和尺度,下面除去的那個(gè)值,則是起到調(diào)節(jié)作用,防止出格。比如,下面引自網(wǎng)絡(luò)的例子:


編輯切換為居中



編輯切換為居中



編輯切換為居中


首先,根據(jù)公式我們算出了Thinking這個(gè)詞跟自己和其他詞的相關(guān)度,最后將這些值相加,就得到了這個(gè)詞的自注意力值,即圖中的Z1。 上面是單頭的情況,如果是多頭,就如下所示的情況,跟上面相比只是多個(gè)幾個(gè)層而已,單個(gè)的自注意力機(jī)制是相同的。


編輯切換為居中


下面這個(gè)例子更加直觀的可以看出自注意力機(jī)制的作用,如下圖所示:


編輯


當(dāng)輸入The animal didn’t cross the street because it was too tired時(shí),我們想讓機(jī)器知道其中的it指代的是什么?從上圖中我們看到,模型通過(guò)自注意力機(jī)制,分析出了這里的it與The animal最為相關(guān),另外一個(gè)是tried,根據(jù)The animal跟it的屬性相同,就可以斷定it就是指代的The animal。上面展示的是8個(gè)自注意力機(jī)制的情況,通過(guò)每個(gè)自注意力機(jī)制的關(guān)注度不同,我們可以得到更多的維度,因?yàn)槊總€(gè)自注意力機(jī)制的權(quán)重矩陣是不同的。這樣我們的模型就具備了上下文相關(guān)的特性,讓模型的輸出內(nèi)容更為連貫。說(shuō)完了自注意力機(jī)制,剩下的內(nèi)容就是前饋神經(jīng)網(wǎng)絡(luò)了,它用來(lái)不斷地優(yōu)化我們訓(xùn)練的參數(shù),讓模型更智能。即,自注意力機(jī)制處理后的數(shù)據(jù)被送到前饋神經(jīng)網(wǎng)絡(luò)中,在這里評(píng)估我們的處理結(jié)果,根據(jù)評(píng)估結(jié)果,更新我們的參數(shù)。

最后,在Decoder端也具有這兩層,但是這兩層中間還插入了一個(gè) Encoder-Decoder Attention 層,這個(gè)層能幫助解碼器聚焦于輸入句子的相關(guān)部分。這篇文章省略了一些復(fù)雜的細(xì)節(jié),所以更適合我們用于了解Transformer,所分析的是17年由GOOGLE提供的論文內(nèi)容,不清楚如今的chatGPT是否有些改動(dòng),估計(jì)改動(dòng)不大吧。

參考文獻(xiàn):

《Attention Is All You Need》鏈接地址:https://arxiv.org/abs/1706.03762Transformer

模型詳解 - 簡(jiǎn)書(shū) (jianshu.com)

圖解Transformer(完整版)!- 騰訊云開(kāi)發(fā)者社區(qū)-騰訊云 (tencent.com)

一文讀懂「Attention is All You Need」| 附代碼實(shí)現(xiàn)-阿里云開(kāi)發(fā)者社區(qū) (aliyun.com)

The Illustrated Transformer – Jay Alammar – Visualizing machine learning one concept at a time. (jalammar.github.io)

大話chatGPT原理剖析之Transformermp.weixin.qq.com/s?__biz=Mzg5OTYxMTQzNw==&mid=2247483950&idx=1&sn=91fd3399d3ac7e68b55a9a6afd2cf5bc&chksm=c051ec6cf726657a16dfc231a9b53fb889bc202129901784e33f35c47ec9df74e91802238244#rd

今后這里將以游戲,游戲開(kāi)發(fā)相關(guān)的內(nèi)容呈現(xiàn)給大家。

其他技術(shù)文章您可以在

公號(hào):python自學(xué)炫酷編程?

中找到。

多謝大家這些年的支持!祝福您們!


大白話chatGPT內(nèi)部原理之Transformer的評(píng)論 (共 條)

分享到微博請(qǐng)遵守國(guó)家法律
龙川县| 大荔县| 治县。| 贺兰县| 巴南区| 雷山县| 贵港市| 新乡市| 水城县| 长沙市| 建德市| 永登县| 乌拉特前旗| 静乐县| 北流市| 肥乡县| 镇赉县| 连城县| 成安县| 德庆县| 甘洛县| 兖州市| 桂东县| 元江| 改则县| 忻州市| 靖安县| 泸西县| 郁南县| 高陵县| 连平县| 波密县| 中西区| 师宗县| 武陟县| 湟中县| 武宣县| 罗江县| 吉林省| 永善县| 马山县|