<acronym id="s8ci2"><small id="s8ci2"></small></acronym>
<rt id="s8ci2"></rt><rt id="s8ci2"><optgroup id="s8ci2"></optgroup></rt>
<acronym id="s8ci2"></acronym>
<acronym id="s8ci2"><center id="s8ci2"></center></acronym>
0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

Transformer結構及其應用詳解

深度學習自然語言處理 ? 來源:新智元 ? 2023-06-08 09:56 ? 次閱讀

【導讀】

本文首先詳細介紹Transformer的基本結構,然后再通過GPT、BERT、MT-DNN以及GPT-2等基于Transformer的知名應用工作的介紹并附上GitHub鏈接,看看Transformer是如何在各個著名的模型中大顯神威的。

在介紹Transformer前我們來回顧一下RNN的結構

5b219344-0575-11ee-8a94-dac502259ad0.jpg

對RNN有一定了解的話,一定會知道,RNN有兩個很明顯的問題

效率問題:需要逐個詞進行處理,后一個詞要等到前一個詞的隱狀態輸出以后才能開始處理

如果傳遞距離過長還會有梯度消失、梯度爆炸和遺忘問題

為了緩解傳遞間的梯度和遺忘問題,設計了各種各樣的RNN cell,最著名的兩個就是LSTM和GRU了 LSTM (Long Short Term Memory)

5b2ffd8a-0575-11ee-8a94-dac502259ad0.png

GRU (Gated Recurrent Unit)

5b3a6a68-0575-11ee-8a94-dac502259ad0.jpg

但是,引用網上一個博主的比喻,這么做就像是在給馬車換車輪,為什么不直接換成汽車呢? 于是就有了我們本文要介紹的核心結構——Transformer。Transformer 是Google Brain 2017的提出的一篇工作,它針對RNN的弱點進行重新設計,解決了RNN效率問題和傳遞中的缺陷等,在很多問題上都超過了RNN的表現。

Transfromer的基本結構如下圖所示,它是一個N進N出的結構,也就是說每個Transformer單元相當于一層的RNN層,接收一整個句子所有詞作為輸入,然后為句子中的每個詞都做出一個輸出。但是與RNN不同的是,Transformer能夠同時處理句子中的所有詞,并且任意兩個詞之間的操作距離都是1,這么一來就很好地解決了上面提到的RNN的效率問題和距離問題。

5b47532c-0575-11ee-8a94-dac502259ad0.png

每個Transformer單元都有兩個最重要的子層,分別是Self-Attention層與Feed Forward層,后面會對這兩個層的詳細結構做介紹。文章使用Transformer搭建了一個類似Seq2Seq的語言翻譯模型,并為Encoder與Decoder設計了兩種不同的Transformer結構。

5b50ce7a-0575-11ee-8a94-dac502259ad0.png

Decoder Transformer相對于Encoder Transformer多了一個Encoder-Decoder Attention層,用來接收來自于Encoder的輸出作為參數。最終只要按照下圖的方式堆疊,就可以完成Transformer Seq2Seq的結構搭建。

5b5dcfee-0575-11ee-8a94-dac502259ad0.jpg

舉個例子介紹下如何使用這個Transformer Seq2Seq做翻譯

首先,Transformer對原語言的句子進行編碼,得到memory。

第一次解碼時輸入只有一個標志,表示句子的開始。

解碼器通過這個唯一的輸入得到的唯一的輸出,用于預測句子的第一個詞。

第二次解碼,將第一次的輸出Append到輸入中,輸入就變成了和句子的第一個詞(ground truth或上一步的預測),解碼生成的第二個輸出用于預測句子的第二個詞。以此類推(過程與Seq2Seq非常類似) 了解了Transformer的大致結構以及如何用它來完成翻譯任務后,接下來就看看Transformer的詳細結構:

5b61fe0c-0575-11ee-8a94-dac502259ad0.png

