九色国产,午夜在线视频,新黄色网址,九九色综合,天天做夜夜做久久做狠狠,天天躁夜夜躁狠狠躁2021a,久久不卡一区二区三区

打開APP
userphoto
未登錄

開通VIP,暢享免費(fèi)電子書等14項(xiàng)超值服

開通VIP
*****從零開始了解大型語言模型:科技領(lǐng)域的里程碑式進(jìn)展

人工智能 --> 機(jī)器學(xué)習(xí) --> 神經(jīng)網(wǎng)絡(luò) --> 深度學(xué)習(xí) --> 語言模型 --> 大型語言模型 --> ChatGPT

模型是一些復(fù)雜現(xiàn)象的簡化

  • 機(jī)器學(xué)習(xí):通過吸收數(shù)據(jù),形成模型,然后執(zhí)行模型來創(chuàng)造行為的一種手段。

GPT是Generative Pre-trained Transformer的縮寫。

生成性。該模型能夠?qū)λ峁┑妮斎肷蛇B續(xù)的內(nèi)容。也就是說,給定一些文本,該模型試圖猜測(cè)接下來會(huì)出現(xiàn)哪些詞。

預(yù)先訓(xùn)練過的。該模型是在一個(gè)非常大的一般文本的語料庫上訓(xùn)練的,目的是為了訓(xùn)練一次,用于很多不同的事情,而不需要從頭開始重新訓(xùn)練。

變換器是一種特殊類型的深度學(xué)習(xí)模型,它以一種特殊的方式對(duì)編碼進(jìn)行變換,使其更容易猜出空白的單詞。




對(duì)大型語言模型的非常溫和的介紹,沒有炒作。

[這是一項(xiàng)正在進(jìn)行的工作]

1.緒論

本文旨在讓沒有計(jì)算機(jī)科學(xué)背景的人對(duì)ChatGPT和類似的人工智能系統(tǒng)(GPT-3、GPT-4、Bing Chat、Bard等)的工作原理有一些了解。ChatGPT是一個(gè)聊天機(jī)器人--一種建立在--大型語言模型之上的對(duì)話式人工智能。這些肯定是話,我們將把這些都分解開來。在這個(gè)過程中,我們將討論它們背后的核心概念。這篇文章不需要任何技術(shù)或數(shù)學(xué)背景。我們將大量使用比喻來說明這些概念。我們將討論為什么這些核心概念會(huì)以這樣的方式工作,以及我們可以期待或不期待像ChatGPT這樣的大型語言模型做什么。

以下是我們要做的事情。我們將輕輕地走過一些與大型語言模型和ChatGPT相關(guān)的術(shù)語,不使用任何專業(yè)術(shù)語。如果我必須使用專業(yè)術(shù)語,我將不使用專業(yè)術(shù)語將其分解。我們將從 '什么是人工智能 '這個(gè)非常基本的問題開始,然后逐步深入。我將盡可能地使用一些反復(fù)出現(xiàn)的比喻。我將從我們應(yīng)該期望它們做什么或不應(yīng)該期望它們做什么的角度來談?wù)撨@些技術(shù)的影響。

我們走吧!

1.什么是人工智能?

但首先,讓我們從一些基本術(shù)語開始,你可能經(jīng)常聽到這些術(shù)語。什么是人工智能?

  • 人工智能:一個(gè)實(shí)體,如果人類做類似的事情,它的行為可能被人合理地稱為智能。

用 '智能 '一詞來定義人工智能是有點(diǎn)問題的,但沒有人能夠就 '智能 '的良好定義達(dá)成一致。然而,我認(rèn)為這仍然是合理有效的。它基本上是說,如果我們看一些人工的東西,而且它做的事情很吸引人,很有用,似乎有點(diǎn)非同小可,那么我們可以稱它為智能。例如,我們經(jīng)常把 '人工智能 '這個(gè)詞賦予計(jì)算機(jī)游戲中由計(jì)算機(jī)控制的角色。這些機(jī)器人大多是一些簡單的if-then-else代碼(例如,'如果玩家在范圍內(nèi),那么就開槍,否則就移動(dòng)到最近的巨石上做掩護(hù)')。但是,如果我們做的是讓我們參與和娛樂的工作,并且不做任何明顯的蠢事,那么我們可能會(huì)認(rèn)為它們比實(shí)際情況更復(fù)雜。

一旦我們了解了某件事情的運(yùn)作方式,我們可能不會(huì)留下很深的印象,并期待著幕后更復(fù)雜的東西。這完全取決于你對(duì)幕后事情的了解程度。

他們的關(guān)鍵點(diǎn)是,人工智能不是魔術(shù)。因?yàn)樗皇悄g(shù),所以它可以被解釋。

因此,讓我們開始吧。

2.什么是機(jī)器學(xué)習(xí)?

你會(huì)經(jīng)常聽到與人工智能相關(guān)的另一個(gè)術(shù)語是機(jī)器學(xué)習(xí)

  • 機(jī)器學(xué)習(xí):通過吸收數(shù)據(jù),形成模型,然后執(zhí)行模型來創(chuàng)造行為的一種手段。

有時(shí)候,手動(dòng)創(chuàng)建一堆if-then-else語句來捕捉一些復(fù)雜的現(xiàn)象太難了,比如語言。在這種情況下,我們?cè)噲D找到一堆數(shù)據(jù),并使用能夠在數(shù)據(jù)中找到模式的算法來建模。

但什么是模型?模型是一些復(fù)雜現(xiàn)象的簡化。例如,汽車模型只是真實(shí)汽車的一個(gè)更小、更簡單的版本,它有許多屬性,但不是為了完全取代原車。一輛模型車可能看起來很真實(shí),對(duì)某些用途也很有用,但我們不能把它開到商店。

一張DALL-E生成的桌子上的汽車模型圖像

就像我們可以制造一個(gè)更小、更簡單的汽車,我們也可以制造一個(gè)更小、更簡單的人類語言。我們使用大型語言模型這一術(shù)語,是因?yàn)閺氖褂眠@些模型需要多少內(nèi)存的角度來看,這些模型是大型的。生產(chǎn)中最大的模型,如ChatGPT、GPT-3和GPT-4都足夠大,它需要在數(shù)據(jù)中心服務(wù)器中運(yùn)行的大規(guī)模超級(jí)計(jì)算機(jī)來創(chuàng)建和運(yùn)行。

3.什么是神經(jīng)網(wǎng)絡(luò)?

有許多方法可以從數(shù)據(jù)中學(xué)習(xí)一個(gè)模型。神經(jīng)網(wǎng)絡(luò)就是這樣一種方式。該技術(shù)大致是基于人類大腦是如何由一個(gè)被稱為神經(jīng)元的相互連接的腦細(xì)胞網(wǎng)絡(luò)組成的,這些神經(jīng)元來回傳遞電信號(hào),以某種方式使我們能夠做所有的事情。神經(jīng)網(wǎng)絡(luò)的基本概念是在20世紀(jì)40年代發(fā)明的,關(guān)于如何訓(xùn)練它們的基本概念是在20世紀(jì)80年代發(fā)明的。神經(jīng)網(wǎng)絡(luò)的效率非常低,直到2017年左右,計(jì)算機(jī)硬件才好到可以大規(guī)模使用它們。

但是,我喜歡用電路的比喻來思考神經(jīng)網(wǎng)絡(luò),而不是大腦。你不必是一名電氣工程師,也知道電力通過電線流動(dòng),而且我們有稱為電阻器的東西,使電力更難流過電路的某些部分。

想象一下,你想做一輛能在高速公路上行駛的自動(dòng)駕駛汽車。你在汽車的前部、后部和側(cè)面都配備了接近傳感器。當(dāng)有非常接近的東西時(shí),接近傳感器報(bào)告的數(shù)值為1.0,而當(dāng)附近沒有任何東西可探測(cè)時(shí),報(bào)告的數(shù)值為0.0。

你還操縱你的汽車,使機(jī)器人機(jī)制可以轉(zhuǎn)動(dòng)方向盤,推動(dòng)剎車,并推動(dòng)油門。當(dāng)加速器收到1.0的數(shù)值時(shí),它使用最大加速度,而0.0意味著不加速。同樣地,發(fā)送到制動(dòng)機(jī)構(gòu)的數(shù)值為1.0時(shí),意味著猛踩剎車,0.0意味著不剎車。轉(zhuǎn)向機(jī)構(gòu)的數(shù)值為-1.0到 1.0,負(fù)值意味著向左轉(zhuǎn),正值意味著向右轉(zhuǎn),0.0意味著保持直線。

