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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

李宏毅机器学习(八)ELMo、BERT、GPT、XLNet、MASS、BART、UniLM、ELECTRA、others

發布時間:2024/7/5 编程问答 40 豆豆
生活随笔 收集整理的這篇文章主要介紹了 李宏毅机器学习(八)ELMo、BERT、GPT、XLNet、MASS、BART、UniLM、ELECTRA、others 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

怎么得到這個pre-train好的模型呢?

Pre-training by Translation(翻譯)

Context Vector(CoVe)
Embedding的words必須要考慮上下文! 有一個方法是用基于Translation的Model! 就是用Translation這個任務間接的訓練model! 為什么不用Summary等任務作為工具呢,因為summary是提取某些word的重要性,那么不能做到對所有的word一視同仁! 同時該任務的缺點也在于需要大量的成對的數據,我們不可能有很多的數據!

Self-supervised Learning

就是我們不再用無監督作為名字了,而是使用自監督學習! 自監督就是用輸入的一部分來預測自己的另一部分! 是沒有標記的哦!

Predict Next Token

我們不能讓W2W_2W2?學習到不應該學習的知識,如果將W2W_2W2?放入到h1h_1h1?,那么就可以預測出W2W_2W2?。而且右邊就是整個的預測過程!

LM、ULMFiT、ELMo

都是使用的是LSTM!

GPT、GPT-2、Megatron、Turing NLG

使用的是自監督! 其中要留心attention的范圍! 有限制的!
比如我們不能讓模型看到后面的答案! 所以取attention的時候只能是前面所有!而不是整個句子!

這有什么應用呢?
就是自己編一個文章! 比如獨角獸新聞! GPT-2!
我們需要考慮左邊的上下文,但是有右邊的上下文呢!

Predict Next Token-Bidirectional

ELMO! 雙向考慮! 但是也有問題,你這樣兩個LSTM是單獨處理的,你只是考慮了單邊,而不是整個句子! 兩個LSTM也是單獨訓練的!

Masking Input

將某個Token進行Mask或者Random Token! 我們在學習W1W_1W1?的時候要考慮W3W_3W3?W4W_4W4?,相反W3W_3W3?的時候也是這樣! 由于W2W_2W2?是被蓋住了,所以不用擔心學習到W2W_2W2?的信息! 最終的目的就是學習到W2W_2W2?

CBOW
和BERT不同: 左右看的范圍是有一個Window,而BERT是有多少就計算多少! 第二個不同: BERT在Encoder之后輸出Vector后可以連接頭不同的向量,但是在CBOW中是直接相加的!
總結一下就是CBOW和BERT的訓練方式基本都是一樣的,只是模型的復雜度沒有那么高!

Is random masking good enough?
怎么覆蓋呢? 比如黑龍江中,我們蓋住“龍”字!還是整個黑龍江
兩種不同的mask:

  • Whole Word Masking(WWW)
    WWW: 也就是把整個單詞遮蓋住! 而不是單個字!
    而phrase-level是短語,多個單詞;
    Entity-level呢,則是更特定,就是特定的地名、組織名等! 也就是我們ERNIE

SPanBert
按照幾率該不同長度的Token!
提出的方法一般不可能在所有具體的方法都好! 下面的表格中,橫坐標是不同的具體的任務!

  • SpanBert——Span Boundary Objective(SBO)
    一種新的訓練方法!
    這里我們認為一個跨度兩邊的Word Embedding就可以包含這個跨度所有的信息! 為什么呢? 之后再說,在coreference中會更加詳細的介紹!
    我們通過兩邊的Word Embedding通過SBO來預測出一個數字,該數字代表了預測出了跨度中第幾個單詞!

XLNet

Transformer-XL:
要解決的問題: 作者聲稱是發現了BERT的缺點,就是你只會預測順序的,不會預測倒序的! 比如New York City! 你蓋住York他可以預測,但是如果蓋住New ,沒把飯根據York來預測New!
怎么理解XLNet呢? 可以從兩個方向來看:
第一個方向是language Model的方向:
predicts token的角度來看,你只能看看到left content!
而Transformer-XL中,打亂句子!

第二個方向是BERT的方向:
BERT中我們可以自定義窗口來對mask進行預測!

但是在XLNet中聲明的是,不給Model看mask Token! 但是你還是要告訴model要預測哪一個位置的word! 后面的詳細的自己看論文嘍 !

BERT cannot talk?

給出部分的句子來預測下一個token!在LM-style中是可以的,但是BERT中我們訓練的時候看的是左右,現在你給出左邊,那么右邊沒有給,所以效果不會很好

但是上面的討論只是局限在autoregressive model! 我們在生成句子時,是從左至右的!
non-autoregressive,不用從左向右生成!

MASS/BART
由于BERT泛化能力比較差,所以它可能不太適合作為seq2seq的pre-trian model! 所以如果是Seq2Seq任務,那么BERT可能只能充當encoder的任務! decoder的地方你可能沒有pre-train到! 那么有沒有辦法去pre-trian一個seq2seq的模型呢? 是有的! 思想是cycle-loss,也就是經過decoder后和encoder有一樣的輸出! 但是也有一個問題,如果是這樣的話模型是學習不到什么的,因為可能decoder只是復制一下輸入! 所以需要將輸入破壞! 有兩種方法: MASS/BART

MASS

和BERT的思想類似。
嘗試了很多方法,最好的方法是Text Infilling!

UniLM:
該模型可以充當各種模型! encoder、decoder或者是

Replace or Not?
ELECTRA: Efficiently learning an Encoder that Classifies Token Replacements Accurately
前面的都是預測下一個Token,但是ELECTRA不回答預測問題,只回答binary的問題,ELECTRA怎么解決binary問題呢?
讓一句話作為輸入,我mask后觀察該詞是不是被mask了!

但是你如果給定一個很明顯的單詞替換,那么就很容易分析出來,所以需要增加難度! 所以我們就增加一個small BERT用來生成單詞! 這個small BERT不用太大,要有缺陷! 不能是完美的!

Sentence Level

表示整個句子! 用來預測下一個句子是不是ok! skip Thought是將第一個句子輸入Encoder,通過Decoder來預測下一個句子; 而Quick Thought則是利用了相似度的度量,如果兩個句子相似度高,那么就會被預測!

在普通BERT中,我們可以使用NSP來預測下一個句子。 兩個句子中間有SEP分隔符,需要通讀整個句子,提取整個句子的特征,才能做好兩個句子的分類!

T5-Comparison
總得有人做pre-train的,你得有硬件資源! 不是人人都可以做的!
T5和C4! 自己可以讀一讀

Knowledge
另一個ERNIE!

原來的都是文字的BERT! 還是有語音版的BERT!
Audio BERT

總結

以上是生活随笔為你收集整理的李宏毅机器学习(八)ELMo、BERT、GPT、XLNet、MASS、BART、UniLM、ELECTRA、others的全部內容,希望文章能夠幫你解決所遇到的問題。

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