NLP中的預訓練語言模型(五) ELECTRA

2022-07-05 17:30:12 字數 1521 閱讀 4217

這是一篇還在雙盲審的**,不過看了之後感覺作者真的是很有創新能力,electra可以看作是開闢了一條新的預訓練的道路,模型不但提高了計算效率,加快模型的收斂速度,而且在引數很小也表現的非常好。

**:electra: pre-trainingtextencoders asdiscriminatorsratherthangenerators

electra全稱為efficiently learning an encoder that classifies token replacements accurately 。**中提出了乙個新的任務—replaced token detection,簡單來說該任務就是**預訓練語言模型生成的句子中哪些token是原本句子中的,哪些是由語言模型生成的。

模型的整個結構如下:

整個訓練模式有點類似於gan,模型由乙個生成器和乙個判別器組成的,這個判別器就是我們最終使用的預訓練模型,生成器可以採用任何形式的生成模型,在這裡作用採用了mlm語言模型(bert之類的)來作為生成器,具體流程如下:

1)首先對乙個距離mask一些詞,將這個mask後的句子作為生成器的輸入。

2)生成器將這些mask的詞**成vocab中的token,如上面將painting mask後輸入到生成器中,然後生成器重構輸入,將mask**成car。

3)將生成器的輸出作為判別器的輸入,判別器去**這個句子中的每個token是真實的token,還是由生成器生成的虛假的token,注意:如果生成器生成的詞和真實詞一致,則當作真實的token,例如上面講the mask後生成器仍**為the,則the在判別器中也是真實值,標籤為正。

模型的整個流程確定了,剩下的就是該怎麼訓練了,在這裡訓練方式和gan並不相同,在gan中會將判別器的結果作為訓練生成器的損失,但由於nlp中句子是離散的,因此無法通過梯度下降的方式來將判別器的結果反向傳播來訓練生成器,因此在這裡作者將mlm損失作為生成器的損失,而將replaced token detection的損失作為判別器的損失,具體損失函式如下:

生成器的損失:

生成器的損失就是mlm語言模型中**mask詞的損失。

筆記nlp預訓練模型

詞向量與elmo模型 bilstm介紹與 實現 目前將預訓練語言表徵應用於下游任務存在兩種策略 feature based的策略和fine tuning策略。原始的 transformer模型由encoder和decoder組成,每個都是我們稱之為 transformer 架構的堆疊。這種架構是合理...

預訓練語言模型學習筆記

bert解決長序列問題 架構設計 為了能讓機器可以讀非常長的序列,transformer xl 可以讓機器讀跨越片段的內容。為了讓自注意力的計算複雜度變小,從 o t 變成了 o tlogt 甚至更低,reformer 使用了區域性敏感性的雜湊注意力。為了讓自注意力的空間複雜度也變小,從o t 變小...

各種預訓練語言模型介紹

一.elmo 背景 word2vec,glove和fasttext雖然能表示語義和語法資訊,但是並不能夠區分一詞多義 網路建構 兩個單向的lstm進行拼接,把每層拼接的中間結果之和作為輸出 q 為啥不用bi lstm?避免傳播前後向未來要 的資訊 原理與損失函式 前向模型 後向模型 目標函式最大化 ...