电竞比分网-中国电竞赛事及体育赛事平台

分享

【完整版】Transformer技術工作原理動畫演示

 mrjiangkai 2024-06-24 發(fā)布于上海
圖片

前言

本文是3Blue1Brown講解內容(But what is a GPT? Visual intro to Transformers | Deep learning),小編跟蹤整理GPT中的Transformer技術工作原理的動畫演示(完整版的視頻&&譯文材料),供參考學習。

Lesson by Grant Sanderson

歡迎收藏轉發(fā)分享

更多閱讀參考


GPT的Transformer動畫演示1

Transformer起源及應用
Transformer內部原理四部曲
深度學習技術前提淺析
詞嵌入向量

Transformer

三要素Predict/Sample/Repeat

GPT是Generative Pre-trained Transformer的縮寫。首個單詞較為直接,它們是用來生成新文本的機器人。'Pre-trained' 指的是模型經歷了從大量數據中學習的過程,這個詞暗示了該模型還有進一步在特定任務中進行額外訓練和微調的可能。然而,最后一個詞,才是真正重要的部分。Transformer 是一種特定類型的神經網絡,一個機器學習模型,它是現今 AI 高速發(fā)展的核心創(chuàng)新。我希望通過這個視頻和接下來的章節(jié),以一種便于理解的方式,闡述 Transformer 內部實際發(fā)生的過程。我們將逐步探索流經它的數據。

你可以使用 Transformer 構建許多不同類型的模型。有些模型接受音頻輸入并生成文字。這句話來自一個反向工作的模型,只需要文本輸入就能生成人工語音。所有那些在 2022 年風靡全球的工具,如 DALL-E 和 MidJourney,能夠將文本描述轉化為圖像,都是基于 Transformer 的。即使我無法讓它完全理解 'π 生物'到底是什么,我仍對這樣的事情有可能發(fā)生感到驚訝。

最初的Transformer是Google在2017年推出的,主要用于將一種語言的文本翻譯成另一種語言。但我們將關注的版本,也就是像 ChatGPT 這樣的工具所依賴的類型,會是一個接受一段文本(可能伴隨一些圖像或聲音)的模型,然后預測文章接下來的內容。這種預測呈現為概率分布形式涵蓋了很多可能接下來出現的文字片段。

這個過程,就是通過重復的預測和選取來生成文本,正是你在使用 ChatGPT 或其他大型語言模型時所經歷的,模型會逐字地生成文本。其實,我特別希望能有一種功能,即能看到它在選擇每個新詞時的底層概率分布。

乍一看,你可能覺得預測下一個詞似乎與生成新的文字有著天壤之別。但當你有了像這樣的預測模型后,你可以試著讓它生成一段更長的文字,方法就是給它一個初始的片段,然后隨機從剛生成的概率分布中選取一個樣本,將這個樣本追加到文字中,接著再進行一輪預測,這次的預測需要基于所有新生成的文字,包括剛剛添加的那部分。

我不知道你怎么看,但我真的覺得這個方法的效果可能并不理想。舉個例子,在這個動畫中,我在我的筆記本電腦上運行GPT-2,并讓它不斷地預測與取樣下一個文字塊,嘗試基于一段起始文本生成一個故事。結果呢這個故事基本上沒什么邏輯可言。但是如果換成GPT-3的API調用,這是同樣的基本模型,只是規(guī)模更大,突然間就像變魔法一樣,我們不僅得到了一個合乎邏輯的故事,這個故事甚至能暗示出一個π生物可能居住在一個充滿數學和計算的世界里。

將這樣的工具轉化為聊天機器人的一個簡單方法是,就是準備一段文本,設定出用戶與一個有幫助的AI助手交互的場景,這就是所謂的系統(tǒng)提示。然后,你可以利用用戶的初始問題或提示詞作為對話的開頭,接著讓AI開始預測這個有用的AI助手會如何進行回應。為了使這個過程運行得更好,還需要額外的訓練步驟,不過總的來說這就是基本的思路。

圖片
圖片

Transformer內部說明

