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

分享

一篇文章讓你搞懂大模型到底是什么?

 天地人和w 2025-02-12 發(fā)布于福建
一篇文章讓你搞懂大模型到底是什么?

ChatGPT

自從2022年11月30日ChatGPT發(fā)布以后,大模型這個(gè)詞就開始被大家津津樂道,到底什么是大模型?它的運(yùn)行原理和工作過程又是怎樣的?請(qǐng)往下看,我盡量用最通俗易懂的語言告訴你:

一、什么模型?

在不同的領(lǐng)域,模型的定義是不同的:

(1)在現(xiàn)實(shí)世界,模型是指模仿實(shí)物的原形,按一定的比例縮小或放大制成的樣品。通常多用來展覽或?qū)嶒?yàn)。只考慮主要部分,忽略其次要因素。如下圖的火箭模型和分子模型:

一篇文章讓你搞懂大模型到底是什么?

火箭模型

一篇文章讓你搞懂大模型到底是什么?

分子模型

(2)在數(shù)學(xué)領(lǐng)域,模型是指公式、方程或方程組:

一篇文章讓你搞懂大模型到底是什么?

煙霧氣流

上圖模型的數(shù)學(xué)表達(dá)如下:

一篇文章讓你搞懂大模型到底是什么?

煙霧氣流的數(shù)學(xué)表示

(3)在計(jì)算機(jī)領(lǐng)域,模型是指某種算法,算法就是解決問題的方法和步驟。如:

深度優(yōu)先搜索算法

一篇文章讓你搞懂大模型到底是什么?

深度優(yōu)先搜索

寬度優(yōu)先搜索算法

一篇文章讓你搞懂大模型到底是什么?

寬度優(yōu)先搜索

(4)在人工智能領(lǐng)域,模型通常是指機(jī)器學(xué)習(xí)中的某種人工神經(jīng)網(wǎng)絡(luò)

一篇文章讓你搞懂大模型到底是什么?

前饋人工神經(jīng)網(wǎng)絡(luò)

而大模型指的是具有大量參數(shù)和復(fù)雜結(jié)構(gòu)的機(jī)器學(xué)習(xí)模型。

一篇文章讓你搞懂大模型到底是什么?

大模型

二、什么是大模型?

大模型,英文名叫Large Language Model,其實(shí)剛開始的時(shí)候指的是大語言模型,簡稱LLM。當(dāng)然現(xiàn)在,除了大語言模型之外,大繪畫模型、大視覺模型、大多模態(tài)模型都簡稱大模型啦。

三、為什么叫它大模型?

一篇文章讓你搞懂大模型到底是什么?

大模型的四大

原因有四:

(1)參數(shù)規(guī)模大;多到上千億個(gè)參數(shù)。GPT-3的參數(shù)數(shù)量,大約是1750億。GPT-4大約是1.8萬億。

(2)架構(gòu)規(guī)模大;神經(jīng)元節(jié)點(diǎn)數(shù)量很多,大模型的參數(shù)數(shù)量和神經(jīng)元節(jié)點(diǎn)數(shù)有一定的關(guān)系。簡單來說,神經(jīng)元節(jié)點(diǎn)數(shù)越多,參數(shù)也就越多。以O(shè)penAI公司的GPT-3為例。這個(gè)大模型的隱藏層一共有96層,每層的神經(jīng)元數(shù)量達(dá)到2048個(gè)。

一篇文章讓你搞懂大模型到底是什么?

(3)訓(xùn)練數(shù)據(jù)大;GPT-3為例,采用了45TB的文本數(shù)據(jù)進(jìn)行訓(xùn)練,絕對(duì)堪稱海量。1TB存儲(chǔ)空間大約可以裝769,231本65萬字的書。

(4)算力需求大;訓(xùn)練GPT-3大約需要3640PFLOP·天,即假如每秒計(jì)算一千萬億次,也需要計(jì)算3640天。如果采用512張英偉達(dá)的A100 GPU,大約需要1個(gè)月的時(shí)間。1張24GB顯存的A100的GPU大概需要10萬人民幣。

四、大模型長什么樣子?

一篇文章讓你搞懂大模型到底是什么?

大模型的架構(gòu)圖

這是一個(gè)比較典型的架構(gòu)圖,分為基礎(chǔ)設(shè)施層、模型層、智能體、能力層、應(yīng)用層。

(1)基礎(chǔ)設(shè)施層:整個(gè)技術(shù)架構(gòu)的基礎(chǔ)支撐部分,包括硬件設(shè)施如服務(wù)器、存儲(chǔ)設(shè)備、網(wǎng)絡(luò)設(shè)備等,以及軟件基礎(chǔ)設(shè)施如操作系統(tǒng)、數(shù)據(jù)庫管理系統(tǒng)、云計(jì)算平臺(tái)等。它為上層的模型訓(xùn)練和運(yùn)行提供強(qiáng)大的計(jì)算能力、存儲(chǔ)能力和數(shù)據(jù)傳輸能力。通常大模型運(yùn)行實(shí)例需要使用大量的高性能GPU服務(wù)器組成的集群,能夠快速處理海量的數(shù)據(jù),為模型的訓(xùn)練節(jié)省時(shí)間。

(2)模型層:這一層是大模型的核心所在,包含了各種類型和規(guī)模的模型。這些模型通?;谏疃葘W(xué)習(xí)技術(shù),如Transformer架構(gòu)等,通過使用大規(guī)模的數(shù)據(jù)進(jìn)行訓(xùn)練。模型的種類多樣,有語言模型、圖像模型、多模態(tài)模型等。例如GPT系列這樣的語言模型,能夠理解和生成人類語言。

(3)智能體:智能體可以理解為具有一定自主決策和行動(dòng)能力的組件。它們能夠根據(jù)環(huán)境和輸入的信息,進(jìn)行感知、分析和決策,并執(zhí)行相應(yīng)的動(dòng)作。智能體可以與模型層進(jìn)行交互,獲取所需的信息和能力,以完成復(fù)雜的任務(wù)。比如在智能客服場(chǎng)景中,智能體可以根據(jù)用戶的問題,調(diào)用模型的能力來生成回答。

(4)能力層:這一層提供了各種具體的能力和功能,如自然語言處理能力、圖像識(shí)別能力、推理能力、預(yù)測(cè)能力等。這些能力是通過對(duì)模型層的輸出進(jìn)行進(jìn)一步的加工和整合而形成的。例如,自然語言處理能力可以包括文本分類、情感分析、命名實(shí)體識(shí)別等。

(5)應(yīng)用層:這是直接面向用戶和業(yè)務(wù)的層面,將前面各層的技術(shù)和能力轉(zhuǎn)化為實(shí)際的應(yīng)用和服務(wù)。應(yīng)用層涵蓋了眾多領(lǐng)域,如智能客服、智能寫作、智能翻譯、智能醫(yī)療等。例如,在智能寫作應(yīng)用中,利用底層的技術(shù)和能力,幫助用戶快速生成文章、報(bào)告等內(nèi)容。