你也記錄了關(guān)于你如何駕駛的數(shù)據(jù)。當(dāng)前面的道路暢通時(shí),你會(huì)加速。當(dāng)前面有車時(shí),你就減速。當(dāng)左邊有車靠得太近時(shí),你就向右轉(zhuǎn),改變車道。當(dāng)然,除非你的右邊也有一輛車。這是一個(gè)復(fù)雜的過程,涉及不同的動(dòng)作組合(向左轉(zhuǎn)、向右轉(zhuǎn)、或多或少地加速、剎車),基于不同的傳感器信息組合。

現(xiàn)在,你必須將傳感器與機(jī)器人機(jī)構(gòu)連接起來。你如何做到這一點(diǎn)?這并不清楚。所以,你把每個(gè)傳感器都連到每個(gè)機(jī)器人執(zhí)行器上。

一個(gè)神經(jīng)網(wǎng)絡(luò)作為連接傳感器和執(zhí)行器的電路。

當(dāng)你把你的車開到路上時(shí)會(huì)發(fā)生什么?電流從所有的傳感器流向所有的機(jī)器人執(zhí)行器,汽車同時(shí)向左轉(zhuǎn)、向右轉(zhuǎn)、加速和剎車。這是個(gè)混亂的局面。

當(dāng)我們的一些傳感器發(fā)出能量時(shí),這些能量會(huì)流向所有的執(zhí)行器,汽車就會(huì)同時(shí)加速、剎車和轉(zhuǎn)向。

這可不行。因此,我拿起我的電阻,開始把它們放在電路的不同部分,以便電力能夠在某些傳感器和某些機(jī)器人執(zhí)行器之間更自由地流動(dòng)。例如,我希望電流能更自由地從前面的接近傳感器流向剎車,而不是流向方向盤。我還放了一個(gè)叫門的東西,它可以阻止電流的流動(dòng),直到有足夠的電力積累來翻轉(zhuǎn)開關(guān)(只有在前部接近傳感器和后部接近傳感器報(bào)告高數(shù)值時(shí)才允許電流流動(dòng)),或者只有在輸入電力強(qiáng)度低時(shí)才向前發(fā)送電能(在前部接近傳感器報(bào)告低數(shù)值時(shí)向油門發(fā)送更多的電力)。

但我該把這些電阻和柵極放在哪里呢?我不知道。我開始把它們隨意地放在各個(gè)地方。然后我再試一次。也許這次我的車開得更好了,也就是說,有時(shí)它在數(shù)據(jù)顯示最好剎車時(shí)剎車,在數(shù)據(jù)顯示最好轉(zhuǎn)向時(shí)轉(zhuǎn)向,等等。但它并不是每件事都做得很好。有些事情它做得更糟(當(dāng)數(shù)據(jù)顯示最好是剎車時(shí),它就加速)。所以我不斷地隨機(jī)嘗試不同的電阻和門的組合。最終,我將偶然發(fā)現(xiàn)一個(gè)足夠好的組合,我宣布成功。也許它看起來像這樣:

一個(gè)經(jīng)過充分訓(xùn)練的神經(jīng)網(wǎng)絡(luò)。較深的線條表示電路中能量流動(dòng)較自由的部分。中間的圓圈是門,它可能在把任何能量送上頂層之前從下面積累大量的能量,或者甚至可能在下面沒有什么能量的時(shí)候送上能量。

(在現(xiàn)實(shí)中,我們不增加或減少門,這些門一直都在那里,但我們修改門,使它們?cè)谙旅娴哪芰枯^少的情況下激活,或需要下面更多的能量,或也許只有在下面的能量很少的時(shí)候才釋放大量的能量。機(jī)器學(xué)習(xí)的純粹主義者可能會(huì)對(duì)這一特征的描述感到有點(diǎn)嘔吐。從技術(shù)上講,這是通過調(diào)整門上的一個(gè)叫做偏置的東西來實(shí)現(xiàn)的,在這樣的圖中通常不顯示,但在電路方面的隱喻可以被認(rèn)為是進(jìn)入每個(gè)門的電線直接插入到一個(gè)電子源,然后可以像其他所有的電線一樣被修改)。

讓我們來試駕一下!

隨機(jī)嘗試的事情很糟糕。一種叫做反向傳播的算法在猜測(cè)如何改變電路的配置方面相當(dāng)出色。該算法的細(xì)節(jié)并不重要,只需知道它對(duì)電路進(jìn)行微小的改變,使電路的行為更接近于數(shù)據(jù)的建議,經(jīng)過數(shù)千或數(shù)百萬次的調(diào)整,最終可以得到接近于數(shù)據(jù)的東西。

我們稱電阻和門為參數(shù),因?yàn)樵趯?shí)際中它們無處不在,而反向傳播算法所做的是宣布每個(gè)電阻是強(qiáng)是弱。因此,如果我們知道電路的布局和參數(shù)值,整個(gè)電路就可以在其他汽車上復(fù)制出來。

4.什么是深度學(xué)習(xí)?

深度學(xué)習(xí)是一種認(rèn)識(shí),即除了電阻和門,我們還可以在電路中放入其他東西。例如,我們可以在我們的電路中間有一個(gè)數(shù)學(xué)計(jì)算,在發(fā)送電力前將一些東西加在一起,并將其乘以。深度學(xué)習(xí)仍然使用相同的猜測(cè)參數(shù)的基本增量技術(shù)。

5.什么是語言模型?

當(dāng)我們做汽車的例子時(shí),我們?cè)噲D讓我們的神經(jīng)網(wǎng)絡(luò)執(zhí)行與我們的數(shù)據(jù)一致的行為。我們問的是,我們是否可以創(chuàng)建一個(gè)電路,以司機(jī)在類似情況下的相同方式操縱汽車中的機(jī)制。我們可以以同樣的方式對(duì)待語言。我們可以看看人類寫的文字,并想知道一個(gè)電路是否可以產(chǎn)生一個(gè)看起來很像人類傾向于產(chǎn)生的文字序列的詞語?,F(xiàn)在,當(dāng)我們看到文字時(shí),我們的傳感器會(huì)啟動(dòng),我們的輸出機(jī)制也是文字。

我們想做什么?我們正試圖創(chuàng)建一個(gè)電路,在給定一堆輸入詞的情況下,猜測(cè)一個(gè)輸出詞。比如說:

'Once upon a ____'

似乎應(yīng)該用 'time'來填空,而不是 'armadillo'。

我們傾向于從概率的角度來談?wù)撜Z言模型。在數(shù)學(xué)上,我們將上述例子寫成:

如果你對(duì)這個(gè)符號(hào)不熟悉,不用擔(dān)心。這只是數(shù)學(xué)上的說法,意思是給定 'time'這個(gè)詞的概率(P)(條形符號(hào)|表示給定),以及一系列的詞 '一次'、'在 '和 '一個(gè)'。我們希望一個(gè)好的語言模型能夠產(chǎn)生一個(gè)比 'armadillo '更高的 'time'這個(gè)詞的概率。

我們可以將此概括為:

這只是意味著計(jì)算在一個(gè)序列中的第n個(gè)詞的概率,給它前面的所有詞(位置1到n-1的詞)。

但讓我們往后拉一點(diǎn)。想一想老式的打字機(jī),就是那種帶沖鋒臂的。

DALL-E2制作了這個(gè)圖像??纯此械臎_鋒槍臂!

只不過,我們不是為每個(gè)字母配備不同的沖鋒臂,而是為每個(gè)單詞配備一個(gè)沖鋒臂。如果英語有50,000個(gè)單詞,那么這就是一臺(tái)大的打字機(jī)!

與汽車的網(wǎng)絡(luò)不同,想想一個(gè)類似的網(wǎng)絡(luò),只是我們的電路頂部有50,000個(gè)連接到前臂的輸出,每個(gè)詞一個(gè)。相應(yīng)地,我們將有50,000個(gè)傳感器,每一個(gè)都檢測(cè)不同的輸入詞的存在。因此,我們最后要做的是挑選一個(gè)獲得最高電信號(hào)的前鋒臂,這就是進(jìn)入空白處的單詞。

我們的情況是這樣的:如果我想做一個(gè)簡單的電路,接收一個(gè)字并產(chǎn)生一個(gè)字,我將不得不做一個(gè)有50000個(gè)傳感器(每個(gè)字一個(gè))和50000個(gè)輸出(每個(gè)前鋒臂一個(gè))的電路。我只需將每個(gè)傳感器與每個(gè)沖鋒槍臂相連,總共有50,000 x 50,000 = 25億條線。

底部的每個(gè)圓圈都能感應(yīng)到一個(gè)單詞。它需要50,000個(gè)傳感器來識(shí)別 '一次 '這個(gè)詞。這些能量通過一些任意的網(wǎng)絡(luò)被發(fā)送。上面的所有圓圈都與每個(gè)單詞的前鋒臂相連。所有前鋒臂都收到一些能量,但其中一個(gè)會(huì)比其他的收到更多。