核心組件就是上面所提到的Self-Attention和Feed Forward Networks,但還有很多其他細節,接下來我們就開始逐個結構的來解讀Transformer。

Self Attention

Self Attention就是句子中的某個詞對于本身的所有詞做一次Attention。算出每個詞對于這個詞的權重,然后將這個詞表示為所有詞的加權和。每一次的Self Attention操作,就像是為每個詞做了一次Convolution操作或Aggregation操作。具體操作如下: 首先,每個詞都要通過三個矩陣Wq, Wk, Wv進行一次線性變化,一分為三,生成每個詞自己的query, key, vector三個向量。

以一個詞為中心進行Self Attention時,都是用這個詞的key向量與每個詞的query向量做點積,再通過Softmax歸一化出權重。然后通過這些權重算出所有詞的vector的加權和,作為這個詞的輸出。具體過程如下圖所示

5b73f544-0575-11ee-8a94-dac502259ad0.jpg

歸一化之前需要通過除以向量的維度dk來進行標準化,所以最終Self Attention用矩陣變換的方式可以表示為

5b804b6e-0575-11ee-8a94-dac502259ad0.png

最終每個Self Attention接受n個詞向量的輸入,輸出n個Aggregated的向量。

上文提到Encoder中的Self Attention與Decoder中的有所不同,Encoder中的Q、K、V全部來自于上一層單元的輸出,而Decoder只有Q來自于上一個Decoder單元的輸出,K與V都來自于Encoder最后一層的輸出。也就是說,Decoder是要通過當前狀態與Encoder的輸出算出權重后,將Encoder的編碼加權得到下一層的狀態。

Masked Attention

通過觀察上面的結構圖我們還可以發現Decoder與Encoder的另外一個不同,就是每個Decoder單元的輸入層,要先經過一個Masked Attention層。那么Masked的與普通版本的Attention有什么區別呢? Encoder因為要編碼整個句子,所以每個詞都需要考慮上下文的關系。所以每個詞在計算的過程中都是可以看到句子中所有的詞的。

但是Decoder與Seq2Seq中的解碼器類似,每個詞都只能看到前面詞的狀態,所以是一個單向的Self-Attention結構。 Masked Attention的實現也非常簡單,只要在普通的Self Attention的Softmax步驟之前,與(&)上一個下三角矩陣M就好了

5b892856-0575-11ee-8a94-dac502259ad0.png

Multi-Head Attention

Multi-Head Attention就是將上述的Attention做h遍,然后將h個輸出進行concat得到最終的輸出。這樣做可以很好地提高算法的穩定性,在很多Attention相關的工作中都有相關的應用。Transformer的實現中,為了提高Multi-Head的效率,將W擴大了h倍,然后通過view(reshape)和transpose操作將相同詞的不同head的k、q、v排列在一起進行同時計算,完成計算后再次通過reshape和transpose完成拼接,相當于對于所有的head進行了一個并行處理。

Position-wise FeedForward Networks

Encoder中和Decoder中經過Attention之后輸出的n個向量(這里n是詞的個數)都分別的輸入到一個全連接層中,完成一個逐個位置的前饋網絡。

5b970f34-0575-11ee-8a94-dac502259ad0.png5ba5eb80-0575-11ee-8a94-dac502259ad0.jpg

Add & Norm

是一個殘差網絡,將一層的輸入與其標準化后的輸出進行相加即可。Transformer中每一個Self Attention層與FFN層后面都會連一個Add & Norm層。

5bb493b0-0575-11ee-8a94-dac502259ad0.jpg

Positional Encoding 由于Transformer中既不存在RNN,也不同于CNN,句子里的所有詞都被同等的看待,所以詞之間就沒有了先后關系。換句話說,很可能會帶上和詞袋模型相同的不足。為了解決這個問題,Transformer提出了Positional Encoding的方案,就是給每個輸入的詞向量疊加一個固定的向量來表示它的位置。文中使用的Positional Encoding如下:

