輕松客觀認(rèn)識大模型:二

這是我關(guān)于《輕松客觀認(rèn)識大模型系列》第二篇

五、什么是深度學(xué)習(xí)

深度學(xué)習(xí)可以在電路中加入電阻和門以外的元素,例如在電路的中間加入數(shù)學(xué)計(jì)算,將多個值相加或相乘后再向前傳遞電信號。但深度學(xué)習(xí)仍然使用相同的基本增量技術(shù)來猜測參數(shù)。

六、什么是語言模型

我們之前舉的汽車?yán)又?,我們試圖讓神經(jīng)網(wǎng)絡(luò)的行為與我們的數(shù)據(jù)一致。我們在詢問是否可以創(chuàng)建一個電路,以類似于司機(jī)在相似情況下操作汽車的方式來操縱汽車。我們可以用同樣的方式對待語言。我們可以查看人類編寫的文本,思考是否可以創(chuàng)建一個電路,產(chǎn)生一個看起來很像人類傾向于產(chǎn)生的單詞序列?,F(xiàn)在,當(dāng)我們看到單詞時,我們的傳感器就會觸發(fā),我們的輸出機(jī)制也是單詞。

我們在嘗試做什么?我們正在嘗試創(chuàng)建一個電路,給定一堆輸入單詞,猜測一個輸出單詞。例如:

“Once upon a __”

image.png

如果您不熟悉這個符號,不用擔(dān)心。這只是數(shù)學(xué)術(shù)語,意味著給定“once”,“upon”和“a”這些單詞,單詞“time”的概率(P)。我們希望一個好的語言模型比單詞“armadillo”產(chǎn)生更高的概率。

我們可以將其推廣到:

image.png

這句話的意思是計(jì)算在給定前面所有單詞(從第一個單詞到第n-1個單詞)的情況下,序列中第n個單詞出現(xiàn)的概率。但讓我們回到一點(diǎn)。想想那種有敲打臂的老式打字機(jī)。

image.png

除了不是每個字母都有一個不同的敲擊臂之外,我們?yōu)槊總€單詞配備一個敲擊器。如果英語有50,000個單詞,那么這是一個龐大的打字機(jī)!

不同于汽車的網(wǎng)絡(luò),想象一個類似的網(wǎng)絡(luò),除了我們電路的頂部有50,000個輸出連接到敲擊器臂,每個單詞對應(yīng)一個敲擊器。相應(yīng)地,我們將有50,000個傳感器,每個傳感器檢測不同輸入單詞的存在。因此,最終我們所做的是選擇一個電信號最強(qiáng)的敲擊臂,這就是填空的單詞。

現(xiàn)在,如果我想要制作一個簡單的電路,以輸入一個單詞并產(chǎn)生一個單詞輸出,我必須制作一個具有50,000個傳感器和50,000個輸出的電路(每個單詞一個)。我只需將每個傳感器連接到每個敲擊臂,總計(jì)需要 50,000 x 50,000 = 25億根導(dǎo)線。

[圖片上傳失敗...(image-7e5dd1-1684029919385)]

這真是一個龐大的網(wǎng)絡(luò)工程!

更糟糕的是,如果我想做“Once upon a ___”這個例子,我需要感應(yīng)到三個輸入位置的每個單詞。我需要 50,000 x 3 = 150,000 個傳感器。連接到 50,000 個打字臂,就需要 150,000 x 50,000 = 7.5 十億個電線。截至2023年,大多數(shù)大型語言模型可以輸入4,000個單詞,最大的可以輸入32,000個單詞。我的眼睛都要花了。

[圖片上傳失敗...(image-da809e-1684029919385)]

我們需要一些技巧來解決這個問題。我們將逐步進(jìn)行。

6.1 編碼器

我們要做的第一件事是將電路分為兩個電路,一個稱為編碼器,另一個稱為解碼器。我們的一個洞見是,許多單詞的意思大致相同。考慮以下短語:

The king sat on the ___
The queen sat on the ___
The princess sat on the ___
The regent sat on the ___

