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訓練出來詞的向量始終只有乙個。...