將三個數字看作是三維空間中的坐標點很簡單,但詞向量的維度遠遠超出這個范疇。在GPT-3中的維度高達12,288,如你所見,選擇一個有很多不同方向的空間進行工作是很重要的。就像你可以在三維空間中選擇一個二維切片,并將所有點投影到這個切片上一樣,為了讓簡單模型輸出的詞向量能夠被動態(tài)展示,采取了相似的方法,選擇了一個高維空間中的三維'切片',并將詞向量映射到這個切片上來展示它們。

我們先從宏觀角度看看數據是如何在Transformer模型中流轉的。接下來,我們會詳細探討、解釋每一個步驟,并對其進行擴展。但是大體來說,當聊天機器人生成某個特定詞匯時,下面就是它底層的運行機制。

首先輸入內容會被拆分成許多小片段。這些小片段被稱為詞元 (Tokens)。對于文本來說,這些Token 通常是單詞、單詞的一小部分,或者其他常見的字符組合。如果是圖像或聲音,Token 則可能代表圖像的一小塊區(qū)域或聲音的一段小片段。

然后每個Token會對應到一個向量上,也就是一串數字,這串數字的目的是以某種方式來表達該片段的含義。如果你把這些向量看作是在一個高維空間中的坐標,那么含義相似的詞匯傾向于彼此接近的向量上。每當我說到'含義'這個詞時,完全通過向量中的數字來表達。這些向量序列接下來會經過一個稱為'注意力塊'的處理過程,使得向量能夠相互'交流'并根據彼此信息更新自身的值。例如,'model'這個單詞在'機器學習模型(model)'中的意思和在'時尚模特(model)'中的意思是不同的。

注意力模塊的作用就是要確定上下文中哪些詞對更新其他詞的意義有關,以及應該如何準確地更新這些含義。之后這些向量會經過另一種處理,這個過程根據資料的不同,可能被稱作多層感知機或者前饋層。這個階段向量不再互相'交流',而是并行地經歷同一處理。雖然這個步驟比較難以理解,但我們會在后面討論,這個步驟有點像對每個向量提出一系列的問題,然后根據這些問題的答案來更新向量。

這兩個處理階段的操作本質上都是大量的矩陣乘法,我們要學習的主要是如何解讀這些背后的矩陣。在講解中,我省略了一些中間步驟的歸一化細節(jié),畢竟這只是宏觀概覽。

接下來過程基本上是重復的。你需要在注意力模塊和多層感知機(MLP)模塊之間不斷切換,直到最后,我們期望通過某種方式,文章的核心意義已經被完全融入到序列的最后一個向量中。然后對這最后一個向量進行特定操作,產生一個覆蓋所有可能 Token 的概率分布,這些 Token 代表的是可能接下來出現的任何小段文本。

一旦擁有了這樣一個工具,它可以根據一小段文本預測下一步,你就可以給它輸入一些初始文本,讓它不斷地進行預測下一步,從概率分布中抽樣,添加到現有文本,然后不斷重復這個過程。了解這一點的人可能還記得,早在 ChatGPT出現之前,GPT-3的早期演示就是這樣的,根據一段起始文本自動補全故事和文章。

圖片

章節(jié)說明Chapter layout

在這一章節(jié)中,我們將深入討論網絡開始和結束時發(fā)生的事情,同時,我也會花大量的時間回顧一些重要的背景知識,這些知識對于熟悉 Transformer 的機器學習工程師來說,都是基礎常識。

如果你已經對背景知識比較熟悉,而且迫不及待想要了解更多,那么你可以選擇直接跳到下一章節(jié),這一章節(jié)將會關注 Transformer 的核心部分,即注意力模塊。在這之后,我還會詳細討論多層感知機模塊,訓練過程,以及之前被省略的其他一些細節(jié)。

作為背景信息,這些視頻是我們的深度學習系列課程的補充部分,你不一定非得按照順序來看,但在深入研究 Transformer 之前,我認為有必要確保我們對深度學習的基本概念和架構有共同的理解。

圖片

深度學習的前提

