更深的編碼器+更淺的解碼器=更快的自迴歸模型

論文標題:

Deep Encoder, Shallow Decoder: Reevaluating the Speed-Quality Tradeoff in Machine Translation

論文作者:

Jungo Kasai, Nikolaos Pappas, Hao Peng, James Cross, Noah A. Smith

論文鏈接:

https://arxiv.org/pdf/2006.10369.pdf


自迴歸模型一般認爲在推理時效率比非自迴歸模型低得多,但是,簡單改進自迴歸模型編碼器和解碼器的深度可以使其有更高的“效果-效率”平衡。

本文探究了讓Transformer模型的編碼器變深,讓解碼器變淺可以提高推理時的效率,並且絲毫不影響效果。並且,不同的衡量效率的標準也會有所影響。

自迴歸模型與非自迴歸模型的效率

自迴歸模型指在生成文本時,詞是一個接一個生成的,所以要生成長度爲N的文本,需要經過模型解碼器N次。

而非自迴歸模型則可以一次生成多個甚至所有詞,這就減少了經過解碼器的次數,從而提高生成的效率。

但是,由於非自迴歸模型缺乏解碼端的依賴性建模,所以一般來說,它們的效果要弱於自迴歸模型。

過去很多研究都關注設計更好的非自迴歸模型以提高效果,但鮮有工作研究如何提高自迴歸模型在推理時的效率。

無論是自迴歸模型還是非自迴歸模型,在推理時的效率大都來自於解碼端:經過編碼器的次數越多,生成同樣一句話,效率就越低。

從另一個方面看,如果解碼器更小(即層數更少),那麼即使是自迴歸模型,是不是也可以顯著提高生成效率呢?

這就是本文要回答的問題:當模型解碼器變淺、編碼器變深時,模型是否還能在保持原來效果的前提下,提升生成效率。這可以用下面的圖表示:

上圖是解碼器只有一層時的圖示,可以看到,由於Transformer模型的解碼器每一層都是由三個部分組成,所以多層解碼器很顯然會降低生成速度。

本文探究了模型效果、效率隨編碼器和解碼器層數變化的情況。

結果發現,對自迴歸模型而言,令編碼器更深、解碼器更淺,可以顯著提高生成效率且絲毫不影響最終的效果;但對非迴歸模型而言,更深的解碼器則是更好效果的前提。

這個發現啓發我們進一步思考自迴歸模型和非自迴歸模型如何保持“效果-效率”上的平衡。

計算延時(Latency)的兩種方法

在開始實驗之前,還需要指出當前比較模型“效率”的方法,即計算延時(Latency)——從數據輸入到數據輸出經歷的時間。

然而,當前也有兩種方法計算延時,記爲S1和S(max)。S1計算的是生成一個句子所用的平均時間,而S(max)計算的是內存一次所能容納的最大量句子的平均時間。

對不同的模型而言,這兩個標準所得的結果會所有差異,和會在實驗部分得到展現。

下面先來從理論上分析自迴歸和非自迴歸模型的複雜度。這裏非自迴歸模型採用迭代修改式。

約定N是句子長度(源句子和目標句子都是N),T是非自迴歸模型的迭代次數,且T < N,E是編碼器的層數,D是解碼器的層數。下表是不同模型的複雜度:

直接看並行化(w/ parallelization)一列。可以看到,自迴歸(AT)解碼器仍然需要平方級的複雜度,而非自迴歸模型(NAT)解碼器的複雜度僅是O(NT),低於N^2。

在可以並行化的條件下,S1更多地被並行化支配。那麼在有D層解碼器的情況下,非自迴歸模型就比自迴歸模型有顯著的複雜度優勢(前者是NDT,後者是NND)。

如果二者都只有一層解碼器,即D=1,那麼二者的複雜度差異就會縮小(前者是NT,後者是NN)。

而S(max)更多和Total Complexity相關,這時候,每個詞,無論是自迴歸還是非自迴歸,都要和已經生成的詞進行計算,非自迴歸的優勢就無法體現。

實驗

下面我們重點看一下實驗部分,探究解碼器深度對兩種模型效果、效率以及它們之間平衡的影響。

自迴歸模型是Transoformer-Base,非自迴歸模型有CMLM、DisCo。

數據集有WMT14 EN-DE (4.5M pairs), WMT16 EN-RO (610K), WMT17 EN-ZH (20M)和WMT14 ENFR (36M, EN→FR only),而計算效率則用S1和S(max)兩種。

首先來看這幾個模型在不同編碼器深度(E)和解碼器深度(D)上的效果和效率,如下圖所示:

從圖(A)和圖(B)來看,加深自迴歸模型編碼器、變淺其解碼器可以在不損失效果的情況下獲得顯著的加速(2x-3x),但是如果不加深編碼器只變淺解碼器會讓效果變差(圖中6-1)。

另一方面,對非自迴歸模型而言,加深編碼器變淺解碼器也會提高效率,但是同時也會顯著降低效果。

從圖(C)來看,S(max)的效率評價指標對自迴歸模型更有利,但是加深編碼器變淺解碼器後的趨勢變化和前兩個圖是相同的。

下表是詳細的結果數據,可以看到,AT Deep-Shallow在效果上和AT沒有差別,但是在S1上速度提高了3倍,在S(max)上提高了近2倍。即使是在S1上,改進後的AT模型已經很接近非自迴歸模型CMLM了。

那麼在同樣的latency下,進一步增大非自迴歸模型能否超過AT模型的效果呢?答案是否定的,如下圖所示。

下圖是以AT 12-1的Latency爲基準,考察不同非自迴歸模型不同深度的編碼器的效果(儘可能多地加深解碼器以達到Latency約束)。

可以看到,加深編碼器可以提高非自迴歸模型的效果,但是始終不能達到AT 12-1的結果,這也說明了當前非自迴歸模型在本質上和自迴歸模型的差異。

另一個問題是,在E+D爲常數的情況下,怎樣分配E和D才能使得效果最好。結果如下圖所示。

對自迴歸模型而言,當編碼器大於4層的時候效果就已經很好了,而對非自迴歸模型而言,E和D保持平衡可以取得最好的結果。

最後來看看批量大小和效率之間的關係,結果如下圖所示。可以看到,當一個batch中句子越多的時候,AT 12-1相比非自迴歸模型就更有優勢,這在我們的第二節已經分析過了,這是因爲Batch越大,模型複雜度就和total complexity越接近,因而非自迴歸模型就相對更慢。

小結

本文詳細探究了自迴歸模型、非自迴歸模型不同深度的編碼器和解碼器對最終效果和效率的影響,發現僅用一層解碼器和更深的編碼器就可以大大提高自迴歸模型的效率,並且保持效果不變。

同時,本文還比較了兩種計算Latency方法對不同模型的影響。如何分配層數、如何更科學地計算延時,都需要進一步討論和研究。

????

現在,在「知乎」也能找到我們了

進入知乎首頁搜索「PaperWeekly」

點擊「關注」訂閱我們的專欄吧

關於PaperWeekly

PaperWeekly 是一個推薦、解讀、討論、報道人工智能前沿論文成果的學術平臺。如果你研究或從事 AI 領域,歡迎在公衆號後臺點擊「交流羣」,小助手將把你帶入 PaperWeekly 的交流羣裏。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章