5bc37bb4-0575-11ee-8a94-dac502259ad0.png

其中pos是詞在句子中的位置,i是詞向量中第i位,即將每個詞的詞向量為一行進行疊加,然后針對每一列都疊加上一個相位不同或波長逐漸增大的波,以此來唯一區分位置。

Transformer 工作流程

Transformer的工作流程就是上面介紹的每一個子流程的拼接

輸入的詞向量首先疊加上Positional Encoding,然后輸入至Transformer內

每個Encoder Transformer會進行一次Multi-head self attention->Add & Normalize->FFN->Add & Normalize流程,然后將輸出輸入至下一個Encoder中

最后一個Encoder的輸出將會作為memory保留

每個Decoder Transformer會進行一次Masked Multi-head self attention->Multi-head self attention->Add & Normalize->FFN->Add & Normalize流程,其中Multi-head self attention時的K、V至來自于Encoder的memory。根據任務要求輸出需要的最后一層Embedding。

Transformer的輸出向量可以用來做各種下游任務

Post Scriptum

雖然在Transformer文章中提出了一種自然語言翻譯的模型,很多文章把這個模型稱為Transformer。但我們還是傾向于將文章中利用Self-Attention的Encoder或Decoder的子結構稱為Transformer。文中和源碼中還包含了很多其他的一些優化例如學習率動態變化,Residual Dropout以及Label Smoothing在這里就不再贅述,有興趣的朋友可以閱讀相關參考文獻進行了解。

單向二階段訓練模型——OpenAI GPT

GPT(Generative Pre-Training),是OpenAI在2018年提出的模型,利用Transformer模型來解決各種自然語言問題,例如分類、推理、問答、相似度等應用的模型。GPT采用了Pre-training + Fine-tuning的訓練模式,使得大量無標記的數據得以利用,大大提高了這些問題的效果。 GPT就是利用Transformer進行自然語言各種任務的嘗試之一,主要有以下三個要點

Pre-Training的方式

單向Transformer模型

Fine-Tuning與不同輸入數據結構的變化

如果已經理解了Transformer的原理,那么只需要再搞懂上面的三個內容就能夠對GPT有更深的認識。

Pre-Training 訓練方式

很多機器學習任務都需要帶標簽的數據集作為輸入完成。但是我們身邊存在大量沒有標注的數據,例如文本、圖片、代碼等等。標注這些數據需要花費大量的人力和時間,標注的速度遠遠不及數據產生的速度,所以帶有標簽的數據往往只占有總數據集很小的一部分。隨著算力的不斷提高,計算機能夠處理的數據量逐漸增大。

如果不能很好利用這些無標簽的數據就顯得很浪費。 所以半監督學習和預訓練+微調的二階段模式整變得越來越受歡迎。最常見的二階段方法就是Word2Vec,使用大量無標記的文本訓練出帶有一定語義信息的詞向量,然后將這些詞向量作為下游機器學習任務的輸入,就能夠大大提高下游模型的泛化能力。

但是Word2Vec有一個問題,就是單個單詞只能有一個Embedding。這樣一來,一詞多義就不能很好地進行表示。 ELMo首先想到了在預訓練階段為每個詞匯集其上下文信息,使用的是基于bi-LSTM的語言模型給詞向量帶上上下文語義信息:

5bcf923c-0575-11ee-8a94-dac502259ad0.png

上式分別代表了左右兩向的LSTM-RNN,他們共享輸入的詞向量X以及RNN各層權重S,也就是使用雙向RNN兩向的輸出,來同時預測下一個單詞(右向的下一個,左向的上一個),具體結構如下圖所示:

5bd7d816-0575-11ee-8a94-dac502259ad0.jpg

但ELMo使用的是RNN來完成語言模型的預訓練,那么如何使用Transformer來完成預訓練呢?

單向Transformer結構

