0
本文作者: MrBear | 2020-06-28 16:09 |
2018 年 10月,Bert 問世。從此,一波自然語(yǔ)言處理(NLP)遷移學(xué)習(xí)的浪潮向我們襲來(lái)。
你知道 BERT 的掩碼語(yǔ)言模型由來(lái)已久嗎?
你知道注意力機(jī)制的時(shí)間復(fù)雜度不一定是輸入的二次方量級(jí)嗎?
你知道你可以反向?qū)崿F(xiàn) Google 的模型嗎?
當(dāng)下,全球研究人員已經(jīng)在此領(lǐng)域做出了大量的工作,取得了豐碩的成果!NLP 也許是當(dāng)前最吸引人的研究領(lǐng)域。
NLP 是一個(gè)龐大的話題,在本文中我們并不對(duì) NLP 的基本理論進(jìn)行過多的展開。
下面,我們向大家提出 21 個(gè)問題,它們可以測(cè)試你對(duì) NLP 的最新進(jìn)展有多么熟悉,使你足以面對(duì)任何將要到來(lái)的技術(shù)討論。
畢竟,從某種程度上來(lái)說,掌握多少專業(yè)術(shù)語(yǔ)決定了你的水平。
參考論文:Pre-trained Models for Natural Language Processing: A Survey,https://arxiv.org/pdf/2003.08271.pdf
圖 1:具有代表性的 PTM 的分類情況
近年來(lái),大量的研究工作表明,大規(guī)模語(yǔ)料庫(kù)上的預(yù)訓(xùn)練模型可以學(xué)習(xí)到通用的語(yǔ)言表征,這有助于下游的 NLP 任務(wù),可以避免從頭開始訓(xùn)練一個(gè)新的模型。隨著算力的發(fā)展,各種深度學(xué)習(xí)模型(例如,Transformer)層出不窮。
隨著網(wǎng)絡(luò)訓(xùn)練技巧的發(fā)展,PTM 的架構(gòu)也逐漸從淺層向深層發(fā)展:
「第一代 PTM」旨在學(xué)習(xí)優(yōu)秀的詞嵌入。由于在下游任務(wù)中,這些第一代 PTM 方法自身并不被需要,出于對(duì)計(jì)算效率的考慮,它們往往層數(shù)很淺(例如,Skip-Gram 和 GloVe)。盡管這些預(yù)訓(xùn)練的嵌入可以捕獲單詞的語(yǔ)義,但是它們是上下文無(wú)關(guān)的,不能捕獲文本中更高級(jí)的概念(例如,詞義排歧、句法結(jié)構(gòu)、語(yǔ)義角色、指代)。
「第二代 PTM」重點(diǎn)關(guān)注學(xué)習(xí)上下文相關(guān)的詞嵌入(例如,CoVe,ELMo、OpenAI GPT,以及 BERT)。在下游任務(wù)中,仍然需要這些學(xué)習(xí)到的編碼器來(lái)表征上下文中的單詞。此外,針對(duì)于不同的目的,研究人員也提出了各種各樣的預(yù)訓(xùn)練任務(wù)來(lái)學(xué)習(xí) PTM。
第一代 PTM:「上下文無(wú)關(guān)」的預(yù)訓(xùn)練詞嵌入
將單詞表征為稠密的向量由來(lái)已久?!脯F(xiàn)代的」詞嵌入技術(shù)首先在神經(jīng)網(wǎng)絡(luò)語(yǔ)言模型(NNLM)中被提出。Collobert 等人說明在未標(biāo)記數(shù)據(jù)上預(yù)訓(xùn)練的詞嵌入可以顯著地改進(jìn)許多 NLP 任務(wù)。為了解決計(jì)算復(fù)雜度的問題,他們并沒有使用語(yǔ)言模型,而是通過 pairwise 的排序任務(wù)學(xué)習(xí)詞嵌入。他們的工作首次嘗試了使用未標(biāo)記數(shù)據(jù)獲取對(duì)于其它任務(wù)有用的通用詞嵌入。
Mikolov 等人指出,深度神經(jīng)網(wǎng)絡(luò)沒有必要構(gòu)建良好的詞嵌入。他們提出了兩種淺層的架構(gòu):連續(xù)詞袋(CBOW)和跳字(Skip-Gram)模型。盡管這些模型很簡(jiǎn)單,但是它們?nèi)匀豢梢詫W(xué)習(xí)到高質(zhì)量的詞嵌入,從而捕獲潛在的單詞之間的句法和語(yǔ)義相似性。
Word2vec 是一種最流行的這些模型的實(shí)現(xiàn),它讓 NLP 領(lǐng)域的各種任務(wù)都可以使用預(yù)訓(xùn)練的詞嵌入。此外,GloVe 也是一種被廣泛使用的獲取預(yù)訓(xùn)練詞嵌入的模型,它是根據(jù)一個(gè)大型語(yǔ)料庫(kù)中全局詞共現(xiàn)的統(tǒng)計(jì)量計(jì)算而來(lái)的。
盡管研究人員已經(jīng)證實(shí)了預(yù)訓(xùn)練詞嵌入在 NLP 任務(wù)中是有效的,但它們與上下文無(wú)關(guān),并且大多數(shù)是通過淺層模型訓(xùn)練而來(lái)。當(dāng)它們被用于下游任務(wù)時(shí),仍然需要從頭開始學(xué)習(xí)整體模型中的其余部分。
第二代 PTM:「上下文相關(guān)」的預(yù)訓(xùn)練編碼器
由于大多數(shù) NLP 任務(wù)并不僅僅停留在單詞層面上,研究人員自然而然地想到在句子或更高的層面上預(yù)訓(xùn)練神經(jīng)編碼器。由于神經(jīng)編碼器的輸出向量表征了依賴于上下文的單詞語(yǔ)義,它們也被稱為「上下文相關(guān)的詞嵌入」。
Dai 和 Le 提出了第一個(gè)成功的用于 NLP 領(lǐng)域的 PTM。他們通過一個(gè)語(yǔ)言模型(LM)或一個(gè)序列自編碼器初始化 LSTM,發(fā)現(xiàn)預(yù)訓(xùn)練可以提升 LSTM 在很多文本分類任務(wù)上的訓(xùn)練和泛化能力。
Liu 等人通過 LM 預(yù)訓(xùn)練了一個(gè)共享的 LSTM 編碼器,并且在多任務(wù)學(xué)習(xí)(MTL)的框架下對(duì)其進(jìn)行了調(diào)優(yōu)。他們發(fā)現(xiàn)預(yù)訓(xùn)練和調(diào)優(yōu)可以在一些文本分類任務(wù)中進(jìn)一步提升 MTL 的性能。
Ramachandran 等人發(fā)現(xiàn)可以通過無(wú)監(jiān)督預(yù)訓(xùn)練顯著提升 Seq2Seq 模型的性能。編碼器和解碼器的權(quán)值都是通過兩個(gè)預(yù)訓(xùn)練語(yǔ)言模型的權(quán)值初始化,并且使用有標(biāo)記數(shù)據(jù)調(diào)優(yōu)的。
除了通過 LM 預(yù)訓(xùn)練上下文相關(guān)的編碼器,McCann 等人還通過用于機(jī)器翻譯(MT)任務(wù)的注意力序列到序列模型預(yù)訓(xùn)練了一個(gè)深度 LSTM 編碼器。預(yù)訓(xùn)練的編碼器輸出的上下文向量(CoVe)可以提升模型在各種常見的 NLP 任務(wù)中的性能。
現(xiàn)代的 PTM 通常是在更大規(guī)模的語(yǔ)料庫(kù)上,使用更強(qiáng)大或更深的架構(gòu)(如 Transformer),通過新的預(yù)訓(xùn)練任務(wù)訓(xùn)練而來(lái)。
Peter 等人使用一個(gè)雙向語(yǔ)言模型(BiLM)預(yù)訓(xùn)練了一個(gè) 2 層的 LSTM,這個(gè) BiLM 由一個(gè)前向傳播 LM 和一個(gè)反向傳播 LM。上下文相關(guān)的表征是通過預(yù)訓(xùn)練 BiLM、ELMo(語(yǔ)言模型嵌入)得來(lái)的,研究人員已證實(shí)這種表征可以為多種 NLP 任務(wù)帶來(lái)巨大的性能提升。
Akbik 等人通過字符層面上的 LM 訓(xùn)練的上下文相關(guān)字符串嵌入捕獲了單詞語(yǔ)義。然而,這兩種 PTM 往往被用作生成上下文相關(guān)詞嵌入的特征提取器,生成的嵌入會(huì)被用作下游任務(wù)的主要模型的輸入。BiLM 和 ELMo 的參數(shù)是固定的,主要模型中其它的參數(shù)也是從頭開始訓(xùn)練的。
ULMFiT(通用語(yǔ)言模型調(diào)優(yōu))試圖針對(duì)文本分類(TC)任務(wù)對(duì)預(yù)訓(xùn)練的 LM 進(jìn)行調(diào)優(yōu),并且在 6 個(gè)被廣為使用的 TC 數(shù)據(jù)集上取得了最先進(jìn)的性能。ULMFiT 包含 3 個(gè)步驟:(1)在通用領(lǐng)域的數(shù)據(jù)上訓(xùn)練 LM(2)在目標(biāo)數(shù)據(jù)上對(duì) LM 進(jìn)行調(diào)優(yōu)(3)在目標(biāo)任務(wù)上進(jìn)行調(diào)優(yōu)。ULMFiT 也研究了一些有效的調(diào)優(yōu)策略,包括分層調(diào)優(yōu)(discriminative fine-tuning)、斜三角學(xué)習(xí)率(slanted triangular learning rates )、逐層解凍(gradual unfreezing)。
最近,層數(shù)非常深的 PTM 已經(jīng)在學(xué)習(xí)通用語(yǔ)言表征的任務(wù)中,例如 OpenAI GPT(生成式預(yù)訓(xùn)練),BERT(基于 Transformer 的雙向編碼器表征)。除了 LM 之外,研究人員還提出了越來(lái)越多的自監(jiān)督任務(wù),從而使 PTM 能從大型文本語(yǔ)料庫(kù)中捕獲更多的知識(shí)。
自從 ULMFiT 和 BERT 問世以來(lái),調(diào)優(yōu)已經(jīng)成為了使 PTM 適應(yīng)下游任務(wù)的主流方法。
參考論文:Pre-trained Models for Natural Language Processing: A Survey,https://arxiv.org/pdf/2003.08271.pdf
預(yù)訓(xùn)練任務(wù)對(duì)于學(xué)習(xí)語(yǔ)言的通用表征是非常重要的。通常,這些預(yù)訓(xùn)練任務(wù)應(yīng)該是具有挑戰(zhàn)性的,并且有大量的訓(xùn)練數(shù)據(jù)。我們將預(yù)訓(xùn)練任務(wù)總結(jié)為三類:監(jiān)督學(xué)習(xí)、無(wú)監(jiān)督學(xué)習(xí)、自監(jiān)督學(xué)習(xí)。
1. 監(jiān)督學(xué)習(xí)(SL)是基于「輸入-輸出」對(duì)組成的訓(xùn)練數(shù)據(jù),學(xué)習(xí)將輸入映射到輸出的函數(shù)。
2. 無(wú)監(jiān)督學(xué)習(xí)(UL)是從未標(biāo)記的數(shù)據(jù)中發(fā)現(xiàn)一些內(nèi)在的知識(shí),如簇、密度(densities)、潛在表征。
3.自監(jiān)督學(xué)習(xí)(SSL)是監(jiān)督學(xué)習(xí)和無(wú)監(jiān)督學(xué)習(xí)的折中。SSL 的學(xué)習(xí)范式與監(jiān)督學(xué)習(xí)完全相同,但是訓(xùn)練數(shù)據(jù)的標(biāo)簽是自動(dòng)生成的。SSL 的關(guān)鍵思想是以某種方式根據(jù)輸入中的其它部分預(yù)測(cè)任一部分的輸入。例如,掩模語(yǔ)言模型(MLM)是一種自監(jiān)督任務(wù),它嘗試通過一個(gè)句子中其余的詞去預(yù)測(cè)被掩模屏蔽的詞。
1、語(yǔ)言建模(LM)
NLP 領(lǐng)域中最常見的無(wú)監(jiān)督任務(wù)是概率化的語(yǔ)言建模(LM),這是一個(gè)經(jīng)典的概率密度估計(jì)問題。雖然 LM 是一個(gè)通用概念,但在實(shí)踐中,LM通常特指自回歸 LM 或單向 LM。
給定文本序列 x_(1:T) = [x_1, x_2,...,x_T],其聯(lián)合概率 p(x1:T) 可被分解為:
其中 x_0 是表示句子開頭的特殊詞例。
條件概率 p(x_t|x_0:t?1) 可以通過給定語(yǔ)言上下文 x_0:t?1 的詞匯集合上的概率分布來(lái)建模。通過神經(jīng)編碼器 fenc(.) 對(duì)上下文 x_0:t?1 建模,得到的條件概率為:
其中,g_LM(.) 是預(yù)測(cè)層。
給定一個(gè)大型的語(yǔ)料庫(kù),我們可以通過最大似然估計(jì)訓(xùn)練整個(gè)網(wǎng)絡(luò)。
2、掩模語(yǔ)言建模
掩模語(yǔ)言建模(MLM)最早由 Taylor 提出,他將其作為一個(gè)完形填空任務(wù)。Devlin 等人將此任務(wù)改造為一種新的預(yù)訓(xùn)練任務(wù),從而克服標(biāo)準(zhǔn)單向 LM 的缺點(diǎn)。簡(jiǎn)而言之,MLM 首先對(duì)輸入語(yǔ)句中的一些詞例進(jìn)行掩模處理,然后訓(xùn)練模型通過其它詞例來(lái)預(yù)測(cè)被屏蔽的詞例。但是,由于掩模詞例在調(diào)優(yōu)階段并沒有出現(xiàn),這種預(yù)訓(xùn)練方法將造成預(yù)訓(xùn)練階段和調(diào)優(yōu)階段之間的不匹配。根據(jù)經(jīng)驗(yàn),Devlin 等人在 80% 的情況下用 [MASK],10% 的情況下用隨機(jī)的詞例,10% 的情況下用原始詞例來(lái)執(zhí)行掩模操作。
1)序列到序列的掩模語(yǔ)言建模(Seq2Seq MLM)
研究人員通常將 MLM 作為分類問題來(lái)求解。我們將掩模處理后的序列輸入給一個(gè)神經(jīng)編碼器,其輸出向量進(jìn)一步被進(jìn)送入一個(gè) softmax 分類器來(lái)預(yù)測(cè)被屏蔽的詞例?;蛘?,我們可以將編碼-解碼器架構(gòu)用于 MLM,此時(shí)我們將掩模處理后的序列送入編碼器,解碼器以自回歸的方式按照順序產(chǎn)生掩模處理后的詞例。我們將這種 MLM 稱為序列到序列的 MLM(Seq2Seq MLM),該任務(wù)已被用于 MASS 和 T5。Seq2Seq MLM 有助于 Seq2Seq類的下游任務(wù)(例如問答、摘要和機(jī)器翻譯)。
2)增強(qiáng)的掩模語(yǔ)言建模(E-MLM)
目前,有多個(gè)研究提出了不同的 MLM 的增強(qiáng)版本,從而進(jìn)一步改進(jìn) BERT。RoBERTa 并沒有使用靜態(tài)掩模,而是通過動(dòng)態(tài)掩模改進(jìn)了 BERT。
UniLM 將掩模預(yù)測(cè)任務(wù)擴(kuò)展到三類的語(yǔ)言建模任務(wù)上:?jiǎn)蜗颉㈦p向、序列到序列預(yù)測(cè)。XLM 在平行的雙語(yǔ)句子對(duì)的串聯(lián)上執(zhí)行 MLM,這杯稱為翻譯語(yǔ)言建模(TLM)。SpanBERT 用隨機(jī)連續(xù)字掩模(Random Contiguous Words Masking)和跨度邊界目標(biāo)(Span Boundary Objective,SBO)代替 MLM,將結(jié)構(gòu)信息集成到預(yù)訓(xùn)練中,這要求系統(tǒng)基于跨度邊界來(lái)預(yù)測(cè)經(jīng)過了掩模處理的跨度區(qū)間中的內(nèi)容。此外,StructBERT 還引入了跨度順序恢復(fù)任務(wù)進(jìn)一步引入語(yǔ)言結(jié)構(gòu)。
另一種豐富 MLM 的方式是引入外部知識(shí)。
3、排列語(yǔ)言模型 (PLM)
盡管 MLM 任務(wù)在預(yù)訓(xùn)練中被廣泛使用,但 Yang 等人認(rèn)為,當(dāng)模型被用于下游任務(wù)時(shí),MLM 的預(yù)訓(xùn)練過程中使用的一些特殊詞例(如[MASK])并不存在。這導(dǎo)致了預(yù)訓(xùn)練和調(diào)優(yōu)階段之間存在差異性。為了克服這個(gè)問題,研究人員提出用 PLM 作為預(yù)訓(xùn)練目標(biāo)來(lái)替代 MLM。簡(jiǎn)而言之,PLM 是一種在輸入序列的隨機(jī)排列上進(jìn)行的語(yǔ)言建模任務(wù)。每種排列(permutation)是從所有可能的排列中隨機(jī)抽取得來(lái)的。然后,我們將序列的排列中的一些詞例選取為目標(biāo),并訓(xùn)練模型根據(jù)其它的詞例以及目標(biāo)的自然位置,來(lái)預(yù)測(cè)目標(biāo)詞例。注意,這種排列并不影響序列的自然位置,只定義詞例預(yù)測(cè)的順序。實(shí)際上,由于收斂較慢,我們只能預(yù)測(cè)排列后的序列中的最后幾個(gè)詞例。針對(duì)面向目標(biāo)的表征,研究人員還引入了雙流自注意力機(jī)制。
4、去噪自編碼器(DAE)
DAE 接收部分被損壞的輸入,旨在恢復(fù)出原始的無(wú)損輸入。在 NLP 領(lǐng)域中,研究人員使用序列到序列模型(如標(biāo)準(zhǔn)的 Transformer)來(lái)重建原始文本。損壞文本的方式包含:
1)詞例屏蔽(token masking):從輸入中隨機(jī)采樣詞例并用 [MASK] 元素替換它們。
2)詞例刪除:從輸入中隨機(jī)刪除詞例。與詞例屏蔽的不同之處在于,模型需要確定刪除后的輸入的位置。
3)文本填充:類似于 SpanBERT ,對(duì)一些文本跨度區(qū)間進(jìn)行采樣,將其替換為一個(gè) [MASK]。每個(gè)跨度區(qū)間的長(zhǎng)度服從泊松分布(λ= 3)。模型需要預(yù)測(cè)在一個(gè)跨度區(qū)間中刪除了多少個(gè)詞例。
4)句子排列:根據(jù)句號(hào)將一個(gè)文檔互粉成若干個(gè)句子,并將這些句子按照隨機(jī)順序排列。
5)文檔旋轉(zhuǎn):隨機(jī)均勻地選擇一個(gè)詞例,并旋轉(zhuǎn)文檔,使其以該token開始。模型需要識(shí)別文檔的實(shí)際開始位置。
5、對(duì)比學(xué)習(xí)(CTL)
對(duì)比學(xué)習(xí)假設(shè)一些觀測(cè)到的文本對(duì)之間的語(yǔ)義相似度要高于隨機(jī)采樣得到的文本對(duì)。通過最小化下面的目標(biāo)函數(shù)來(lái)學(xué)習(xí)文本對(duì) (x, y) 的得分函數(shù) s(x, y):
其中 (x, y+) 代表相似的文本對(duì),y- 可能與 x 不相似。y+ 和 y- 通常被稱為正樣本和負(fù)樣本。得分函數(shù) s(x, y) 通常由一個(gè)可學(xué)習(xí)的神經(jīng)編碼器以兩種方式計(jì)算:
或
CTL 背后的指導(dǎo)思想是「通過比較學(xué)習(xí)」。與 LM 相比,CTL 的計(jì)算復(fù)雜度往往更低,因此對(duì)于 PTM 來(lái)說是另一種理想的訓(xùn)練標(biāo)準(zhǔn)。
近年來(lái),研究人員提出的 CTL 任務(wù)包括:Deep InfoMax(DIM)、替換詞例探測(cè)(RTD)、CBOW-NS、ELECTRA、后續(xù)句子預(yù)測(cè)(NSP)、據(jù)此順序預(yù)測(cè)(SOP)等。
除了上述任務(wù),研究人員還設(shè)計(jì)了許多其它的輔助預(yù)訓(xùn)練任務(wù),它們被用于引入事實(shí)知、提升在跨語(yǔ)言任務(wù)上的性能、多模態(tài)應(yīng)用,或其它的特定任務(wù)。
參考論文:Pre-trained Models for Natural Language Processing: A Survey,https://arxiv.org/pdf/2003.08271.pdf
通用語(yǔ)言理解評(píng)價(jià)(GLUE)基準(zhǔn)是 9 個(gè)自然語(yǔ)言理解任務(wù)的集合,包括單句分類任務(wù)(CoLA 和 SST-2)、成對(duì)文本分類任務(wù)(MNLI、RTE、WNLI、QQP 和 MRPC)、文本相似度任務(wù)(STSB)和相關(guān)性排序任務(wù)(QNLI)。GLUE 對(duì)比基準(zhǔn)被設(shè)計(jì)用來(lái)評(píng)估模型的魯棒性和泛化能力,它不為測(cè)試集提供標(biāo)簽,而是設(shè)置了一種評(píng)估器。
一些具有代表性的模型在 GLUE 對(duì)比基準(zhǔn)上的性能如下:
在上圖中,Transformer Enc 和 Transformer Dec 分別代表標(biāo)準(zhǔn) Transformer 架構(gòu)的編碼器和解碼器。它們的區(qū)別在于解碼器部分使用經(jīng)過三角矩陣掩模處理的自注意力,從而防止詞例注意未來(lái)出現(xiàn)的(右側(cè)的)位置上的詞例。Transformer 指標(biāo)準(zhǔn)的編碼器-解碼器架構(gòu)。
GLUE 是在 9 個(gè) GLUE 對(duì)比基準(zhǔn)上的平均得分。
「*」代表不包含 WNLI 任務(wù)。
參考論文:Exploring the Limits of Transfer Learning with a Unified Text-to-Text Transformer,https://arxiv.org/pdf/1910.10683.pdf
這篇論文指出,當(dāng)數(shù)據(jù)量達(dá)到一定規(guī)模時(shí),數(shù)據(jù)的質(zhì)量比數(shù)據(jù)的數(shù)量對(duì)于模型性能的提升更加重要。如下圖所示,未過濾的 C4 數(shù)據(jù)集規(guī)模達(dá)到了 6.1 TB,過濾后的 C4 數(shù)據(jù)集規(guī)模則為 745GB。然而,在過濾后的 C4 數(shù)據(jù)集上,預(yù)訓(xùn)練模型的各項(xiàng)指標(biāo)均優(yōu)于未過濾的情況。
參考論文:Byte Pair Encoding is Suboptimal for Language Model Pretraining,https://arxiv.org/pdf/2004.03720.pdf
論文指出,一種新的 Unigram 語(yǔ)言建模(https://www.aclweb.org/anthology/P18-1007.pdf)方法比BPE(字節(jié)對(duì)編碼)和 WordPiece 方法更好。
Unigram LM 方法可以恢復(fù)出更好地與底層詞法相匹配的子詞單元,并且避免 BPE 詞干提取的貪心構(gòu)造過程中的一些缺點(diǎn)。作者還對(duì)比了使用 Unigram、BPE 等分詞方法的相同的 Transformer 掩模語(yǔ)言模型的調(diào)優(yōu)性能。
他們發(fā)現(xiàn),在下游任務(wù)中,Unigram LM 分詞方法的性能始終優(yōu)于 BPE。在各種調(diào)優(yōu)任務(wù)上的實(shí)驗(yàn)結(jié)果如下圖所示。
目前最佳的方法是 ELECTRA,該方法使用一個(gè)生成器替換輸入序列中的詞例,然后使用一個(gè)判別器預(yù)測(cè)哪個(gè)詞例被替換了。
參考論文:ELECTRA: PRE-TRAINING TEXT ENCODERS AS DISCRIMINATORS RATHER THAN GENERATORS,https://arxiv.org/pdf/2003.10555.pdf
在論文中,作者在 GLUE 自然語(yǔ)言理解對(duì)比基準(zhǔn)和 SQuAD 問答對(duì)比基準(zhǔn)上對(duì)各種替換詞例探測(cè)(RTD)任務(wù)和掩模語(yǔ)言模型(MLM)任務(wù)進(jìn)行了實(shí)驗(yàn)分析。實(shí)驗(yàn)結(jié)果表明,在給定相同的模型規(guī)模的情況下,ELECTRA 的性能始終優(yōu)于基于 MLM 的方法(例如,BERT、XLNet)。
針對(duì)任務(wù)的目標(biāo)序列長(zhǎng)度,論文「Exploring the Limits of Transfer Learning with a Unified Text-to-Text Transformer」(https://arxiv.org/pdf/1910.10683.pdf)進(jìn)一步指出,將丟棄的跨度區(qū)間長(zhǎng)度選擇為 3 是較為合適的。具體而言,作者將平均跨度區(qū)間設(shè)置為 3,原始序列的丟棄率設(shè)置為 15%。他們發(fā)現(xiàn)這種目標(biāo)可以得到較好的性能,此時(shí)由于目標(biāo)序列長(zhǎng)度較短使得計(jì)算效率較高。
參考論文:Exploring the Limits of Transfer Learning with a Unified Text-to-Text Transformer,https://arxiv.org/pdf/1910.10683.pdf
該論文指出,并不一定需要進(jìn)行逐層解凍。
作者發(fā)現(xiàn),在所有的對(duì)比基準(zhǔn)任務(wù)上,盡管逐層解凍確實(shí)在調(diào)優(yōu)階段帶來(lái)了一定的速度提升,但是它會(huì)造成少許的性能下降。
下圖為使用不同的模型參數(shù)子集的情況下,不同調(diào)優(yōu)方法的對(duì)比。對(duì)于適配器層來(lái)說,d 代表適配器的內(nèi)部維度。
參考論文:Exploring the Limits of Transfer Learning with a Unified Text-to-Text Transformer,https://arxiv.org/pdf/1910.10683.pdf
這篇論文中,作者建議我們同時(shí)增大模型參數(shù)的規(guī)模和訓(xùn)練步數(shù)。
下圖為不同的擴(kuò)展基線模型的方法的對(duì)比。除了集成調(diào)優(yōu)模型之外, 所有的方法都以 4 倍的計(jì)算量為對(duì)比基線?!窼ize」代表模型中的參數(shù)量,「Training time」代表預(yù)訓(xùn)練和調(diào)優(yōu)階段使用的步數(shù)。
一般來(lái)說,相較于僅僅增大訓(xùn)練訓(xùn)練時(shí)間或批處理規(guī)模來(lái)說,同時(shí)增大模型參數(shù)的規(guī)模會(huì)得到顯著的性能提升。
眾所周知,多頭注意力機(jī)制 (Multi-Head Self-Attention) 的計(jì)算開銷很大。在處理長(zhǎng)度為 n 的序列時(shí),其
的時(shí)間復(fù)雜度會(huì)使得原始的 Transformer 模型難以處理長(zhǎng)文本序列。
目前,較為流行的做法是使用 Transformer-XL(將先前「段落」的隱藏狀態(tài)作為循環(huán)段落層的輸入,并且使用使這種策略容易實(shí)現(xiàn)的相對(duì)位置編碼方案)或 Longformer(詳見雷鋒網(wǎng)AI科技評(píng)論文章:這六大方法,如何讓 Transformer 輕松應(yīng)對(duì)高難度長(zhǎng)文本序列?)
由于自注意力機(jī)制在運(yùn)算的過程中每?jī)蓚€(gè)詞例之間將形成一對(duì)注意力,此時(shí)時(shí)間復(fù)雜度的增長(zhǎng)速率是
的。
近年來(lái),許多研究工作都著眼于提升 Transformer 在長(zhǎng)序列上的計(jì)算效率。它們主要關(guān)注自回歸的語(yǔ)言建模,然而在遷移學(xué)習(xí)環(huán)境中將長(zhǎng)文本 Transformer 應(yīng)用于文本級(jí)的 NLP 任務(wù)仍然是一個(gè)急需解決的問題。
Longformer 使用了一種計(jì)算時(shí)間可以線性地隨著序列長(zhǎng)度增長(zhǎng)而增長(zhǎng)的注意力機(jī)制(窗口化的局部上下文的自注意力和由終端任務(wù)激活的全局注意力)。
Longformer 在語(yǔ)義搜索任務(wù)上,有很好的編碼長(zhǎng)文本的能力。下圖展示了目前該領(lǐng)域的研究進(jìn)展。
參考論文:Attention is not Explanation,https://www.aclweb.org/anthology/N19-1357.pdf
該論文認(rèn)為,盡管研究人員往往聲稱注意力機(jī)制為模型提供了透明度(使用注意力機(jī)制的模型給出了對(duì)于輸入單元的注意力分布),但是注意力權(quán)重和模型的輸出之間存在怎樣的關(guān)系還不明確。
作者在各種各樣的 NLP 上進(jìn)行了大量的實(shí)驗(yàn),發(fā)現(xiàn)注意力機(jī)制并不能恰當(dāng)?shù)嘏c輸出相關(guān)聯(lián)。例如,學(xué)習(xí)到的注意力權(quán)重往往與基于梯度的特征重要性度量無(wú)關(guān),我們可以發(fā)現(xiàn)有些差異非常大的注意力分布可以產(chǎn)生相同的預(yù)測(cè)結(jié)果。因此我們不能認(rèn)為模型是由于注意力機(jī)制才取得了優(yōu)秀的性能。
答案是:不會(huì)。
在論文「Revealing the Dark Secrets of BERT」中,作者使用了一部分 GLUE 任務(wù),以及一些手動(dòng)收集的特征,提出了一些研究方法并且對(duì) BERT 的注意力頭編碼的信息進(jìn)行了定量和定性的分析。
論文地址:https://arxiv.org/pdf/1908.08593.pdf
實(shí)驗(yàn)結(jié)果表明,不同的注意力頭會(huì)重復(fù)一些特定的注意力模式,這說明模型存在過參數(shù)化的現(xiàn)象。盡管不同的注意力頭會(huì)使用相同的注意力模式,但是他們?cè)诓煌娜蝿?wù)上對(duì)性能有不同的影響。作者指出,手動(dòng)去掉某些注意力頭的注意力,一般會(huì)使得條右后的 BERT 模型獲得性能的提升。
具體而言,由于 BERT 在很大程度上依賴于學(xué)習(xí)到的注意力權(quán)重,作者將去除一個(gè)注意力頭定義為將某個(gè)注意力頭對(duì)于輸入句子中的每個(gè)詞例的注意力值修改為一個(gè)常量 a=1/L(其中 L 是句子的長(zhǎng)度)。因此,每個(gè)詞例都會(huì)得到相同的注意力,這樣做可以有效地去除注意力模式,同時(shí)保留原始模型的信息流。請(qǐng)注意,通過使用這種框架,作者可以去除任意數(shù)目的注意力頭(從去除每個(gè)模型中的單個(gè)注意力頭到整個(gè)一層注意力,或者多層注意力)。
實(shí)驗(yàn)結(jié)果表明,某些注意力頭對(duì) BERT 的整體表現(xiàn)有負(fù)面的影響,這一趨勢(shì)適用于所有選擇到的任務(wù)。令人意想不到的是,去除一些注意力頭并沒有如人們預(yù)期的那樣導(dǎo)致準(zhǔn)確率的下降,而是提升了性能。如下圖所示,這種影響因任務(wù)和數(shù)據(jù)集而異。
答案是:不會(huì)。
在論文「Revealing the Dark Secrets of BERT」中,作者指出,去掉整個(gè)一層的注意力(即給頂層中的 12 個(gè)注意力頭),也會(huì)提升模型的性能。如下圖所示,當(dāng)去除不同的層時(shí),在識(shí)別文本蘊(yùn)含(RTE) 的任務(wù)中,去掉第一層注意力會(huì)取得極其顯著的性能提升(3.2%)。
論文地址:https://arxiv.org/pdf/1908.08593.pdf
不一定會(huì)。
在論文「Revealing the Dark Secrets of BERT」中,為了評(píng)價(jià)預(yù)訓(xùn)練 BERT 對(duì)于整體性能的影響,作者考慮了兩種權(quán)值初始化方式:預(yù)訓(xùn)練 BERT 權(quán)值,以及從正態(tài)分布中隨機(jī)采樣得到的權(quán)值。
論文地址:https://arxiv.org/pdf/1908.08593.pdf
如下表所示,對(duì)使用正太分布中隨機(jī)采樣得到的權(quán)值初始化的 BERT 進(jìn)行調(diào)優(yōu),其性能得分始終低于使用預(yù)訓(xùn)練權(quán)值初始化的 BERT。然而,在某些任務(wù)(如 MRPC )上,性能的下降并不太顯著。
并不一定。
模型壓縮是一種收縮訓(xùn)練好的神經(jīng)網(wǎng)絡(luò)的技術(shù)。 壓縮后的模型通常與原始模型相似,而它只使用一小部分計(jì)算資源。 然而,在許多應(yīng)用中的瓶頸是在壓縮之前訓(xùn)練原來(lái)的大型神經(jīng)網(wǎng)絡(luò)。
博文「Do We Really Need Model Compression?」指出,模型壓縮技術(shù)說明了過參數(shù)化的模型趨向于收斂到哪些類型的解上,從而提示我們?nèi)绾斡?xùn)練適當(dāng)參數(shù)化的模型。目前有許多類型的模型壓縮方法,每一種都利用了訓(xùn)練好的神經(jīng)網(wǎng)絡(luò)中易于發(fā)現(xiàn)的不同類型的「樸素特性」:
許多權(quán)值接近于 0(剪枝)
權(quán)值矩陣是低秩的(權(quán)值分解)
權(quán)值可以被表征為少數(shù)幾個(gè)比特(量化)
網(wǎng)絡(luò)的層通常會(huì)學(xué)習(xí)到相似的函數(shù)(權(quán)值共享)
博文地址:http://mitchgordon.me/machine/learning/2020/01/13/do-we-really-need-model-compression.html
是的!可以。
參考論文:Thieves on Sesame Street! Model Extraction of BERT-based APIs,https://arxiv.org/abs/1910.12366
作者在這篇 ICLR2020 論文中展示了,在不使用任何真實(shí)輸入訓(xùn)練數(shù)據(jù)的情況下反向?qū)崿F(xiàn)出基于 BERT 的自然語(yǔ)言處理模型是可能的。 攻擊者向被攻擊的模型輸入了無(wú)意義的隨機(jī)采樣得到的詞序列,然后根據(jù)被攻擊模型預(yù)測(cè)的標(biāo)簽對(duì)他們自己的 BERT 進(jìn)行調(diào)優(yōu)。
該方法的有效性指出了:如果通過調(diào)優(yōu)訓(xùn)練公共托管的 NLP 推理 API,這些模型存在被反向?qū)崿F(xiàn)的風(fēng)險(xiǎn)。 惡意用戶可以通過隨機(jī)查詢向 API 發(fā)送垃圾信息,然后使用輸出重建模型的副本,從而發(fā)起模型提取攻擊。
知識(shí)蒸餾是一種壓縮技術(shù),它通過訓(xùn)練一個(gè)被稱為學(xué)生模型的小型模型來(lái)復(fù)現(xiàn)一個(gè)被稱為教師模型的大模型。在這里,教師模型可以是許多模型的集合,它們通常都被預(yù)訓(xùn)練好了。與模型壓縮不同,知識(shí)蒸餾技術(shù)通過一些優(yōu)化目標(biāo)根據(jù)一個(gè)固定的教師模型學(xué)習(xí)一個(gè)小型的學(xué)生模型,而壓縮技術(shù)旨在搜索一個(gè)更稀疏的模型架構(gòu)。
一般來(lái)說,知識(shí)蒸餾機(jī)制可以被分為三類:(1)從軟目標(biāo)概率(soft target probabilities)中蒸餾(2)從其它知識(shí)中蒸餾(3)蒸餾成其它的結(jié)構(gòu):
(1)從軟目標(biāo)概率(soft target probabilities)中蒸餾:Bucilua 等人指出,讓學(xué)生模型近似教師模型可以從教師模型向?qū)W生模型遷移知識(shí)。通常的方法是近似教師模型的 logit。DistilBERT 用教師模型的軟目標(biāo)概率作為蒸餾損失訓(xùn)練學(xué)生模型:
其中 t_i 和 s_i 分別是教師模型和學(xué)生模型估計(jì)出的概率。
從軟目標(biāo)概率中蒸餾出的知識(shí)也可以被用于特定任務(wù)的模型中(如信息檢索和序列標(biāo)記)。
(2)從其他知識(shí)中提煉:從軟目標(biāo)概率中蒸餾模型將教師模型視為黑盒,只關(guān)注其輸出。此外,分解教師模型,正流出更多的知識(shí),可以提升學(xué)生模型的性能。
TinyBERT 使用嵌入輸出、隱藏狀態(tài),以及自注意力分布進(jìn)行層到層的蒸餾。MobileBERT 也使用軟目標(biāo)概率、隱藏狀態(tài),以及自注意力分布進(jìn)行層到層的蒸餾。MiniLM 從教師模型中正流出自注意力分布以及自注意力值關(guān)系。
此外,其它模型也通過許多不同的方法蒸餾知識(shí)。Sun 等人提出了一種「patient」教師-學(xué)生機(jī)制,Liu 等人利用知識(shí)蒸餾改進(jìn)了預(yù)訓(xùn)練的多任務(wù)深度神經(jīng)網(wǎng)絡(luò)。
(3)蒸餾成其他結(jié)構(gòu):一般來(lái)說,學(xué)生模型的結(jié)構(gòu)和教師模型是一樣的,只是學(xué)生網(wǎng)絡(luò)中層的規(guī)模更小,隱層的規(guī)模也更小。然而,減少參數(shù),以及將模型從 Transformer 簡(jiǎn)化為 RNN 或 CNN 結(jié)構(gòu),可以降低計(jì)算復(fù)雜度。
博文「Speeding Up Transformer Training and Inference By Increasing Model Size」指出,較大的模型可以更快地獲得更高的準(zhǔn)確率。對(duì)于預(yù)訓(xùn)練 RoBERTa,增加模型寬度和 / 或深度都會(huì)導(dǎo)致訓(xùn)練地更快。對(duì)于機(jī)器翻譯任務(wù),更寬模型比更深的模型更有效。
博文地址:https://bair.berkeley.edu/blog/2020/03/05/compress/
參考論文:TINYBERT: DISTILLING BERT FOR NATURAL LANGUAGE UNDERSTANDING,https://arxiv.org/pdf/1909.10351.pdf
論文中,作者為了加速模型推理并且提升模型在資源有限的設(shè)備上的執(zhí)行效率,提出了一種 Transformer 蒸餾方法。通過使用這種方法,大量的「教師」BERT 中被編碼的知識(shí)可以被很好地遷移到小型的「學(xué)生」網(wǎng)絡(luò) TinyBERT 中。
此外,作者還引入了一種新的兩階段學(xué)習(xí)框架:在預(yù)訓(xùn)練和特定任務(wù)學(xué)習(xí)階段都執(zhí)行 Transformer 蒸餾。這種框架保證了 TinyBERT 可以同時(shí)捕獲 BERT中通用領(lǐng)域中和特定任務(wù)的知識(shí)。
在論文「Scaling Laws for Neural Language Models」中,作者提出了一種簡(jiǎn)單高效的方法將現(xiàn)有的句子嵌入模型擴(kuò)展到新的語(yǔ)言上,從而為不同的語(yǔ)言生成相似的句子嵌入。作者使用原始的單語(yǔ)言模型為源語(yǔ)言生成句子嵌入,然后根據(jù)翻譯后的句子訓(xùn)練了一個(gè)新的系統(tǒng)來(lái)模仿原始模型。
論文地址:https://arxiv.org/pdf/2004.09813v1.pdf
這個(gè)問題很難回答!
論文「Scaling Laws for Neural Language Models」對(duì)這個(gè)問題進(jìn)行了說明,它向我們揭示了以下幾種關(guān)系:
測(cè)試損失 Vs 計(jì)算開銷
測(cè)試損失 Vs 數(shù)據(jù)集規(guī)模
測(cè)試損失 Vs 參數(shù)規(guī)模
想要設(shè)計(jì)并訓(xùn)練一個(gè)模型,我們首先要決定其架構(gòu),然后決定參數(shù)的數(shù)目。接著,你才能夠計(jì)算損失。最后,選擇數(shù)據(jù)的規(guī)模以及需要的計(jì)算開銷。 雷鋒網(wǎng)雷鋒網(wǎng)雷鋒網(wǎng)
論文地址:https://arxiv.org/pdf/2001.08361.pdf
雷峰網(wǎng)原創(chuàng)文章,未經(jīng)授權(quán)禁止轉(zhuǎn)載。詳情見轉(zhuǎn)載須知。