這是一個(gè)很大的網(wǎng)絡(luò)!

但情況變得更糟。如果我想做 'Once upon a ___'的例子,我需要感知哪個(gè)詞在三個(gè)輸入位置中的每個(gè)位置。我將需要50,000 x 3 = 150,000個(gè)傳感器。與50,000個(gè)沖鋒槍連接起來,我就有150,000 x 50,000 = 75億條線。截至2023年,大多數(shù)大型語言模型可以吸收4000個(gè)單詞,最大的可以吸收32000個(gè)單詞。我的眼睛在流淚。

一個(gè)以三個(gè)字作為輸入的網(wǎng)絡(luò),每個(gè)字需要50,000個(gè)傳感器。

我們將需要一些技巧來處理這種情況。我們將分階段進(jìn)行。

5.1 編碼器

我們要做的第一件事是把我們的電路分成兩個(gè)電路,一個(gè)叫編碼器,一個(gè)叫解碼器。啟示是,很多詞的意思大致相同??紤]一下下面的短語:

國王坐在_____上
王后坐在_____上
公主坐在_____上
攝政王坐在_____上

對(duì)上面所有的空白,合理的猜測(cè)是 '王位'(或者也許是 '廁所')。這就是說,我可能不需要在 '國王 '和 '王座 '之間,或在 '王后 '和 '王座 '之間單獨(dú)布線,等等。相反,如果我有一個(gè)大約意味著皇室的東西,并且每次我看到 '國王 '或 '王后 '時(shí),我都用這個(gè)中間的東西來代替,那就太好了。然后我只需要擔(dān)心哪些詞的意思大致相同,然后怎么做(把大量的能量送到 '王位 '上)。

因此,這就是我們要做的事情。我們將建立一個(gè)電路,將50,000個(gè)字的傳感器映射到一些較小的輸出集合,例如256個(gè)而不是50,000個(gè)。而不是只能觸發(fā)一個(gè)沖鋒槍臂,我們能夠在一個(gè)時(shí)間內(nèi)搗毀一堆武器。每個(gè)可能的前鋒臂組合可以代表一個(gè)不同的概念(如 '皇室 '或 '裝甲的哺乳動(dòng)物')。這256個(gè)輸出將使我們有能力代表22??=1.15x10??概念。在現(xiàn)實(shí)中,它甚至更多,因?yàn)榫拖裨谄嚨睦又?,我們可以把剎車踩到一半,這256個(gè)輸出中的每一個(gè)不僅可以是1.0或0.0,而且可以是介于兩者之間的任何數(shù)字。因此,也許更好的比喻是,所有256個(gè)前鋒臂都會(huì)砸下去,但每個(gè)人砸下去的力量是不同的。

好的......所以以前一個(gè)詞需要50,000個(gè)傳感器中的一個(gè)來啟動(dòng)?,F(xiàn)在我們把一個(gè)激活的傳感器和49,999個(gè)關(guān)閉的傳感器歸結(jié)為256個(gè)數(shù)字。所以 '國王 '可能是[0.1, 0.0, 0.9, ..., 0.4],'皇后 '可能是[0.1, 0.1, 0.9, ..., 0.4],它們幾乎彼此相同。我將把這些數(shù)字列表稱為編碼(由于歷史原因也稱為隱藏狀態(tài),但我不想解釋這個(gè),所以我們將堅(jiān)持使用編碼)。我們把把我們的50,000個(gè)傳感器壓成256個(gè)輸出的電路稱為編碼器。它看起來像這樣:

編碼器網(wǎng)絡(luò)將檢測(cè)一個(gè)字所需的50,000個(gè)傳感器值壓縮成256個(gè)數(shù)字的編碼(較淺和較深的藍(lán)色用來表示較高或較低的值)。

5.2 解碼器

但編碼器并沒有告訴我們接下來應(yīng)該是哪個(gè)詞。因此,我們將編碼器與解碼器網(wǎng)絡(luò)配對(duì)。解碼器是另一個(gè)電路,它接收構(gòu)成編碼的256個(gè)數(shù)字,并激活原來的5萬個(gè)前鋒臂,每個(gè)字一個(gè)。然后,我們將挑選具有最高電輸出的單詞。這就是它的模樣:

一個(gè)解碼器網(wǎng)絡(luò),將編碼中的256個(gè)值擴(kuò)展為與每個(gè)可能的單詞相關(guān)的50,000個(gè)前鋒臂的激活值。一個(gè)詞的激活值最高。

5.3 編碼器和解碼器在一起

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

一個(gè)編碼器-解碼器網(wǎng)絡(luò)。它只是一個(gè)坐落在編碼器之上的解碼器。

而且,順便說一下,一個(gè)單字輸入到一個(gè)單字輸出經(jīng)過編碼只需要(50000×256)×2=2560萬個(gè)參數(shù)。這似乎要好得多。

這個(gè)例子是針對(duì)一個(gè)字的輸入和產(chǎn)生一個(gè)字的輸出,所以如果我們想讀取n個(gè)字,我們將有50,000 x n個(gè)輸入,256 x n個(gè)編碼。

但為什么這能起作用呢?通過迫使50,000個(gè)詞都適合于一個(gè)小的數(shù)字集,我們迫使網(wǎng)絡(luò)做出妥協(xié),將可能觸發(fā)相同的輸出詞猜測(cè)的詞組合在一起。這很像文件壓縮。當(dāng)你壓縮一個(gè)文本文件時(shí),你會(huì)得到一個(gè)更小的文件,但不再可讀。但你可以解壓縮文件,恢復(fù)原來的可讀文本。這可以做到,因?yàn)閴嚎s程序用速記符號(hào)替換了某些模式的單詞。然后,當(dāng)它解壓縮時(shí),它知道用什么文字來換回速記符號(hào)。我們的編碼器和解碼器電路學(xué)習(xí)了一個(gè)電阻和門的配置,以壓縮然后解壓縮字。

5.4 自我監(jiān)督

我們?cè)趺粗烂總€(gè)詞用什么編碼最好?換句話說,我們?cè)趺粗?'國王 '的編碼應(yīng)該類似于 '女王 '的編碼,而不是 '犰狳 '的編碼?

作為一個(gè)思想實(shí)驗(yàn),考慮一個(gè)編碼器-解碼器網(wǎng)絡(luò),它應(yīng)該接收一個(gè)字(50,000個(gè)傳感器)并產(chǎn)生完全相同的字作為輸出。這是一件愚蠢的事情,但它對(duì)接下來的內(nèi)容很有啟發(fā)。

一個(gè)編碼器-解碼器網(wǎng)絡(luò)被訓(xùn)練成輸出與輸入相同的詞(是與之前相同的圖像,但用顏色來激活)。

我輸入了 '王 '字,一個(gè)傳感器通過編碼器發(fā)送電信號(hào),并部分打開了中間的256個(gè)編碼值。如果編碼是正確的,那么解碼器將發(fā)送最高的電信號(hào)給同一個(gè)詞,'國王'。對(duì)嗎,容易嗎?沒有那么快。我同樣有可能看到激活能量最高的 '犰狳 '這個(gè)詞的前鋒臂。假設(shè) '國王 '的前鋒臂得到0.051個(gè)電信號(hào),'犰狳 '的前鋒臂得到0.23個(gè)電信號(hào)。實(shí)際上,我甚至不關(guān)心 '犰狳 '的數(shù)值是多少。我可以只看 '國王 '的輸出能量,知道它不是1.0。1.0和0.051之間的差異就是誤差(也叫損失),我可以用反向傳播的方法對(duì)解碼器和編碼器做一些改變,這樣下次我們看到 '國王 '這個(gè)詞時(shí)就會(huì)有一個(gè)稍微不同的編碼。

我們對(duì)所有的字都這樣做。編碼器將不得不作出妥協(xié),因?yàn)?56的數(shù)量遠(yuǎn)遠(yuǎn)小于50,000。也就是說,有些詞必須在中間使用相同的激活能組合。因此,當(dāng)有選擇時(shí),它將希望 '國王 '和 '皇后 '的編碼幾乎相同,而 '犰狳 '的編碼則非常不同。這將給解碼器一個(gè)更好的機(jī)會(huì)來猜測(cè)這個(gè)詞,只要看一下256個(gè)編碼值。如果解碼器看到256個(gè)值的特定組合,并猜出 '國王 '為0.43,'皇后 '為0.42,只要 '國王 '和 '皇后 '得到最高的電信號(hào),而49,998個(gè)前鋒手臂中的每一個(gè)得到的數(shù)字都比較小,我們就可以接受。另一種說法是,我們可能更愿意接受網(wǎng)絡(luò)在國王和王后之間發(fā)生混淆,而不是網(wǎng)絡(luò)在國王和犰狳之間發(fā)生混淆。

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