總的來說,這五層相互協(xié)作,基礎(chǔ)設(shè)施層提供基礎(chǔ)支持,模型層提供核心智能,智能體實(shí)現(xiàn)靈活交互,能力層整合和提煉具體功能,最終通過應(yīng)用層為用戶和業(yè)務(wù)提供有價(jià)值的服務(wù)和解決方案。

五、GTP與ChatGPT有什么區(qū)別?

(1)GPT(Generative Pre-trained Transformer)中文意思是生成式預(yù)訓(xùn)練變換器:GPT 和ChatGPT都是基于Transformer架構(gòu)的語言模型,但它們?cè)谠O(shè)計(jì)和應(yīng)用上存在區(qū)別:GPT模型旨在生成自然語言文本并處理各種自然語言處理任務(wù),如文本生成、翻譯、摘要等。它通常在單向生成的情況下使用,即根據(jù)給定的文本生成連貫的輸出。

一篇文章讓你搞懂大模型到底是什么?

(2)ChatGPT:ChatGPT中的“chat”代表“聊天”,ChatGPT則專注于對(duì)話和交互式對(duì)話。它經(jīng)過特定的訓(xùn)練,以更好地處理多輪對(duì)話和上下文理解。ChatGPT設(shè)計(jì)用于提供流暢、連貫和有趣的對(duì)話體驗(yàn),以響應(yīng)用戶的輸入并生成合適的回復(fù)。

六、什么是Transformer架構(gòu)?

Transformer是啥意思?Transformer 的意思是變換器,但在機(jī)器學(xué)習(xí)領(lǐng)域特指一種基于自注意力機(jī)制的深度神經(jīng)網(wǎng)絡(luò)模型。

一篇文章讓你搞懂大模型到底是什么?

Transformer

上圖是Transformer的立體圖,下圖是Transformer的平面圖:

一篇文章讓你搞懂大模型到底是什么?

Transformer架構(gòu)圖

從上圖可以看出,Transformer架構(gòu)分為兩部分,左邊是編碼器,負(fù)責(zé)對(duì)你的輸入進(jìn)行處理,比如你輸入:“給我講一講什么是深度優(yōu)先搜索?”它會(huì)對(duì)你輸入的這句話進(jìn)行處理。

一篇文章讓你搞懂大模型到底是什么?

你的輸入

右邊是解碼器,主要負(fù)責(zé)對(duì)輸出的處理。

一篇文章讓你搞懂大模型到底是什么?

大模型的輸出

各模塊分別介紹:

一篇文章讓你搞懂大模型到底是什么?

Transformer的細(xì)分

(1)Input Embedding(輸入嵌入)

一篇文章讓你搞懂大模型到底是什么?

Input Embedding模塊

此模塊的工作原理:將輸入的字或單詞或符號(hào)轉(zhuǎn)換為固定大小的向量表示。這些向量捕捉了單詞的語義信息。什么是向量呢?向量就是指多個(gè)量,比如一個(gè)人用多個(gè)量表示:{姓名 性別 年齡 身高 體重}。橫著寫就是行向量,豎著寫就是列向量。這些量好像有了方向,所以叫向量,多個(gè)向量就構(gòu)成了矩陣。

一篇文章讓你搞懂大模型到底是什么?

列向量

一篇文章讓你搞懂大模型到底是什么?

矩陣

為什么要變成向量呢?因?yàn)橛?jì)算機(jī)不認(rèn)識(shí)字,它只認(rèn)識(shí)0和1,我們把字變成數(shù)字化的向量,計(jì)算機(jī)就很容易的轉(zhuǎn)換成0和1,這樣它就知道我們的輸入是什么了。

對(duì)于人工智能來講,它首先得理解你輸入的是什么意思,才能對(duì)你的需求進(jìn)行解答。

理解字詞首先得對(duì)它進(jìn)行歸類。研究人員提出了一種方法:將詞語在不同維度上進(jìn)行拆解,拆解成詞元(token),詞元就是我們輸入到模型中的單一單位。就像是語言里的小積木,是文本中最小有意義的部分。(之前的模型使用字符作為詞元,現(xiàn)在使用整個(gè)單詞作為詞元的較多,當(dāng)然也可以使用短語作為詞元,看情況而定,比如cats,拆成cat和s比較好)。從而對(duì)字詞進(jìn)行歸類。整個(gè)變換過程可以粗略的表示為:

一篇文章讓你搞懂大模型到底是什么?

變換過程

比如有四個(gè)詞語:西瓜、草莓、番茄和櫻桃。AI在兩個(gè)維度上對(duì)這些詞語拆解:顏色:用1代表紅色,2代表綠色。形狀:用1代表圓形,2代表橢圓形。

西瓜:顏色=2(綠色),形狀=1(圓形);草莓:顏色=1(紅色),形狀=2(橢圓形);番茄:顏色=1(紅色),形狀=1(圓形);櫻桃:顏色=1(紅色),形狀=1(圓形)

一篇文章讓你搞懂大模型到底是什么?

當(dāng)然還可以從大小、甜度、是否有籽等大量維度對(duì)他們進(jìn)行打分,從而分類。當(dāng)然,對(duì)于每一個(gè)詞元,我們可以從動(dòng)詞、名詞、形容詞、褒義詞、貶義詞、表達(dá)語氣強(qiáng)弱等很多個(gè)維度進(jìn)行量化打分,只要維度足夠多、打分足夠準(zhǔn)確,AI模型就可以越精準(zhǔn)地理解一個(gè)詞語的含義。對(duì)于目前較為先進(jìn)的AI模型來說,通常維度的數(shù)量可以達(dá)到上千個(gè)。

向量在空間里的位置和數(shù)值分布能表示 Token 的語義。語義相近的 Token,向量位置近,某些維度的數(shù)值也相似。比如表示顏色的 “紅色”“藍(lán)色”“綠色”,它們的向量在和顏色相關(guān)的維度上數(shù)值可能相似,其他維度有差異。通過計(jì)算向量的距離(像歐幾里得距離、余弦距離)或者相似度(像余弦相似度),模型能判斷 Token 語義的相似程度。

在模型推理和理解語言時(shí),向量的這種語義表示能力很有用。比如在文本分類任務(wù)中,模型根據(jù)文本中 Token 的向量判斷主題類別;在情感分析中,通過分析向量里的情感傾向信息確定文本的情感態(tài)度。向量之間的運(yùn)算也能模擬一些語義關(guān)系,像 “國王 - 男人 + 女人 = 王后”,通過向量運(yùn)算能得到和 “王后” 向量相近的結(jié)果,這說明模型能理解一些語義邏輯關(guān)系,提升語言理解和處理能力,更好地應(yīng)對(duì)各種復(fù)雜的語言情況和任務(wù)。