這里需要明確的是,機器學習是一種方法論,它涉及到使用數據來指導模型的行為模式。具體來說,你可能需要一個函數,輸入一張圖片,輸出對應的標簽描述,或者預測給定文本片段的下一個單詞,或者其他需要直覺和模式識別的任務,雖然我們現在已經習以為常,機器學習的核心思想在于,我們不再嘗試去編寫固定的程序來完成這些任務,這是在 AI 的最早階段人們會做的事情。

而是構建一個具有可調節(jié)參數的靈活結構,就像一系列的旋鈕和調節(jié)器,然后通過大量實例輸入和期望輸出的學習,調整和微調參數的值,以此來模擬這種直覺行為。比如,可能最直觀的機器學習入門模型就是線性回歸了,這里你把輸入和輸出都視為單個數字,如房子的面積和價格,你要做的,就是找出一條最擬合這些數據的直線,以此來預測將來的房價。這條線由兩個連續(xù)的參數,即斜率和 y 軸截距。線性回歸的目標就是確定這些參數以盡可能匹配數據。

不用說,深度學習模型會更復雜。比如,GPT-3 就擁有 1750 億個參數,而不僅僅是兩個。但值得注意的是,并不是簡單地構建一個參數眾多的龐大模型就能有效工作,這樣做可能會導致模型嚴重過擬合訓練數據,或者訓練起來極其困難。

深度學習涵蓋了一系列在過去幾十年里證明了具有出色擴展能力的模型類別。它們之所以能夠成功,關鍵在于都采用了相同的訓練算法:即反向傳播,我們在前面的章節(jié)已經介紹過這一點。你需要理解的是,要讓這種訓練算法能在大規(guī)模應用中順利進行,模型必須遵循一種特定的結構。如果你對這種結構有所了解,就能更好地理解 Transformer 處理語言的方式及其背后的邏輯,否則某些設計選擇可能顯得有些隨意。

首先,不管你構建的是哪種模型,輸入都必須是一個實數數組。這可能只是一個數字列表,也可能是一個二維數組,或者更常見的是更高維度的數組,這種通用的術語我們稱之為張量。這些輸入數據通常會被逐步轉換成多個不同的層,每一層都構成了實數數組,直到最后一層,你可以將其視為輸出層。例如,我們的文本處理模型的最終輸出層是一個數字列表,這些數字代表了所有可能的下一詞匯的概率分布。

在深度學習領域,這些模型的參數通常被稱作權重。這樣稱呼的原因是,這些模型的一個核心特點是這些參數與正在處理的數據之間的唯一交互方式就是通過權重和。雖然模型中也會穿插一些非線性函數,但它們并不依賴于這些參數。通常來說,我們不會直接看到這些權重和的裸露形式,而是會發(fā)現它們被作為矩陣向量乘積的不同部分封裝起來。這其實是在表達同一種概念。如果你回想一下矩陣向量乘法是如何運作的,輸出中的每一部分都像是一個權重和。

更直觀的方式是,將這些可調參數填充的矩陣想象成對處理中數據進行向量轉換的工具。例如,GPT-3 中的那 1750 億個權重就被組織在大約 28,000 個不同的矩陣中。這些矩陣又被分為八個不同的類別,你和我將要做的就是逐一理解這些類別,了解每種類型的功能。接下來的過程會非常有趣,我們將參考 GPT-3 的具體數據來統(tǒng)計這 1750 億是如何分配的。即使現在有更大更好的模型,GPT-3 模型仍具有獨特的魅力,作為第一個引發(fā)全球關注的大語言模型,影響力并未局限于機器學習社區(qū)。實際上,對于更現代的模型,公司往往對具體的數據保持更嚴格的保密。

在這里,我想說明的是,當你深入探索像 ChatGPT 這樣的工具的內部機制時,你會發(fā)現幾乎所有的計算過程都體現為矩陣和向量的乘積。在這海量的數字中,很容易迷失方向,但你需要在心中清楚地區(qū)分兩個概念:模型的權重(我將用藍色或紅色表示)和正在處理的數據(我將用灰色表示)。權重就是模型的'大腦'。這些是在訓練過程中學習到的,它們決定了模型的行為模式。正在處理的數據僅僅是編碼了某次操作中模型接收的具體輸入,比如一段文本示例。