5.5 遮蔽的語言模型

如果上述思想實(shí)驗(yàn)看起來很傻,那么它是被稱為掩蔽語言模型的東西的構(gòu)建塊。掩蔽語言模型的想法是接受一連串的詞并生成一連串的詞。輸入和輸出中的一個(gè)詞是空白的。

MASK]坐在寶座上。

網(wǎng)絡(luò)猜出了所有的單詞。好吧,要猜出未被掩蓋的單詞是很容易的。我們真正關(guān)心的是網(wǎng)絡(luò)對(duì)被掩蓋單詞的猜測(cè)。也就是說,我們對(duì)輸出中的每個(gè)詞有50,000個(gè)前鋒臂。我們看一下被掩蓋的單詞的50,000個(gè)前鋒臂。

屏蔽一個(gè)序列。我已經(jīng)厭倦了畫大量的連接線,所以我將只畫紅線來表示上面和下面的一切之間有很多很多的連接。

我們可以移動(dòng)面具,讓網(wǎng)絡(luò)在不同的地方猜不同的字。

有一種特殊類型的掩碼語言模型只在最后有掩碼。這被稱為生成式模型,因?yàn)樗聹y(cè)的掩碼總是序列中的下一個(gè)詞,這相當(dāng)于生成下一個(gè)詞,好像下一個(gè)詞不存在。就像這樣:

的[MASK]。
女王[MASK]
王后坐在[MASK]上
王后坐在[MASK]上
王后坐在[MASK]上

我們也稱這是一個(gè)自動(dòng)回歸模型。回歸這個(gè)詞聽起來不是那么好。但回歸只是意味著試圖理解事物之間的關(guān)系,比如已經(jīng)輸入的詞和應(yīng)該輸出的詞。自動(dòng)的意思是 '自我'。一個(gè)自動(dòng)回歸模型是自我預(yù)測(cè)的。它預(yù)測(cè)了一個(gè)詞。然后這個(gè)詞被用來預(yù)測(cè)下一個(gè)詞,而下一個(gè)詞又被用來預(yù)測(cè)下一個(gè)詞,以此類推。這里面有一些有趣的含義,我們以后會(huì)再來討論。

6.什么是Transformer 變換器

截至本文撰寫之時(shí),我們聽到了很多關(guān)于GPT-3和GPT-4以及ChatGPT的事情。GPT是一家名為OpenAI的公司開發(fā)的一種大型語言模型的特殊烙印。GPT是Generative Pre-trained Transformer的縮寫。讓我們把它分解一下:

  • 生成性。該模型能夠?qū)λ峁┑妮斎肷蛇B續(xù)的內(nèi)容。也就是說,給定一些文本,該模型試圖猜測(cè)接下來會(huì)出現(xiàn)哪些詞。

  • 預(yù)先訓(xùn)練過的。該模型是在一個(gè)非常大的一般文本的語料庫上訓(xùn)練的,目的是為了訓(xùn)練一次,用于很多不同的事情,而不需要從頭開始重新訓(xùn)練。

更多關(guān)于預(yù)訓(xùn)練的內(nèi)容......模型是在一個(gè)非常大的普通文本語料庫上訓(xùn)練的,表面上涵蓋了大量可想象的主題。這或多或少意味著 '從互聯(lián)網(wǎng)上刮來的',而不是從一些專門的文本庫中提取的。通過對(duì)一般文本的訓(xùn)練,一個(gè)語言模型比在非常具體的文本類型上訓(xùn)練的語言模型更有能力應(yīng)對(duì)更廣泛的輸入,例如,從醫(yī)療文件中訓(xùn)練的語言模型。一個(gè)在一般語料庫上訓(xùn)練的語言模型,理論上可以合理地回應(yīng)任何可能出現(xiàn)在互聯(lián)網(wǎng)上的文件。它可能會(huì)對(duì)醫(yī)療文本做得很好。一個(gè)只在醫(yī)療文件上訓(xùn)練的語言模型可能對(duì)與醫(yī)療背景有關(guān)的輸入反應(yīng)很好,但對(duì)其他輸入如閑聊或食譜的反應(yīng)就很差。

要么模型在很多方面都足夠好,以至于人們從來不需要訓(xùn)練自己的模型,要么人們可以做一些叫做微調(diào)的事情,也就是把預(yù)先訓(xùn)練好的模型進(jìn)行一些更新,使其在某項(xiàng)專門的任務(wù)(如醫(yī)療)上工作得更好。

現(xiàn)在到變換器...

  • 變換器。一種特定類型的自監(jiān)督編碼器-解碼器深度學(xué)習(xí)模型,具有一些非常有趣的特性,使其擅長于語言建模。

變換器是一種特殊類型的深度學(xué)習(xí)模型,它以一種特殊的方式對(duì)編碼進(jìn)行變換,使其更容易猜出空白的單詞。它是由一篇名為 Attention is All You NeedVaswani等人在2017年發(fā)表的一篇名為Attention is All You Need的論文中提出的。轉(zhuǎn)換器的核心是經(jīng)典的編碼器-解碼器網(wǎng)絡(luò)。編碼器做一個(gè)非常標(biāo)準(zhǔn)的編碼過程。如此虛無縹緲,你會(huì)感到震驚。但后來它又增加了一個(gè)叫自我注意的東西。

6.1 自我關(guān)注

這里有一個(gè)自我關(guān)注的概念:一個(gè)序列中的某些詞與序列中的其他詞有關(guān)系??紤]一下這句話:'外星人登陸地球是因?yàn)樗枰阍谝粋€(gè)星球上。'如果我們把第二個(gè)詞 '外星人 '掩蓋起來,讓一個(gè)神經(jīng)網(wǎng)絡(luò)來猜測(cè)這個(gè)詞,它就會(huì)有更好的機(jī)會(huì),因?yàn)橛?'登陸 '和 '地球 '這樣的詞。同樣,如果我們把 '它 '掩蓋起來,讓神經(jīng)網(wǎng)絡(luò)猜測(cè)這個(gè)詞,'外星人 '這個(gè)詞的存在可能會(huì)使它更傾向于 '它 '而不是 '他 '或 '她'。

詞與其他詞的關(guān)系是通過功能,通過指代同一事物,或通過告知彼此的含義。

我們說一個(gè)序列中的詞關(guān)注其他詞,是因?yàn)樗鼈儾蹲降搅四撤N關(guān)系。這種關(guān)系不一定是已知的。它可能是解析代詞,可能是動(dòng)詞和主語的關(guān)系,可能是與同一概念有關(guān)的兩個(gè)詞('地球 '和 '行星')。不管它是什么,知道詞與詞之間存在某種關(guān)系對(duì)預(yù)測(cè)是很有用的。

下一節(jié)將討論自我注意的數(shù)學(xué)問題,但主要內(nèi)容是,轉(zhuǎn)化器會(huì)學(xué)習(xí)輸入序列中哪些詞是相關(guān)的,然后為輸入序列中的每個(gè)位置創(chuàng)建一個(gè)新的編碼,這個(gè)編碼是所有相關(guān)詞的合并。你可以把這看作是學(xué)習(xí)編造一個(gè)由 '外星人'、'登陸 '和 '地球'(aliandearth)混合而成的新詞。這之所以有效,是因?yàn)槊總€(gè)詞都被編碼為一串?dāng)?shù)字。如果外星人=[0.1, 0.2, 0.3, ..., 0.4],登陸=[0.5, 0.6, 0.7, ..., 0.8],地球=[0.9, 1.0, 1.1, ..., 1。2],那么第二個(gè)詞的位置可能被編碼為所有這些編碼的總和,即[1.5, 1.8, 2.1, ..., 2.4],這本身并不對(duì)應(yīng)于任何一個(gè)詞,而是捕捉了所有詞的片段。這樣一來,當(dāng)解碼器最終看到這個(gè)新編碼的單詞在第二個(gè)位置時(shí),它就有了很多關(guān)于這個(gè)單詞在序列中如何使用的信息,從而對(duì)任何掩碼做出更好的猜測(cè)。(這個(gè)例子只是把編碼加在一起,但它會(huì)比這更復(fù)雜一些)。

6.2.自我關(guān)注是如何工作的?

自我關(guān)注是對(duì)虛無縹緲的編碼器-解碼器網(wǎng)絡(luò)的重大改進(jìn),所以如果你想知道更多關(guān)于它的工作原理,繼續(xù)閱讀。否則,請(qǐng)隨意跳過本節(jié)。TL;DR:自我關(guān)注是數(shù)學(xué)運(yùn)算的一個(gè)花哨的名字,叫做點(diǎn)積。