OpenAI GPT采用了單向Transformer完成了這項預訓練任務。

5be62bd2-0575-11ee-8a94-dac502259ad0.png

什么是單向Transformer?在Transformer的文章中,提到了Encoder與Decoder使用的Transformer Block是不同的。在Decoder Block中,使用了Masked Self-Attention,即句子中的每個詞,都只能對包括自己在內的前面所有詞進行Attention,這就是單向Transformer。GPT使用的Transformer結構就是將Encoder中的Self-Attention替換成了Masked Self-Attention,具體結構如下圖所示:

5bf3a794-0575-11ee-8a94-dac502259ad0.png

由于采用的是單向的Transformer,只能看到上文的詞,所以語言模型為:

5c03ac0c-0575-11ee-8a94-dac502259ad0.png

而訓練的過程其實非常的簡單,就是將句子n個詞的詞向量(第一個為)加上Positional Encoding后輸入到前面提到的Transfromer中,n個輸出分別預測該位置的下一個詞(預測句子中的第一個詞,最后一個詞的預測結果不用于語言模型的訓練)。

5c0e22ae-0575-11ee-8a94-dac502259ad0.png

由于使用了Masked Self-Attention,所以每個位置的詞都不會“看見”后面的詞,也就是預測的時候是看不見“答案”的,保證了模型的合理性,這也是為什么OpenAI采用了單向Transformer的原因。

Fine-Tuning與不同輸入數據結構的變化

接下來就進入模型訓練的第二步,運用少量的帶標簽數據對模型參數進行微調。

上一步中最后一個詞的輸出我們沒有用到,在這一步中就要使用這一個輸出來作為下游監督學習的輸入。

5c17160c-0575-11ee-8a94-dac502259ad0.png

5c21084c-0575-11ee-8a94-dac502259ad0.png

為避免Fine-Tuning使得模型陷入過擬合,文中還提到了輔助訓練目標的方法,類似于一個多任務模型或者半監督學習。具體方法就是在使用最后一個詞的預測結果進行監督學習的同時,前面的詞繼續上一步的無監督訓練,使得最終的損失函數成為: 5c29fa74-0575-11ee-8a94-dac502259ad0.png 針對不同任務,需要修改輸入數據的格式:

5c348a52-0575-11ee-8a94-dac502259ad0.png

Classification:對于分類問題,不需要做什么修改

Entailment:對于推理問題,可以將先驗與假設使用一個分隔符分開

Similarity:對于相似度問題,由于模型是單向的,但相似度與順序無關。所以需要將兩個句子順序顛倒后兩次輸入的結果相加來做最后的推測

Multiple Choice:對于問答問題,則是將上下文、問題放在一起與答案分隔開,然后進行預測

Post Scriptum

OpenAI GPT在Transformer的運用和二階段訓練方式上做出了很好的探索,也取得了非常不錯的效果,為后面的BERT鋪平了道路。

雙向二階段訓練模型——BERT

BERT(Bidirectional Encoder Representation from Transformer),是Google Brain在2018年提出的基于Transformer的自然語言表示框架。是一提出就大火的明星模型。BERT與GPT一樣,采取了Pre-training + Fine-tuning的訓練方式,在分類、標注等任務下都獲得了更好的效果。 BERT與GPT非常的相似,都是基于Transformer的二階段訓練模型,都分為Pre-Training與Fine-Tuning兩個階段,都在Pre-Training階段無監督地訓練出一個可通用的Transformer模型,然后在Fine-Tuning階段對這個模型中的參數進行微調,使之能夠適應不同的下游任務。 雖然BERT與GPT看上去非常的相似,但是它們的訓練目標和模型結構和使用上還是有著些許的不同:

GPT采用的是單向的Transformer,而BERT采用的是雙向的Transformer,也就是不用進行Mask操作;

使用的結構的不同,直接導致了它們在Pre-Training階段訓練目標的不同;

