BERT基礎(chǔ)教程:Transformer大模型實戰(zhàn)
本書聚焦谷歌公司開發(fā)的BERT自然語言處理模型,由淺入深地介紹了BERT的工作原理、BERT的各種變體及其應用。本書呈現(xiàn)了大量示意圖、代碼和實例,詳細解析了如何訓練BERT模型、如何使用BERT模型執(zhí)行自然語言推理任務、文本摘要任務、問答任務、命名實體識別任務等各種下游任務,以及如何將BERT模型應用于多種語言。通讀本書后,讀者不僅能夠全面了解有關(guān)BERT的各種概念、術(shù)語和原理,還能夠使用BERT模型及其變體執(zhí)行各種自然語言處理任務。
輕松上手:循序漸進,引導你親手訓練和理解BERT模型
以簡馭繁:示意圖豐富,逐步拆解復雜原理,小白也能看懂
運用自如:呈現(xiàn)多種下游任務,凝聚實戰(zhàn)經(jīng)驗,助你靈活運用
詳細系統(tǒng):詳細講解十余種BERT變體的原理,配套大量示例和習題
【作者簡介】
蘇達哈爾!だS昌迪蘭(Sudharsan Ravichandiran)
熱愛開源社區(qū)的數(shù)據(jù)科學家,研究方向為深度學習和強化學習的實際應用,在自然語言處理和計算機視覺等領(lǐng)域都頗有建樹,另著有《Python強化學習實戰(zhàn)》。
【譯者簡介】
周參
就職于谷歌,任軟件工程師,研究方向為自然語言處理。工作之余的興趣是研究人工智能領(lǐng)域機器學習方向以及新的模型算法,并將多種深度學習模型應用于實際問題中。
第 一部分 開始使用BERT
第 1 章 Transformer 概覽 2
1.1 Transformer 簡介 2
1.2 理解編碼器 3
1.2.1 自注意力機制 5
1.2.2 多頭注意力層 14
1.2.3 通過位置編碼來學習位置 16
1.2.4 前饋網(wǎng)絡層 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)絡層 34
1.3.4 疊加和歸一組件 34
1.3.5 線性層和softmax 層 35
1.3.6 解碼器總覽 36
1.4 整合編碼器和解碼器 38
1.5 訓練Transformer 39
1.6 小結(jié) 39
1.7 習題 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 模型預訓練 48
2.4.1 輸入數(shù)據(jù) 49
2.4.2 預訓練策略 53
2.4.3 預訓練過程 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 習題 72
2.8 深入閱讀 72
第3章 BERT實戰(zhàn) 73
3.1 預訓練的BERT模型 73
3.2 從預訓練的BERT模型中提取嵌入 74
3.2.1 Hugging Face的Transformers 庫 77
3.2.2 BERT 嵌入的生成 77
3.3 從BERT 的所有編碼器層中提取嵌入 81
3.4 針對下游任務進行微調(diào) .85
3.4.1 文本分類任務 86
3.4.2 自然語言推理任務 91
3.4.3 問答任務 93
3.4.4 命名實體識別任務 97
3.5 小結(jié) 98
3.6 習題 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 訓練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 移除下句預測任務 110
4.3.3 用更多的數(shù)據(jù)集進行訓練 111
4.3.4 以大批量的方式進行訓練 111
4.3.5 使用字節(jié)級字節(jié)對編碼作為子詞詞元化算法 111
4.4 了解ELECTRA 114
4.4.1 了解替換標記檢測任務 114
4.4.2 ELECTRA 的生成器和判別器 117
4.4.3 訓練ELECTRA 模型 120
4.4.4 高效的訓練方法 121
4.5 用SpanBERT 預測文本段 122
4.5.1 了解SpanBERT 的架構(gòu) 122
4.5.2 深入了解SpanBERT 124
4.5.3 將預訓練的SpanBERT用于問答任務 125
4.6 小結(jié) 126
4.7 習題 127
4.8 深入閱讀 127
第5章 BERT 變體(下):基于知識蒸餾 128
5.1 知識蒸餾簡介 129
5.2 DistilBERT 模型——BERT模型的知識蒸餾版本 134
5.2.1 教師 學生架構(gòu) 134
5.2.2 訓練學生BERT 模型(DistilBERT 模型) 136
5.3 TinyBERT 模型簡介 138
5.3.1 教師 學生架構(gòu) 139
5.3.2 TinyBERT 模型的蒸餾 140
5.3.3 最終損失函數(shù) 145
5.3.4 訓練學生BERT模型(TinyBERT 模型) 145
5.4 將知識從BERT 模型遷移到神經(jīng)網(wǎng)絡中 149
5.4.1 教師 學生架構(gòu) 149
5.4.2 訓練學生網(wǎng)絡 151
5.4.3 數(shù)據(jù)增強方法 151
5.5 小結(jié) 153
5.6 習題 153
5.7 深入閱讀 154
第三部分 BERT 模型的應用
第6章 用于文本摘要任務的BERTSUM 模型 156
6.1 文本摘要任務 156
6.1.1 提取式摘要任務 157
6.1.2 抽象式摘要任務 158
6.2 為文本摘要任務微調(diào)BERT模型 158
6.2.1 使用BERT模型執(zhí)行提取式摘要任務 158
6.2.2 使用BERT 模型執(zhí)行抽象式摘要任務 167
6.3 理解ROUGE 評估指標 169
6.3.1 理解ROUGE-N 指標 169
6.3.2 理解ROUGE-L 指標 171
6.4 BERTSUM 模型的性能 172
6.5 訓練BERTSUM 模型 172
6.6 小結(jié) 174
6.7 習題 174
6.8 深入閱讀 175
第7章 將BERT 模型應用于其他語言 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 預訓練策略 188
7.3.2 預訓練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 習題 206
7.8 深入閱讀 207
第8章 Sentence-BERT模型和特定領(lǐng)域的BERT 模型 208
8.1 用Sentence-BERT模型生成句子特征 208
8.1.1 計算句子特征 209
8.1.2 了解Sentence-BERT模型 211
8.2 sentence-transformers庫 217
8.2.1 使用Sentence-BERT計算句子特征 217
8.2.2 計算句子的相似度 218
8.2.3 加載自定義模型 219
8.2.4 用Sentence-BERT模型尋找類似句子 220
8.3 通過知識蒸餾遷移多語言嵌入 221
8.3.1 教師 學生架構(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 習題 233
8.7 深入閱讀 233
第9 章 VideoBERT模型和BART模型 234
9.1 VideoBERT模型學習語言及視頻特征 235
9.1.1 預訓練VideoBERT模型 235
9.1.2 數(shù)據(jù)源和預處理 239
9.1.3 VideoBERT模型的應用 240
9.2 了解BART模型 241
9.2.1 BART模型的架構(gòu) 241
9.2.2 比較不同的預訓練目標 245
9.2.3 使用BART 模型執(zhí)行文本摘要任務 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 習題 259
9.6 深入閱讀 259
習題參考答案 260