DeepMind研究科學家:NLP基準測試的現在、過去和未來

  • 2021 年 9 月 14 日
  • AI
編譯 | 王琪瑞
校對 | 青暮
隨著時間流逝,NLP在遇到諸多挑戰的同時,也被寄予更大期望。人們在使用它的過程中收穫很多,也在一直不斷的改進完善它。
在過去幾年的改進下,NLP 模型的能力越來越強大。性能大幅提升導致之前的基準測試已經無法滿足當下的需求。如AI Index Report 2021所言,最近的模型在SuperGLUE和SQuAD等測試的基準上面達到了超越人類的表現。這是否說明,我們已經掌握了處理自然語言的方法呢?答案是沒
現在的模型具備強大的語言理解能力,我們很難再用準確率、BLEU 這種單一指標和靜態基準、抽象任務公式的傳統做法評估 NLP 模型。所以,我們需要設計新的基準來評估模型,並且讓它在今後發揮作用。
這篇文章的主要內容是:NLP 基準測試所面臨的挑戰、機遇和一些改進的建議。我們希望這篇文章可以讓讀者了解這方面科研的最新進展,也要讓初學者全面了解NLP。文中還涉及到最近的論文、ACL 2021 演講以及ACL 2021 基準測試研討會的觀點,其中許多觀點涉及到了過去、現在和未來。

