從0構(gòu)建大模型知識(shí)體系(4):大模型的爸爸Transformer
在人工智能領(lǐng)域,尤其是自然語(yǔ)言處理(NLP)的浪潮中,Transformer架構(gòu)無(wú)疑是近年來(lái)最重要的突破之一。它不僅徹底解決了傳統(tǒng)循環(huán)神經(jīng)網(wǎng)絡(luò)(RNN)的健忘和訓(xùn)練速度慢的問(wèn)題,還開(kāi)啟了大語(yǔ)言模型的新紀(jì)元。本文將從機(jī)器翻譯這一經(jīng)典任務(wù)出發(fā),深入剖析Transformer架構(gòu)的核心原理,包括編碼器-解碼器架構(gòu)、注意力機(jī)制的奧秘,以及它如何通過(guò)純注意力機(jī)制實(shí)現(xiàn)高效的序列處理。
按照慣例,結(jié)論先行
這篇文章要討論啥?
討論當(dāng)前大語(yǔ)言模型的基石——Transformer。Transformer徹底解決了RNN健忘和訓(xùn)練速度慢的問(wèn)題,實(shí)現(xiàn)性能和效率的飛躍,并成為自然語(yǔ)言處理的主宰。現(xiàn)在的大模型如DeepSeek、GPT都是在Transformer的基礎(chǔ)上發(fā)展而來(lái)的,因此了解Transformer有助于理解大語(yǔ)言模型是如何理解自然語(yǔ)言的。
我會(huì)以解決雙語(yǔ)翻譯問(wèn)題為切入口,剖析Transformer是如何通過(guò)純注意力機(jī)制構(gòu)建起編碼器-解碼器架構(gòu)來(lái)解決這個(gè)問(wèn)題的
文章討論的核心問(wèn)題和結(jié)論是啥?
① 什么是編碼器-解碼器架構(gòu)?
這是一個(gè)用于解決翻譯問(wèn)題的經(jīng)典架構(gòu),整個(gè)模型包含編碼器和解碼器兩部分,編碼器負(fù)責(zé)將原文轉(zhuǎn)化成機(jī)器能高效理解的數(shù)字,解碼器負(fù)責(zé)將數(shù)字轉(zhuǎn)化為人類能理解的語(yǔ)言。
② 什么是注意力機(jī)制?
這是一種能讓機(jī)器理解字詞之間關(guān)聯(lián)關(guān)系的方法。比如在“這老板真水”這句話中,只有注意到“水”和“老板”的修飾關(guān)系才能將這里的水理解為水平低下,而非物理意義上的水。
③ 什么是Transformer?
一個(gè)采用編碼器-解碼器架構(gòu)并完全使用注意力機(jī)制構(gòu)建起來(lái)的雙語(yǔ)翻譯模型
④ Transformer是怎么訓(xùn)練的?
不斷的給它“原文→譯文”語(yǔ)料對(duì),通過(guò)這些語(yǔ)料來(lái)調(diào)整參數(shù)
⑤ 怎么量化翻譯質(zhì)量?
用BLEU評(píng)分。核心思想是看機(jī)器翻譯結(jié)果和人工翻譯結(jié)果的重合度有多高。
⑥ Transformer和現(xiàn)在的大模型到底是什么關(guān)系?
Google把Transformer的編碼器拿出來(lái)優(yōu)化,于是得到了BERT。OpenAI把解碼器拿出來(lái)優(yōu)化,于是得到了GPT
“我讓GPT幫我修改這篇文章,它只回了一句話:‘你見(jiàn)過(guò)兒子指點(diǎn)老子的嗎?’”
——題記
在上一篇文章《從0構(gòu)建大模型知識(shí)體系(3):大模型的祖宗RNN》中,我們介紹了循環(huán)神經(jīng)網(wǎng)絡(luò)(RNN)是如何通過(guò)循環(huán)結(jié)構(gòu)來(lái)處理自然語(yǔ)言這樣的序列數(shù)據(jù),并訓(xùn)練了一個(gè)簡(jiǎn)單的客服機(jī)器人來(lái)完成文本生成任務(wù)。同時(shí)也深入到模型基于概率的輸出機(jī)制來(lái)闡釋大模型幻覺(jué)現(xiàn)象的根本原因。
在很長(zhǎng)一段時(shí)間里RNN及其改良版本(LSTM)都是自然語(yǔ)言處理領(lǐng)域的王者。然而,RNN頭頂上的兩朵烏云一直沒(méi)有被徹底驅(qū)散:
1)健忘:句子一長(zhǎng)模型就無(wú)法記住開(kāi)頭的信息。比如你問(wèn)它“ 小明的媽媽生了三個(gè)兒子,大兒子叫大毛,二兒子叫二毛,三兒子叫什么?”它要是說(shuō)叫三毛,那顯然就是沒(méi)有記住開(kāi)頭“小明的媽媽生了三個(gè)兒子”這個(gè)信息,所以三兒子應(yīng)該叫小明才對(duì)。
2)訓(xùn)練速度慢:RNN中有大量串行計(jì)算導(dǎo)致GPU加速程度有限。回顧一下,所謂串行計(jì)算是指“不先算出A,就算不出B”,并行計(jì)算是指“A算沒(méi)算出來(lái)都不影響B(tài)算不算得出來(lái)”。模型中的計(jì)算如果都是并行的話就能用GPU極大加速,但很可惜,RNN中的很多計(jì)算都是串行的。
那有沒(méi)有一種方法,既能讓模型記住長(zhǎng)距離信息,又能并行計(jì)算,讓模型訓(xùn)練又快又好呢?那必然有啊,不然我為啥要這么設(shè)問(wèn)呢~~
2017年,Google發(fā)表的論文Attention is All You Need徹底解決了這兩個(gè)問(wèn)題。平時(shí)咱們刷文章刷視頻看到的Transformer就是這篇論文里提出的。哇~這篇論文可太拽了:
1)首先它這個(gè)標(biāo)題就很拽?!癆ttention is All You Need”仿佛是在宣告全世界:“你們都別瞎搞了,用我的方法就行了”
2)更拽的是他們給自己的模型取名叫“Transformer”(變形金剛,現(xiàn)在知道為啥封面圖要放個(gè)變形金剛了吧~)。這相當(dāng)于咱設(shè)計(jì)個(gè)模型然后取名叫“齊天大圣”
3)當(dāng)然,最拽的還得是這篇論文徹徹底底地改變了NLP領(lǐng)域的游戲規(guī)則。就這么說(shuō)吧,如果把chatGPT、DeepSeek當(dāng)成摩天大樓,那Transformer就是磚瓦——沒(méi)有磚瓦是蓋不起樓的。比如我們來(lái)快速看一眼DeepSeek-V3的架構(gòu)圖
其中明確表明了它是通過(guò)堆疊多個(gè)Transformer塊而來(lái)的。所以把Transformer比喻成磚瓦還是很恰當(dāng)?shù)摹?/p>
而締造這一切的傳奇論文卻并不是為了解決“創(chuàng)造一個(gè)與人類智能水平相當(dāng)?shù)臋C(jī)器”這種宏大的問(wèn)題,反而是為了解決“提高機(jī)器翻譯質(zhì)量”這種相比起來(lái)“沒(méi)那么起眼”的問(wèn)題。
從機(jī)器翻譯說(shuō)起:序列到序列的挑戰(zhàn)
輸入是一個(gè)序列,輸出也是一個(gè)序列的任務(wù),就被稱為“序列到序列”(Sequence-to-Sequence, 簡(jiǎn)寫為Seq2Seq)任務(wù)。假設(shè)你想開(kāi)發(fā)一個(gè)中譯英的翻譯工具。用戶輸入中文“這老板真水”,模型能輸出英文“This boss is really a joke”。這里的輸入是一個(gè)完整的句子(序列),輸出也是一個(gè)完整的句子(序列),而且輸入和輸出的長(zhǎng)度很可能不一樣(中文5個(gè)字,英文6個(gè)詞)。更復(fù)雜的是,詞語(yǔ)之間并非簡(jiǎn)單的逐字對(duì)應(yīng)(“水”被翻譯成了“a joke”而非water)。
解決Seq2Seq問(wèn)題的經(jīng)典架構(gòu):編碼器-解碼器(Encoder-Decoder)。別怕,編碼器解碼器這些詞雖然聽(tīng)上去很高端,但背后的思想很簡(jiǎn)單:
- 編碼:即是將外界給模型的輸入編寫成機(jī)器可以理解的代碼
- 解碼:即是將模型內(nèi)部的代碼翻譯成人類可理解的輸出
人類做翻譯的過(guò)程也可以看作一個(gè)編碼-解碼的過(guò)程。比如中英翻譯,別人說(shuō)一句“你好”之后,我們得先理解這句中文是“簡(jiǎn)單問(wèn)候”這么個(gè)“意思”,然后再通過(guò)腦內(nèi)的語(yǔ)言系統(tǒng)把這個(gè)“意思”翻譯成“hello”輸出,我們可以這樣表示這個(gè)過(guò)程:
對(duì)于機(jī)器來(lái)說(shuō),這個(gè)圖就得改成這樣
唯一的區(qū)別就是編碼器輸出的那個(gè)“意思”在機(jī)器中是用一串?dāng)?shù)字來(lái)表示的。所以你看,機(jī)器將我們給它的輸入(你好)編寫成了一串人類無(wú)法理解的數(shù)字(1,5,9,8),但這串?dāng)?shù)字通過(guò)解碼器就能翻譯成人類可理解的輸出(hello),這就是所謂的編碼器-解碼器架構(gòu)。
總結(jié)一下,編碼器負(fù)責(zé)理解外界輸入,解碼器負(fù)責(zé)向外界輸出。
Transformer采用的就是這個(gè)架構(gòu),那顯然,在這個(gè)架構(gòu)下決定翻譯質(zhì)量好壞的就是編碼器和解碼器的具體設(shè)計(jì)了。這就不得不提到大名鼎鼎的注意力機(jī)制了,也就是論文標(biāo)題Attention is All You Need中的 Attention
理解注意力機(jī)制需要4步
第一步,先感性理解注意力機(jī)制的作用:能讓模型理解序列中元素之間的關(guān)系。以“這老板真水”為例,“這老板真”幾個(gè)字并沒(méi)什么特殊的,特殊的是“水”,因?yàn)檫@里的“水”并不是物理意義上的水,而是指一個(gè)人水平低下。人類之所以能理解這一點(diǎn)是因?yàn)槲覀兡堋白⒁獾健边@里的“水”是用來(lái)形容“老板”的。換句話說(shuō),當(dāng)我們讀到“水”這個(gè)字時(shí),只有注意到它和“老板”之間的修飾關(guān)系才能正確理解其含義。注意力機(jī)制要干的事兒就是讓機(jī)器也能像這樣理解一個(gè)序列中元素之間的關(guān)系。
第二步,感性理解注意力機(jī)制的原理。我們來(lái)看個(gè)故事。有這么一場(chǎng)相親會(huì),會(huì)上一共有3個(gè)嘉賓:
在這個(gè)故事中我們重點(diǎn)注意以下幾點(diǎn):
1)注意力是嘉賓帶著自己的問(wèn)題(q)在查看所有人的關(guān)鍵詞(k)后才產(chǎn)生的。這其中的所有人也包括嘉賓自己。
2)被識(shí)破包裝伎倆后的信息(v)才是真正有價(jià)值的東西。關(guān)鍵詞只能吸引注意力,大家關(guān)心的是去偽存真后的真實(shí)信息(v)
3)嘉賓的收獲(c)是自己的注意力(a)對(duì)所有嘉賓實(shí)際價(jià)值的加權(quán)平均。這其中也包括嘉賓自己
到此,我們對(duì)注意力機(jī)制的理解其實(shí)已經(jīng)大差不差了,接下來(lái)快速介紹兩個(gè)數(shù)學(xué)運(yùn)算,為從技術(shù)層面理解注意力機(jī)制做鋪墊。
第3步,快速理解矩陣乘法和向量?jī)?nèi)積兩個(gè)數(shù)學(xué)運(yùn)算。
1)矩陣乘法就是說(shuō)兩個(gè)矩陣相乘可以得到一個(gè)新的矩陣。比如:
2)向量?jī)?nèi)積就是說(shuō)兩個(gè)向量的元素相乘再相加后可以得到一個(gè)數(shù)。比如:
第4步,從技術(shù)層面理解注意力機(jī)制。我們還是用“這老板真水”為例,并且假設(shè)1個(gè)漢字就算一個(gè)token。
所以從輸入輸出的角度來(lái)看,注意力機(jī)制的輸入是一個(gè)序列,輸出是序列中每個(gè)元素生成的上下文向量(context vector)。之所以叫“上下文向量”是因?yàn)樯蛇^(guò)程中計(jì)算了元素之間的注意力,以此將其他元素(也就是上下文)有權(quán)重的融入到當(dāng)前元素最終生成的向量中,所以叫上下文向量。
注意力的計(jì)算與元素的距離無(wú)關(guān),模型從此不健忘。無(wú)論兩個(gè)元素相隔多遠(yuǎn),我們都可以很方便的用一個(gè)元素的k向量和另一個(gè)元素的q向量做向量?jī)?nèi)積,進(jìn)而計(jì)算注意力,完全不會(huì)受到兩個(gè)元素距離的影響,這使得模型能夠有效的捕捉長(zhǎng)距離的信息,再也不會(huì)健忘。
注意力可以并行計(jì)算,模型訓(xùn)練速度從此飛升。雖然上圖中我們是依次計(jì)算token注意力,但其實(shí)只要每個(gè)token的k、q、v向量都算好后,計(jì)算兩個(gè)token間的注意力完全不依賴其他任何計(jì)算,所以可以同時(shí)計(jì)算所有元素對(duì)所有其他元素的注意力,也就是并行計(jì)算。
因此,只要元素間注意力計(jì)算得足夠準(zhǔn)確,我們就能實(shí)現(xiàn)“水”的上下文向量會(huì)比較多的融入“老板”,從而讓機(jī)器正確的理解這句話中的“水”到底是何含義。
那怎樣才能保證注意力計(jì)算足夠準(zhǔn)確呢?問(wèn)得好~!
K、Q、V三個(gè)矩陣決定了注意力計(jì)算是否準(zhǔn)確,是需要通過(guò)數(shù)據(jù)訓(xùn)練的參數(shù)。在上述過(guò)程中,最終生成的上下文向量是算出來(lái)的,元素間的注意力是算出來(lái)的,每個(gè)token的k向量(也被稱作key)、q向量(也被稱作query)、v向量(也被稱作value)也是通過(guò) K、Q、V矩陣和token相乘算出來(lái)的。因此決定整個(gè)注意力機(jī)制效果的根基在于K、Q、V三個(gè)矩陣的參數(shù),這些正是模型需要通過(guò)大量數(shù)據(jù)來(lái)不斷調(diào)整的地方。
這,就是Transformer
文章開(kāi)篇指出 Transformer 為解決翻譯問(wèn)題采用編碼器 – 解碼器架構(gòu),使用這個(gè)架構(gòu)并不稀奇,稀奇的是Transformer 用純注意力機(jī)制來(lái)構(gòu)建編碼器-解碼器,我們一起來(lái)看下:
需要注意的是這張圖只畫出了Transformer中的注意力層,因?yàn)樗畲蟮膭?chuàng)新之處正是以注意力層為核心構(gòu)建編碼器-解碼器(所以論文叫attention isALLyou need),但真正的Transformer還有諸如位置編碼、歸一化、殘差連接、前向反饋等其他層。
我們還是從輸入輸出的角度來(lái)理解一下編碼器-解碼器。
編碼器很好理解,輸入就是待翻譯的原文,字詞間的關(guān)系經(jīng)過(guò)6層注意力層后被機(jī)器徹底理解并最終輸出成一堆數(shù)字,這堆數(shù)字接下來(lái)被送往解碼器。
解碼器的輸入是譯文,它會(huì)先經(jīng)過(guò)一層注意力層,然后和編碼器送來(lái)的原文編碼結(jié)果一起再經(jīng)過(guò)一層注意力層,如此循環(huán)6次最終得到輸出token的概率分布,就像下面這樣。
所謂輸出token的概率分布簡(jiǎn)單來(lái)說(shuō)就是模型覺(jué)得每個(gè)詞都有一定概率被輸出,只不過(guò)概率有大有小。(關(guān)于輸出token的概率分布在《從0構(gòu)建大模型知識(shí)體系(3):大模型的祖宗RNN》中的《來(lái),讓我們給AI開(kāi)記憶》有詳細(xì)介紹)
從這張圖來(lái)看,模型認(rèn)為“this”最有可能成為輸出,所以如果我們的token采樣策略是輸出最大概率token的話,那模型就會(huì)輸出“this”
等下,好像屏幕前有人在問(wèn):“你不是說(shuō)Transformer是用來(lái)做翻譯的嗎?然后你又說(shuō)這里還需要把譯文喂給解碼器,也就是說(shuō)Transformer得在有譯文的情況下才能翻譯?我都有譯文了還翻譯個(gè)啥?這是在搞笑嗎?”
問(wèn)~得~好!先快速回答一下,在訓(xùn)練階段我們確實(shí)會(huì)把原文和譯文都輸入給Transformer來(lái)讓它學(xué)會(huì)翻譯,但在完成訓(xùn)練后真的用它來(lái)翻譯時(shí)就只會(huì)給原文了。這就引出了我們接下來(lái)要討論的內(nèi)容:Transformer的訓(xùn)練數(shù)據(jù)怎么準(zhǔn)備?怎么訓(xùn)練?訓(xùn)練后怎么使用?
訓(xùn)練前:準(zhǔn)備訓(xùn)練數(shù)據(jù)
翻譯嘛,那自然是準(zhǔn)備一堆原文及其對(duì)應(yīng)譯文的語(yǔ)料即可。比如:
訓(xùn)練中:輸入語(yǔ)料對(duì)調(diào)整參數(shù)
每一對(duì)語(yǔ)料都將用于調(diào)整模型參數(shù),以第一個(gè)語(yǔ)料對(duì)(我愛(ài)你,I love you)為例:
訓(xùn)練后:翻譯
完成訓(xùn)練后的模型就可以投入使用進(jìn)行翻譯了。我們只需要把原文輸入給編碼器即可,以翻譯“我愛(ài)你”為例,實(shí)際的翻譯過(guò)程是這樣的:
在實(shí)際翻譯時(shí),我們只將原文輸入給編碼器,解碼器的輸入為空。解碼器每次輸出的token都將被重新用作生成下一個(gè)token的輸入。
好了,現(xiàn)在我們搭建的Transformer可以用來(lái)翻譯了,下一個(gè)自然的問(wèn)題是,我們?cè)趺春饬克g得好壞呢?
評(píng)價(jià)翻譯好壞的標(biāo)準(zhǔn):BLEU
現(xiàn)在被廣泛采用的評(píng)估指標(biāo)叫做BLEU,Bilingual Evaluation Understudy,雙語(yǔ)評(píng)估替補(bǔ)。BLEU的核心思想很簡(jiǎn)單:看機(jī)器翻譯的結(jié)果跟人工翻譯結(jié)果在“詞語(yǔ)片段”上有多少重合度。舉例如下:
- 原文:貓坐在墊子上
- 機(jī)器翻譯結(jié)果:The cat is on the mat
- 人工翻譯結(jié)果:The cat is sitting on the mat
我們先來(lái)看1個(gè)詞(稱作:1-gram)的重合度。需要先將機(jī)翻和人翻的結(jié)果一個(gè)詞一個(gè)詞的拆分開(kāi)
- 機(jī)翻結(jié)果按單個(gè)詞拆分:the, cat, is, on, the, mat
- 人翻結(jié)果按單個(gè)詞拆分:the, cat, is, sitting, on, the, mat
然后我們一個(gè)個(gè)的看機(jī)翻拆分結(jié)果是否在人翻拆分結(jié)果中。即:“the”在人翻的拆分結(jié)果中嗎?在;“cat”在人翻的拆分結(jié)果中嗎?在;“is”在嗎?在……機(jī)翻拆分后的6個(gè)詞都在,那么1-gram精度為6/6
然后再來(lái)看2個(gè)詞(稱作:2-gram)的重合度。需要先將機(jī)翻和人翻的結(jié)果兩個(gè)詞兩個(gè)詞的拆分開(kāi)
- 機(jī)翻結(jié)果按兩個(gè)詞拆分:the cat, cat is, is on, on the, the mat
- 人翻結(jié)果按兩個(gè)詞拆分:the cat, cat is, is sitting, sitting on, on the, the mat
然后我們一個(gè)個(gè)的看機(jī)翻拆分結(jié)果是否在人翻拆分結(jié)果中。即:“the cat”在人翻的拆分結(jié)果中嗎?在;“cat is”在人翻的拆分結(jié)果中嗎?在;“is on”在嗎?不在……機(jī)翻拆分后的5個(gè)結(jié)果中有4個(gè)在,那么2-gram精度為4/5
然后再來(lái)看3個(gè)詞(稱作:3-gram)的重合度。需要先將機(jī)翻和人翻的結(jié)果三個(gè)詞三個(gè)詞的拆分開(kāi)
- 機(jī)翻結(jié)果按三個(gè)詞拆分:the cat is, cat is on, is on the, on the mat
- 人翻結(jié)果按三個(gè)詞拆分:the cat is, cat is sitting, is sitting on, sitting on the, on the mat
這回機(jī)翻的4個(gè)拆分結(jié)果中只有“the cat is”和“on the mat”在人翻拆分結(jié)果中,所以3-gram進(jìn)度為2/4
一般來(lái)說(shuō)還會(huì)再看4-gram的進(jìn)度,這里就不做演示了。
得到了1-gram到4-gram的精度后會(huì)對(duì)4種情況下的精確度進(jìn)行加權(quán),具體計(jì)算公式如下,咱感受一下就行
其中:
- lc表示機(jī)器翻譯結(jié)果的長(zhǎng)度
- lr表示人工翻譯結(jié)果的長(zhǎng)度
- Wn是n-gram的權(quán)重,一般都設(shè)置為等權(quán)重
- Pn就是我們剛剛說(shuō)的1-gram、2-gram等等各種n-gram的精確度
這套公式會(huì)給出一個(gè)0到1之間的分?jǐn)?shù)(不過(guò)通常會(huì)乘以100表示為0-100以符合百分制的習(xí)慣)。分?jǐn)?shù)越高,說(shuō)明機(jī)器翻譯和人工翻譯越接近,質(zhì)量可能越好。當(dāng)然,BLEU只是一個(gè)機(jī)械性的評(píng)估,它并未考慮語(yǔ)義,所以有時(shí)高分翻譯不一定通順自然,低分翻譯也可能有可取之處。但它提供了一個(gè)快速、量化的參考標(biāo)準(zhǔn),在模型開(kāi)發(fā)迭代中非常常用。
Transformer最后在 WMT 2014 英德翻譯任務(wù)上達(dá)到了 28.4 的 BLEU 分?jǐn)?shù),比當(dāng)時(shí)的行業(yè)最佳高 2 分以上。在 8 個(gè) GPU 上訓(xùn)練 3.5 天后,在 WMT 2014 英法翻譯任務(wù)上達(dá)到了 41.8 的單模型最高 BLEU 紀(jì)錄。
Transformer的后裔:BERT與GPT
Transformer 本身是一個(gè)強(qiáng)大的架構(gòu),它的強(qiáng)大在于以注意力機(jī)制為核心構(gòu)建的編碼器、解碼器能讓模型高效理解外界輸入,并向外界輸出。
之后研究者們發(fā)現(xiàn),Transformer的編碼器如果單獨(dú)拿出來(lái)優(yōu)化優(yōu)化,模型就不只是能理解待譯原文字詞間的關(guān)系這么簡(jiǎn)單了,于是有了BERT。
研究者們還發(fā)現(xiàn),Transformer的解碼器如果單獨(dú)拿出來(lái)再優(yōu)化優(yōu)化,模型就不只是能做翻譯這么簡(jiǎn)單了,于是有了GPT(沒(méi)錯(cuò),就是那個(gè)大名鼎鼎的chatGPT的GPT)。
所以下一篇文章我們將詳細(xì)討論BERT與GPT。
復(fù)盤一下,我們學(xué)到了什么
RNN的兩大瓶頸在于健忘和訓(xùn)練速度慢。這兩個(gè)問(wèn)題雖然被其改良版本(LSTM)顯著緩解,但依舊沒(méi)有被徹底解決。健忘是因?yàn)樾蛄幸婚L(zhǎng)將導(dǎo)致反向傳播無(wú)法有效調(diào)整參數(shù),訓(xùn)練速度慢是因?yàn)镽NN有許多串行計(jì)算,因而無(wú)法大規(guī)模的通過(guò)GPU并行訓(xùn)練。
徹底解決RNN兩大瓶頸的模型是Transformer。Transformer在處理序列時(shí)會(huì)直接計(jì)算某個(gè)元素和其他所有元素的注意力,無(wú)論兩個(gè)元素相隔有多遠(yuǎn),因此徹底解決了健忘問(wèn)題。此外, 一個(gè)序列所有元素的注意力計(jì)算可以同時(shí)進(jìn)行,這使得其可以在GPU上并行訓(xùn)練。
輸入和輸出都是序列的任務(wù)就被稱為“序列到序列任務(wù)”,解決這一問(wèn)題的經(jīng)典架構(gòu)是編碼器-解碼器。編碼器負(fù)責(zé)把輸入序列轉(zhuǎn)化為機(jī)器能理解的數(shù)字,解碼器再負(fù)責(zé)把它轉(zhuǎn)化為人類能理解的形式。Transformer采用的就是編碼器-解碼器架構(gòu)。
注意力機(jī)制能讓模型理解序列元素之間的關(guān)系。所謂注意力即是序列元素之間的相關(guān)性,“這老板真水”中“水”和“老板”的相關(guān)性顯然就要比別的詞強(qiáng),注意力機(jī)制能讓模型理解這種相關(guān)性。
K、Q、V三個(gè)矩陣是注意力機(jī)制中需要訓(xùn)練的參數(shù)。計(jì)算注意力需要對(duì)數(shù)字化后的token分別乘以K、Q、V矩陣得到k向量(key)、q向量(query)和v向量(value),然后通過(guò)計(jì)算key和query的內(nèi)積得到注意力。K、Q、V矩陣的具體數(shù)值需要通過(guò)大規(guī)模數(shù)據(jù)來(lái)調(diào)整。 值得一提的是,DeepSeek 實(shí)現(xiàn)低成本的一個(gè)技術(shù)——“KV緩存”說(shuō)的就是這里的 K 矩陣和 V 矩陣。這一點(diǎn)我們先按下不表,之后講DeepSeek的時(shí)候再展開(kāi)。
評(píng)價(jià)翻譯質(zhì)量的指標(biāo)是BLEU。BLEU的核心思想是看機(jī)器翻譯的結(jié)果跟人工翻譯結(jié)果在“詞語(yǔ)片段”上有多少重合度,然后對(duì)重合度進(jìn)行加權(quán)平均,最終輸出一個(gè)0~1的數(shù),越靠近1說(shuō)明翻譯效果越好。實(shí)際中往往會(huì)再乘以100以符合百分制的習(xí)慣。Transformer在公認(rèn)較難的英德翻譯問(wèn)題上的BLEU得分為28.4,比同時(shí)期的行業(yè)最佳高2分。
Transformer的編碼器和解碼器分別發(fā)展出了BERT和GPT。所以說(shuō)Transformer是大模型的爸爸
歡迎來(lái)到2017
Transformer的提出源自2017年谷歌研究團(tuán)隊(duì)發(fā)表的論文Attention Is All You Need。
到此,恭喜你對(duì)大模型知識(shí)的理解來(lái)到了2017年。此時(shí)幻方量化開(kāi)始全面應(yīng)用深度學(xué)習(xí)技術(shù)進(jìn)行交易,距離DeepSeek-R1發(fā)布還有5年。
AI Heroes
左:Attention Is All You Need的 8 位作者;右:論文中的Transformer架構(gòu)圖
這篇開(kāi)創(chuàng)性的論文由來(lái)自Google Brain和Google Research的Ashish Vaswani, Noam Shazeer, Niki Parmar, Jakob Uszkoreit, Llion Jones, Aidan Gomez, ?ukasz Kaiser, Illia Polosukhin共同完成。論文中特意提到所有人對(duì)論文的貢獻(xiàn)均等,排名不分先后
離開(kāi)谷歌后的創(chuàng)業(yè)者。八位作者陸續(xù)離開(kāi)谷歌后,全都成為 AI 領(lǐng)域的創(chuàng)業(yè)者。
- Ashish Vaswani 和 Niki Parmar:先后創(chuàng)立 Adept AI和 Essential AI,后者獲 Thrive Capital 800 萬(wàn)美元投資。
- Noam Shazeer:創(chuàng)立 Character.AI,開(kāi)發(fā)能模擬名人對(duì)話的 AI 角色,用戶量超 2000 萬(wàn),估值 10 億美元。之后重回Google任Gemini聯(lián)合負(fù)責(zé)人。
- Jakob Uszkoreit:跨界生物科技,創(chuàng)立 Inceptive,用 Transformer 設(shè)計(jì) RNA 藥物。
- Llion Jones:創(chuàng)辦Sakana AI,專注于開(kāi)發(fā)受自然啟發(fā)的基礎(chǔ)模型,利用進(jìn)化算法和多智能體協(xié)作優(yōu)化生成式 AI。
- Aidan Gomez:創(chuàng)辦 Cohere,專注于企業(yè)級(jí) NLP 模型,估值 22 億美元,客戶包括 Salesforce 和 Oracle。
- ?ukasz Kaiser:加入 OpenAI。
- Illia Polosukhin:轉(zhuǎn)向區(qū)塊鏈,創(chuàng)立 NEAR Protocol,試圖用 AI 優(yōu)化去中心化應(yīng)用。
—“Attention is all you need”
—“Indeed, it’s all we need”
——后記
如果有幫助,還望點(diǎn)個(gè)贊,謝謝~
本文由 @夜雨思晗 原創(chuàng)發(fā)布于人人都是產(chǎn)品經(jīng)理。未經(jīng)作者許可,禁止轉(zhuǎn)載
題圖由作者提供
該文觀點(diǎn)僅代表作者本人,人人都是產(chǎn)品經(jīng)理平臺(tái)僅提供信息存儲(chǔ)空間服務(wù)
有學(xué)習(xí)到
有幫助就好嘿嘿~