一篇文章讓你搞懂大模型到底是什么?

想象你有一堆單詞,但它們都是“文盲”,不知道自己是什么。你需要給每個(gè)單詞發(fā)一張“身份證”(向量),這張身份證上寫滿了這個(gè)單詞的個(gè)性和特點(diǎn)(語義信息)。這樣,單詞們就可以帶著自己的身份證去參加Transformer的“派對(duì)”了。

詞模塊的工作過程:每個(gè)單詞通過查找嵌入矩陣被轉(zhuǎn)換為一個(gè)高維向量。這些向量隨后會(huì)被傳遞到下一層。

(2) Positional Encoding(位置編碼)

一篇文章讓你搞懂大模型到底是什么?

Transformer派對(duì)上的單詞們要站成一排,但它們不知道自己的位置。于是,組織者給每個(gè)單詞發(fā)了一個(gè)“座位號(hào)”(位置編碼),告訴它們:“你是第一個(gè),你是第二個(gè)……”這樣,單詞們就知道自己的位置了。

在計(jì)算機(jī)處理信息的時(shí)候,特別是處理像句子這樣的序列數(shù)據(jù)時(shí),也需要知道每個(gè)單詞的位置。這是因?yàn)榫渥又性~的位置很重要,比如,“狗追貓”和“貓追狗”意思完全不同。

為了讓模型能夠理解這些位置,我們需要給每個(gè)位置一個(gè)獨(dú)特的標(biāo)識(shí)。但是,如果我們只是簡單地使用一個(gè)數(shù)字來表示位置,那么模型可能無法很好地利用這些信息。因此,研究人員使用了一種巧妙的方法:通過不同的頻率來標(biāo)記位置。

想象一下,你在海邊聽海浪的聲音。海浪有大有小,有快有慢。如果我們將海浪比作正弦波,那么大的波就是低頻的,小的波就是高頻的。當(dāng)我們把每個(gè)位置與不同頻率的正弦波相結(jié)合時(shí),每個(gè)位置就有了自己獨(dú)特的聲音。

我們將位置編號(hào)與不同頻率的正弦波結(jié)合(即相乘),就可以得到一個(gè)對(duì)于每個(gè)位置而言獨(dú)一無二的標(biāo)識(shí)符。

此模塊的工作原理:由于Transformer模型不使用傳統(tǒng)的循環(huán)或卷積結(jié)構(gòu),它需要一種方式來捕捉輸入序列中單詞的位置信息。

此模塊的工作過程:位置編碼向量被添加到輸入嵌入向量中,以提供單詞在序列中的位置信息。這些編碼通常是正弦和余弦函數(shù)生成的。所以我們看到圖中有這個(gè)符號(hào)。

一篇文章讓你搞懂大模型到底是什么?

(3)Multi-Head Attention(多頭注意力)

一篇文章讓你搞懂大模型到底是什么?

這個(gè)需要先解釋自注意力機(jī)制(Self-Attention),自注意力機(jī)制的核心是為輸入序列中的每一個(gè)位置學(xué)習(xí)一個(gè)權(quán)重分布,這樣模型就能知道在處理當(dāng)前位置時(shí),哪些位置的信息更為重要。Self-Attention特指在序列內(nèi)部進(jìn)行的注意力計(jì)算,即序列中的每一個(gè)位置都要和其他所有位置進(jìn)行注意力權(quán)重的計(jì)算。

就像你有一堆小伙伴。有些小伙伴本身也是朋友,他們喜歡一起玩。比如,水滸傳中,武松喜歡和魯智深、孫二娘在一起,阮小二喜歡和阮小五、阮小七在一起。當(dāng)你找某一個(gè)伙伴時(shí),你會(huì)想,哪些伙伴是他的好朋友?自注意力機(jī)制就像是幫助伙伴找到它們的好朋友。這樣,伙伴們就可以更好地一起玩,讓游戲更有趣。字詞也是一樣,有些詞語喜歡一起使用,比如:生日和快樂,萬事和如意等。

Multi-Head Attention(多頭注意力機(jī)制):假如你有一群不同的小朋友,每個(gè)人都有自己最喜歡的玩具。一個(gè)小朋友可能最喜歡超級(jí)英雄,另一個(gè)可能喜歡動(dòng)物,還有一個(gè)可能喜歡車子。當(dāng)他們一起玩時(shí),每個(gè)人都會(huì)關(guān)注不同的玩具。然后,他們一起分享他們玩的故事,這樣就可以組成一個(gè)大故事,每個(gè)玩具都有自己的角色。

多頭注意力機(jī)制就像這群小朋友一樣。電腦不只從一個(gè)角度看問題,而是像很多個(gè)小朋友一樣,從不同的角度來看。這樣,電腦就可以了解更多的事情,像小朋友們分享他們的故事一樣,電腦也可以把這些不同的視角放在一起,讓它更好地理解整個(gè)問題。

在計(jì)算機(jī)的世界里,自注意力機(jī)制幫助電腦找出一句話里哪些詞是“好朋友”,哪些詞需要一起被理解。這就像幫助玩具找到它們的好朋友,讓整個(gè)故事更有意思。

回到Transformer派對(duì)就是,派對(duì)上的單詞們開始互相聊天。每個(gè)單詞都有一群“小助手”(注意力頭),這些小助手會(huì)幫它看看其他單詞在說什么。有的小助手關(guān)注情感,有的關(guān)注主題,有的關(guān)注細(xì)節(jié)。最后,單詞們把這些信息匯總起來,決定自己接下來該說什么。

用輸入實(shí)例來講,Self-Attention(自注意力機(jī)制):

①輸入:序列“我愛AI”經(jīng)過嵌入層,每個(gè)詞(如“我”)被映射到一個(gè)512維的向量。

②注意力權(quán)重計(jì)算:對(duì)于“我”這個(gè)詞,Self-Attention機(jī)制會(huì)計(jì)算它與序列中其他所有詞(“愛”、“A”、“I”)之間的注意力權(quán)重。這意味著,對(duì)于“我”的512維嵌入向量,我們會(huì)計(jì)算它與“愛”、“A”、“I”的嵌入向量之間的注意力得分。

③輸出:根據(jù)計(jì)算出的注意力權(quán)重,對(duì)輸入序列中的詞向量進(jìn)行加權(quán)求和,得到自注意力機(jī)制處理后的輸出向量。

Multi-Head Attention(多頭注意力機(jī)制):

①子空間拆分:原始的512維嵌入空間被拆分成多個(gè)子空間(例如,8個(gè)頭,則每個(gè)子空間64維)。對(duì)于“我”這個(gè)詞,其512維嵌入向量被相應(yīng)地拆分成8個(gè)64維的子向量。