理解了上述基礎知識后,讓我們探討文本處理示例的第一步:將輸入分割成小片段,并將這些片段轉換成向量。我之前提到過,這些小片段被稱為 Tokens,它們可能是單詞的一部分或是標點符號,但在本章,特別是在下一章中,我傾向于簡化理解,假設它們完整地對應于單詞。因為我們人類用單詞來思考,通過參考小例子和解釋每一步可以使這個過程更加容易理解。

圖片

Word embeddings

模型擁有一個預設的詞匯庫,包含所有可能的單詞,比如說有 50,000 個。我們將首先遇到的一個矩陣叫做嵌入矩陣,它為每個單詞都分配了一個獨立的列。這些列定義了第一步中每個單詞轉換成的向量。我們將其稱為We,就像我們看到的所有其他矩陣一樣,它的初始值是隨機的,但基于數據進行學習和調整。

在 Transformers 出現之前,機器學習中就已經普遍采用了將單詞轉換為向量的做法,雖然這對于初次接觸的人來說可能有些奇怪,但它為接下來的一切建立了基礎,因此,我們需要花一些時間來熟悉它。我們通常稱這種轉換為詞嵌入,這種表述讓你可以從幾何的角度去理解這些向量,把它們想象成高維空間中的點。

將三個數字看作是三維空間中的坐標點很簡單,但詞向量的維度遠遠超出這個范疇。在 GPT-3 中,它們的維度高達 12,288,如你所見,選擇一個有很多不同方向的空間進行工作是很重要的。就像你可以在三維空間中選擇一個二維切片,并將所有點投影到這個切片上一樣,為了讓簡單模型輸出的詞向量能夠被動態(tài)展示,我采取了相似的方法,選擇了一個高維空間中的三維'切片',并將詞向量映射到這個切片上來展示它們。

這里的關鍵思想是,模型在訓練過程中調整和微調權重,以確定詞具體如何被嵌入為向量,它會傾向于找到一組嵌入,使得這個空間中的方向含有特定的語義意義。對于我目前運行的這個簡單的詞向量模型來說,如果進行搜索,找到所有與'塔樓'最相似的詞向量,你會發(fā)現這些詞都有著類似的'塔樓感'。如果你想在家里用 Python 試一試,這就是我用來制作動畫的模型。雖然它不是一個 Transformer 模型,但足以說明一個觀點:空間中的方向能夠傳達特定的語義。

一個經典的例子是,如果你計算'女人'和'男人'向量之間的差值,你會發(fā)現這個差異可以被可視化為空間中的一個小向量,連接一個詞的尖端和另一個詞的尖端,這個差異與'國王'和'女王'之間的差值非常相似。所以假設你不知道表示'女性君主'的詞,你可以通過向'國王'向量添加'女人減男人'的方向,并搜索最接近這個點的詞向量來找到它。至少在理論上是這樣。

雖然這是我正在使用的模型的一個經典例子,但實際上,真正的'女王'嵌入實際上比這種方法預想的要遠一些,這可能是因為在訓練數據中,'女王'并不僅僅是'國王'的女性版本。深入挖掘時,我發(fā)現通過家族關系來解釋這一現象似乎更為恰當。關鍵在于,在訓練過程中,模型發(fā)現采用這樣的嵌入方式更為有利,即這個空間中的一個方向能夠編碼性別信息。

另一個例子是,如果你從'意大利'的向量表示中減去'德國'的向量表示,再加上'希特勒'的向量表示,結果非常接近于'墨索里尼'的向量表示。這就好像模型學會了將某些方向與'意大利'特性相關聯,而將其他方向與二戰(zhàn)軸心國的領導人相關聯。

我個人最喜歡的一個例子是,在某些模型中,如果你計算'德國'和'日本'的向量差值,然后加上'壽司'的向量,你得到的結果會非常接近'德國香腸'。此外,在尋找最近鄰居的過程中,我還驚喜地發(fā)現'貓'離'野獸'和'怪物'都很近。

