Green Deep Learning:NLP在大模型之外的另一種思路!

語言: CN / TW / HK

作者 | 許晶晶 前位元組跳動 研究員

整理 | DataFunTalk

過去的一兩年內,關於預訓練模型的資訊會頻繁的出現在各種各樣的公共論壇及公眾號上, 從最開始的谷歌推出來的各種非常大的模型到現在每個公司都開始去做自己的預訓練模型。

這些新聞都已經不足為奇,然而這些大模型背後都有一個共同的特點就是 計算量爆炸 ,所以 Green Deep Learning是在大時代背景下被提出的一個全新的方向

今天的介紹會圍繞下面三點展開:

  • 綠色深度學習是什麼

  • 綠色的神經網路結構搜尋

  • 綠色詞表學習

01

綠色深度學習是什麼

首先給大家介紹下綠色深度學習。

1. 綠色深度學習的目的

讓我們的AI模型在得到新的或者更好的結果的情況下,可以使環境更加友好,可以讓使用的計算量更低,或者是在不增加計算量的情況下得到更好的結果。 它提出讓大家去探索除了增加資料和增加模型以外的另一種可能。

2. 隨之而來的好處

對於各大工業界來說,以前在線上運用的時候可能需要有一些規定的指標,而模型小了之後,自然而然一些好結果可以上線。 隨著時代的發展,NLP的Research越來越需要算力,很多關注度比較多的論文都是一些大公司貢獻出來的,儘管這些公司憑藉著自己的算力來推動整個業界的發展是非常好的,但是green NLP可以鼓勵更多的人來參與到research中,這樣對整個NLP的發展會有一些良性的反饋。

02

綠色的神經網路結 構搜尋

神經網路結構搜尋這個想法是指在給定一個任務的情況下,利用算力來代替人力來設計出一些更好的網路結構模型。

1. 傳統的NAS

為了檢測模型的效果,很多傳統的NAS需要在下游的任務上對結構進行訓練驗證,整個過程十分麻煩,而且如果資料集較大的話,那麼驗證模型是否有效的計算量也是很大的。

2. Training-free Green NAS

① 想法與貢獻

在不需要下任務或儘可能少任務的情況下去訓練和評測模型結構。

② MGM Kernel

理解:把所有的網路模型結構拉成一個向量,那麼每一個樣本的梯度也是這樣的一個向量,不同樣本之間的向量乘起來就可以組成一個矩陣,那麼這個矩陣任意的一個元素就相當於第i個數據和第j個數據之間關聯的一個點集。核被廣泛用到了算模型結構,收斂性,還有一些泛化性的分析上。

③ KNAS

  • Step 1: Architectures with top-k MGM kernels

  • Step 2: Evaluate them

因為存在著一個正相關關係,所以不是最大的就一定好。 大概的流程是首先取一個tradeoff並將其top-K MGM 核取出,然後再下達任務去進行訓練。

接下來把我們的方案與之前的方案進行對比。基於梯度的方法是之前常用的一個方法,利用梯度去進行搜尋從而讓模型去學習一個策略,優點是效果比較快,但效果不是很穩定。還有一些傳統的方法,優點是效果很好,但是卻不一定能夠做得很快。而我們的方法相當於是一個折衷,優點是獲得結果的速度很快並且在一些基準資料集上驗證了其效果。它的實際效果如上圖所示,藍色的柱狀代表正確度,而紅色的柱狀代表加速比,最後一列是最終結果。很明顯,我們方法結果的正確度和其他的已經基本持平,這是一個非常有競爭力的結果,與此同時加速比也是非常顯著的,所以這個資料集上的表現十分出色。

為了分析泛化性,我們在一些文字分析類的任務,比如說MRPC或者RTE上做了驗證,結果很不錯,上圖也很明顯的體現出了比Roberta-large更好的效果。

03

綠色詞表學習

無論是業務還者研究,比如情感分析、機器翻譯,所有程式碼基本上都離不開詞表。

1. 評價詞表

什麼會影響一個詞表的好壞,這裡就主要考慮了兩個因素,一個是熵 (Information Per Char(IPC)), 一個是詞表大小。

① 詞表大小

詞表大小的因素是顯而易見的,詞表大意味著敘述單詞多,同時也會影響模型的引數量。

② 熵(InformationPer Char(IPC))

越小越好,因為semantic meanings越少,也就意味著一詞多義的現象越少,所以模型會更容易去區分和理解。

③ 最大邊際收益

其衡量的是每一個單位的成本的增長能夠帶來的最大收益。如果把詞表大小看成成本,把IPC看成收益,這樣就可以自然而然的找到一個最大收益,這即是最終的目的。

將MUI指標和下游的MT的表現做一個簡單的聯絡,隨後通過BPE的方式可以得到很多的詞表,根據最大邊際收益的演算法算出每個詞表的分數,可以發現在所有的引數都一定的情況下,MUI和BLEU有一定的相關關係。但是值得強調的一點是這個關係不是一個很強的相關關係,因為很多因素可能影響這個結果比如模型架構和模型引數量等等。

2. 尋找最優詞表

有了最大邊際收益之後,自然而然尋找最優詞表的問題就轉化成一個離散優化的問題,相當於從離散空間裡找到分數最大的詞表。OT就是解決方法之一。

① Optimal Transport

在第二次世界大戰中,在前線死亡了很多士兵,所以需要新的士兵支援,然而支援的士兵在不同的後方且對不同的前線有著不同的距離,與此同時不同的前線對士兵有不同的需求,而optimal transport是總的轉移代價最低的一個方案。

將訓練集裡面的character看成是一個士兵比如a,c,t,數它們的在訓練集出現的頻率就可以得到它們的數目,隨後將所有的tokens看成前線,即頻率就是它們的需求,比如cat,可能需要60個a,60個c,60個t來組合成它,不同的token都有自己的需求,但不是所有的token都可以實現自己的需求,因為character的個數是有限的,如下圖。

② Experiments

首先將VOLT在Bilingual MT上做了一個實驗,可以看到詞表大小減少明顯,同時BLEU基本上和之前持平。

在Multilingual MT上,藍色的柱狀是流行的baseline,紅色的是這裡用到的一個baseline,可以看到它的效果是比之前的效果更好。

04

精彩問答

Q:中文詞表優化有沒有比較好的方法?比如說VOLT這項技術的話,怎麼在中文應用以及在工業界落地,有沒有更好的一些經驗?

A:VOLT其實沒有針對任何一個詞表,它是可以用到中文的處理的。中文最傳統的詞表可能就是去切一下,現在詞級別的,比如sentencepiece把整個句子看成是一個東西,然後用subword去切,目前這種方式比較普遍。所以如果只是用的話,目前sentencepiece那一套是一個很不錯的詞條解決方案。VOLT的貢獻是在選擇中文詞表的時候,可以告訴你到底選多少詞,以及選多大的詞,很有意思的一點是VOLT搜尋出來的詞表大小,如果用BPE sentencepiece那一套的話,其實也可以得到一個還不錯的效果,所以從這種層面上來講,VOLT也可以看作是一個size尋找的工具。與此同時,VOLT在中英翻譯上做實驗的效果也還是不錯的。

一起交流

想和你一起學習進步!『 NewBeeNLP』 目前已經建立了多個不同方向交流群( 機器學習 / 深度學習 / 自然語言處理 / 搜尋推薦 / 圖網路 / 面試交流 /  等),名額有限,趕緊新增下方微信加入一起討論交流吧!(注意一定o要 備註資訊 才能通過)

-   END  -