② 獨(dú)立注意力權(quán)重計(jì)算:

在每個(gè)64維的子空間內(nèi),獨(dú)立地計(jì)算“我”與“愛”、“A”、“I”之間的注意力權(quán)重。這意味著在每個(gè)子空間中,我們都有一套獨(dú)立的注意力得分來計(jì)算加權(quán)求和。

③結(jié)果拼接與轉(zhuǎn)換:

將每個(gè)子空間計(jì)算得到的注意力輸出拼接起來,形成一個(gè)更大的向量(在這個(gè)例子中是8個(gè)64維向量拼接成的512維向量)。通過一個(gè)線性層,將這個(gè)拼接后的向量轉(zhuǎn)換回原始的512維空間,得到Multi-Head Attention的最終輸出。

這個(gè)模塊的工作原理:允許模型同時(shí)關(guān)注輸入序列的不同部分,捕捉不同位置的依賴關(guān)系。

舉個(gè)例子,假設(shè)你在讀一句話:“我昨天去了公園,那里有很多人在跑步?!?/p>

“我” 和 “去了” 有關(guān)系,表示“我”是動(dòng)作的執(zhí)行者。“公園” 和 “那里” 有關(guān)系,表示“那里”指的是“公園”。“很多人” 和 “跑步” 有關(guān)系,表示“很多人”在做“跑步”這件事。

如果模型只能一個(gè)詞一個(gè)詞地看,它可能會(huì)忽略這些詞之間的關(guān)系。但如果模型能同時(shí)關(guān)注句子的不同部分,它就能更好地理解這些詞之間的聯(lián)系,從而更準(zhǔn)確地理解句子的意思。

這個(gè)模塊的工作過程:輸入序列通過線性變換生成查詢(Query)、鍵(Key)和值(Value)向量。注意力機(jī)制計(jì)算這些向量之間的相似度,生成加權(quán)和表示。

想象你在廚房里做飯,面前擺著一堆食材(輸入序列)。為了做出一道美味的菜,你需要做以下幾件事:

①生成查詢(Query)、鍵(Key)和值(Value)向量:

Query(查詢):就像你心里想的問題:“我現(xiàn)在最需要什么食材?”

Key(鍵):就像每個(gè)食材的標(biāo)簽,告訴你它是什么(比如“胡蘿卜”、“洋蔥”)。

Value(值):就是食材本身的實(shí)際內(nèi)容(比如胡蘿卜的營養(yǎng)、洋蔥的味道)。

你可以把這些看作是:你通過“問題”(Query)去匹配“標(biāo)簽”(Key),然后找到對(duì)應(yīng)的“內(nèi)容”(Value)。

②計(jì)算相似度:

你開始思考:“我現(xiàn)在最需要什么?”然后看看每個(gè)食材的標(biāo)簽(Key)和你的問題(Query)有多匹配。

比如你現(xiàn)在想做湯,那么“洋蔥”和“胡蘿卜”可能比“辣椒”更匹配你的需求。

③生成加權(quán)和表示:

你根據(jù)匹配程度,決定用多少洋蔥、多少胡蘿卜。匹配度高的食材(比如洋蔥)會(huì)多用一點(diǎn),匹配度低的(比如辣椒)就少用一點(diǎn)。

最后,你把所有食材按比例混合在一起,做出一道美味的湯。

對(duì)應(yīng)到注意力機(jī)制:

Query:模型想知道當(dāng)前需要關(guān)注什么。

Key:輸入序列中每個(gè)部分的“標(biāo)簽”,幫助模型判斷哪些部分重要。

Value:輸入序列中每個(gè)部分的實(shí)際內(nèi)容。

相似度計(jì)算:模型通過比較 Query 和 Key,判斷哪些部分需要重點(diǎn)關(guān)注。

加權(quán)和:模型根據(jù)重要性,把不同部分的內(nèi)容按比例組合起來,生成最終的表示。

(4)Add & Norm(殘差連接和層歸一化)

一篇文章讓你搞懂大模型到底是什么?

①殘差連接

想象你在搭積木,目標(biāo)是搭一個(gè)很高的塔。每次你往上加一層積木時(shí),可能會(huì)不小心把塔弄歪或者弄倒。為了避免這種情況,你想到一個(gè)聰明的辦法:

保留原來的塔:每次加新積木時(shí),不直接拆掉原來的塔,而是在原來的塔旁邊加一層新積木。

新舊結(jié)合:最后,你把原來的塔和新加的積木連在一起,形成一個(gè)更穩(wěn)固的新塔。

這樣,即使新加的積木不太完美,原來的塔也能幫你“兜底”,不至于讓整個(gè)塔垮掉。

對(duì)應(yīng)到模型:

殘差連接:模型在每一層的計(jì)算中,保留輸入,并把它直接加到輸出上。

作用:避免信息丟失,幫助模型更好地訓(xùn)練深層網(wǎng)絡(luò)。

層歸一化

你搭完一層積木后,發(fā)現(xiàn)這一層有點(diǎn)歪,或者某些積木太高、太矮,導(dǎo)致整體不平衡。

于是你拿出一個(gè)“水平儀”,把這一層的積木調(diào)整到統(tǒng)一的高度,讓它們更整齊、更穩(wěn)定。

對(duì)應(yīng)到模型:

②層歸一化:模型對(duì)每一層的輸出進(jìn)行標(biāo)準(zhǔn)化,調(diào)整它們的分布,讓它們更穩(wěn)定。

作用:避免某些值過大或過小,幫助模型更快收斂。

殘差連接 + 層歸一化

現(xiàn)在我們把兩者結(jié)合起來:

殘差連接:你把原來的塔和新加的積木連在一起。層歸一化:你調(diào)整新塔的高度,讓它更整齊、更穩(wěn)固。

對(duì)應(yīng)到模型:

殘差連接:保留輸入信息,避免梯度消失。層歸一化:調(diào)整輸出分布,讓訓(xùn)練更穩(wěn)定。

這個(gè)模塊的工作原理是:殘差連接幫助模型訓(xùn)練更深層的網(wǎng)絡(luò),層歸一化則穩(wěn)定了訓(xùn)練過程。

這個(gè)模塊的工作過程是:輸入和輸出通過殘差連接相加,然后進(jìn)行層歸一化,以標(biāo)準(zhǔn)化輸出。

回到Transformer派對(duì)就是,單詞們?cè)诹奶爝^程中可能會(huì)有點(diǎn)“跑偏”,于是組織者提醒它們:“別忘了帶上你原來的身份證!”(殘差連接)。然后,組織者還會(huì)幫單詞們整理一下思路,讓它們的表達(dá)更清晰(層歸一化)。

(5)Feed Forward(前饋網(wǎng)絡(luò))

一篇文章讓你搞懂大模型到底是什么?