有一個有用的數學概念,尤其對于接下來的章節(jié)非常重要,那就是兩個向量的點積可以被視為一種衡量它們是否對齊的方法。從計算角度看,點積涉及到逐一乘以對應元素,然后進行求和,這很好,因為我們的很多計算看起來就像是權重求和。從幾何角度來看,當兩個向量指向相似方向時,點積為正;如果它們垂直,點積為零;當它們指向相反方向時,點積為負。

例如,假設你在測試這個模型,從'cats'(復數)的向量表示中減去'cat'(單數)的向量表示可能會在這個空間中找到表示復數概念的方向。為了驗證這個觀點,我將計算某個向量與一些特定的單數名詞嵌入的點積,并將其與相應的復數名詞的點積進行比較。如果你試一試,你會發(fā)現復數名詞的點積值通常比單數的更高,這表明它們在某種方向上的對齊更為緊密。更有趣的是,如果你將這個點積操作應用到'一'、'二'、'三'等詞匯的嵌入上,會發(fā)現得到的數值是逐漸增加的,就像我們能夠量化地衡量模型認為一個詞的'復數程度'。

再次說明,單詞的嵌入方式是通過數據學習得到的。這種嵌入矩陣揭示了每個詞匯的變化過程,它是我們模型中的第一批權重,根據 GPT-3 的數據,其詞匯量具體為 50,257,但要注意,實際上它指的不是單詞本身,而是 Tokens。嵌入的維度是 12,288。將這兩者相乘,我們得到大約有 6.17 億個權重。我們將這個數字加入到我們的累計計數中,最后,我們應該得到 1750 億個權重。

圖片

Embeddings beyond words

在談到 transformer 時,你會想到這些嵌入空間中的向量不僅僅代表著單個詞匯。它們還攜帶了詞匯位置的信息,這一點我們稍后會詳細說明。但更關鍵的是,這些向量能夠吸納并反映語境。舉個例子,一個最初代表'國王'的向量,在網絡中的各個環(huán)節(jié)的作用下,可能會逐漸變化,因此最后,它指向的方向會更具體、更微妙,以某種方式編碼了一位生活在蘇格蘭的國王,在殺死前任國王后取得其職位的國王,此人的描繪方式充滿了莎士比亞式的語言。

想想你對某個詞匯的理解通常是怎樣形成的。那個詞的意義很大程度上是由其所處的環(huán)境決定的,有時這甚至包括來自很遠的上下文。因此,在構建一個能預測下一個詞匯的模型時,關鍵目標就是讓它能夠高效地融合上下文信息。

明確一點,在第一步,當我們根據輸入文本創(chuàng)建向量數組時,每個向量都是直接從嵌入矩陣中選取的。這意味著,起初,每個向量僅能代表一個單詞的含義,而不涉及其周邊環(huán)境的信息。但我們的主要目標是讓這些向量通過網絡傳遞,使每一個向量都能獲得比單個詞更豐富、更具體的含義。這個網絡每次只能處理一定數量的向量,這就是所謂的上下文大小。對于 GPT-3,它的訓練上下文大小為 2048,意味著數據在網絡中流動時,總是看起來像一串 2048 列的數組,每一列都有 12000 個維度。

這個上下文大小限制了 Transformer 在預測下一個詞的過程中可以納入的文本量。這就解釋了為什么如果和一些聊天機器人比如 ChatGPT 的早期版本進行長對話時,你可能會感覺到機器人似乎在對話中迷失了方向,尤其是當對話持續(xù)過長時。

我們會在適當的時候詳細討論注意力機制的細節(jié),但先讓我們簡單了解一下最終階段的處理過程。

圖片

Unembedding

請記住,最終的目標是產生一個概率分布,預測下一個可能出現的 Token。舉例來說,如果最后一個詞是'教授',上下文中包含了'哈利·波特'等詞語,緊接著出現的是'最不喜歡的老師',如果允許我稍微發(fā)揮一下,假設 Tokens 就是完整的單詞。那么,一個經過良好訓練并對哈利·波特世界有所了解的網絡,會很可能給'斯內普'這個詞賦予一個較高的權重。

