日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

ACL20 | 让笨重的BERT问答匹配模型变快!

發布時間:2024/7/5 编程问答 48 豆豆
生活随笔 收集整理的這篇文章主要介紹了 ACL20 | 让笨重的BERT问答匹配模型变快! 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

一只小狐貍帶你解鎖煉丹術&NLP秘籍

作者:曹慶慶(Stony Brook University 在讀PhD,關注Efficient NLP、QA方向,詳見awk.ai)

背景

BERT、XLNet、RoBERTa等基于Transformer[1]的預訓練模型推出后,自然語言理解任務都獲得了大幅提升。問答任務(Question Answering,QA)[2]也同樣取得了很大的進步。

用BERT類模型來做問答或閱讀理解任務,通常需要將問題和問題相關文檔拼接一起作為輸入文本,然后用自注意力機制對輸入文本進行多層交互編碼,之后用線性分類器判別文檔中可能的答案序列。如下圖:

雖然這種片段拼接的輸入方式可以讓自注意力機制對全部的token進行交互,得到的文檔表示是問題相關的(反之亦然),但相關文檔往往很長,token數量一般可達問題文本的10~20倍[3],這樣就造成了大量的計算。

在實際場景下,考慮到設備的運算速度和內存大小,往往會對模型進行壓縮,比如通過蒸餾(distillation)小模型、剪枝(pruning)、量化(quantization)和低軼近似/權重共享等方法。

但模型壓縮還是會帶來一定的精度損失。因此我們思考,是不是可以參考雙塔模型的結構,提前進行一些計算,從而提升模型的推理速度?

如果這種思路可行,會有幾個很大的優勢:

  • 它不需要大幅修改原來的模型架構

  • 也不需要重新預訓練,可以繼續使用標準Transformer初始化+目標數據集fine-tune的精調方式

  • 還可以疊加模型壓縮技術

  • 經過不斷地嘗試,我們提出了《Deformer:Decomposing Pre-trained Transformers for Faster Question Answering》[4],在小幅修改模型架構且不更換預訓練模型的情況下提升推理速度。下面將為大家介紹我們的思考歷程。

    論文鏈接:
    https://awk.ai/assets/deformer.pdf

    代碼鏈接:
    https://github.com/StonyBrookNLP/deformer

    Arxiv訪問慢的小伙伴也可以在訂閱號后臺回復關鍵詞【0604】下載論文PDF。

    模型結構

    在開篇的介紹中,我們指出了QA任務的計算瓶頸主要在于自注意力機制需要交互編碼的token太多了。因此我們猜想,是否能讓文檔和問題在編碼階段盡可能地獨立?

    這樣的話,就可以提前將最難計算的文檔編碼算好,只需要實時編碼較短的問題文本,從而加速整個QA過程。

    部分研究表明,Transformer 的低層(lower layers)編碼主要關注一些局部的語言表層特征(詞形、語法等等),到高層(upper layers)才開始逐漸編碼與下游任務相關的全局語義信息。因此我們猜想,至少在模型的某些部分,“文檔編碼能夠不依賴于問題”的假設是成立的。 具體來說可以在 Transformer 開始的低層分別對問題和文檔各自編碼,然后再在高層部分拼接問題和文檔的表征進行交互編碼,如圖所示:

    為了驗證上述猜想,我們設計了一個實驗,測量文檔在和不同問題交互時編碼的變化程度。下圖為各層輸出的文檔向量和它們中心點cosine距離的方差:

    可以看到,對于BERT-Based的QA模型,如果編碼的文檔不變而問題變化,模型的低層表征往往變化不大。這意味著并非所有Transformer編碼層都需要對整個輸入文本的全部token序列進行自注意力交互。

    因此,我們提出Transformer模型的一種變形計算方式(稱作 DeFormer):在前層對文檔編碼離線計算得到第? 層表征,問題的第層表征通過實時計算,然后拼接問題和文檔的表征輸入到后面到層。下面這幅圖示意了DeFormer的計算過程:

    值得一提的是,這種方式在有些QA任務(比如SQuAD)上有較大的精度損失,所以我們添加了兩個蒸餾損失項,目的是最小化Deformer的高層表征和分類層logits與原始BERT模型的差異,這樣能控制精度損失在1個點左右。

    實驗

    這里簡要描述下四組關鍵的實驗結果:

    (1)在三個QA任務上,BERT和XLNet采用DeFormer分解后,取得了2.7-3.5倍的加速,節省內存65.8-72.0%,效果損失只有0.6-1.8%。BERT-base()在SQuAD上,設置能加快推理3.2倍,節省內存70%。

    Deformer results

    (2)實測了原模型和DeFormer在三種不同硬件上的推理延遲。DeFormer均達到3倍以上的加速。

    Deformer speed

    (3)消融實驗證明,添加的兩個蒸餾損失項能起到彌補精度損失的效果。

    Deformer ablation

    (4)測試DeFormer分解的層數(對應折線圖橫軸)對推理加速比和性能損失的影響。這個實驗在SQuAD上進行,且沒有使用蒸餾trick。

    Deformer layers

    總結

    這篇文章提主要提出了一種變形的計算方式DeFormer,使問題和文檔編碼在低層獨立編碼再在高層交互,從而使得可以離線計算文檔編碼來加速QA推理和節省內存。

    創新之處在于它對原始模型并沒有太大修改。部署簡單,而效果顯著。 實驗結果表明基于BERT和XLNet的Deformer均能取得很好的表現。筆者推測對其他的Transformer模型應該也同樣有效,并且其他模型壓縮方法和技術應該也可以疊加使用到DeFormer上來進一步加速模型推理。

    Arxiv訪問慢的小伙伴也可以在訂閱號后臺回復關鍵詞【0604】下載論文PDF。

    本文收錄于原創專輯:《賣萌屋@自然語言處理》

    重磅驚喜:賣萌屋小可愛們苦心經營的?自然語言處理討論群?成立三群啦!掃描下方二維碼,后臺回復「入群」即可加入。眾多頂會審稿人、大廠研究員、知乎大V以及美麗小姐姐(劃掉?????♀?)等你來撩噢~(手慢無

    夕小瑤的賣萌屋

    _

    關注&星標小夕,帶你解鎖AI秘籍

    訂閱號主頁下方「撩一下」有驚喜哦

    • 賣萌屋原創專輯首發,算法鎮魂三部曲!

    • GPT-3誕生,Finetune也不再必要了!NLP領域又一核彈!

    • ACL2020 | 線上搜索結果大幅提升!亞馬遜提出對抗式query-doc相關性模型

    • 別再蒸餾3層BERT了!變矮又能變瘦的DynaBERT了解一下

    • All in Linux:一個算法工程師的IDE斷奶之路

    參考文獻

    [1]

    論文方面可以參考邱老師組的文獻綜述: Models for Natural?Language Processing : A Survey ( https://arxiv.org/abs/2003.08271?),實例代碼可以參見 huggingface 的 Transfomer 庫

    [2]

    嚴格來說是機器閱讀理解,即給出問題從相關文章中提取答案,一般QA系統還包括檢索階段來找到問題相關的文檔

    [3]

    比如SQuAD問題平均10個token,但文檔平均有116個token

    [4]

    Deformer:Decomposing Pre-trained Transformers for Faster Question Answering: https://awk.ai/assets/deformer.pdf

    總結

    以上是生活随笔為你收集整理的ACL20 | 让笨重的BERT问答匹配模型变快!的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。