Feed Forward 就是一個(gè)簡單的神經(jīng)網(wǎng)絡(luò),它接收輸入,經(jīng)過一些計(jì)算,然后輸出結(jié)果。在 Transformer 中,它的作用就像是一個(gè)“加工廠”:

輸入:你給它一些原材料(比如注意力機(jī)制處理后的信息)。

加工:它在內(nèi)部對(duì)這些原材料進(jìn)行加工(比如提取特征、增強(qiáng)信息)。

輸出:最后輸出一個(gè)更“精致”的產(chǎn)品。

用做飯來比喻,想象你在做一道菜,比如炒面。你已經(jīng)完成了以下步驟:

①選食材(注意力機(jī)制):你挑選了面條、蔬菜、雞蛋等食材。

②切菜(注意力機(jī)制):你把蔬菜切好,雞蛋打散。

接下來,你需要一個(gè)關(guān)鍵的步驟:炒菜!這就是 Feed Forward 的作用:

③炒菜:你把所有食材倒進(jìn)鍋里,加熱、翻炒,讓它們混合在一起,變成一道美味的炒面。

作用:通過加熱和翻炒,食材的味道融合在一起,變得更香、更好吃。

對(duì)應(yīng)到模型:

Feed Forward:把注意力機(jī)制處理后的信息“翻炒”一下,提取更深層次的特征,增強(qiáng)模型的表達(dá)能力。

為什么需要 Feed Forward?

增強(qiáng)特征:注意力機(jī)制主要關(guān)注輸入之間的關(guān)系,而 Feed Forward 可以進(jìn)一步提取和增強(qiáng)這些特征。

非線性能力:Feed Forward 引入了非線性變換,讓模型能夠?qū)W習(xí)更復(fù)雜的模式。

獨(dú)立處理:每個(gè)位置的輸入都會(huì)獨(dú)立經(jīng)過 Feed Forward,這樣可以更好地捕捉局部特征。

這個(gè)模塊的工作原理是:一個(gè)簡單的全連接神經(jīng)網(wǎng)絡(luò),用于進(jìn)一步處理注意力機(jī)制的輸出。

這個(gè)模塊的工作過程是:輸入通過兩個(gè)線性變換和一個(gè)激活函數(shù)(如ReLU)進(jìn)行處理,生成最終的輸出。

想象你有一堆水果(輸入),你想把它們變成一杯美味的果汁(輸出)。你需要經(jīng)過以下步驟:

①第一次榨汁(第一個(gè)線性變換):你把水果放進(jìn)榨汁機(jī),榨出第一遍果汁。這一步就像“第一個(gè)線性變換”,把輸入(水果)轉(zhuǎn)換成一種中間狀態(tài)(果汁)。

②過濾(激活函數(shù),比如ReLU):榨出來的果汁可能還有一些果渣,你用一個(gè)濾網(wǎng)把果渣過濾掉,只留下純凈的果汁。這一步就像“激活函數(shù)”,它會(huì)把中間狀態(tài)中沒用的部分去掉,只保留有用的部分。

③第二次調(diào)味(第二個(gè)線性變換):你覺得果汁的味道還不夠完美,于是你加了一點(diǎn)糖或者蜂蜜,調(diào)整一下味道。這一步就像“第二個(gè)線性變換”,把過濾后的果汁進(jìn)一步加工,變成最終的輸出。

對(duì)應(yīng)到模型

第一個(gè)線性變換:把輸入數(shù)據(jù)(比如詞向量)轉(zhuǎn)換成一種中間表示。

激活函數(shù)(如ReLU):去掉中間表示中沒用的部分,只保留有用的信息。

第二個(gè)線性變換:把過濾后的信息進(jìn)一步加工,生成最終的輸出。

回到Transformer派對(duì)就是,單詞們聊完天后,還需要進(jìn)一步“消化”這些信息。于是,它們走進(jìn)一個(gè)小房間(前饋網(wǎng)絡(luò)),里面有兩臺(tái)“信息加工機(jī)”(線性變換)和一臺(tái)“激活器”(ReLU),幫它們把聊天的內(nèi)容整理成更有用的信息。

(6)Nx:

一篇文章讓你搞懂大模型到底是什么?

Nx表示這個(gè)塊重復(fù)N次?;旧?,你在將一個(gè)塊層層堆疊,前一個(gè)塊的輸出作為下一個(gè)塊的輸入。這樣可以使神經(jīng)網(wǎng)絡(luò)更深。從圖上看,編碼器輸出如何傳遞給解碼器可能讓人困惑。假設(shè)N=5。我們是否將每層編碼器輸出傳遞給對(duì)應(yīng)的解碼器層?不是的。實(shí)際上你只需運(yùn)行一次編碼器,然后將同一表示提供給5個(gè)解碼器層。

回到Transformer派對(duì)就是,Transformer派對(duì)不止一層,而是有很多層(N層)。每一層都是一個(gè)獨(dú)立的“聊天室”,單詞們會(huì)一層一層地往上走,每層都會(huì)讓它們的表達(dá)更豐富、更準(zhǔn)確。

(7)Outputs (shifted right)(右移輸出)

一篇文章讓你搞懂大模型到底是什么?

想象你在玩一個(gè)猜句子的游戲,規(guī)則是:你每次只能說一個(gè)詞。你說完一個(gè)詞后,對(duì)方會(huì)根據(jù)你說的詞猜下一個(gè)詞。

比如,你想讓對(duì)方猜出句子:“我今天很開心”。

第一步:你說“我”。

第二步:對(duì)方聽到“我”后,猜下一個(gè)詞可能是“今天”。

第三步:你接著說“今天”。

第四步:對(duì)方聽到“今天”后,猜下一個(gè)詞可能是“很”。

第五步:你接著說“很”。

第六步:對(duì)方聽到“很”后,猜下一個(gè)詞可能是“開心”。

在這個(gè)過程中,你的輸出(“我”“今天”“很”)總是比對(duì)方的輸入(“今天”“很”“開心”)慢一步,也就是右移了一位。

對(duì)應(yīng)到模型

在 Transformer 的解碼器中,Outputs (shifted right) 的意思是:

模型在生成輸出時(shí),每次只能生成一個(gè)詞。這個(gè)詞會(huì)成為下一個(gè)時(shí)間步的輸入。因此,輸出序列總是比輸入序列慢一步,也就是右移了一位。

舉個(gè)例子:

輸入序列:[<開始>, '我', '今天', '很']

輸出序列:['我', '今天', '很', '開心']

可以看到,輸出序列比輸入序列右移了一位。

為什么要右移?

避免作弊:如果輸出和輸入完全對(duì)齊,模型可能會(huì)直接“偷看”答案,而不是真正學(xué)會(huì)預(yù)測(cè)下一個(gè)詞。