實(shí)際上,很多單詞的意思是差不多的。例如,“國王”,“女王”和“皇帝”都有關(guān)于皇室或權(quán)力的意思。因此,我們可以使用一個中間的東西(比如“皇權(quán)”)來表示這些單詞所代表的權(quán)力的概念。這樣,我們只需要考慮哪些單詞的意思是差不多的,然后決定給這個中間的東西(“皇權(quán)”)多少電信號能量。這就相當(dāng)于把所有的“皇權(quán)”相關(guān)的單詞都?xì)w到同一個類別里。這個過程就是編碼。

因此,我們要做的是建立一個電路,它將50,000個詞的傳感器映射到一些更小的輸出集中,例如256個而不是50,000個。而且,我們不僅能夠觸發(fā)一個打字臂,而且能夠同時觸發(fā)一堆打字臂。每個可能的打字臂組合都可以表示不同的概念(如“皇室”或“有盔甲的哺乳動物”)。這256個輸出將使我們能夠表示22?? = 1.15 x 10??個概念。實(shí)際上,還有更多的可能性,因?yàn)榫拖衿囀纠形覀兛梢詫x車部分按下,每個256個輸出不僅可以是1.0或0.0,還可以是它們之間的任何數(shù)字。因此,也許更好的比喻是所有256個打字臂都被按下,但每個打字臂按下的力度不同。

好的...以前每個單詞需要一個50,000個傳感器之一觸發(fā)。現(xiàn)在,我們已經(jīng)將一個觸發(fā)的傳感器和49,999個關(guān)閉的傳感器縮減到256個數(shù)字。因此,“king”可能是[0.1,0.0,0.9,...,0.4],“queen”可能是[0.1,0.1,0.9,...,0.4],它們幾乎相同。我將這些數(shù)字列表稱為編碼(也稱為隱藏狀態(tài),出于歷史原因,但我不想解釋這一點(diǎn),因此我們將堅(jiān)持使用編碼)。我們稱將50,000個傳感器壓縮為256個輸出的電路為編碼器。它看起來像這樣:

[圖片上傳失敗...(image-b86d1c-1684029919385)]

6.2 解碼器

但是編碼器并不能告訴我們下一個單詞應(yīng)該是什么。因此,我們將編碼器與解碼器網(wǎng)絡(luò)配對。解碼器是另一個電路,它接受編碼所需的256個數(shù)字,并激活原始的50,000個撞擊臂之一,以產(chǎn)生下一個單詞。然后,我們將選擇輸出電流最高的單詞。下面是解碼器的示意圖:

[圖片上傳失敗...(image-ccec0f-1684029919385)]

6.3 編碼器和解碼器一起使用

這是編碼器和解碼器一起工作形成的一個大型神經(jīng)網(wǎng)絡(luò):

image.png

順便提一句,對于單詞輸入到單詞輸出的編碼,只需要 (50,000 x 256) x 2 = 25,600萬個參數(shù)??雌饋硇Ч懿诲e。

這個例子是針對一個單詞輸入和一個單詞輸出的情況,如果我們想讀取n個單詞,那么輸入就是50,000 x n,編碼輸出就是256 x n。

但是為什么會起作用呢?通過強(qiáng)制使50,000個單詞適合一小組數(shù)字,我們迫使網(wǎng)絡(luò)做出妥協(xié)并將可能觸發(fā)相同輸出猜測的單詞組合在一起。這很像文件壓縮。當(dāng)您壓縮文本文檔時,會得到一個不可讀的較小文檔。但是您可以解壓文檔并恢復(fù)原始可讀文本。這是因?yàn)閴嚎s程序使用簡寫符號替換某些單詞模式。然后在解壓縮時,它知道該用哪個文本來替換簡寫符號。我們的編碼器和解碼器電路學(xué)習(xí)了一種電阻器和門的配置,可以對單詞進(jìn)行壓縮和解壓縮。

6.4 自我監(jiān)督

我們怎么知道每個單詞的編碼最好的配置是什么?換句話說,我們怎么知道“king”和“queen”的編碼應(yīng)該相似而不是與“armadillo”相似呢?