雙向Transformer BERT采用的是不經過Mask的Transformer,也就是與Transformer文章中的Encoder Transformer結構完全一樣: GPT中因為要完成語言模型的訓練,也就要求Pre-Training預測下一個詞的時候只能夠看見當前以及之前的詞,這也是GPT放棄原本Transformer的雙向結構轉而采用單向結構的原因。

BERT為了能夠同時得到上下文的信息,而不是像GPT一樣完全放棄下文信息,采用了雙向的Transformer。但是這樣一來,就無法再像GPT一樣采用正常的語言模型來預訓練了,因為BERT的結構導致每個Transformer的輸出都可以看見整個句子的,無論你用這個輸出去預測什么,都會“看見”參考答案,也就是“see itself”的問題。ELMo中雖然采用的是雙向RNN,但是兩個RNN之間是獨立的,所以可以避免see itself的問題。

5c3fe244-0575-11ee-8a94-dac502259ad0.png

Pre-Training階段

那么BERT想用雙向的Transformer模型,就不得不放棄GPT中所采用的語言模型來作為預訓練的目標函數。取而代之的,BERT提出了一種完全不同的預訓練方法。

Masked Language Model (MLM)

在Transformer中,我們即想要知道上文的信息,又想要知道下文的信息,但同時要保證整個模型不知道要預測詞的信息,那么就干脆不要告訴模型這個詞的信息就可以了。也就是說,BERT在輸入的句子中,挖掉一些需要預測的詞,然后通過上下文來分析句子,最終使用其相應位置的輸出來預測被挖掉的詞。這其實就像是在做完形填空 (Cloze)一樣。

但是,直接將大量的詞替換為標簽可能會造成一些問題,模型可能會認為只需要預測相應的輸出就行,其他位置的輸出就無所謂。同時Fine-Tuning階段的輸入數據中并沒有標簽,也有數據分布不同的問題。為了減輕這樣訓練帶來的影響,BERT采用了如下的方式:

1.輸入數據中隨機選擇15%的詞用于預測,這15%的詞中,

2.80%的詞向量輸入時被替換為

3.10%的詞的詞向量在輸入時被替換為其他詞的詞向量

4.另外10%保持不動

這樣一來就相當于告訴模型,我可能給你答案,也可能不給你答案,也可能給你錯誤的答案,有的地方我會檢查你的答案,沒的地方我也可能檢查你的答案,所以標簽對你來說沒有什么特殊意義,所以無論如何,你都要好好預測所有位置的輸出。

Next Sentence Prediction (NSP)

BERT還提出了另外一種預訓練方式NSP,與MLM同時進行,組成多任務預訓練。這種預訓練的方式就是往Transformer中輸入連續的兩個句子,左邊的句子前面加上一個標簽,它的輸出被用來判斷兩個句子之間是否是連續上下文關系。采用負采樣的方法,正負樣本各占50%。

為了區分兩個句子的前后關系,BERT除了加入了Positional Encoding之外,還兩外加入了一個在預訓練時需要學習的Segment Embedding來區分兩個句子。這樣一來,BERT的輸入就由詞向量、位置向量、段向量三個部分相加組成。此外,兩個句子之間使用標簽予以區分。

5c4aaa76-0575-11ee-8a94-dac502259ad0.png

整體Pre-Training的示意圖如下:

5c569f3e-0575-11ee-8a94-dac502259ad0.png

Fine-Tuning階段

BERT的Fine-Tuning階段和GPT沒有太大區別。因為采用了雙向的Transformer所以放棄了GPT在Fine-Tuning階段使用的輔助訓練目標,也就是語言模型。此外就是將分類預測用的輸出向量從GPT的最后一個詞的輸出位置改為了句子開頭的位置了。不同的任務Fine-Tuning的示意圖如下:

5c63e3b0-0575-11ee-8a94-dac502259ad0.jpg

Post Scriptum

