網(wǎng)站用圖片怎么交換友情鏈接
1?BERT的優(yōu)點(diǎn)和缺點(diǎn)
1.1 BERT的優(yōu)點(diǎn)
- 通過預(yù)訓(xùn)練, 加上Fine-tunning, 在11項(xiàng)NLP任務(wù)上取得最優(yōu)結(jié)果.
- BERT的根基源于Transformer, 相比傳統(tǒng)RNN更加高效, 可以并行化處理同時能捕捉長距離的語義和結(jié)構(gòu)依賴.
- BERT采用了Transformer架構(gòu)中的Encoder模塊, 不僅僅獲得了真正意義上的bidirectional context, 而且為后續(xù)微調(diào)任務(wù)留出了足夠的調(diào)整空間.
1.2 BERT的缺點(diǎn)
- BERT模型過于龐大, 參數(shù)太多, 不利于資源緊張的應(yīng)用場景, 也不利于上線的實(shí)時處理.
- BERT目前給出的中文模型中, 是以字為基本token單位的, 很多需要詞向量的應(yīng)用無法直接使用. 同時該模型無法識別很多生僻詞, 只能以UNK代替.
- BERT中第一個預(yù)訓(xùn)練任務(wù)MLM中, [MASK]標(biāo)記只在訓(xùn)練階段出現(xiàn), 而在預(yù)測階段不會出現(xiàn), 這就造成了一定的信息偏差, 因此訓(xùn)練時不能過多的使用[MASK], 否則會影響模型的表現(xiàn).
- 按照BERT的MLM任務(wù)中的約定, 每個batch數(shù)據(jù)中只有15%的token參與了訓(xùn)練, 被模型學(xué)習(xí)和預(yù)測, 所以BERT收斂的速度比left-to-right模型要慢很多(left-to-right模型中每一個token都會參與訓(xùn)練).
2 BERT的MLM任務(wù)
2.1 80%, 10%, 10%的策略
- 首先, 如果所有參與訓(xùn)練的token被100%的[MASK], 那么在fine-tunning的時候所有單詞都是已知的, 不存在[MASK], 那么模型就只能根據(jù)其他token的信息和語序結(jié)構(gòu)來預(yù)測當(dāng)前詞, 而無法利用到這個詞本身的信息, 因?yàn)樗鼈儚奈闯霈F(xiàn)在訓(xùn)練過程中, 等于模型從未接觸到它們的信息, 等于整個語義空間損失了部分信息. 采用80%的概率下應(yīng)用[MASK], 既可以讓模型去學(xué)著預(yù)測這些單詞, 又以20%的概率保留了語義信息展示給模型.
- 保留下來的信息如果全部使用原始token, 那么模型在預(yù)訓(xùn)練的時候可能會偷懶, 直接照抄當(dāng)前token信息. 采用10%概率下random token來隨機(jī)替換當(dāng)前token, 會讓模型不能去死記硬背當(dāng)前的token, 而去盡力學(xué)習(xí)單詞周邊的語義表達(dá)和遠(yuǎn)距離的信息依賴, 嘗試建模完整的語言信息.
- 最后再以10%的概率保留原始的token, 意義就是保留語言本來的面貌, 讓信息不至于完全被遮掩, 使得模型可以"看清"真實(shí)的語言面貌.
3 BERT處理長文本的方法
- 首選要明確一點(diǎn), BERT預(yù)訓(xùn)練模型所接收的最大sequence長度是512.
- 那么對于長文本(文本長度超過512的句子), 就需要特殊的方式來構(gòu)造訓(xùn)練樣本. 核心就是如何進(jìn)行截斷.
- head-only方式: 這是只保留長文本頭部信息的截斷方式, 具體為保存前510個token (要留兩個位置給[CLS]和[SEP]).
- tail-only方式: 這是只保留長文本尾部信息的截斷方式, 具體為保存最后510個token (要留兩個位置給[CLS]和[SEP]).
- head+only方式: 選擇前128個token和最后382個token (文本總長度在800以內(nèi)), 或者前256個token和最后254個token (文本總長度大于800).
4 小結(jié)
-
BERT模型的3個優(yōu)點(diǎn):
- 在11個NLP任務(wù)上取得SOAT成績.
- 利用了Transformer的并行化能力以及長語句捕捉語義依賴和結(jié)構(gòu)依賴.
- BERT實(shí)現(xiàn)了雙向Transformer并為后續(xù)的微調(diào)任務(wù)留出足夠的空間.
-
BERT模型的4個缺點(diǎn):
- BERT模型太大, 太慢.
- BERT模型中的中文模型是以字為基本token單位的, 無法利用詞向量, 無法識別生僻詞.
- BERT模型中的MLM任務(wù), [MASK]標(biāo)記在訓(xùn)練階段出現(xiàn), 預(yù)測階段不出現(xiàn), 這種偏差會對模型有一定影響.
- BERT模型的MLM任務(wù), 每個batch只有15%的token參與了訓(xùn)練, 造成大量文本數(shù)據(jù)的"無用", 收斂速度慢, 需要的算力和算時都大大提高.
-
長文本處理如果要利用BERT的話, 需要進(jìn)行截斷處理.
- 第一種方式就是只保留前面510個token.
- 第二種方式就是只保留后面510個token.
- 第三種方式就是前后分別保留一部分token, 總數(shù)是510.
-
BERT中MLM任務(wù)中的[MASK]是以一種顯示的方式告訴模型"這個詞我不告訴你, 你自己從上下文里猜", 非常類似于同學(xué)們在做完形填空. 如果[MASK]意外的部分全部都用原始token, 模型會學(xué)習(xí)到"如果當(dāng)前詞是[MASK], 就根據(jù)其他詞的信息推斷這個詞; 如果當(dāng)前詞是一個正常的單詞, 就直接照抄". 這樣一來, 到了fine-tunning階段, 所有單詞都是正常單詞了, 模型就會照抄所有單詞, 不再提取單詞之間的依賴關(guān)系了.
-
BERT中MLM任務(wù)以10%的概率填入random token, 就是讓模型時刻處于"緊張情緒"中, 讓模型搞不清楚當(dāng)前看到的token是真實(shí)的單詞還是被隨機(jī)替換掉的單詞, 這樣模型在任意的token位置就只能把當(dāng)前token的信息和上下文信息結(jié)合起來做綜合的判斷和建模. 這樣一來, 到了fine-tunning階段, 模型也會同時提取這兩方面的信息, 因?yàn)槟P?#34;心理很緊張", 它不知道當(dāng)前看到的這個token, 所謂的"正常單詞"到底有沒有"提前被動過手腳".