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

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 人工智能 > pytorch >内容正文

pytorch

[深度学习] 自然语言处理 --- ALBERT 介绍

發(fā)布時間:2023/12/15 pytorch 56 豆豆
生活随笔 收集整理的這篇文章主要介紹了 [深度学习] 自然语言处理 --- ALBERT 介绍 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

一、簡介

隨著Transfomer結(jié)構(gòu)的普及,一時間大語料、大參數(shù)量的預(yù)訓(xùn)練模型成為主流。當(dāng)在實(shí)際部署B(yǎng)ERT等模型時,往往需要使用蒸餾、壓縮或其他優(yōu)化技術(shù)對模型進(jìn)行處理。

ALBERT模型來自論文 Google 最近公布的論文 《ALBERT: A LITE BERT FOR SELF-SUPERVISED LEARNING OF LANGUAGE REPRESENTATIONS》從名字就可以看出 ALBERT 是 BERT 的“改進(jìn)版”,其進(jìn)步的地方,一言以蔽之,就是 用更少的參數(shù),取得了更好的效果

github: https://github.com/google-research/ALBERT

ALBERT模型也是基于這一點(diǎn)考慮,通過各種手段減少參數(shù)量,得到一個占用較小的模型,對實(shí)際落地有較大的意義,不過由于其主要還是減少參數(shù)量,所以在推斷時間上并沒有優(yōu)化,所有對量大的需求還是很有問題的。
?