模擬真實(shí)場(chǎng)景:在實(shí)際應(yīng)用中(比如機(jī)器翻譯),模型也是根據(jù)已經(jīng)生成的詞來預(yù)測(cè)下一個(gè)詞,而不是提前知道完整的句子。

這個(gè)模塊的工作原理是:在訓(xùn)練過程中,解碼器的輸入是目標(biāo)序列右移一位的結(jié)果,以確保模型在生成當(dāng)前單詞時(shí)只能看到之前的單詞。

這個(gè)模塊的工作過程是:目標(biāo)序列向右移動(dòng)一位,作為解碼器的輸入。

回到Transformer派對(duì)就是,在派對(duì)的“解碼器”部分,單詞們開始生成新的句子。為了防止它們“作弊”(提前看到未來的單詞),組織者把句子向右移動(dòng)一位,這樣每個(gè)單詞只能看到它前面的單詞,然后猜猜下一個(gè)該說什么。

(8)Output Embedding

一篇文章讓你搞懂大模型到底是什么?

Output Embedding與intput Embedding作用一樣,不再解釋。

(9)Positional Encoding(位置編碼)

一篇文章讓你搞懂大模型到底是什么?

與編碼器的Positional Encoding(位置編碼)一樣,不再解釋。

(10)Masked Multi-Head Attention(掩碼多頭注意力)

一篇文章讓你搞懂大模型到底是什么?

掩碼多頭自注意力機(jī)制(Masked Multi-Head Attention)中的掩碼(Mask)主要用于防止模型在生成當(dāng)前詞時(shí)“偷看”未來的詞,確保生成過程的因果性。

想象你在玩拼圖游戲,目標(biāo)是拼出一幅完整的畫。拼圖有很多小塊,你需要一塊一塊地拼上去。但有一個(gè)規(guī)則:你只能看到已經(jīng)拼好的部分,還沒拼的部分是隱藏的(被“掩碼”遮住了)。

多頭注意力:你有多個(gè)“助手”(多頭),每個(gè)助手都會(huì)從不同角度觀察已經(jīng)拼好的部分,給出拼下一塊的建議。比如,一個(gè)助手關(guān)注顏色,另一個(gè)助手關(guān)注形狀,綜合他們的建議,你可以更準(zhǔn)確地選擇下一塊拼圖。

掩碼機(jī)制:你只能看到已經(jīng)拼好的部分,還沒拼的部分是被遮住的(掩碼)。這樣做的目的是避免“作弊”,你不能提前看到后面的拼圖。

對(duì)應(yīng)到模型

多頭注意力:模型會(huì)從多個(gè)角度(多個(gè)頭)同時(shí)關(guān)注輸入序列的不同部分,提取更豐富的信息。比如,一個(gè)頭關(guān)注詞語的語義,另一個(gè)頭關(guān)注詞語的位置關(guān)系。

掩碼機(jī)制:在生成輸出時(shí),模型只能看到已經(jīng)生成的詞,后面的詞是被遮住的(掩碼)。這樣可以避免模型“偷看”未來的信息,確保它只能根據(jù)已經(jīng)生成的內(nèi)容預(yù)測(cè)下一個(gè)詞。

為什么要用掩碼?

模擬真實(shí)場(chǎng)景:在實(shí)際應(yīng)用中(比如機(jī)器翻譯),模型只能根據(jù)已經(jīng)生成的詞預(yù)測(cè)下一個(gè)詞,而不是提前知道完整的句子。

防止作弊:如果沒有掩碼,模型可能會(huì)直接“復(fù)制”未來的信息,而不是真正學(xué)會(huì)預(yù)測(cè)。

這個(gè)模塊的工作原理是:在解碼器中,為了防止模型在生成當(dāng)前單詞時(shí)看到未來的單詞,使用掩碼來屏蔽未來的信息。

這個(gè)模塊的工作過程是:多頭注意力機(jī)制并行地計(jì)算多個(gè)注意力頭,每個(gè)頭關(guān)注輸入序列的不同部分。掩碼確保每個(gè)位置只能關(guān)注到它之前的位置。

回到Transformer派對(duì)就是,在解碼器的聊天室里,單詞們戴上了“眼罩”(掩碼),只能看到前面的單詞,看不到后面的。這樣,它們就不會(huì)“劇透”未來的內(nèi)容了。

(11)Add & Norm(殘差連接和層歸一化)

一篇文章讓你搞懂大模型到底是什么?

與編碼器的Add & Norm(殘差連接和層歸一化)作用一樣,不再解釋。

(12)Multi-Head Attention(多頭注意力)

一篇文章讓你搞懂大模型到底是什么?

與編碼器的Multi-Head Attention(多頭注意力)作用一樣,不再解釋。

(13)Add & Norm(殘差連接和層歸一化)

一篇文章讓你搞懂大模型到底是什么?

又一次進(jìn)行殘差連接和層歸一化

(14)Feed Forward(前饋網(wǎng)絡(luò))

一篇文章讓你搞懂大模型到底是什么?

與編碼器的Feed Forward(前饋網(wǎng)絡(luò))作用一樣,不再解釋。

(15)Add & Norm(殘差連接和層歸一化)

一篇文章讓你搞懂大模型到底是什么?

又一次進(jìn)行殘差連接和層歸一化

(16)Linear(線性層)

一篇文章讓你搞懂大模型到底是什么?

在Transformer模型中,輸出部分包括兩個(gè)關(guān)鍵組件:線性層和Softmax層。這兩個(gè)層的作用是不可或缺的,它們共同將模型的輸出轉(zhuǎn)換為實(shí)際的語言輸出。

線性層的作用:降維與映射

首先,線性層就像一個(gè)魔法師,它負(fù)責(zé)將解碼器輸出的高維向量映射到目標(biāo)詞匯表上的每個(gè)單詞的嵌入向量。這個(gè)過程是通過全連接層來實(shí)現(xiàn)的。線性層將Transformer模型最后一個(gè)編碼器的輸出轉(zhuǎn)換為一個(gè)向量,這個(gè)向量可以表示不同類別的概率分布。這個(gè)全連接層是可學(xué)習(xí)的,意味著它可以隨著訓(xùn)練的進(jìn)行不斷調(diào)整參數(shù),以優(yōu)化模型的性能。

想象你在做菜,手里有一堆食材(輸入數(shù)據(jù)),你想把它們變成一道美味的菜(輸出數(shù)據(jù))。線性層的作用就像是一個(gè)“調(diào)味臺(tái)”:

食材:你有一些切好的蔬菜、肉和調(diào)料(輸入數(shù)據(jù))。

調(diào)味臺(tái):你把食材放到調(diào)味臺(tái)上,按照一定的比例混合(線性變換)。

比如,你加一點(diǎn)鹽、一點(diǎn)醬油、一點(diǎn)糖,調(diào)整每種食材的味道。