此過程涉及兩個不同的步驟。首先,使用另一個矩陣,將上下文中的最后一個向量映射到一個包含 50,000 個值的列表,詞匯表中的每個 token 都對應一個值。接著,通過一個函數,把這些值轉換成概率分布。這個函數叫 softmax,我們稍后會詳細討論。

但在此之前,你可能會覺得,僅僅基于最后一個嵌入來做出預測似乎有些奇怪,畢竟在最后一層中還有成千上萬的其他向量,每個向量都蘊含著豐富的上下文意義。這是因為在訓練過程中,如果我們利用最終層的每一個向量來預測其后可能出現的內容,被證明是更高效的方法。關于訓練的更多細節(jié)我們稍后還會提到,現在先簡單指出這一點。

這個矩陣被稱為 unembedding 矩陣,我們用標簽 Wu 來標記它。就像我們見過的所有權重矩陣一樣,這個矩陣的初始值是隨機的,但在訓練過程中,這些值會被更新。關于參數總數的統(tǒng)計,這個 unembedding 矩陣為詞匯表中的每個單詞都分配了一行,每一行包含與嵌入維度相同數量的元素。這與嵌入(embedding)矩陣非常相似,只不過是把順序倒過來了,因此它為網絡增加了另外 6.17 億個參數。到目前為止,我們的參數總數已經超過了 10 億,這只是我們最終要達到的 1750 億的一小部分。

請記住,最終的目標是產生一個概率分布,預測下一個可能出現的 Token。舉例來說,如果最后一個詞是'教授',上下文中包含了'哈利·波特'等詞語,緊接著出現的是'最不喜歡的老師',如果允許我稍微發(fā)揮一下,假設 Tokens 就是完整的單詞。那么,一個經過良好訓練并對哈利·波特世界有所了解的網絡,會很可能給'斯內普'這個詞賦予一個較高的權重。

此過程涉及兩個不同的步驟。首先,使用另一個矩陣,將上下文中的最后一個向量映射到一個包含 50,000 個值的列表,詞匯表中的每個 token 都對應一個值。接著,通過一個函數,把這些值轉換成概率分布。這個函數叫 softmax,我們稍后會詳細討論。

但在此之前,你可能會覺得,僅僅基于最后一個嵌入來做出預測似乎有些奇怪,畢竟在最后一層中還有成千上萬的其他向量,每個向量都蘊含著豐富的上下文意義。這是因為在訓練過程中,如果我們利用最終層的每一個向量來預測其后可能出現的內容,被證明是更高效的方法。關于訓練的更多細節(jié)我們稍后還會提到,現在先簡單指出這一點。

這個矩陣被稱為 unembedding 矩陣,我們用標簽 Wu 來標記它。就像我們見過的所有權重矩陣一樣,這個矩陣的初始值是隨機的,但在訓練過程中,這些值會被更新。關于參數總數的統(tǒng)計,這個 unembedding 矩陣為詞匯表中的每個單詞都分配了一行,每一行包含與嵌入維度相同數量的元素。這與嵌入(embedding)矩陣非常相似,只不過是把順序倒過來了,因此它為網絡增加了另外 6.17 億個參數。到目前為止,我們的參數總數已經超過了 10 億,這只是我們最終要達到的 1750 億的一小部分。

圖片

Softmax with temperature

在這一章的最后一個小課中,我想更詳細地討論一下 softmax 函數,因為它在我們探索注意力機制時會再次成為焦點。如果你想讓一串數字成為概率分布,比如預測下一個可能出現的詞的概率,那么這些數字每個都得在 0 到 1 之間,并且加起來總和為 1。

但是,如果你正在進行深度學習的實踐,你所做的每一步操作都可能看起來像是矩陣和向量的乘法,那么你得到的結果可能并不符合這個條件。這些值可能是負的,也可能遠大于 1,而且加起來的和幾乎確定不會是 1。Softmax 就是一種標準方法,可以把任何一組數字轉換成一個有效的分布,使得最大的數值非常接近 1,而較小的值將會非常接近 0。