個人認為,BERT只是GPT模型的一種trade-off,為了在兩個階段都能夠同時獲得句子上下文的信息,使用了雙向Transformer模型。但是為此卻要付出失去傳統語言模型的代價,轉而采用MLM+NSP這種更加復雜的方式進行預訓練。

多任務模型——MT-DNN

MT-DNN (Multi-Task Deep Neural Networks) 依然采用了BERT的二階段訓練方法以及雙向Transformer。在Pre-Training階段,MT-DNN與BERT幾乎完全一樣,但是在Fine-Tuning階段,MT-DNN采用了多任務的微調方式。同時采用Transformer輸出的上下文Embedding進行單句分類、文本對相似度、文本對分類以及問答等任務的訓練。整個結構如下圖所示:

5c70067c-0575-11ee-8a94-dac502259ad0.jpg

單向通用模型——GPT-2

GPT-2繼續沿用了原來在GPT種使用的單向Transformer模型,而這篇文章的目的就是盡可能利用單向Transformer的優勢,做一些BERT使用的雙向Transformer所做不到的事。那就是通過上文生成下文文本。 GPT-2的想法就是完全舍棄Fine-Tuning過程,轉而使用一個容量更大、無監督訓練、更加通用的語言模型來完成各種各樣的任務。

我們完全不需要去定義這個模型應該做什么任務,因為很多標簽所蘊含的信息,就存在于語料當中。就像一個人如果博覽群書,自然可以根據看過的內容輕松的做到自動摘要、問答、續寫文章這些事。 嚴格來說GPT-2可能不算是一個多任務模型,但是它確實使用相同的模型、相同的參數完成了不同的任務。那么GPT-2是怎么使用語言模型完成多種任務的呢? 通常我們針對特定任務訓練的專用模型,給定輸入,就可以返回這個任務相應的輸出,也就是

5c7b5194-0575-11ee-8a94-dac502259ad0.png
那么如果我們希望設計一個通用的模型,這個模型在給定輸入的同時還需要給定任務類型,然后根據給定輸入與任務來做出相應的輸出,那么模型就可以表示成下面這個樣子

5c840bfe-0575-11ee-8a94-dac502259ad0.png

就好像原來我需要翻譯一個句子,需要專門設計一個翻譯模型,想要問答系統需要專門設計一個問答模型。但是如果一個模型足夠聰明,并且能夠根據你的上文生成下文,那我們就可以通過在輸入中加入一些標識符就可以區分各種問題。