自我注意發(fā)生在三個(gè)階段。

(1) 我們對(duì)輸入序列中的每個(gè)詞進(jìn)行正常編碼。我們對(duì)字的編碼做了四份拷貝。其中一份我們稱之為殘余的,并放在一邊保存。

(2) 我們對(duì)其他三個(gè)人進(jìn)行第二輪編碼(我們正在進(jìn)行編碼)。每個(gè)都經(jīng)歷了不同的編碼過程,所以它們都變得不同。我們稱一個(gè)為查詢(q),一個(gè)為鍵(k),一個(gè)為值(v)。

我想讓你想想一個(gè)哈希表(在python中也叫字典)。你有一大堆的信息存儲(chǔ)在一個(gè)表中。表中的每一行都有一個(gè),一些唯一的標(biāo)識(shí)符,以及,即存儲(chǔ)在該行的數(shù)據(jù)。為了從哈希表中檢索一些信息,你給出一個(gè)查詢。如果查詢與鍵相匹配,你就提取值。

一個(gè)可能用于查詢某位教授在哪所大學(xué)工作的哈希表。

自我關(guān)注的工作方式有點(diǎn)像模糊哈希表。你提供一個(gè)查詢,而不是尋找與鍵的精確匹配,它根據(jù)查詢和鍵之間的相似性來尋找近似的匹配。但是,如果這個(gè)匹配不是完全匹配呢?它會(huì)返回?cái)?shù)值的一些部分。好吧,這只有在查詢、鍵和值都是數(shù)字時(shí)才有意義。而它們就是:

一個(gè)有部分匹配的哈希表。

所以這就是我們要做的。對(duì)于輸入的每個(gè)詞的位置,我們將采取q編碼和k編碼,并計(jì)算出相似性。我們使用一種叫做點(diǎn)積的東西,也叫做余弦相似度。這并不重要。重點(diǎn)是每個(gè)詞都是一個(gè)256個(gè)數(shù)字的列表(基于我們前面的例子),我們可以計(jì)算數(shù)字列表的相似性,并將相似性記錄在一個(gè)矩陣中。我們把這個(gè)矩陣稱為自我注意的分?jǐn)?shù)。如果我們有一個(gè)三個(gè)詞的輸入序列,我們的注意力分?jǐn)?shù)可能看起來像這樣:

每個(gè)單元格表示一個(gè)位置的編碼詞對(duì)另一個(gè)位置的編碼詞的關(guān)注程度。

網(wǎng)絡(luò)將第一個(gè)詞視為一個(gè)查詢,它與第二個(gè)鍵相匹配(我們可以說第一個(gè)詞是 '參加 '第二個(gè)詞的)。如果第二個(gè)詞是一個(gè)查詢,它將與第三個(gè)鍵相匹配。如果第三個(gè)詞是一個(gè)查詢,它將與第一個(gè)鍵相匹配。在現(xiàn)實(shí)中,我們永遠(yuǎn)不會(huì)有這樣的1和0;我們會(huì)有0和1之間的部分匹配,每個(gè)查詢(行)會(huì)與幾個(gè)鍵(列)部分匹配。

現(xiàn)在,為了堅(jiān)持檢索的隱喻,我們將這個(gè)矩陣與V編碼相乘,會(huì)發(fā)生一些有趣的事情。假設(shè)我們的V編碼看起來像這樣:

每一行都是對(duì)一個(gè)序列中的一個(gè)詞的編碼。

也就是說,第一個(gè)詞被編碼為0.10...0.19的數(shù)字列表,第二個(gè)詞被編碼為0.20...0.29的數(shù)字列表,而第三個(gè)詞被編碼為0.30...0.39的數(shù)字列表。這些數(shù)字是為了說明問題而編的,絕不會(huì)如此整齊。

用價(jià)值倍增的注意力。

第一個(gè)查詢與第二個(gè)密鑰相匹配,因此檢索到了第二個(gè)編碼的單詞。第二個(gè)查詢與第三個(gè)密鑰相匹配,因此檢索到了第三個(gè)編碼的單詞。第三個(gè)查詢與第一個(gè)鍵相匹配,因此檢索到了第一個(gè)編碼的詞。我們所做的實(shí)際上是交換了行!

在實(shí)踐中,分?jǐn)?shù)不會(huì)是完美的1和0,結(jié)果會(huì)是每一種編碼的一點(diǎn)點(diǎn)混合在一起(例如97%的單詞一加上1%或單詞三加上2%的單詞二)。但這說明了自我注意是如何混合和交換的。在這個(gè)極端版本中,第一個(gè)詞已經(jīng)被換成了第二個(gè)詞,以此類推。因此,也許 '地球 '這個(gè)詞已經(jīng)被換成了 '行星 '這個(gè)詞。

我們?cè)趺粗牢覀儗?duì)q、kv的編碼正確呢?如果整個(gè)網(wǎng)絡(luò)猜測(cè)面具的最佳單詞的能力提高了,那么我們對(duì)q、kv的編碼是正確的。如果不是,我們就改變參數(shù),在下一次以不同的方式進(jìn)行編碼。

(3) 我們所做的第三件事是把所有這些數(shù)學(xué)運(yùn)算的結(jié)果加到殘差中。還記得我們擱置的原始編碼的第一份副本嗎?這是正確的,我們把混合和交換的版本加在上面?,F(xiàn)在,'地球 '不僅僅是 '地球 '的編碼,而是某種想象中的詞,是 '地球 '和 '行星 '的混搭,pearth? ealanet?不太像。無論如何,這是最終的轉(zhuǎn)換編碼,將被發(fā)送到解碼器。我們也許可以同意,在每個(gè)位置上有一個(gè)真正編碼為兩個(gè)或更多單詞的假詞,對(duì)基于每個(gè)位置上的一個(gè)單詞進(jìn)行預(yù)測(cè)更有用。

然后你再一個(gè)接一個(gè)地做幾次(多層)。

我漏掉了很多關(guān)于編碼器的最終編碼如何進(jìn)入解碼器的細(xì)節(jié)(另一輪關(guān)注,稱為源關(guān)注,其中編碼器對(duì)每個(gè)位置的編碼被用作qk,以應(yīng)用于另一個(gè)不同版本的v),但在這一點(diǎn)上你應(yīng)該有一個(gè)大致的要點(diǎn)。在最后,解碼器從編碼器那里接收編碼,為單詞發(fā)送能量到前臂,我們挑選能量最強(qiáng)的單詞。

7.為什么大型語言模型如此強(qiáng)大?

那么,這一切是什么意思?大型語言模型,包括ChatGPT、GPT-4和其他模型,正好做了一件事:它們接收了一堆單詞,并試圖猜測(cè)接下來應(yīng)該是什么單詞。如果這是 '推理 '或 '思考',那么它只是一種非常專業(yè)的形式。

但即使是這種專門的形式也顯得非常強(qiáng)大,因?yàn)镃hatGPT和類似的東西可以做很多看起來非常好的事情:寫詩,回答關(guān)于科學(xué)和技術(shù)的問題,總結(jié)文件,起草電子郵件,甚至寫代碼,這只是其中的一些事情。為什么它們要做得這么好?

秘訣有兩個(gè)方面。第一個(gè)我們已經(jīng)談過了:轉(zhuǎn)化器學(xué)會(huì)了混合單詞的語境,使其真正擅長猜測(cè)下一個(gè)單詞。秘訣的另一部分是如何訓(xùn)練這些系統(tǒng)。大型語言模型是在從互聯(lián)網(wǎng)上刮來的大量信息上訓(xùn)練的。這包括書籍、博客、新聞網(wǎng)站、維基百科文章、reddit討論、社交媒體對(duì)話。在訓(xùn)練過程中,我們從這些來源之一輸入一個(gè)文本片段,要求它猜測(cè)下一個(gè)詞。記?。鹤晕冶O(jiān)督。如果它猜錯(cuò)了,我們就稍微調(diào)整一下模型,直到它猜對(duì)為止。如果我們考慮一下LLM被訓(xùn)練來做什么,它就是產(chǎn)生可能合理地出現(xiàn)在互聯(lián)網(wǎng)上的文本。它不可能記住互聯(lián)網(wǎng),所以它使用編碼來做出妥協(xié),并得到一些錯(cuò)誤的東西,但希望不要太錯(cuò)。