總體來說,ALBERT有意義的創(chuàng)新主要有:

  • 修正了句子預(yù)測這一一直被詬病的預(yù)訓(xùn)練任務(wù),改為了預(yù)測句子之間的連貫性;

  • 對Embedding進(jìn)行因式分解;

  • 跨層的參數(shù)共享。

  • 模型大小與模型性能之間的關(guān)系

    ??這是作者開篇討論的問題。近一兩年,預(yù)訓(xùn)練語言模型給自然語言處理領(lǐng)域帶來了巨大的突破。從 ELMO,GPT,到 Bert,XLNet 和 RoBerta,我們不難看出,性能越強(qiáng)的模型,參數(shù)量也越大。既然模型的參數(shù)量如此重要,我們就會有一個很直接的假設(shè):參數(shù)量越大,模型的性能就會越高。

    ??先不考慮硬件資源和訓(xùn)練時間(還是要考慮,如此大的開銷已經(jīng)將很多參與者擠出門外了),如果上述假設(shè)成立,那么我們只需要想方設(shè)法地擴(kuò)展模型規(guī)模就可以了。作者為驗(yàn)證假設(shè),將 Bert-large 模型的隱藏層 size 擴(kuò)展了一倍,構(gòu)建了 Bert-xlarge模型。該模型的參數(shù)量較 Bert-large 提升了一倍,然而遺憾的是,如圖1所示,Bert-xlarge 出現(xiàn)了模型退化(model degradation)現(xiàn)象,性能不升反降。因此,簡單地推高參數(shù)量,不僅會面臨更加嚴(yán)峻的硬件資源不足以及訓(xùn)練時間過長問題,且無法獲得更好的效果的。

    ?

    ????????????????????????????????????????????????????????? Bert-large 與 Bert-xlarge 對比圖

    ??其實(shí)這也比較好理解,參數(shù)量越大性能越好,我認(rèn)為這本身是沒有正確的,但前提是對模型中參數(shù)的運(yùn)用沒有退化,或者說模型內(nèi)單位參數(shù)所發(fā)揮的作用沒有退化。舉個例子,鯨魚大腦的絕對體積和重量都要超過人類,但其大腦很大一部分精力用在控制其“臃腫”的體積上,而不是用來思考和記憶,因此遠(yuǎn)不如人類聰明。
    ??因此為了提升模型性能,我們既可以“做加法”,在模型結(jié)構(gòu)合理有效的前提下,增大模型的規(guī)模(e.g. Bert --> Bert-large, Bert --> XLNet);也可以“做減法”,降低參數(shù)量,但提升參數(shù)的利用效率、更大地發(fā)揮參數(shù)的效果。本篇論文中所設(shè)計的 ALBERT,就是在“做減法”的基礎(chǔ)上,在性能上全面超越 Bert。

    三? ALBERT的改進(jìn)

    1. SOP任務(wù)

    BERT在提出的時候提供了兩種預(yù)訓(xùn)練任務(wù),一個是遮蔽語言模型,即以一定比例隨機(jī)遮蔽一定比例的輸入標(biāo)記,然后預(yù)測那些被遮蔽的標(biāo)記的預(yù)訓(xùn)練任務(wù)(PS:ALBERT也不是直接做這個任務(wù),而是換成N-gram的預(yù)測任務(wù)),另一個則是預(yù)測第二個句子是不是第一個句子的下一句。但在隨后的實(shí)踐中,第二個任務(wù)被證明并沒有給模型帶來受益,主要由于這個任務(wù)過于簡單。于是,在ALBERT中這個任務(wù)被換成了預(yù)測句子間的順序,增加模型學(xué)會這種任務(wù)的能力:

    從實(shí)驗(yàn)上看,有所提升,但個人感覺這個預(yù)訓(xùn)練任務(wù)還是有待改進(jìn)。

    2. Embedding因式分解

    這一步操作其實(shí)就是沒啥特別好說的,無外乎就是覺得詞嵌入時的向量維度應(yīng)該小一點(diǎn),然后通過個網(wǎng)絡(luò)擴(kuò)充一下提升維度,這樣一通操作就可以把參數(shù)量從 O(V x H) ? 降到了?? O(V x E? + E x H)

    (有點(diǎn)像深度可分離卷積的做法):

    ?

    論文實(shí)驗(yàn)結(jié)果

    從實(shí)驗(yàn)上看,使用這種方法降低了詞向量維度,但沒有損失太多的精度(相對來說吧),使用權(quán)值共享的策略時增加詞向量不升反降(感覺有點(diǎn)神奇)。

    3. 跨層的參數(shù)共享

    共享權(quán)值不是什么新鮮的事情,之前一般采用只共享全連接層或只共享attention層,ALBERT則更直接全部共享,不過從實(shí)驗(yàn)結(jié)果看,全部共享的代價是可以接受的,同時共享權(quán)值帶來了一定的訓(xùn)練難度,使得模型更魯棒:

    ALBERT 在參數(shù)量上要遠(yuǎn)遠(yuǎn)小于 Bert。譬如,ALBERT-large 的參數(shù)量僅有 18M,僅為 Bert-large 的 1/18;將 Bert 的隱藏層擴(kuò)展到 2048 維,參數(shù)量會飆升到 1.27G 且性能下降,而 H = 2048 的 ALBERT-xlarge 模型只有 59M 的參數(shù),更大的模型 ALBERT-xxlarge(H=4096)參數(shù)量也僅有 233M。另外作者在 ALBERT-xxlarge 中設(shè)定了 12 層的網(wǎng)絡(luò),之所以不設(shè)置為 24 層,是因?yàn)橥ㄟ^實(shí)驗(yàn)作者驗(yàn)證了二者在性能上相近,而后者的計算成本更高。

    4. dropout的移除

    在ALBERT的實(shí)驗(yàn)中作者提到對掩碼任務(wù)和下游任務(wù)取消dropout都帶來了提升,這一點(diǎn)無疑非常值得去思考:

    掩碼任務(wù)

    下游任務(wù)

    同時,作者也提到100w步之后,ALBERT依舊沒有過擬合的跡象。

    ?

    四、ALBERT的實(shí)驗(yàn)結(jié)果

    最后作者又總結(jié)了一遍論文中提出的模型——ALBERT-xxlarge 的強(qiáng)大性能(使用了 Bert、XLNet 和 RoBERTa 的訓(xùn)練數(shù)據(jù)):在 13 項(xiàng) NLP 任務(wù)上都取得了最佳,包括 GLUE 上的 9 個任務(wù) 和 SQuAD、RACE等 4 個數(shù)據(jù)集。

    ?

    簡單一句話來說,就是小但強(qiáng)。僅從ALBERT本身來說其實(shí)是蠻讓人失望的,因?yàn)椴]有帶來很多有營養(yǎng)的創(chuàng)新,同時由于其的小更多是共享權(quán)值帶來的,這也就導(dǎo)致它并沒有減少推斷時的時間。但另一方面來說,ALBERT減少了占用,本身就給大規(guī)模部署帶來優(yōu)勢,如果再結(jié)合上蒸餾等技術(shù),占用小、速度快、精度高的Bert仿佛就在眼前。

    最近,谷歌開源了中文版本和Version 2

    ALBERT 2性能再次提升

    在這個版本中,“no dropout”“additional training data”“l(fā)ong training time”策略將應(yīng)用到所有的模型。

    與初代ALBERT性能相比結(jié)果如下:

    從性能的比較來說,對于ALBERT-base、ALBERT-large和ALBERT-xlarge,v2版要比v1版好得多。

    說明采用上述三個策略的重要性。

    平均來看,ALBERT-xxlarge比v1略差一些,原因有以下2點(diǎn):

    額外訓(xùn)練了1.5M步(兩個模型的唯一區(qū)別就是訓(xùn)練1.5M和3M步)

    對于v1,在BERT、Roberta和XLnet給出的參數(shù)集中做了一點(diǎn)超參數(shù)搜索;對于v2,只是采用除RACE之外的V1參數(shù),其中使用的學(xué)習(xí)率為1e-5和0 ALBERT DR。

    ?

    參考

  • 「NLP」ALBERT:更輕更快的NLP預(yù)訓(xùn)練模型
  • 一文揭開ALBERT的神秘面紗
  • albert_pytorch
  • ALBERT 論文:ALBERT: A LITE BERT FOR SELF-SUPERVISED LEARNING OF LANGUAGE REPRESENTATIONS

  • ?

    總結(jié)

    以上是生活随笔為你收集整理的[深度学习] 自然语言处理 --- ALBERT 介绍的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。