標題圖片:隨著時間推移SQuAD 2.0的性能趨勢變化
目錄:
  • 什麼是基準?
  • 基準測試簡史
  • 指標很重要
  • 考慮下游用例
  • 細粒度評估
  • 基準性能的長尾
  • 大規模持續評估
    1

    基準是什麼?
    「數據集是我們領域的望遠鏡。」—阿拉文德·喬希
    基準起初被定義為測量員在水泥結構中幫助水平尺測量數據的水平標記。後來基準的定義漸漸變成對比事物的標準參考點。形象地說,基準是一個可以相互比較的標準參考點。基準在ML或NLP中通常由以下幾個部分組成:一個或多個數據集、一個或多個相關指標以及聚合性能的方法。
    我們為基準設置了一個評估社區商定系統的標準,確保基準被社區接受。具體操作是要麼給基準選擇一組有代表性的標準任務,如GLUE或XTREME;要麼積極徵求社區的任務提案,比如SuperGLUE、GEM或BIG-Bench等等。
    對於該領域的人來說,基準是跟進事件發展的重要工具,阿拉溫德·喬希說:沒有基準評估我們的模型,我們就像「不造望遠鏡的天文學家想看星星」。
    對於領域外的人來說,基準為他們提供了客觀的視角,幫助他們認識了有用的模型,還為他們提供了跟蹤一個領域進展的服務。例如,《2021年人工智慧指數報告》使用SuperGLUE和SQuAD作為自然語言處理總體進展的代理。
    有些基準在使用的過程中達到了和人類近似的表現,它們被記入這一領域發展的歷史中。例如 AlphaFold 2在CASP 14競賽中達到與實驗方法競爭的性能就標誌著結構生物學領域的重大科學進步。

    2

    基準測試的簡史
    “創建好的基準比大多數人想像的要難。”-約翰·馬西;系統基準(2020)前言
    基準很久之前就被用來測量電腦性能了。1988年成立的基準性能評估公司SPEC)是最老的電腦硬體性能基準測試的組織之一。每年SPEC都會發布不同的基準集,每個基準集由多個程式組成,性能以每秒數百萬指令的幾何平均值來衡量。值得一提的是,SPEC 得到了該領域很多重要公司的支援。
    最近一個名為MLCommons的公司組織了一場MLPerf系列績效的基準測試。測試重點是模型訓練和推理。與SPEC相似,MLPerf得到了學術界和工業界的廣泛支援,這項基準測試建立在以前衡量績效的個人努力的基礎上,如百度的DeepBench或斯坦福的DAWNBench。
    對於DARPA和NIST等美國機構來說,基準在衡量和跟蹤科學前沿方面發揮了至關重要的作用。早在1986年DARPA 就資助了,TIMIT和Switchboard等自動語音識別的基準,並由NIST協調。後來在MNIST等ML其他領域有影響力的基準也是依賴 NIST上的數據開始改進。
    在語言技術和資訊檢索(IR)方面,NIST舉辦了DARPA資助TREC的系列研討會,會議內容涵蓋面很廣,如下圖所示。TREC曾經組織了20世紀60年代克蘭菲爾德開創的評估範式競賽,在該範式中,模型基於一組測試集合進行評估。由於不同主題的表現差異很大,許多主題的得分都是平均的。所以TREC的標準廣泛可用。TREC精心構建的數據集也在IR奠定了進一步創新的基礎。

    1992-2020年TREC研討會的任務和主題(信貸:艾倫·沃里斯)
    近期基準的規模都很大,比如ImageNet、SQuAD或SNLI等。它們是由資金雄厚的大學學術團體開發的。在深度學習時代,大規模數據集被認為是推動科技進步的支柱之一,自然語言處理或生物學等領域見證了它們的「ImageNet時刻」。
    隨著時間的變化,越來越多的基準開始面嚮應用,它們從單任務轉向多任務,從單域轉向多域基準。例如,從關注核心語言任務(如詞性標註和依賴解析)向更接近現實世界的任務(如面向目標的對話和開放域問題回答)轉變(Kwiatkowski et al.,2019);多任務數據集(如GLUE)的出現以及多模態數據集(如WILDS)的出現。
    如下圖所示, MNIST和 Switchboard等經典基準,實現超人性能花了15年。而GLUE和SQuAD 2.0等基準在模型發布一年後就能實現超人性能,但是我們也知道這只是基準的測試能力,它們的實際處理能力連一般問答都沒辦法解決。

    隨著時間的推移,流行基準的基準飽和度。初始性能和人類性能分別正常化為-1和0(Kiela et al.,2021)。
    導致基準容易飽和的另一個原因是,相比於早期,近期的數據集中的人工注釋痕會被模型快速學習並用於捷徑識別。我們在SNLI中得出,人工注釋依賴於啟發式,這樣模型就可以在不同情況下基於假設自動預測出正確的結果,同時在 SQuAD上訓練的模型會受到對抗性插入語句的影響。
    如今,行業的發展趨勢是對抗性數據集的崛起。這些數據集如對抗性NLI(Nie et al.,2020)、Beat the AI(Bartolo et al.,2020)等等。Dynabench 就是一個最近被設計出來促進這類數據集發展的開源平台。這類基準的好處是,隨著新模型的出現,可以不斷自我更新,從而使基準不會太快飽和。

    3

    指標很重要
    「當你能衡量你在說什麼並用數字表達時,你就知道你在討論什麼。但是當你不能衡量它並用數字表達時,你的知識是非常貧乏和令人不滿的。」爾文勛爵
    指標在衡量模型效果中很重要,但是它沒有受到應有的重視。對於分類任務,準確率和F-1分數等一般都是默認使用的指標,但實際上對於不同的任務,不同類型的錯誤會產生不同的成本。比如對細粒度的情緒進行分析,搞不清積極和很積極可能沒有問題,但是搞不清非常積極和非常消極問題就大了。Chris Potts還列舉了很多這種例子,其中包括指標不足造成更大錯誤的情況。
    想要設計好一個指標,就需要專業的領域知識。比如ASR(語音識別),最初只使用正確轉錄單詞的百分比(類似於準確率)作為指標。後來社區使用了詞錯率( word error rate),因為它可以反映出糾錯成本。
    Mark Liberman曾表示:「研究設計可用幾十年的指標,與為實際應用短期發展設計的指標之間,存在很大的差異。若要開發能用十年的技術,我們就需要更高效的指標,哪怕細節上錯點都行,但是大方向不能錯。」
    Mark Liberman想要的指標是像ASR中的詞錯率(假設所有單詞都同等重要)和機器翻譯中的BLEU(假設詞序不重要)一類的指標。
    但是對於實際技術的評估,我們需要根據特定的應用要求設計度量標準,並研究不同類型的錯誤。
    近年來,隨著模型性能的迅速提高,我們從十年的長期應用機制轉向許多短期的應用機制。有意思的是,在這樣的環境下,我們仍然在大範圍使用衡量長期研究進展的指標。Marie等人(2021)在最近的一項報告分析中發現,2019-2020年間82%的機器翻譯(MT)論文僅使用BLEU進行評估,雖然在過去十年中人們為MT評估提出了108個替代指標,其中許多指標與人類判斷相差不大。但是隨著模型的變大,BLEU很難再成為表現最佳的模型了。
    雖然自然語言生成 (NLG) 模型的評估是出了名的困難,但標準的基於 n-gram 重疊的指標(例如 ROUGE 或 BLEU)不太適合具有豐富詞法的語言,使得這些語言將被分配相對較低的分數。
    NLG最近的發展趨勢是開發自動度量,比如 BERTScore會利用大型預訓練模型(Zhang et al.,2020)這種方法使其更適合短期MT評估,具體操作是將更大的權重分配給更困難的token,即少數MT系統才能正確翻譯的token。
    因此,我們需要不斷更新完善度量標準,用特定應用的度量標準替代簡單的度量標準,例如,最近的GEM基準將度量指標作為一個組件,其需要隨著時間的推移而不斷改進,如下圖所示。

    Opportunities (circle) and challenges of benchmark evaluation (Gehrmann et al., 2021).
    建議:
    1. 考慮更適合下游任務和語言的度量。

    2. 考慮強調下游設置權衡的指標。

    3. 隨著時間的推移更新和完善指標。
    4

    考慮下游用例
    「[…]基準塑造了一個領域,無論是好是壞。好的基準與實際應用一致,但壞的基準卻不一致,迫使工程師在幫助最終用戶的改變和只幫助營銷的改變之間做出選擇。」-大衛·帕特森;系統基準(2020)前言
    NLP技術在現實世界裡的應用越來越廣泛,從創造性的個性化語言表達到欺詐檢測都可以看到NLP的身影。我覺得我們該要重視它在現實世界裡的應用機制了。
    所以基準測試的數據和評估協議應該反映現實世界的用例。例如,FewRel數據集面對關係分類缺乏現實屬性,這些屬性在 TACRED地址中很少見。IMDb數據集在二元情緒分類的時候,只考慮高度兩極分化的正面和負面評論,標籤是不變的。這種基準測試在簡單的資訊檢索中是可行的,但在現實世界中就不太合理了。
    NLP社會責任的第一條規則是「完全按照你說的去做」。這句話是由 Chris Potts提出的。作為該領域的研究人員,我們應該得出基準上的績效反映了什麼,以及這與現實世界的環境是如何對應的。同時, Bowman 和 Dahl 認為基準上的良好績效應該意味著任務領域內的穩健績效。
    因為任務的實際應用可能會產生與訓練分布不同的數據。所以評估模型的穩健性以及評估模型對此類分布數據的泛化程度值得被關注。同理,具有時間偏移的數據和來自其他語言變體的數據也需要受到關注。
    另外,由於 NLP研究中的語言種類很簡單,而且要避免使用英語作為研究的單一語言。所以在設計基準時,我們要涉及到其他語言的測試數據,這樣可以減少研究的片面性,為多語言交匯提供可能。同時,也能在問答和總結等任務中利用其他語言數據集為模型的多功能性能提供證據。
    我們知道,在接下來的道路上,語言技術會給我們帶來很多困難,但也會為我們的評估和基準提供新的靈感。基準是我們領域最自豪的成果,它通常會指引我們一個新的研究方向,同時基準在反映我們現實世界的技術和野心時至關重要。
    建議:
    1. 設計基準及其評估,使其反映真實世界的用例。

    2. 評估域內和域外泛化。

    3. 收集數據並評估其他語言的模型。

    4. 從語言技術的現實應用中獲得靈感。

    5

    細粒度評估
    「不管人們多麼希望績效是一個單一的數字,但即使是沒有分布的正確均值也會誤導人,而錯誤均值肯定也好不到哪裡去。-約翰·馬西
    技術的下游用例可以為我們的評估提供指標。尤其是,下游應用程式需要考慮的不是單一指標,而是一系列約束。Rada Mihalcea希望我們不要只關注準確率,還應該關注實際應用的其他方面,比如特定環境中什麼最重要。簡單的說,NLP的功能取決於用戶的需求。
    機器學習研究一般不會過分強調社會需求。但是在實際應用中,模型不能表現出不利於社會的行為。所以在特定任務的測試中這種表現會成為評估模型的一部分標準。
    實際應用最注重的是效率。效率的高低與樣本效率、FLOPS和記憶體約束有關。就是說,如果記憶體不夠或是其他資源有限,評估模型就只能轉向其他研究方向。比如,NeurIPS 2020的高效品質保證競賽(min等人,2020)展示了檢索增強和大量弱監督問答對集合的好處(Lewis等人,2021)。
    為了更了解模型的優缺點,我們會對單一指標進行細粒度評估,標註模型擅長和失敗的示例類型。ExplainaBoard(Liu et al.,2021)在不同任務中實現了模型性能細粒度細分,如下所示。獲得模型性能更細粒度估計的另一種方法是為特定現象和模型行為創建測試用例,例如使用CheckList框架(Ribeiro et al.,2020)。

    用於三個最佳系統的CoNLL-2003 NER數據集的ExplainaBoard介面,包括最佳系統的單系統分析(A)、前2個系統的成對分析結果(B)、公共誤差表(C)和組合結果(D)(Liu et al.,2021)。
    As individual metrics can be flawed, it is key to evaluate across multiple metrics. When evaluating on multiple metrics, scores are typically averaged to obtain a single score. A single score is useful to compare models at a glance and provides people outside the community a clear way to assess model performance. However, using the arithmetic mean is not appropriate for all purposes. SPEC used the geometric mean, nx1x2…xnn, which is useful when aggregating values that are exponential in nature, such as runtimes.
    一般用單個指標可能會出現缺陷,需要跨多個指標評估,通常我們會將分數平均,以獲得單個分數。單個分數有助於快速發現模型的區別,並為其他領域的人提供評估模型性能的方法。不過這種算數平均方法不適合所有模型。SPEC使用幾何平均值,在聚合指數性質的值
    (如運行時)的時候也很有用。
    另一個減少缺陷的方法是使用加權總和,讓用戶能夠自己定義每個組件的權重。DynaBench使用這種方法來衡量模型的性能,同時也用這種方法評估模型吞吐量、記憶體消耗、公平性和穩健性。在下圖中,用戶可以定義自己的排行榜(Ethayarajh 和 Jurafsky,2020 年)。

    DyaBench自然語言推理任務排行榜中的動態度量加權
    建議:
    1. 不再使用單一指標進行性能評估。

    2. 評估社會偏見和效率。

    3. 對模型執行細粒度評估。

    4. 考慮如何聚合多個指標。

    6

    基準性能的長尾
    因為當前模型在分布內示例上的表現很好,所以我們開始關注分布的尾部、異常值和非典型示例上。
    現在我們不但關注平均情況,也開始關注模型表現最差的數據子集。
    As models become more powerful, the fraction of examples where the performance of models differs and that thus will be able to differentiate between strong and the best models will grow smaller. To ensure that evaluation on this long tail of examples is reliable, benchmarks need to be large enough so that small differences in performance can be detected. It is important to note that larger models are not uniformly better across all examples (Zhong et al., 2021).
    隨著時間的推進,模型越變越強,模型性能也發生了變化。所以強模型和最佳模型的示例的比例將會變小。為了確保這個長尾示例評估的可靠性,基準測試需要足夠龐大才能檢測到性能的微小差異。值得一提的是,規模較大的模型不一定有較大的優勢。
    除了擴大模型規模,我們還可以開發機制,僅用很少的例子就能辨別出最佳的系統。這種方法在昂貴的測試環境下有很大優勢。比如,在自然語言生成的人類評估中 Mendonça et al.(2021)將此框定為MT背景下的在線學習問題。
    最近對抗基準採取的方向是解釋更難的例子,這種基準如果不偏向特定模型就可以補充常規基準。這些對抗基準採取的方向在評估方法的幫助下,可以識別或者生成尖銳的例子來評估模型性能,也能幫助注釋者更好地理解模型的決策邊界。
    由於基準的預算(以及規模)通常保持不變,統計顯著性測試會很重要,因為它使我們可靠地檢測系統之間的性能差異。
    基準的注釋在正確的情況下才能進行比較。但是有些看起來錯誤的例子其實不是注釋的錯誤,而是注釋產生的歧義。也是不久前Bowman and Dahl (2021)強調了模型如何利用這種歧義的線索在基準上達到超人的性能。
    如果可以,基準能收集多個注釋來識別例子。這些注釋會幫助基準分析錯誤。同時也會增加標準指標的重要性,因為這種多注釋會給模型的基準性能設置上限。
    建議:
    1. 在基準中包括許多和/或困難樣本。

    2. 進行統計學顯著性檢驗。

    3. 為不明確的示例收集多個注釋。

    4. 報告注釋者協議。

    7

    大規模連續評價
    “當一個措施成為目標時,它就不再是一個好的措施.”古德哈特定律
    GLUE等多任務基準已經成為領域進步的關鍵指標,但這種靜態基準很快就過時了。模型的更新使跨任務的進展無法統一。雖然模型在多數GLUE任務上都取得了超人的表現,但在 CoLA 等一些任務上與人類仍有差距(Nangia 和 Bowman,2019 年)。同時在XTREME 上,模型的跨語言檢索方面有了很大改進。
    因為模型改進太快,我們需要更靈活的模型評估機制。具體來說,就是除了動態單任務評估(例如DynaBench),還有就是定義基準數據集的動態集合。該集合由社區管理,等到模型達到人類性能並定期添加新的數據集時,社區會刪除或降低數據集的權重。這樣的集合需要進行版本控制,以便能夠在學術審查周期之外進行更新,並且與以前的方法進行比較。
    現有的多任務基準測試,例如GEM ( Gehrmann et al., 2021 ),旨在成為「活的」基準測試,通常包括大約 10-15 個不同的任務。由於不斷發布的新數據集的數量,如果要將基準測試限制為一小部分代表性任務,還不如將包含更大的 NLP 任務得出的結果有用。同時NLP 中任務的多樣性,將為模型性能提供更穩健和最新的評估。百度的LUGE是朝著如此龐大的中文自然語言處理任務集合邁出的一步,目前由28個數據集組成。
    任務的集合可以通過各種方式分解,分解後得到對模型能力的更細粒度的評估。如果任務根據模型正在測試的行為分類,則這種細分會非常有洞察力。BIG-Bench是最近的語言模型探測協作的基準,包括按關鍵字分類。
    這種大規模多任務評估的一個重要挑戰是可訪問性。就是說,任務需要以通用輸入格式導入,以便它們可以輕鬆運行。此外,任務應該高效運行,即使沒有太多計算要求,基礎設施也要可用於運行任務。
    另外,這樣的集合有利於大型通用模型,為財力雄厚的公司或機構提供訓練。而且,這些模型已經被用作當前大多數研究工作的起點,一旦經過訓練,就可以通過微調或修剪使之更有效地使用。
    建議:
    1. 考慮收集和評估大型、多樣化、版本化的 NLP 任務集合。

    8

    結論
    為了追上建模發展的速度,我們需要重新審視很多默認的基準測試,比如F1分數和BLEU等簡單指標。還需要從語言技術的現實應用中思考現實設置給模型帶來的影響。另外也應該關心分布的長尾,因為這是許多應用程式可以觀察的到的地方。最後,我希望我們可以通過多指標和統計顯著性測試來嚴格的評估我們的模型,使之越來越完善。

    原文鏈接://ruder.io/nlp-benchmarking/

    作者簡介:

    SEBASTIAN RUDER,是倫敦 DeepMind 語言團隊的一名研究科學家。

    2015-2019年就讀於愛爾蘭國立高威大學,工程與資訊學院,自然語言處理博士畢業。

    2017.4-2017.6在哥本哈根大學,自然語言處理組,電腦科學系研究訪問。

    2014.09-2015.01愛爾蘭都柏林三一學院,海外學期,電腦科學與統計學院,電腦科學與語言

    2012.10-2015.09就讀於Ruprecht-Karls-Universität Heidelberg 德國海德堡計算語言學研究所,文學學士計算語言學、英語語言學。

    SEBASTIAN RUDER在學習期間,曾與Microsoft、IBM 的 Extreme Blue、Google Summer of Code和SAP等機構合作。他對 NLP 的遷移學習使 ML 和 NLP 被大眾所了解。


    雷鋒網雷鋒網雷鋒網