重要的是,不要低估互聯(lián)網(wǎng)上的文本在主題方面的多樣性。法律碩士們已經(jīng)看到了這一切。他們已經(jīng)看到了數(shù)十億的對(duì)話,幾乎所有的話題都有。因此,LLM可以產(chǎn)生看起來像是在與你對(duì)話的文字。它見過數(shù)十億首詩歌和音樂歌詞,幾乎所有可以想象的東西都見過,所以它可以產(chǎn)生看起來像詩歌的文字。它見過數(shù)十億份家庭作業(yè)和它們的解決方案,所以它可以對(duì)你的作業(yè)做出合理的猜測(cè),即使略有不同。它已經(jīng)看到了數(shù)十億的標(biāo)準(zhǔn)化測(cè)試問題和它們的答案。我們真的認(rèn)為今年的SAT試題與去年的有什么不同嗎?它見過人們談?wù)撍麄兊募倨谟?jì)劃,所以它能猜出那些看起來像假期計(jì)劃的詞。它見過數(shù)十億的代碼例子,做各種各樣的事情。計(jì)算機(jī)程序員所做的很多事情都是將用于做非常典型的、被充分理解的事情的代碼片段組裝成更大的代碼塊。

因此,LLM可以為你寫那些小的、常見的片段。它在stackoverflow.com上看到了數(shù)以億計(jì)的錯(cuò)誤代碼及其更正的例子。是的,所以它可以接受你的錯(cuò)誤代碼并提出修復(fù)建議。它見過數(shù)十億人在推特上說他們碰了熱爐子,燒傷了手指,所以法律碩士知道一些常識(shí)。它讀過很多科學(xué)論文,所以它能猜出眾所周知的科學(xué)事實(shí),即使它們對(duì)你來說并不知名。它見過數(shù)十億人總結(jié)的例子,把文字改寫成要點(diǎn),描述如何使文字更符合語法、更簡潔或更有說服力。

重點(diǎn)是:當(dāng)你要求ChatGPT或其他大型語言模型做一些聰明的事情時(shí)--而且成功了--你很有可能要求它做一些它已經(jīng)看過的數(shù)十億個(gè)例子。即使你想出一些非常獨(dú)特的東西,比如 '告訴我Flash Gordon在吃了六個(gè)卷餅后會(huì)做什么'(這是否獨(dú)特,我甚至不知道),它也看過關(guān)于Flash Gordon的粉絲小說,也看過人們談?wù)摮粤颂嗟木盹?,并且可?-因?yàn)樽晕易⒁?-混合和匹配一些片段,以組裝一個(gè)合理的聽起來的反應(yīng)。

在與大型語言模型互動(dòng)時(shí),我們的第一直覺不應(yīng)該是 '哇,這些東西一定非常聰明,非常有創(chuàng)造力,非常善解人意'。我們的第一直覺應(yīng)該是 '我可能要求它做一些它以前見過的零碎的東西'。這可能意味著它仍然非常有用,即使它沒有 '非常努力地思考 '或 '做一些非常復(fù)雜的推理'。

我們不必用擬人化的方式來理解它在做什么,為我們提供一個(gè)回應(yīng)。

關(guān)于這個(gè)主題的最后一點(diǎn)說明:由于大型語言模型的工作方式和訓(xùn)練方式,它們傾向于提供有點(diǎn)像中位數(shù)反應(yīng)的答案。對(duì)我來說,在問了一個(gè)關(guān)于閃電俠的故事后,模型傾向于給出平均答案,這可能顯得非常奇怪。但在一個(gè)故事,或一首詩的背景下,可以認(rèn)為這些回答是很多人(在互聯(lián)網(wǎng)上寫作)在不得不妥協(xié)的情況下會(huì)想出的東西。它不會(huì)是壞的。以一個(gè)人坐在那里獨(dú)自思考問題的標(biāo)準(zhǔn)來看,它可能相當(dāng)不錯(cuò)。但你的故事和詩歌可能也只是普通的(但它們對(duì)你來說是特別的)。對(duì)不起。

8.我應(yīng)該注意什么?

變形金剛的工作方式和訓(xùn)練方式產(chǎn)生了一些真正微妙的影響。以下是技術(shù)細(xì)節(jié)的直接影響。

  • 大型語言模型是在互聯(lián)網(wǎng)上訓(xùn)練的。這意味著他們也對(duì)人類的所有黑暗部分進(jìn)行了訓(xùn)練。大型語言模型在種族主義的咆哮、性別歧視的尖叫、對(duì)各種類型的人的侮辱、對(duì)他人的刻板印象的假設(shè)、陰謀論、政治錯(cuò)誤信息等方面進(jìn)行過訓(xùn)練。這意味著,語言模型選擇生成的詞語可能會(huì)反芻這種語言。

  • 大型語言模型沒有 '核心信念'。它們是詞語猜測(cè)者;它們?cè)噲D預(yù)測(cè)如果同一個(gè)句子出現(xiàn)在互聯(lián)網(wǎng)上,接下來的詞語會(huì)是什么。因此,人們可以要求大型語言模型寫一個(gè)贊成某事的句子,或反對(duì)同一事物的句子,而語言模型將遵守這兩種方式。這些并不表明它相信一件事或另一件事,或改變其信念,或一個(gè)比另一個(gè)更正確。如果訓(xùn)練數(shù)據(jù)中有更多關(guān)于一件事與另一件事的例子,那么一個(gè)大型的語言模型將傾向于對(duì)更經(jīng)常出現(xiàn)在其訓(xùn)練數(shù)據(jù)中的東西作出更一致的反應(yīng),因?yàn)樗?jīng)常出現(xiàn)在互聯(lián)網(wǎng)上。記?。涸撃P驼谂δ7伦畛R姷姆磻?yīng)。

  • 大語言模型沒有任何真理或?qū)﹀e(cuò)的感覺。有些事情我們認(rèn)為是事實(shí),比如地球是圓的。一個(gè)大型語言模型會(huì)傾向于這樣說。但是如果上下文是正確的,它也會(huì)說相反的話,因?yàn)榛ヂ?lián)網(wǎng)上確實(shí)有關(guān)于地球是平的文字。不能保證法學(xué)碩士會(huì)提供真相??赡軙?huì)有一種猜測(cè)我們認(rèn)為是真實(shí)的詞語的傾向,但這是我們最接近于對(duì)LLM '知道 '真相或?qū)蝈e(cuò)的 說法。

  • 大型語言模型會(huì)犯錯(cuò)誤。訓(xùn)練數(shù)據(jù)可能有很多不一致的材料。當(dāng)我們提出問題時(shí),自我注意可能不會(huì)注意到我們希望它注意的所有事情。作為一個(gè)單詞猜測(cè)器,它可能會(huì)做出不幸的猜測(cè)。有時(shí),訓(xùn)練數(shù)據(jù)中的一個(gè)詞見得多了,以至于它更喜歡這個(gè)詞,即使它對(duì)輸入的內(nèi)容沒有意義。上述情況導(dǎo)致了一種被稱為 '幻覺 '的現(xiàn)象,即猜測(cè)出一個(gè)既不來自輸入也不 '正確 '的詞。LLMs有傾向于猜測(cè)小數(shù)字而不是大數(shù)字,因?yàn)樾?shù)字更常見。所以LLM們的數(shù)學(xué)水平并不高。LLMs對(duì)數(shù)字 '42 '有偏好,因?yàn)槿祟惔_實(shí)是因?yàn)槟潮久?。LLMs對(duì)更常見的名字有偏好,所以可能會(huì)編造作者的名字。

  • 大型語言模型是自動(dòng)回歸的。因此,當(dāng)它們做出我們可能認(rèn)為很差的猜測(cè)時(shí),這些猜測(cè)的詞會(huì)被添加到它們自己的輸入中,以做出下一個(gè)詞的猜測(cè)。也就是說:錯(cuò)誤會(huì)累積。即使只有1%的出錯(cuò)幾率,那么自我注意也會(huì)注意到那個(gè)錯(cuò)誤的選擇,并對(duì)那個(gè)錯(cuò)誤加倍注意。即使只犯了一個(gè)錯(cuò)誤,后面的一切都可能與這個(gè)錯(cuò)誤聯(lián)系在一起。那么語言模型就可能在此基礎(chǔ)上再犯錯(cuò)誤。變形金剛沒有辦法 '改變主意 '或再試一次或自我糾正。他們隨波逐流。

  • 人們應(yīng)該總是驗(yàn)證大型語言模型的輸出。如果你要求它做一些你自己不能勝任的驗(yàn)證的事情,那么你應(yīng)該考慮一下你是否可以對(duì)所犯的任何錯(cuò)誤采取行動(dòng)。對(duì)于低風(fēng)險(xiǎn)的任務(wù),如寫一個(gè)短篇小說,這可能是好的。對(duì)于高風(fēng)險(xiǎn)的任務(wù),如試圖獲得信息以決定投資哪只股票,也許這些錯(cuò)誤會(huì)導(dǎo)致你做出一個(gè)非常昂貴的決定。

  • 自我關(guān)注意味著你在輸入提示中提供的信息越多,反應(yīng)就越專業(yè),因?yàn)樗诓聹y(cè)中會(huì)混入更多你的話。反應(yīng)的質(zhì)量與輸入提示的質(zhì)量成正比。更好的提示會(huì)產(chǎn)生更好的結(jié)果。嘗試幾個(gè)不同的提示,看看什么對(duì)你最有效。不要假設(shè)語言模型 '明白 '你要做什么,并會(huì)在第一次就給它最好的機(jī)會(huì)。

  • 你并不是真的在和一個(gè)大型語言模型 '對(duì)話'。一個(gè)大型的語言模型不會(huì) '記住 '交流中發(fā)生的事情。你的輸入進(jìn)去了。響應(yīng)就出來了。LLM什么都不記得。你的初始輸入、回應(yīng)和你對(duì)回應(yīng)的回應(yīng)都會(huì)進(jìn)入。因此,如果它看起來像是在記憶,那是因?yàn)閷?duì)話的記錄變成了一個(gè)新的輸入。這是前端的一個(gè)編程技巧,使大型語言模型看起來像是在進(jìn)行對(duì)話。由于這個(gè)技巧,它可能會(huì)保持話題,但不能保證它不會(huì)與之前的回答相矛盾。另外,向大型語言模型輸入多少單詞是有限制的(目前ChatGPT允許大約4000個(gè)單詞,GPT-4允許大約32000個(gè)單詞)。輸入的大小可以相當(dāng)大,所以對(duì)話往往會(huì)在一段時(shí)間內(nèi)看起來保持連貫性。最終,累積的日志會(huì)變得太大,對(duì)話的開頭會(huì)被刪除,系統(tǒng)會(huì) '忘記 '先前的事情。

  • 大型語言模型不做問題解決或計(jì)劃。但是你可以要求它們創(chuàng)建計(jì)劃和解決問題。我在這里要分清一些事情。問題解決計(jì)劃是人工智能研究界的某些團(tuán)體保留的術(shù)語,意味著非常具體的東西。特別是,它們意味著有一個(gè)目標(biāo)--你想在未來完成的事情--并通過在有可能使人更接近該目標(biāo)的備選方案中做出選擇來實(shí)現(xiàn)該目標(biāo)。大型語言模型沒有目標(biāo)。它們有一個(gè)目標(biāo),那就是在輸入序列的情況下,選擇一個(gè)最可能出現(xiàn)在訓(xùn)練數(shù)據(jù)中的詞。它們是模式匹配的。尤其是規(guī)劃,通常涉及到一種叫做前瞻的東西。當(dāng)人類做計(jì)劃時(shí),他們想象自己行動(dòng)的結(jié)果,并分析該未來與目標(biāo)的關(guān)系。如果它看起來能讓人更接近目標(biāo),那就是一個(gè)好的行動(dòng)。如果不是這樣,我們可能會(huì)嘗試想象另一個(gè)行動(dòng)的結(jié)果。這里面有很多東西,但關(guān)鍵的一點(diǎn)是,大型語言模型沒有目標(biāo),也不做前瞻。變形器是向后看的。自我關(guān)注只能應(yīng)用于已經(jīng)出現(xiàn)的輸入詞?,F(xiàn)在,大型語言模型可以生成看起來像計(jì)劃的輸出,因?yàn)樗鼈冊(cè)谟?xùn)練數(shù)據(jù)中看到了大量的計(jì)劃。他們知道計(jì)劃是什么樣子的,他們知道關(guān)于他們所看到的某些主題的計(jì)劃中應(yīng)該出現(xiàn)什么。它要對(duì)該計(jì)劃進(jìn)行良好的猜測(cè)。該計(jì)劃可能會(huì)忽略關(guān)于世界的特定細(xì)節(jié),而傾向于最通用的計(jì)劃。大型語言模型當(dāng)然沒有 '考慮過其他選擇',也沒有嘗試過一件事,然后回溯并嘗試另一件事。在變壓器內(nèi)部沒有任何可以指出的機(jī)制可以對(duì)未來進(jìn)行這樣的反反復(fù)復(fù)的考慮。(這一點(diǎn)有一個(gè)注意事項(xiàng),將在下一節(jié)中出現(xiàn)。)在要求計(jì)劃時(shí)一定要驗(yàn)證輸出。