成品:最后,你得到一道調(diào)好味的菜(輸出數(shù)據(jù))。

對(duì)應(yīng)到模型

輸入:模型有一些數(shù)據(jù)(比如詞向量或特征向量)。

線性變換:模型通過一個(gè)公式 y = Wx + b 對(duì)輸入數(shù)據(jù)進(jìn)行變換:W 是權(quán)重矩陣,決定每個(gè)輸入特征的重要性。b 是偏置向量,用來調(diào)整輸出的基準(zhǔn)值。

輸出:經(jīng)過線性變換后,輸入數(shù)據(jù)被映射到一個(gè)新的空間,變成更高級(jí)的特征表示。

為什么要用線性層?

特征變換:線性層可以把輸入數(shù)據(jù)轉(zhuǎn)換成更適合任務(wù)的形式。

比如,把詞向量轉(zhuǎn)換成更抽象的語義表示。

維度調(diào)整:線性層可以改變數(shù)據(jù)的維度。

比如,把 100 維的向量變成 50 維的向量。

簡單高效:線性層的計(jì)算速度快,適合大規(guī)模數(shù)據(jù)處理。

這個(gè)模塊的工作原理是:將解碼器的輸出映射到詞匯表大小的向量空間。

這個(gè)模塊的工作過程是:通過一個(gè)線性變換,將解碼器的輸出轉(zhuǎn)換為每個(gè)單詞的得分。

回到Transformer派對(duì)就是,當(dāng)單詞們終于決定好下一個(gè)該說什么時(shí),它們會(huì)把想法交給一個(gè)“翻譯官”(線性層)。翻譯官會(huì)把它們的想法轉(zhuǎn)換成一種“得分”,表示每個(gè)單詞的可能性。

(17)Softmax(Softmax函數(shù))

一篇文章讓你搞懂大模型到底是什么?

Softmax層:從概率到?jīng)Q策

Softmax層就像一個(gè)決策者,它負(fù)責(zé)將線性層輸出的向量轉(zhuǎn)換為單詞概率分布。在機(jī)器翻譯任務(wù)中,這個(gè)概率分布表示當(dāng)前生成的目標(biāo)詞是詞匯表中的每個(gè)單詞的概率。在文本分類任務(wù)中,這個(gè)概率分布表示當(dāng)前文本屬于每個(gè)類別的概率。Softmax層通過將每個(gè)單詞的嵌入向量進(jìn)行歸一化處理,得到一個(gè)概率分布,使得每個(gè)類別的概率值都在0到1之間,并且所有類別的概率之和為1。Softmax函數(shù)的定義是將向量中的每個(gè)元素取指數(shù),然后再進(jìn)行歸一化。

想象你在看一場(chǎng)選秀比賽,評(píng)委們需要從一群選手中選出冠軍。每個(gè)選手都有自己的得分(線性層輸出的向量),但評(píng)委們需要把這些得分轉(zhuǎn)換成具體的獲獎(jiǎng)概率。

選手得分:每個(gè)選手都有一個(gè)原始得分(線性層的輸出)。

Softmax 的作用:

①指數(shù)放大:Softmax 先把每個(gè)選手的得分“放大”,讓高分更高,低分更低(取指數(shù))。

②歸一化:然后,它把所有人的得分轉(zhuǎn)換成概率,確保所有選手的獲獎(jiǎng)概率加起來是 100%。

③結(jié)果:最后,每個(gè)選手都有一個(gè)獲獎(jiǎng)概率,比如:

選手 A:60% 的概率奪冠。

選手 B:30% 的概率奪冠。

選手 C:10% 的概率奪冠。

對(duì)應(yīng)到模型

輸入:線性層輸出的向量(每個(gè)詞或類別的得分)。

Softmax 的計(jì)算:

取指數(shù):把每個(gè)得分放大,讓高分更高,低分更低。

歸一化:把所有得分轉(zhuǎn)換成概率,確保概率值在 0 到 1 之間,且總和為 1。

輸出:一個(gè)概率分布,表示每個(gè)詞或類別的可能性。

這個(gè)模塊的工作原理是:將線性層的輸出轉(zhuǎn)換為概率分布。

這個(gè)模塊的工作過程是:Softmax函數(shù)將得分轉(zhuǎn)換為概率,表示每個(gè)單詞成為下一個(gè)單詞的可能性。

回到Transformer派對(duì)就是,翻譯官把得分交給一個(gè)“魔法師”(Softmax),魔法師會(huì)用魔法把這些得分變成“概率”。比如,單詞“蘋果”有80%的概率,單詞“香蕉”有20%的概率。

(18)Output Probabilities(輸出概率分布)

一篇文章讓你搞懂大模型到底是什么?

在輸入通過所有Transformer塊處理后,輸出通過最后的線性層傳遞,以準(zhǔn)備進(jìn)行token預(yù)測(cè)。該層將最終表示投影到50,257維空間,其中詞匯表中的每個(gè)token都有一個(gè)對(duì)應(yīng)的值(稱為logit)。任何token都可能是下一個(gè)詞,因此這個(gè)過程允許我們根據(jù)它們的可能性對(duì)這些token進(jìn)行排序。然后,我們應(yīng)用softmax函數(shù)將logit轉(zhuǎn)換為概率分布,總和為1。這使我們能夠根據(jù)概率采樣下一個(gè)token。

溫度超參數(shù)在此過程中起著關(guān)鍵作用。從數(shù)學(xué)上講,這是一個(gè)非常簡單的操作:模型輸出的logit除以溫度值:

溫度=1:logit除以1對(duì)softmax輸出沒有影響。

溫度<1:較低的溫度使模型更加自信和確定性,通過銳化概率分布,生成更可預(yù)測(cè)的輸出。

溫度>1:較高的溫度生成更平滑的概率分布,允許生成更多隨機(jī)性文本——有些人稱之為模型的“創(chuàng)造力”。

調(diào)整溫度,看看你如何在確定性和多樣性輸出之間找到平衡!

模型輸出的概率分布表示每個(gè)位置上每個(gè)詞的預(yù)測(cè)概率,用于生成最終的預(yù)測(cè)結(jié)果。

例如:問你一個(gè)問題:

我在餐廳吃( )。( )填個(gè)字,你會(huì)填什么?

根據(jù)你既往的經(jīng)驗(yàn),大概率你會(huì)填“飯”。其實(shí),( )還可以是“餅”、“面”、“蛋”等等。

一篇文章讓你搞懂大模型到底是什么?

像人一樣,生成式AI也會(huì)根據(jù)它學(xué)到的經(jīng)驗(yàn),給這些字加上概率。然后選擇概率高的詞作為生成的內(nèi)容。接著,AI 將重復(fù)這一過程,選擇下一個(gè)可能性最高的詞語,從而生成更多內(nèi)容。