比如可以直接問他:(‘自然語言處理', 中文翻譯)來得到我們需要的結果Nature Language Processing。在我的理解中GPT-2更像是一個無所不知的問答系統,通過告知一個給定任務的標識符,就可以對多種領域的問答、多種任務做出合適的回答。GPT-2滿足零樣本設置 (zero-shot setting), 在訓練的過程中不需要告訴他應該完成什么樣的任務,預測是也能給出較為合理的回答。

那么GPT-2為了做到上面這些要求,做了哪些工作呢?

拓寬并加大數據集

首先就是要讓模型博覽群書,如果訓練樣本都不夠多,那還怎么進行推理?前面的工作都是針對某一個特定問題的,所以數據集都比較片面。GPT-2收集了一個規模更大、范圍更廣的數據集。同時呢,要保證這個數據集的質量,保留那些擁有高質量內容的網頁。最終組成了一個800萬個文本,40G的數據集WebText。

擴大網絡容量

書多了腦袋容量也得帶一些要不然記不住書里的東西。為了提高網絡的容量,使其擁有更強的學習潛力,GPT-2將Transformer堆疊的層數增加到48層,隱層的維度為1600,參數量達到了15億。

調整網絡結構

GPT-2將詞匯表提升到50257,最大的上下文大小 (context size) 從GPT的512提升到了1024,batchsize從512提升為1024。此外還對Transformer做出了小調整,標準化層放到沒每個sub-block之前,最后一個Self-attention后又增加了一個標準化層;改變了殘差層的初始化方法等等。

Post Scriptum

GPT-2其實最驚人的是其極強的生成能力,而如此強大的生成能力主要還是要歸功于其數據質量以及驚人參數量和數據規模。GPT-2的參數量大到用于實驗的模型都還處于欠擬合狀態,如果接著訓練,效果還能進一步提升。

總結

總上面這些關于Transformer工作的發展中,我也整理出了一些關于深度學習發展趨勢的個人心得:

1. 有監督模型向半監督甚至無監督方向發展 數據的規模的增長速度遠遠超過了數據的標注速度,這也就導致了大量無標簽數據的產生。這些無標簽的數據并非沒有價值,相反,如果找到合適的“煉金術”,將可以從這些海量的數據中獲取意想不到的價值。如何利用上這些無標簽的數據來改善任務的表現變成了一個越來越無法輕視的問題。

2. 從少量數據復雜模型到大量數據簡單模型 深度神經網絡的擬合能力非常的強大,一個簡單的神經網絡模型就足以擬合任何函數。但無奈使用越簡單的網絡結構完成同一個任務,對數據量的要求也更高。數據量越是上升,數據質量越是提高,往往對模型的要求就會越會降低。數據量越大,模型就越容易捕捉到符合真實世界分布的特征。Word2Vec就是一個例子,它所使用的目標函數非常的簡單,但是由于使用了大量的文本,于是訓練出的詞向量中就包含了許多有趣的特性。

3. 從專用模型向通用模型發展 GPT、BERT、MT-DNN、GPT-2都使用了經過預訓練的通用模型來繼續進行下游的機器學習任務,并不需要對模型本身再做太多的修改。如果一個模型的表達能力足夠的強,訓練時候使用的數據量足夠的大,那么模型的通用性就會更強,就不需要針對特定的任務做太多的修改。最極端的情況就像是GPT-2這個樣子,訓練時甚至完全不需要知道后續的下游任務是什么,就能夠訓練出一個通用的多任務模型。

4. 對數據的規模和質量要求提高 GPT、BERT、MT-DNN、GPT-2雖然先后刷榜,但是我認為成績的提升中,數據規模的提升占有比結構調整更大的比重。隨著模型的通用化和簡單化,為提升模型的性能,今后更多的注意力將會從如何設計一個復雜、專用的模型轉移到如何獲取、清洗、精化出質量更加出眾的、大量的數據上。數據的處理方式調整的作用將會大于模型結構調整的作用。

綜上所述,DL競賽遲早要成為大廠間拼資源、拼算力的較量??赡軒啄陜染蜁霈F一個新的課題:綠色AI,低碳AI,可持續AI等。





審核編輯:劉清

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 編碼器
    +關注

    關注

    42

    文章

    3414

    瀏覽量

    132005
  • 神經網絡
    +關注

    關注

    42

    文章

    4591

    瀏覽量

    99298
  • Gru
    Gru
    +關注

    關注

    0

    文章

    9

    瀏覽量

    7449
  • GPT
    GPT
    +關注

    關注

    0

    文章

    326

    瀏覽量

    15032
  • LSTM
    +關注

    關注

    0

    文章

    42

    瀏覽量

    3701

原文標題:Transformer結構及其應用詳解——GPT、BERT、MT-DNN、GPT-2

文章出處:【微信號:zenRRan,微信公眾號:深度學習自然語言處理】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    好書分享!《詳解MATLAB圖像函數及其應用》

    詳解MATLAB圖像函數及其應用》不錯的書!很好!值得一看!
    發表于 05-29 16:08

    LED光電參數定義及其詳解

    LED光電參數定義及其詳解
    發表于 08-17 21:57

    Linux系統命令及其使用詳解

    Linux系統命令及其使用詳解
    發表于 08-20 13:38

    MOSFET結構及其工作原理詳解

    ` 本帖最后由 eehome 于 2013-1-5 09:54 編輯 MOSFET結構及其工作原理詳解`
    發表于 08-20 17:27

    智能電表設計及其原理詳解

    智能電表設計及其原理詳解
    發表于 11-12 09:45

    詳解ABBYY PDF Transformer+從文件創建PDF文檔

    可使用ABBYY PDF Transformer+從Microsoft Word、Microsoft Excel、Microsoft PowerPoint、HTML、RTF、Microsoft
    發表于 10-17 14:13

    詳解ABBYY PDF Transformer+中的Bates編號

    ABBYY PDF Transformer+ 可讓您將 Bates 編號添加到 PDF 文檔。Bates 編號可方便文檔搜索和檢索,并更加有利于電子歸檔。下面小編給小伙伴們講講ABBYY PDF
    發表于 11-14 10:28

    計算機自動化裝配專機,自動化裝配生產線結構原理及其組成形式的詳解 精選資料分享

    《自動化裝配生產線結構原理及其組成形式的詳解》由會員分享,可在線閱讀,更多相關《自動化裝配生產線結構原理及其組成形式的
    發表于 09-13 07:50

    高頻變壓器設計軟件PI_Transformer_Designer6.5及其應用

    高頻變壓器設計軟件PI_Transformer_Designer_6[1].5及其應用
    發表于 12-11 10:59 ?37次下載

    磁珠資料--詳解磁珠及其作用

    電路教程相關知識的資料,關于磁珠資料--詳解磁珠及其作用
    發表于 10-10 14:34 ?0次下載

    LED光電參數定義及其詳解

    LED光電參數定義及其詳解
    發表于 02-08 00:50 ?19次下載

    詳解一種簡單而有效的Transformer提升技術

    近些年,Transformer[1]逐漸成為了自然語言處理中的主流結構。為了進一步提升Transformer的性能,一些工作通過引入額外的結構或知識來提升
    的頭像 發表于 04-09 09:50 ?6260次閱讀
    <b class='flag-5'>詳解</b>一種簡單而有效的<b class='flag-5'>Transformer</b>提升技術

    Transformer的復雜度和高效設計及Transformer的應用

    中的25個Transformers模型 總結 ACL 2021中的25個Transformers模型 NLP中的層次結構Hi-Transformer: Hierarchical Interactive Transformer f
    的頭像 發表于 09-01 09:27 ?5792次閱讀
    <b class='flag-5'>Transformer</b>的復雜度和高效設計及<b class='flag-5'>Transformer</b>的應用

    關于Transformer的核心結構及原理

    Thinking Like Transformers 這篇論文中提出了 transformer 類的計算框架,這個框架直接計算和模仿 Transformer 計算。使用 RASP 編程語言,使每個程序編譯成一個特殊的 Transform
    發表于 03-08 09:39 ?585次閱讀

    transformer模型詳解Transformer 模型的壓縮方法

    ?動機&背景 Transformer 模型在各種自然語言任務中取得了顯著的成果,但內存和計算資源的瓶頸阻礙了其實用化部署。低秩近似和結構化剪枝是緩解這一瓶頸的主流方法。然而,作者通過分析發現,結構
    的頭像 發表于 07-17 10:50 ?1464次閱讀
    <b class='flag-5'>transformer</b>模型<b class='flag-5'>詳解</b>:<b class='flag-5'>Transformer</b> 模型的壓縮方法
    亚洲欧美日韩精品久久_久久精品AⅤ无码中文_日本中文字幕有码在线播放_亚洲视频高清不卡在线观看
    <acronym id="s8ci2"><small id="s8ci2"></small></acronym>
    <rt id="s8ci2"></rt><rt id="s8ci2"><optgroup id="s8ci2"></optgroup></rt>
    <acronym id="s8ci2"></acronym>
    <acronym id="s8ci2"><center id="s8ci2"></center></acronym>