bert簡介 Bert基礎介紹

2021-10-17 06:33:27 字數 1543 閱讀 4821

bert理解

1、預訓練模型

bert是乙個預訓練的模型,那麼什麼是預訓練呢?

假設已有a訓練集,先用a對網路進行預訓練,在a任務上學會網路引數,然後儲存以備後用。(預訓練過程)

當來乙個新的任務b,採取相同的網路結構,網路引數初始化的時候可以載入a訓練集學習好的引數,其他的高層引數隨機初始化,之後用b任務的訓練資料來訓練網路,當載入的引數保持不變時,稱為"frozen",當載入的引數隨著b任務的訓練進行不斷的改變,稱為「fine-tuning(微調)」,即更好地把引數進行調整使得更適合當前的b任務。(遷移transformer)

2、基礎任務實現

(1)序列標註:分詞、實體識別、語義標註等; (2)分類任務:文字分類、情感計算、立場分類、方面級情感分析; (3)句子關係判斷:entailment(文字蘊含)、qa、自然語言推理; (4)生成式任務:機器翻譯、文字摘要;

3、bert預訓練模型的兩個子任務

為什麼bert對文字處理能力強:

(1)marked language model(mlm):語言模型

輸入乙個文字,bert隨機mark句子中的詞,讓模型根據mark後的句子,去**被mark的詞是什麼?

具體的訓練資料構造方法是,對每個資料句子中 15% 的概率隨機抽取 token,以 80% 的概率替換為 [mask],10% 的概率替換為其他 token,10% 的概率保持不變。之所以不全替換為 [mask],是為了減少 pre-training 和 fine-tuning 階段輸入分布的不一致,因為 fine-tuning 階段的輸入是沒有 [mask] 的。

(2)next sentence prediction(nsp):學習上下文關係

任務除了理解單個句子以外,還需要理解兩個句子的關係,比如問答和推理任務。為了讓模型能夠理解學習句對之間的關係,所以提出了第二個預訓練任務nsp。nsp取[cls]的最終輸出進行二分類,判斷當前輸入的兩句話是否連貫,類似句子粒度的語言模型,讓模型學習輸入句子對之間的關係。

具體的訓練資料構造方法是,對於 sentence a,sentence b 以 50% 的概率為 sentence a 的下一句,以 50% 的概率進行隨機負取樣,即從語料庫中隨機抽取乙個句子。

4、預訓練資料集

bookcorpus資料集(800m words)

english wikipedia資料集(2,500m words)

後續有很多bert模型,並加入諸如新聞,推特的新資料集,比較有名的如下:

robert (中/英文預訓練模型):改進bert子任務

xlnet(中/英文預訓練模型):改進bert子任務

albert(中/英文預訓練模型):壓縮bert引數,使其效能與bert接近

5、實驗資料以及對應的nlp任務

mnli:蘊含關係推斷

qqp:問題對是否等價

qnli:句子是都回答問句

sst-2:情感分析

cola:句子語言性判斷

sts-b:語義相似

mrpc:句子對是都語義等價

rte:蘊含關係推斷

wnli:蘊含關係推斷

image.png

bert簡介 bert中文微調

最近學習了一點兒關於bert中文微調的知識,並上手實踐了一下,再次進行記錄。game apex是個新出的吃雞遊戲。technology google將要推出tensorflow2.0。中文情感分類任務如何對bert語言模型微調 blog.csdn.net bert簡介及中文分類 blog.csdn....

BERT簡要介紹

bert bidirectional encoder representation from transformers 網路架構由 jacob devlin 等人提出用於預訓練,學習在給定上下文下給出詞的 embedding 表示。bert 採用了 transformer 架構的編碼器部分用於學習詞...

Bert 理解基礎

bert理解的基礎 1 word embedding 2 rnn 3 seq2seq 4 transformer word embedding脈絡 w2v 詞對映到低維稠密空間,使得語義上相似的兩個詞在語義空間的距離也會比較近。w2v的問題 語義是上下文相關的。而w2v訓練出來詞的向量始終只有乙個。...