但有的時(shí)候,我們希望答案是豐富多彩的,回到剛剛那個(gè)例子,我們現(xiàn)在不希望AI接的下一個(gè)字是“飯”,那要怎么辦呢?

一篇文章讓你搞懂大模型到底是什么?

AI提供了一個(gè)調(diào)節(jié)參數(shù),叫溫度,范圍從0到1。

在溫度為0時(shí),說明匹配概率要選盡量大的,在以上例子中,AI很可能選擇“飯”;

在溫度為1時(shí),說明匹配概率要選盡量小的,在以上例子中,AI很可能選擇“餅”。

數(shù)值越接近1,得到的內(nèi)容越天馬行空。

比如,溫度設(shè)為0.8,那么AI生成的句子可能是:

我在餐廳吃餅,這個(gè)餅又大又圓,我想把它套在脖子上......

一篇文章讓你搞懂大模型到底是什么?

但是,我們看到大多數(shù)AI產(chǎn)品,只有一個(gè)對(duì)話框,如何修改溫度參數(shù)呢?

答案是“提示詞”,也就是我們通常所說的prompt。

如果你輸入是“你是一名某某領(lǐng)域的專家,請(qǐng)用嚴(yán)謹(jǐn)?shù)目谖菍懸黄P(guān)于xx的文獻(xiàn)綜述。”這時(shí)AI的溫度接近0,就會(huì)選擇匹配概率盡量高的詞語生成句子。

如果你輸入是“請(qǐng)你請(qǐng)暢想一下xx的未來?!边@時(shí)AI的溫度接近1,就會(huì)選擇匹配概率盡量低的詞語組成句子,生成意想不到的內(nèi)容?,F(xiàn)在知道prompt的重要性了吧!

所以,我們可以認(rèn)為,AI生成的本質(zhì)就是一場(chǎng)詞語接龍:AI根據(jù)當(dāng)前字,聯(lián)系它之前記錄的下個(gè)字的出現(xiàn)概率以及你的期望,選擇接下來的字。所以,大模型的功能就是如何把話說的更漂亮,至于對(duì)不對(duì)另說。所以,有時(shí)候你會(huì)看到ChatGPT整個(gè)一個(gè)一本正經(jīng)的胡說八道。

回到Transformer派對(duì)就是,最后,單詞們拿到了一張“概率表”,上面寫著每個(gè)單詞成為下一個(gè)單詞的可能性。它們會(huì)根據(jù)這張表,選出最合適的單詞,完成句子的生成。

(19)Transformer的工作流程

一篇文章讓你搞懂大模型到底是什么?

①輸入嵌入(Input Embedding):首先,輸入的詞被轉(zhuǎn)換成向量形式,就像把文字變成計(jì)算機(jī)能理解的數(shù)字。

②位置編碼(Positional Encoding):然后,給這些向量加上位置信息,告訴模型每個(gè)詞在句子中的位置。

③進(jìn)入編碼器(Nx):接下來,這些帶有位置信息的向量進(jìn)入編碼器部分。編碼器由多個(gè)相同的層(Nx)組成,每一層都有兩個(gè)主要步驟:

多頭注意力機(jī)制(Multi-Head Attention):模型通過這個(gè)機(jī)制來理解詞與詞之間的關(guān)系。

前饋網(wǎng)絡(luò)(Feed Forward):對(duì)注意力機(jī)制的結(jié)果進(jìn)行進(jìn)一步處理。

每一步之后都會(huì)進(jìn)行加法和歸一化(Add & Norm),就像調(diào)整和穩(wěn)定信息。

④進(jìn)入解碼器(Nx):編碼器的輸出會(huì)傳遞給解碼器。解碼器也由多個(gè)相同的層(Nx)組成,每一層有三個(gè)主要步驟:

掩碼多頭注意力機(jī)制(Masked Multi-Head Attention):解碼器只能看到已經(jīng)生成的詞,不能看到未來的詞。

多頭注意力機(jī)制(Multi-Head Attention):解碼器會(huì)結(jié)合編碼器的輸出和已經(jīng)生成的詞來生成下一個(gè)詞。

前饋網(wǎng)絡(luò)(Feed Forward):對(duì)注意力機(jī)制的結(jié)果進(jìn)行進(jìn)一步處理。

同樣,每一步之后都會(huì)進(jìn)行加法和歸一化(Add & Norm)。

⑤輸出嵌入(Output Embedding):解碼器的輸出會(huì)被轉(zhuǎn)換成向量形式。

⑥線性層和Softmax(Linear & Softmax):最后,這些向量通過一個(gè)線性層和Softmax函數(shù),生成最終的輸出概率分布,告訴我們每個(gè)詞出現(xiàn)的可能性。

用Transformer開派對(duì)的例子講,就是:

①輸入嵌入:給單詞發(fā)身份證。

②位置編碼:給單詞安排座位。

③多頭注意力:單詞們互相聊天。

④殘差連接和層歸一化:整理思路,防止跑偏。

⑤前饋網(wǎng)絡(luò):進(jìn)一步加工信息。

⑥解碼器:生成新的句子,戴上眼罩防止劇透。

⑦線性層和Softmax:翻譯和魔法,決定下一個(gè)單詞。

⑧這樣,Transformer就能完成從輸入到輸出的神奇任務(wù)啦!

七、大模型的訓(xùn)練

(1)預(yù)訓(xùn)練

在預(yù)訓(xùn)練時(shí),我們首先要選擇一個(gè)大模型框架,例如transformer。然后,通過“投喂”前面說的海量數(shù)據(jù),讓大模型學(xué)習(xí)到通用的特征表示。

(2)微調(diào)

預(yù)訓(xùn)練學(xué)習(xí)之后,我們就得到了一個(gè)通用大模型。這種模型一般不能直接拿來用,因?yàn)樗谕瓿商囟ㄈ蝿?wù)時(shí)往往表現(xiàn)不佳。這時(shí),我們需要對(duì)模型進(jìn)行微調(diào)。

微調(diào),是給大模型提供特定領(lǐng)域的標(biāo)注數(shù)據(jù)集,對(duì)預(yù)訓(xùn)練的模型參數(shù)進(jìn)行微小的調(diào)整,讓模型更好的完成特定任務(wù)。

微調(diào)之后的大模型,可以稱之為行業(yè)大模型。例如,通過基于金融證券數(shù)據(jù)集的微調(diào),可以得到一個(gè)金融證券大模型。

如果再基于更細(xì)分的專業(yè)領(lǐng)域進(jìn)行微調(diào),就是專業(yè)大模型(也叫垂直大模型)。

我們可以把通用大模型理解為中小學(xué)生,行業(yè)大模型是大學(xué)本科生,專業(yè)大模型是研究生。

一篇文章讓你搞懂大模型到底是什么?

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多