了解這一點就足夠了。但如果你感到好奇,具體的工作原理是:首先對每個數值進行 e 的指數運算,這樣就得到了一組正數;然后取所有正數的和,然后用每個數除以這個總和,這樣就把它們標準化為一個總和為 1 的列表。你會注意到,如果輸入中的某個數值明顯大于其他數值,那么在輸出中,這個數值對應的項就會在分布中占主導地位,幾乎確定你在采樣時會選擇這個最大的輸入值。

但這種方法比直接挑選最大值更為細膩,因為當其他數值也接近最大值時,它們在整體分布中同樣能獲得重要的比重,而且隨著你不斷改變輸入,一切都會連續(xù)地變化。在一些情況下,比如當 ChatGPT 利用這個分布生成下一個單詞時,可以為這個函數增加一些趣味性,可以通過在指數的分母里添加一個常量 t 來實現。我們稱之為'溫度',因其在某種程度上與熱力學方程中溫度的作用相似。它的效果是,當 t 值較大時,會使較小的數值獲得更多的權重,使得分布稍微均勻一些。而如果 t 值較小,則較大的數值則會更加明顯地占據主導,極端情況下,如果把 t 設為 0,那么所有的權重都會集中在最大的值上。

例如,我將用 GPT-3 生成一個故事種子文本是'從前,有一個 A'但我會在每次測試中使用不同的溫度。溫度為 0 意味著它總是選擇最可預測的詞,而你所得到的結果就變成了一個陳詞濫調的金發(fā)姑娘故事。較高的溫度給它提供了選擇不太可能出現的詞的機會,但這也伴隨著風險。在這個例子中,故事的開始部分較為原創(chuàng),講述的是韓國的一位年輕網頁藝術家,但很快就變得毫無意義。

嚴格地說,API 實際上并不允許你選擇大于 2 的溫度。這個限制并沒有數學上的根據,只是一個人為的限制,我猜,目的是為了防止他們的工具產生太過荒誕的結果。所以,如果你感到好奇,這個動畫的工作原理是這樣的:我選擇了 GPT-3 生成的可能性最高的前 20 個 Token,這看起來是他們能給我的最多的數量。然后,我會根據 1/5 的指數來調整這些概率。

再給你介紹一個專業(yè)術語,在這個上下文中,我們通常把這個函數的輸出成分稱作概率,人們通常將輸入稱為 logits,有的人說 logits,有的人說 logits,我選擇說 logits。舉個例子,當你輸入一段文本時,所有這些詞向量就會通過網絡流動,并與 unembedding 矩陣進行最終的乘法運算。機器學習專家會把這種原始、未標準化的輸出成分稱為下一個詞預測的 logits。

圖片

Up next

這一章的主要目標是為理解注意力機制打下基礎,就像電影《龍威小子》里的基本功訓練'上蠟刮蠟'。你看,如果你對詞嵌入、softmax 有深入的理解,點積如何衡量相似度,以及大部分計算看起來都像是填滿可調參數的矩陣乘法有著深刻的理解,那么掌握注意力機制—— 現代 AI 浪潮中的關鍵技術,對你來說應該會比較容易。為此,歡迎在下一章中加入。

發(fā)布這篇文章時,下一章的草稿已經可以供贊助者審閱。最終版應該在一兩周內公開。這通常取決于我根據審閱結果做出的修改有多大。與此同時,如果你想深入研究注意力機制,如果想幫助這個頻道,那么它就在那里等你。

視頻注釋

圖片

官網地址

https://www.3blue1brown.com/lessons/gpthttps://baoyu.io/translations/transcript/but-what-is-a-gpt-visual-intro-to-transformershttps://arthurchiao.art/blog/visual-intro-to-transformers-zh/

    本站是提供個人知識管理的網絡存儲空間,所有內容均由用戶發(fā)布,不代表本站觀點。請注意甄別內容中的聯系方式、誘導購買等信息,謹防詐騙。如發(fā)現有害或侵權內容,請點擊一鍵舉報。
    轉藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多