技驚四座的BERT全靠數(shù)據(jù)集?大模型霸榜或許是學界的災難
作為 2018 年自然語言處理領域的新秀,BERT 是過去幾年自然語言處理(NLP)領域的集大成者,一經(jīng)出場就技驚四座,碾壓所有算法,刷新了 11 項 NLP 測試的最高紀錄,甚至有「超越人類」的表現(xiàn),它被認為是未來 NLP 研究和工業(yè)應用最為主流的語言模型之一。
然而最近臺灣國立成功大學的一篇論文卻給人們潑了冷水。這一研究認為,BERT 至少在 ARCT 任務上利用了不正常的統(tǒng)計線索。正是這些統(tǒng)計線索,BERT 才能獲得極好的效果,如果在不改變原數(shù)據(jù)的情況下去除不正常的線索,BERT 甚至不如隨機猜測。
此言一出,立即引發(fā)了機器學習社區(qū)的強烈反響,在研究社區(qū)中有人評價道:「我非常喜歡這篇論文,它用簡單有效的方式表明這些模型沒有被正確地『理解』,并且只使用了簡單的(錯誤的)統(tǒng)計線索。我認為大多數(shù)人(可能除了伊隆·馬斯克)都很清楚,這就是 BERT 模型所做的事情。然而,目前有關 BERT 在少量標簽情況下的改進版仍層出不窮?!?/span>
毫無疑問,BERT 的研究很有價值,但目前的一些基準測試可能已被證明并沒有效果。當我們看到 BERT「解決」了一些任務的消息時,看起來就像我們已經(jīng)解決了 NLP 問題,這些事件已經(jīng)形成了浮夸的風氣,值得我們擔憂。
首先,是時候重新審視一下當今的 NLP Benchmark 現(xiàn)狀了。
NLP 是如此活躍的一個開發(fā)領域,其熱度的不斷增加離不開各種排行榜:這些排行榜是多個共享任務、基準系統(tǒng)的核心,如 GLUE 基準以及 SQUAD、AllenAI 等單獨的數(shù)據(jù)集。這些排行榜激發(fā)了工程團隊之間的競爭,幫助其開發(fā)出更好的模型來解決人類自然語言處理問題。但事實真的是這樣嗎?麻省大學博士后 Anna Rogers 就這一現(xiàn)象表達了她的觀點。
排行榜有什么錯?
通常來講,NLP 領域的排行榜都是下圖這個樣子:
網(wǎng)上和學術論文中的排行榜(將所提出的模型和基準模型進行對比)都遵循以上這種格式。
如今,用模型的測試性能來評估其是否新穎或有趣是遠遠不夠的,但排行榜恰恰展示的只有這一點。由于深度學習的范圍如此之廣,充滿各種不同的架構,因此很難找出標準方法來衡量模型參數(shù)、訓練數(shù)據(jù)等額外信息。在論文中,這些細節(jié)有時寫在方法部分,有時出現(xiàn)在附錄或 GitHub repo 的評論里,或者直接就沒有提。在那些在線排行榜中,每個系統(tǒng)的細節(jié)也只能從論文鏈接(若有的話)或 repo 的代碼中找到。
在這個越發(fā)忙碌的世界里,如果不是為了評審和復現(xiàn),我們中有多少人會真正去找這些細節(jié)呢?這些簡單的排行榜已經(jīng)提供了我們最關心的信息,即哪些是最新的 SOTA。我們通常懶得思考,不會去批判性地接收這些信息,即使在提醒很快出現(xiàn)的時候也會選擇忽略。如果我們不得不積極地去找到這些警示信號……好吧,根本不可能。冠軍模型在 twitter 上爆紅,可能還會在盲審中得到一些好處。
這種 SOTA 至上方法的危害也引發(fā)了很多討論。如果讀者眼里只有排行榜,那研究者就會認為:只有擊敗 SOTA 才是有價值的研究。這樣的想法帶來了一大批水論文,它們的性能提升非常有限,而且很多無法復現(xiàn)(Crane, 2018)。這也給那些做同樣任務的研究者帶來了一些問題,他們的模型沒有達到 SOTA,因此會覺得連論文都沒必要寫。
GLUE 基準當前排名,上面每一個模型成本都非常大,基本不是一般研究者能復現(xiàn)的。
本文旨在探討排行榜最近帶來的另一個問題。其成因非常簡單:從根本上來說,模型性能的提升可能基于多個原因,要么是從可用的數(shù)據(jù)中構建了更好的表征,要么只是用了更多的數(shù)據(jù)或更深的網(wǎng)絡。問題是,如果一個模型用了更多的數(shù)據(jù)/計算,我們就很難找出其性能提升的真正原因。
最流行的排行榜現(xiàn)在由基于 Transformer 的模型占據(jù)。在橫掃各大排行榜數(shù)月之后,BERT 在 NAACL 2019 大會上獲得了最佳論文獎。最近,XLNet 又后來者居上,在 20 項任務上碾壓 BERT,成為新的預訓練模型 SOTA。其他的 Transformers 模型還包括 GPT-2、ERNIE 等。
問題在于:這些模型都很大。雖然代碼是開源的,但復現(xiàn)這些結果或創(chuàng)造可與之匹敵的模型所需的算力不是一般實驗室可以承擔的。例如,XLNet 的訓練 token 達到了 32B,需要使用 128 個 Cloud TPU 訓練 2 天,費用超過 6.14 萬美元。單單只是微調模型也非常昂貴。
這樣的排行榜真的還 OK?
但一方面,這一趨勢看起來又是可預測,甚至是必然的:擁有較多資源的用戶會想法設法利用更多資源來實現(xiàn)更好的性能。有人甚至認為大模型證明了自身的可擴展性,并實現(xiàn)了深度學習與生俱來的潛力,即能夠基于更多信息學習到更復雜的模式。沒有人知道解決特定 NLP 任務時到底需要多少數(shù)據(jù),但數(shù)據(jù)越多應該效果越好,并且限制數(shù)據(jù)似乎會適得其反。
從此觀點來看——從現(xiàn)在開始,似乎只有業(yè)界才能做頂層 NLP 研究。學者們只能通過獲得更多資助或與高性能計算中心合作來提升自己的參與度。此外,他們還可以轉向分析,在業(yè)界提供的大模型之上構建一些東西或者創(chuàng)建數(shù)據(jù)集。
但是,就 NLP 的整體進展而言,這或許不是最好的選擇。
為什么「大模型+排行榜=災難」?
簡單來講,大模型的主要問題在于:「更多數(shù)據(jù)和計算帶來的 SOTA 結果」并不是真正的研究進展(「More data & compute = SOTA」is NOT research news)。
排行榜的目的在于顯示真正的進步,那么我們需要著眼于提出新架構。很明顯,大型預訓練模型是珍貴的,但是除非作者證明他們的系統(tǒng)在使用同等規(guī)模數(shù)據(jù)和算力時性能優(yōu)于其他模型,否則很難判斷他們展示的是模型還是資源。
此外,該研究相當程度上是不可復現(xiàn)的:沒人會花 6.14 萬美元復現(xiàn) XLNet 訓練。其控制變量測試表明 XLNet 在 3 個數(shù)據(jù)集上的性能僅比 BERT 高出 1-2%,因此我們實際上并不清楚其 masking 策略是否比 BERT 更成功。
同時,學習器模型的開發(fā)并未被推動,因為其面臨的基礎任務更難,而看重排行榜的社區(qū)只關注 SOTA。這最后會讓學術團隊付出代價,學生畢業(yè)時可能無法成為更好的工程師。
最后,大型深度學習模型通常過參數(shù)化。例如,BERT 的較小版本在大量語法測試實驗中的得分高于大型版本。深度學習模型需要大量算力這件事本身并不一定是壞事,但浪費算力對環(huán)境是沒有益處的。
BERT 不過是統(tǒng)計擬合
除了對數(shù)據(jù)與算力的質疑,臺灣國立成功大學的研究者近日發(fā)表了一篇新論文,他們重新探討了神經(jīng)網(wǎng)絡在理解自然語言中的作用。研究者首先發(fā)現(xiàn) BERT 在 Argument Reasoning Comprehension Task 中性能極好,且只比人類基線水平低 3 個百分點。但是進一步研究卻發(fā)現(xiàn),該結果只是利用數(shù)據(jù)集中的統(tǒng)計線索得出。所以如果針對這些線索做個對抗數(shù)據(jù)集,那么模型的效果不會比隨機猜強多少。
-
論文:Probing Neural Network Comprehension of Natural Language Arguments
-
論文地址:https://arxiv.org/pdf/1907.07355.pdf
這項研究是在論證推理理解(ARCT)這一任務上測試的,這種任務還是挺難的,例如簡單的論證「今天會下雨,所以要帶傘?!梗鼭撛诘那疤峒础噶軡袷遣缓玫摹?。而 ARCT 避免直接理解潛在前提,并將重心放在了推斷上,如下所示為 ARCT 任務的一個數(shù)據(jù)點:
ARCT 測試集中的一個樣本,模型需要從 Reason 和 Warrant 推斷出 Claim。例如「我們可以選擇不使用谷歌,且其它搜索引擎也不會重定向到谷歌,那么谷歌就不是寡頭壟斷」。
BERT 這樣的預訓練模型能在該數(shù)據(jù)集上獲得 77% 的準確率,只比正常人類基線水平低三個百分點。如果沒有足夠的通用知識,它能獲得這么好的效果是不科學的,因此研究者繼續(xù)探索 BERT 在該任務中學到了什么。
這種探索也不是這篇論文開啟的,先前已經(jīng)有很多研究試圖探索 BERT 的決策過程。但研究者發(fā)現(xiàn) BERT 會搜索 warrant 中的線索詞,例如 not 等。這也就表明,BERT 如此優(yōu)秀的性能都將歸功于探索一些「偽」統(tǒng)計線索。
如果我們取推論的逆否命題,那么就有可能去除這些不正常的統(tǒng)計線索,也就能構建對抗樣本了。在這樣的的對抗數(shù)據(jù)集上,BERT 只能實現(xiàn) 53% 的準確率,差不多是隨機猜測的概率了。此外,因為很多模型實際上也都在發(fā)現(xiàn)這樣的不正常統(tǒng)計線索,該對抗數(shù)據(jù)集能作為更多的度量方法。如下所示為上面 ARCT 案例的對抗樣本:
我們只需要按照邏輯改變「Not」之類的詞,模型就解決不了了。BERT 在這樣的對抗數(shù)據(jù)集只能獲得如下效果:
從這樣的實驗結果可以看出,BERT 這類模型很大程度上都在擬合某些不正常的統(tǒng)計線索。但毋庸置疑的是,BERT 的擬合建模能力還是非常強的,遠遠超過了 BiLSTM 之類的模型。研究者在最后表示,除了 GLUE 這樣的基準,對抗數(shù)據(jù)集也應該被采用為標準的度量方法,并為模型性能提供更魯棒的評估標準。
可能的解決方案
對 NLP 排行榜的追捧正將我們置于危險的境地,它讓我們放棄了可復現(xiàn)性的目標,只看到谷歌的某個模型在幾個月之后超越了另一個模型。為了避免這種情況再次發(fā)生,排行榜需要做出改變。
大體上有兩種可能的解決方案:
對于某一特定任務而言,我們應該可以提供一個標準的訓練語料庫,并將計算量限制在強大基線模型所使用的范圍內。如果基線類似于 BERT,這將激勵研究者進一步開發(fā)能夠更好利用資源的模型。如果一個系統(tǒng)利用預訓練表征(詞嵌入、BERT 等),則最后得分應該將預訓練數(shù)據(jù)的大小考慮進來。
對于像 GLUE 這樣的一整組任務而言,我們可以令參與者使用他們想要的所有數(shù)據(jù)和計算,但需要將它們考慮進最后得分之中。排行榜不應只體現(xiàn)模型相對于基線的性能提升,還應列出其利用的資源量。
這兩種方法都需要一種可靠的方式來估測算力消耗,至少可以是任務組織者估計的推理時間。Aleksandr Drozd(RIKEN CCS)認為最好的方法是僅報告 FLOP 計數(shù),這在 PyTorch 和 TensorFlow 等框架中已經(jīng)可以實現(xiàn)。我們或許也可以為接收深度學習模型的共享任務建立通用的服務,在一批數(shù)據(jù)上訓練一個 epoch,為研究人員提供估測數(shù)字。
評估訓練數(shù)據(jù)也不是一個簡單的任務:純文本語料庫的價值應該低于帶注釋的語料庫或 Freebase。這或許是可以進行測量的。例如,非結構化數(shù)據(jù)應該可被估測為原始 token 計數(shù) N、aN 這樣的增強/解析數(shù)據(jù)和 N^2 這樣的結構化數(shù)據(jù)作為索引。
與上述相反的一個論點是,某些模型本身可能需要比其他模型更多的數(shù)據(jù),且只有在大規(guī)模實驗中才能獲得合理的評估。但即使在這種情況下,一篇令人信服的論文也需要展示新模型能夠比其他模型更好地利用大量數(shù)據(jù),我們也需要對所有模型在相同的數(shù)據(jù)上做多輪訓練。
近幾個月來,我們不斷看到 NLP 領域的新進展,每隔幾個月都會出現(xiàn)更新、更強大的模型,實現(xiàn)不切實際的結果。但每當人們開始檢視數(shù)據(jù)集的時候就會發(fā)現(xiàn):其實這些模型根本沒有學到任何知識。我們是時候從模型優(yōu)化的工作上后退一步,仔細研究這些數(shù)據(jù)集,以及它們的真正意義了。