9.是什么讓ChatGPT如此特別?

'所以我聽說RLHF是使ChatGPT真正聰明的原因。'

'ChatGPT使用強(qiáng)化學(xué)習(xí),這就是它的聰明之處。'

嗯......算是吧。

在寫這篇文章的時(shí)候,有一個(gè)叫RLHF的東西引起了很多人的興奮,也就是帶人類反饋的強(qiáng)化學(xué)習(xí)。有幾件事情是用來訓(xùn)練ChatGPT的(以及越來越多的其他大型語言模型)。它們并不完全是新的,但在ChatGPT發(fā)布時(shí),它們被廣泛引入,產(chǎn)生了巨大的效果。

ChatGPT是一個(gè)基于轉(zhuǎn)化器的大型語言模型。ChatGPT因善于對(duì)輸入提示做出反應(yīng),以及拒絕回答有關(guān)某些可能被認(rèn)為是有毒或有意見的話題而贏得了聲譽(yù)。它并沒有做任何與上述內(nèi)容特別不同的事情。事實(shí)上,它是很虛的。但有一個(gè)區(qū)別:它是如何訓(xùn)練的。ChatGPT的訓(xùn)練是正常的--從互聯(lián)網(wǎng)上搜出一大塊文本,取其片段,讓系統(tǒng)預(yù)測(cè)下一個(gè)詞。這就產(chǎn)生了一個(gè)基礎(chǔ)模型,它已經(jīng)是一個(gè)非常強(qiáng)大的單詞預(yù)測(cè)器(相當(dāng)于GPT-3)。但隨后又有兩個(gè)額外的訓(xùn)練步驟。指令調(diào)整帶有人類反饋的強(qiáng)化學(xué)習(xí)。

9.1.指令微調(diào)

大型語言模型有一個(gè)特別的問題:它們只想接受一個(gè)輸入的單詞序列,并生成接下來的內(nèi)容。大多數(shù)情況下,這就是人們想要的。但并非總是如此??紤]一下下面的輸入提示:

'寫一篇關(guān)于亞歷山大-漢密爾頓的文章。'

你認(rèn)為回答應(yīng)該是什么。你可能在想它應(yīng)該是這樣的:'亞歷山大-漢密爾頓于1757年出生在尼維斯。他是一位政治家、律師、陸軍上校和美國第一任財(cái)政部長......'但實(shí)際上你可能得到的是:

'你的論文應(yīng)該至少有五頁,雙倍行距,并包括至少兩個(gè)引文。'

剛剛發(fā)生了什么?好吧,語言模型可能已經(jīng)看到了很多學(xué)生作業(yè)的例子,這些作業(yè)以 '寫一篇關(guān)于......的文章 '開始,并包括詳細(xì)說明長度和格式的文字。當(dāng)然,當(dāng)你寫下 '寫一篇文章...... '時(shí),你在想你是在向語言模型寫指令,就好像它是一個(gè)理解意圖的人。語言模型不理解你的意圖,也沒有自己的意圖;它們只將輸入與它們?cè)谟?xùn)練數(shù)據(jù)中看到的模式相匹配。

為了解決這個(gè)問題,人們可以做一些叫做指令微調(diào)的事情。這個(gè)想法相當(dāng)簡單。如果你得到了錯(cuò)誤的反應(yīng),寫下正確的反應(yīng)應(yīng)該是什么,并通過神經(jīng)網(wǎng)絡(luò)發(fā)送原始輸入和新的、修正的輸出作為訓(xùn)練數(shù)據(jù)。有了足夠多的糾正輸出的例子,系統(tǒng)將學(xué)會(huì)改變它的電路,使新的答案成為首選。

人們不需要做任何太花哨的事情。只要讓很多人與大型語言模型互動(dòng),要求它做很多事情,并寫下它行為不正確時(shí)的糾正。然后收集所有這些它犯了錯(cuò)誤的例子和新的、正確的輸出,并進(jìn)行更多的訓(xùn)練。

這使得大型語言模型表現(xiàn)得好像它理解了輸入提示的意圖,并表現(xiàn)得好像它在遵循指令。除了試圖猜測(cè)下一個(gè)詞之外,它沒有做任何事情。但是現(xiàn)在,新的訓(xùn)練數(shù)據(jù)讓它猜出了似乎對(duì)輸入更有反應(yīng)的詞。

9.2.從人類反饋中強(qiáng)化學(xué)習(xí)