想象一下,有一個編碼器-解碼器網(wǎng)絡(luò),應(yīng)該輸入一個單詞(50,000個傳感器)并產(chǎn)生完全相同的單詞作為輸出。這個做法不是很好,但對于接下來要講的內(nèi)容非常有教育意義。

[圖片上傳失敗...(image-6d8cd0-1684029919385)]

輸入單詞“king”,一個傳感器會發(fā)送電信號通過編碼器,部分激活256個編碼中的值。如果編碼正確,解碼器就會將最高電信號發(fā)送給相同的單詞“king”。很簡單吧?但不要這么快下結(jié)論。我同樣可能會看到擁有最高激活能量的是“armadillo”這個詞的撞擊臂。假設(shè)“king”的撞擊臂得到0.051的電信號,而“armadillo”的撞擊臂得到0.23的電信號。實(shí)際上,我甚至不關(guān)心“armadillo”的值是多少。我只需要看“king”的輸出能量,就知道它不是1.0。1.0和0.051之間的差異是誤差(也稱為損失),我可以使用反向傳播對解碼器和編碼器進(jìn)行一些改變,以便在下次看到單詞“king”時生成略微不同的編碼。

我們對所有的單詞都這樣做。編碼器必須做出妥協(xié),因?yàn)?256 遠(yuǎn)遠(yuǎn)小于 50,000。也就是說,有些單詞在中間的激活能量組合上將不得不使用相同的編碼。因此,當(dāng)有選擇的時候,編碼器會希望“king”和“queen”的編碼幾乎相同,而“armadillo”的編碼則非常不同。這將使解碼器更容易通過只查看 256 個編碼值來猜測單詞。如果解碼器看到了一組特定的 256 個值,并猜測“king”的概率是 0.43,而“queen”的概率是 0.42,只要“king”和“queen”獲得了最高的電信號,而其他 49,998 個觸發(fā)器的數(shù)字都比它們小,我們就會滿意。換句話說,如果神經(jīng)網(wǎng)絡(luò)在“king”和“queen”之間感到困惑,我們可能會更容忍,而如果網(wǎng)絡(luò)在“king”和“armadillo”之間感到困惑,我們就不能容忍了。

我們說神經(jīng)網(wǎng)絡(luò)是自我監(jiān)督的,因?yàn)榕c汽車示例不同,我們不需要收集單獨(dú)的數(shù)據(jù)來測試輸出。我們只需將輸出與輸入進(jìn)行比較,而不需要單獨(dú)為輸入和輸出收集數(shù)據(jù)。

6.5 掩碼語言模型

如果上面的思想實(shí)驗(yàn)看起來有些簡單,那是因?yàn)樗菢?gòu)建掩碼語言模型的基石。掩碼語言模型的想法是輸入一系列單詞并生成一系列單詞,其中輸入和輸出中的一個單詞被遮擋掉了。

The [MASK] sat on the throne.

這個網(wǎng)絡(luò)要猜測所有的單詞,但是猜測未被覆蓋的單詞很容易。我們實(shí)際上只關(guān)心網(wǎng)絡(luò)對遮擋單詞的猜測。也就是說,對于輸出中的每個單詞,我們都有50,000個打擊臂。我們只看覆蓋單詞的這些打擊臂。

image.png

我們可以移動掩碼并讓網(wǎng)絡(luò)在不同位置猜測不同的單詞。

一種特殊類型的掩碼語言模型僅在末尾有掩碼。這被稱為生成模型,因?yàn)樗聹y的掩碼始終是序列中的下一個單詞,這相當(dāng)于生成下一個單詞,就好像下一個單詞不存在一樣。就像這樣:

The [MASK]
The queen [MASK]
The queen sat [MASK]
The queen sat on [MASK]
The queen sat on the [MASK]

我們也稱之為自回歸模型?;貧w這個詞聽起來不太好,但回歸只是試圖理解事物之間的關(guān)系,比如輸入的單詞和應(yīng)該輸出的單詞之間的關(guān)系。Auto意味著“自己”。自回歸模型是自我預(yù)測的。它預(yù)測一個單詞,然后使用這個單詞來預(yù)測下一個單詞,以此類推。這對后面的一些有趣的推論有一定的影響,我們稍后會回到這個問題。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容