BERT基礎(chǔ)教程:Transformer大模型實(shí)戰(zhàn)
本書聚焦谷歌公司開發(fā)的BERT自然語言處理模型,由淺入深地介紹了BERT的工作原理、BERT的各種變體及其應(yīng)用。本書呈現(xiàn)了大量示意圖、代碼和實(shí)例,詳細(xì)解析了如何訓(xùn)練BERT模型、如何使用BERT模型執(zhí)行自然語言推理任務(wù)、文本摘要任務(wù)、問答任務(wù)、命名實(shí)體識別任務(wù)等各種下游任務(wù),以及如何將BERT模型應(yīng)用于多種語言。通讀本書后,讀者不僅能夠全面了解有關(guān)BERT的各種概念、術(shù)語和原理,還能夠使用BERT模型及其變體執(zhí)行各種自然語言處理任務(wù)。
輕松上手:循序漸進(jìn),引導(dǎo)你親手訓(xùn)練和理解BERT模型
以簡馭繁:示意圖豐富,逐步拆解復(fù)雜原理,小白也能看懂
運(yùn)用自如:呈現(xiàn)多種下游任務(wù),凝聚實(shí)戰(zhàn)經(jīng)驗(yàn),助你靈活運(yùn)用
詳細(xì)系統(tǒng):詳細(xì)講解十余種BERT變體的原理,配套大量示例和習(xí)題
【作者簡介】
蘇達(dá)哈爾桑·拉維昌迪蘭(Sudharsan Ravichandiran)
熱愛開源社區(qū)的數(shù)據(jù)科學(xué)家,研究方向?yàn)樯疃葘W(xué)習(xí)和強(qiáng)化學(xué)習(xí)的實(shí)際應(yīng)用,在自然語言處理和計(jì)算機(jī)視覺等領(lǐng)域都頗有建樹,另著有《Python強(qiáng)化學(xué)習(xí)實(shí)戰(zhàn)》。
【譯者簡介】
周參
就職于谷歌,任軟件工程師,研究方向?yàn)樽匀徽Z言處理。工作之余的興趣是研究人工智能領(lǐng)域機(jī)器學(xué)習(xí)方向以及新的模型算法,并將多種深度學(xué)習(xí)模型應(yīng)用于實(shí)際問題中。
第 一部分 開始使用BERT
第 1 章 Transformer 概覽 2
1.1 Transformer 簡介 2
1.2 理解編碼器 3
1.2.1 自注意力機(jī)制 5
1.2.2 多頭注意力層 14
1.2.3 通過位置編碼來學(xué)習(xí)位置 16
1.2.4 前饋網(wǎng)絡(luò)層 19
1.2.5 疊加和歸一組件 19
1.2.6 編碼器總覽 20
1.3 理解解碼器 21
1.3.1 帶掩碼的多頭注意力層 25
1.3.2 多頭注意力層 30
1.3.3 前饋網(wǎng)絡(luò)層 34
1.3.4 疊加和歸一組件 34
1.3.5 線性層和softmax 層 35
1.3.6 解碼器總覽 36
1.4 整合編碼器和解碼器 38
1.5 訓(xùn)練Transformer 39
1.6 小結(jié) 39
1.7 習(xí)題 40
1.8 深入閱讀 40
第 2章 了解BERT 模型 41
2.1 BERT 的基本理念 41
2.2 BERT 的工作原理 43
2.3 BERT 的配置 45
2.3.1 BERT-base 46
2.3.2 BERT-large 46
2.3.3 BERT 的其他配置 47
2.4 BERT 模型預(yù)訓(xùn)練 48
2.4.1 輸入數(shù)據(jù) 49
2.4.2 預(yù)訓(xùn)練策略 53
2.4.3 預(yù)訓(xùn)練過程 61
2.5 子詞詞元化算法 63
2.5.1 字節(jié)對編碼 64
2.5.2 字節(jié)級字節(jié)對編碼 69
2.5.3 WordPiece 69
2.6 小結(jié) 71
2.7 習(xí)題 72
2.8 深入閱讀 72
第3章 BERT實(shí)戰(zhàn) 73
3.1 預(yù)訓(xùn)練的BERT模型 73
3.2 從預(yù)訓(xùn)練的BERT模型中提取嵌入 74
3.2.1 Hugging Face的Transformers 庫 77
3.2.2 BERT 嵌入的生成 77
3.3 從BERT 的所有編碼器層中提取嵌入 81
3.4 針對下游任務(wù)進(jìn)行微調(diào) .85
3.4.1 文本分類任務(wù) 86
3.4.2 自然語言推理任務(wù) 91
3.4.3 問答任務(wù) 93
3.4.4 命名實(shí)體識別任務(wù) 97
3.5 小結(jié) 98
3.6 習(xí)題 99
3.7 深入閱讀 99
第二部分 探索BERT 變體
第4章 BERT 變體(上):ALBERT、RoBERTa、ELECTRA和SpanBERT 102
4.1 BERT 的精簡版ALBERT 103
4.1.1 跨層參數(shù)共享 103
4.1.2 嵌入層參數(shù)因子分解 104
4.1.3 訓(xùn)練ALBERT 模型 105
4.1.4 對比ALBERT與BERT 106
4.2 從ALBERT 中提取嵌入 107
4.3 了解RoBERTa 108
4.3.1 使用動態(tài)掩碼而不是靜態(tài)掩碼 108
4.3.2 移除下句預(yù)測任務(wù) 110
4.3.3 用更多的數(shù)據(jù)集進(jìn)行訓(xùn)練 111
4.3.4 以大批量的方式進(jìn)行訓(xùn)練 111
4.3.5 使用字節(jié)級字節(jié)對編碼作為子詞詞元化算法 111
4.4 了解ELECTRA 114
4.4.1 了解替換標(biāo)記檢測任務(wù) 114
4.4.2 ELECTRA 的生成器和判別器 117
4.4.3 訓(xùn)練ELECTRA 模型 120
4.4.4 高效的訓(xùn)練方法 121
4.5 用SpanBERT 預(yù)測文本段 122
4.5.1 了解SpanBERT 的架構(gòu) 122
4.5.2 深入了解SpanBERT 124
4.5.3 將預(yù)訓(xùn)練的SpanBERT用于問答任務(wù) 125
4.6 小結(jié) 126
4.7 習(xí)題 127
4.8 深入閱讀 127
第5章 BERT 變體(下):基于知識蒸餾 128
5.1 知識蒸餾簡介 129
5.2 DistilBERT 模型——BERT模型的知識蒸餾版本 134
5.2.1 教師 學(xué)生架構(gòu) 134
5.2.2 訓(xùn)練學(xué)生BERT 模型(DistilBERT 模型) 136
5.3 TinyBERT 模型簡介 138
5.3.1 教師 學(xué)生架構(gòu) 139
5.3.2 TinyBERT 模型的蒸餾 140
5.3.3 最終損失函數(shù) 145
5.3.4 訓(xùn)練學(xué)生BERT模型(TinyBERT 模型) 145
5.4 將知識從BERT 模型遷移到神經(jīng)網(wǎng)絡(luò)中 149
5.4.1 教師 學(xué)生架構(gòu) 149
5.4.2 訓(xùn)練學(xué)生網(wǎng)絡(luò) 151
5.4.3 數(shù)據(jù)增強(qiáng)方法 151
5.5 小結(jié) 153
5.6 習(xí)題 153
5.7 深入閱讀 154
第三部分 BERT 模型的應(yīng)用
第6章 用于文本摘要任務(wù)的BERTSUM 模型 156
6.1 文本摘要任務(wù) 156
6.1.1 提取式摘要任務(wù) 157
6.1.2 抽象式摘要任務(wù) 158
6.2 為文本摘要任務(wù)微調(diào)BERT模型 158
6.2.1 使用BERT模型執(zhí)行提取式摘要任務(wù) 158
6.2.2 使用BERT 模型執(zhí)行抽象式摘要任務(wù) 167
6.3 理解ROUGE 評估指標(biāo) 169
6.3.1 理解ROUGE-N 指標(biāo) 169
6.3.2 理解ROUGE-L 指標(biāo) 171
6.4 BERTSUM 模型的性能 172
6.5 訓(xùn)練BERTSUM 模型 172
6.6 小結(jié) 174
6.7 習(xí)題 174
6.8 深入閱讀 175
第7章 將BERT 模型應(yīng)用于其他語言 176
7.1 理解多語言BERT 模型 177
7.2 M-BERT 模型的多語言表現(xiàn) 182
7.2.1 詞匯重疊的影響 182
7.2.2 跨文本書寫的通用性 183
7.2.3 跨類型特征的通用性 184
7.2.4 語言相似性的影響 184
7.2.5 語碼混用和音譯的影響 185
7.3 跨語言模型 187
7.3.1 預(yù)訓(xùn)練策略 188
7.3.2 預(yù)訓(xùn)練XLM模型 190
7.3.3 對XLM模型的評估 191
7.4 理解XLM-R模型 192
7.5 特定語言的BERT模型 194
7.5.1 法語的FlauBERT模型 194
7.5.2 西班牙語的BETO模型 196
7.5.3 荷蘭語的BERTje模型 198
7.5.4 德語的BERT模型 199
7.5.5 漢語的BERT模型 200
7.5.6 日語的BERT模型 202
7.5.7 芬蘭語的FinBERT模型 202
7.5.8 意大利語的UmBERTo模型 203
7.5.9 葡萄牙語的BERTimbau模型 204
7.5.10 俄語的RuBERT 模型 204
7.6 小結(jié) 206
7.7 習(xí)題 206
7.8 深入閱讀 207
第8章 Sentence-BERT模型和特定領(lǐng)域的BERT 模型 208
8.1 用Sentence-BERT模型生成句子特征 208
8.1.1 計(jì)算句子特征 209
8.1.2 了解Sentence-BERT模型 211
8.2 sentence-transformers庫 217
8.2.1 使用Sentence-BERT計(jì)算句子特征 217
8.2.2 計(jì)算句子的相似度 218
8.2.3 加載自定義模型 219
8.2.4 用Sentence-BERT模型尋找類似句子 220
8.3 通過知識蒸餾遷移多語言嵌入 221
8.3.1 教師 學(xué)生架構(gòu) 223
8.3.2 使用多語言模型 224
8.4 特定領(lǐng)域的BERT模型:ClinicalBERT模型和BioBERT模型 225
8.4.1 ClinicalBERT模型 225
8.4.2 BioBERT模型 229
8.5 小結(jié) 232
8.6 習(xí)題 233
8.7 深入閱讀 233
第9 章 VideoBERT模型和BART模型 234
9.1 VideoBERT模型學(xué)習(xí)語言及視頻特征 235
9.1.1 預(yù)訓(xùn)練VideoBERT模型 235
9.1.2 數(shù)據(jù)源和預(yù)處理 239
9.1.3 VideoBERT模型的應(yīng)用 240
9.2 了解BART模型 241
9.2.1 BART模型的架構(gòu) 241
9.2.2 比較不同的預(yù)訓(xùn)練目標(biāo) 245
9.2.3 使用BART 模型執(zhí)行文本摘要任務(wù) 245
9.3 探討B(tài)ERT庫 246
9.3.1 ktrain庫 247
9.3.2 bert-as-service庫 255
9.4 小結(jié) 258
9.5 習(xí)題 259
9.6 深入閱讀 259
習(xí)題參考答案 260