訓(xùn)練的下一步是對(duì)人類反饋的強(qiáng)化學(xué)習(xí)。我想這需要解釋一下。

強(qiáng)化學(xué)習(xí)是一種人工智能技術(shù),傳統(tǒng)上用于一些機(jī)器人研究,也用于虛擬游戲代理(想想能下國際象棋、圍棋或星際爭霸的人工智能系統(tǒng))。強(qiáng)化學(xué)習(xí)尤其擅長在得到一種叫做獎(jiǎng)勵(lì)的東西時(shí)找出該做什么。獎(jiǎng)勵(lì)只是一個(gè)數(shù)字,表明它做得有多好(做得非常好的為 100;做得非常差的為-100)。在現(xiàn)實(shí)世界和游戲中,獎(jiǎng)勵(lì)往往很少給予。在游戲中,你可能要做很多動(dòng)作才能得到任何積分。也許你只有在游戲的最后才得到積分。在現(xiàn)實(shí)世界中,只是沒有足夠的人告訴你什么時(shí)候你做的好(你是)。除非你是一只狗(他們都是好孩子)。你真正需要知道的是,強(qiáng)化學(xué)習(xí)系統(tǒng)試圖預(yù)測(cè)他們未來會(huì)得到多少獎(jiǎng)勵(lì),然后選擇最有可能獲得更多未來獎(jiǎng)勵(lì)的行動(dòng)。這與人們使用狗食來教自己的狗行為的方式并不完全不同。

好吧,把這些都藏起來,考慮一下下面的提示:

馬克是什么方面的專家?

假設(shè)語言模型的輸出是:

馬克在人工智能、圖形學(xué)和人機(jī)交互方面有許多著作。

這只是部分正確。我不在圖形方面發(fā)表文章。我真的只想給這個(gè)大拇指,或-1分。但只有一個(gè)部分是錯(cuò)的:圖形這個(gè)詞。如果我告訴系統(tǒng)整個(gè)句子都是錯(cuò)的,語言模型可能會(huì)學(xué)習(xí)到所有這些詞都應(yīng)該被避免。好吧,這些詞中有很多是合理的。

這就是強(qiáng)化學(xué)習(xí)的意義所在。強(qiáng)化學(xué)習(xí)的工作原理是嘗試不同的選擇,看哪種選擇能得到最多的獎(jiǎng)勵(lì)。假設(shè)我要求它對(duì)原始提示產(chǎn)生三種不同的反應(yīng)。

馬克在人工智能、圖形學(xué)和人機(jī)交互方面有許多著作。

馬克曾在人工智能、安全NLP系統(tǒng)和人機(jī)交互方面工作。

標(biāo)記為研究人工智能、游戲AI和圖形。

我可以對(duì)第一種選擇豎起大拇指(-1),對(duì)第二種選擇豎起大拇指( 1),而對(duì)第三種選擇豎起大拇指(-1)。就像玩游戲一樣,強(qiáng)化學(xué)習(xí)算法可以回顧并發(fā)現(xiàn)導(dǎo)致-1的一個(gè)共同點(diǎn)是 '圖形 '這個(gè)詞?,F(xiàn)在,系統(tǒng)可以鎖定這個(gè)詞,并調(diào)整神經(jīng)網(wǎng)絡(luò)電路,使其不與該特定的輸入提示一起使用這個(gè)詞。

再一次,我們將讓一群人與大型語言模型互動(dòng)。這一次,我們將給人們?nèi)齻€(gè)(或更多)可能的反應(yīng)。我們可以通過要求大型語言模型對(duì)一個(gè)提示作出若干次反應(yīng)來做到這一點(diǎn),并在選擇前鋒臂時(shí)引入一點(diǎn)隨機(jī)性(沒有忘記這些,是嗎?)我們有時(shí)可能不會(huì)選擇激活度最高的前鋒臂,而是選擇激活度第二或第三的前鋒臂。這就給出了不同的文字反應(yīng),我們要求人們挑選他們最喜歡的第一個(gè)反應(yīng),第二個(gè)最喜歡的,以此類推。現(xiàn)在我們有了備選方案,也有了數(shù)字?,F(xiàn)在我們可以使用強(qiáng)化學(xué)習(xí)來調(diào)整神經(jīng)網(wǎng)絡(luò)電路。

[實(shí)際上,我們使用這些大拇指和小拇指的反饋來訓(xùn)練第二個(gè)神經(jīng)網(wǎng)絡(luò),以預(yù)測(cè)人們是否會(huì)豎起大拇指或小拇指。如果這個(gè)神經(jīng)網(wǎng)絡(luò)在預(yù)測(cè)人們會(huì)喜歡什么方面足夠好,那么我們就可以用這個(gè)第二個(gè)神經(jīng)網(wǎng)絡(luò)來猜測(cè)語言模型的反應(yīng)是否可能得到大拇指或小拇指,并利用這個(gè)來訓(xùn)練語言模型。]

強(qiáng)化學(xué)習(xí)所做的是把文本的生成當(dāng)作一個(gè)游戲,每個(gè)動(dòng)作都是一個(gè)詞。在一個(gè)序列結(jié)束時(shí),語言模型被告知它是贏得了一些分?jǐn)?shù)還是失去了一些分?jǐn)?shù)。語言模型并不完全是像上一節(jié)所討論的那樣做前瞻,但它在某種意義上已經(jīng)被訓(xùn)練成預(yù)測(cè)哪些詞會(huì)被豎起大拇指。大型語言模型仍然沒有一個(gè)明確的目標(biāo),但它有一個(gè) '獲得大拇指 '的隱性目標(biāo)(或者我們也可以說它有 '滿足普通人 '的隱性目標(biāo)),并且已經(jīng)學(xué)會(huì)將對(duì)某些提示的某些反應(yīng)與獲得大拇指相關(guān)聯(lián)。這有很多計(jì)劃的特質(zhì),但沒有明確的前瞻機(jī)制。更像是它已經(jīng)記住了在很多情況下都有效的獲得獎(jiǎng)勵(lì)的策略。

對(duì)于RLHF是否使ChatGPT更加智能這個(gè)大問題......它使ChatGPT更有可能產(chǎn)生我們希望看到的那種反應(yīng)。它看起來更聰明,因?yàn)樗妮敵鏊坪鮽鬟_(dá)了一種感覺,即它理解了我們輸入的意圖,并有自己的意圖來回應(yīng)。這是個(gè)假象,因?yàn)樗匀恢皇窃趯?duì)文字進(jìn)行編碼和解碼。但話說回來,這就是我們這篇文章的出發(fā)點(diǎn)。

指令調(diào)整和RLHF也使得使用ChatGPT可以抵制某些類型的濫用,如產(chǎn)生種族主義、性別歧視或政治性的內(nèi)容。它仍然可以做到,而且無論如何,GPT-3的舊版本總是能夠做到這一點(diǎn)。然而,作為一個(gè)面向公眾的免費(fèi)服務(wù),ChatGPT對(duì)某些類型的濫用所產(chǎn)生的摩擦傳達(dá)了一種安全感。它也抵制把意見當(dāng)作事實(shí)來提供,這也消除了對(duì)用戶的一種潛在傷害。

[使用強(qiáng)化學(xué)習(xí)來修改預(yù)先訓(xùn)練好的語言模型并不新鮮。它至少可以追溯到2016年,并被用來使大型語言模型更加安全。大多數(shù)基于強(qiáng)化學(xué)習(xí)的大型語言模型的調(diào)整使用第二個(gè)模型來提供獎(jiǎng)勵(lì),這也是ChatGPT所做的。ChatGPT值得注意的是,用強(qiáng)化學(xué)習(xí)調(diào)整的系統(tǒng)規(guī)模,以及大規(guī)模的人類反饋收集工作]。

10.結(jié)論

我需要得到更多的睡眠。這就是我從這一切中得出的結(jié)論。

本站僅提供存儲(chǔ)服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊舉報(bào)。
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
多圖帶你讀懂 Transformers 的工作原理
圖解Transformer完整版(從輸入開始一步一步演示了數(shù)據(jù)的流動(dòng)過程訓(xùn)練過程是非常有用的知識(shí))
深度學(xué)習(xí):圖片解釋《Attention is All You Need》
上車!帶你一文了解GPT-2模型(transformer語言模型可視化)
Nature neuroscience:利用encoder-decoder模型實(shí)現(xiàn)皮層活動(dòng)到文本的機(jī)器翻譯
可視化解釋Transformer(第1部分):功能概述
更多類似文章 >>
生活服務(wù)
熱點(diǎn)新聞
分享 收藏 導(dǎo)長圖 關(guān)注 下載文章
綁定賬號(hào)成功
后續(xù)可登錄賬號(hào)暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服