本書全程圖解式講解,通過大量全彩插圖拆解概念,讓讀者真正告別學(xué)習(xí)大模型的枯燥和復(fù)雜。
全書分為三部分,依次介紹語言模型的原理、應(yīng)用及優(yōu)化。第一部分 理解語言模型(第1~3章),解析語言模型的核心概念,包括詞元、嵌入向量及Transformer架構(gòu),幫助讀者建立基礎(chǔ)認(rèn)知。第二部分 使用預(yù)訓(xùn)練語言模型(第4~9章),介紹如何使用大模型進(jìn)行文本分類、聚類、語義搜索、文本生成及多模態(tài)擴(kuò)展,提升模型的應(yīng)用能力。第三部分 訓(xùn)練和微調(diào)語言模型(第10~12章),探討大模型的訓(xùn)練與微調(diào)方法,包括嵌入模型的構(gòu)建、分類任務(wù)的優(yōu)化及生成式模型的微調(diào),以適應(yīng)特定需求。
本書適合對大模型感興趣的開發(fā)者、研究人員和行業(yè)從業(yè)者。讀者無須深度學(xué)習(xí)基礎(chǔ),只要會用Python,就可以通過本書深入理解大模型的原理并上手大模型應(yīng)用開發(fā)。書中示例還可以一鍵在線運行,讓學(xué)習(xí)過程更輕松。
1.【直觀】300幅全彩插圖,極致視覺化呈現(xiàn)
2.【全面】涵蓋大模型原理、應(yīng)用開發(fā)、優(yōu)化
3.【實操】真實數(shù)據(jù)集,實用項目,典型場景
4.【熱點】18幅圖深度解讀DeepSeek底層原理
5.【附贈】一鍵運行代碼 大模型面試題200問
6.【視頻】大量線上拓展資料,包括文章、視頻
Jay Alammar
Cohere總監(jiān)兼工程研究員,知名大模型技術(shù)博客Language Models & Co作者,DeepLearning.AI和Udacity熱門機(jī)器學(xué)習(xí)和自然語言處理課程作者。
Jay的圖解系列文章The Illustrated TransformerThe Illustrated DeepSeek-R1全網(wǎng)瘋傳,累積了幾百萬專業(yè)讀者。
對本書的贊譽 xi
對本書中文版的贊譽 xiii
譯者序 xv
中文版序 xxi
前言 xxiii
第 一部分 理解語言模型
第 1章 大語言模型簡介 3
1.1 什么是語言人工智能 4
1.2 語言人工智能的近期發(fā)展史 4
1.2.1 將語言表示為詞袋模型 5
1.2.2 用稠密向量嵌入獲得更好的表示 7
1.2.3 嵌入的類型 9
1.2.4 使用注意力機(jī)制編解碼上下文 10
1.2.5 Attention Is All You Need 13
1.2.6 表示模型:僅編碼器模型 16
1.2.7 生成模型:僅解碼器模型 18
1.2.8 生成式AI元年 20
1.3 LLM定義的演變 22
1.4 LLM的訓(xùn)練范式 22
1.5 LLM的應(yīng)用 23
1.6 開發(fā)和使用負(fù)責(zé)任的LLM 24
1.7 有限的資源就夠了 25
1.8 與LLM交互 25
1.8.1 專有模型 26
1.8.2 開源模型 26
1.8.3 開源框架 27
1.9 生成你的第 一段文本 28
1.10 小結(jié) 30
第 2章 詞元和嵌入 31
2.1 LLM的分詞 32
2.1.1 分詞器如何處理語言模型的輸入 32
2.1.2 下載和運行LLM 33
2.1.3 分詞器如何分解文本 36
2.1.4 詞級、子詞級、字符級與字節(jié)級分詞 37
2.1.5 比較訓(xùn)練好的LLM分詞器 39
2.1.6 分詞器屬性 47
2.2 詞元嵌入 48
2.2.1 語言模型為其分詞器的詞表保存嵌入 49
2.2.2 使用語言模型創(chuàng)建與上下文相關(guān)的詞嵌入 49
2.3 文本嵌入(用于句子和整篇文檔) 52
2.4 LLM之外的詞嵌入 53
2.4.1 使用預(yù)訓(xùn)練詞嵌入 53
2.4.2 word2vec算法與對比訓(xùn)練 54
2.5 推薦系統(tǒng)中的嵌入 57
2.5.1 基于嵌入的歌曲推薦 57
2.5.2 訓(xùn)練歌曲嵌入模型 58
2.6 小結(jié) 60
第3章 LLM的內(nèi)部機(jī)制 61
3.1 Transformer模型概述 62
3.1.1 已訓(xùn)練Transformer LLM的輸入和輸出 62
3.1.2 前向傳播的組成 64
3.1.3 從概率分布中選擇單個詞元(采樣/解碼) 66
3.1.4 并行詞元處理和上下文長度 68
3.1.5 通過緩存鍵 值加速生成過程 70
3.1.6 Transformer塊的內(nèi)部結(jié)構(gòu) 71
3.2 Transformer架構(gòu)的最新改進(jìn) 79
3.2.1 更高效的注意力機(jī)制 79
3.2.2 Transformer塊 83
3.2.3 位置嵌入:RoPE 85
3.2.4 其他架構(gòu)實驗和改進(jìn) 87
3.3 小結(jié) 87
第二部分 使用預(yù)訓(xùn)練語言模型
第4章 文本分類 91
4.1 電影評論的情感分析 92
4.2 使用表示模型進(jìn)行文本分類 93
4.3 模型選擇 94
4.4 使用特定任務(wù)模型 96
4.5 利用嵌入向量的分類任務(wù) 99
4.5.1 監(jiān)督分類 99
4.5.2 沒有標(biāo)注數(shù)據(jù)怎么辦 102
4.6 使用生成模型進(jìn)行文本分類 105
4.6.1 使用T5 106
4.6.2 使用ChatGPT進(jìn)行分類 110
4.7 小結(jié) 113
第5章 文本聚類和主題建模 114
5.1 ArXiv文章:計算與語言 115
5.2 文本聚類的通用流程 116
5.2.1 嵌入文檔 116
5.2.2 嵌入向量降維 117
5.2.3 對降維后的嵌入向量進(jìn)行聚類 119
5.2.4 檢查生成的簇 120
5.3 從文本聚類到主題建模 122
5.3.1 BERTopic:一個模塊化主題建?蚣 124
5.3.2 添加特殊的樂高積木塊 131
5.3.3 文本生成的樂高積木塊 135
5.4 小結(jié) 138
第6章 提示工程 140
6.1 使用文本生成模型 140
6.1.1 選擇文本生成模型 140
6.1.2 加載文本生成模型 141
6.1.3 控制模型輸出 143
6.2 提示工程簡介 145
6.2.1 提示詞的基本要素 145
6.2.2 基于指令的提示詞 147
6.3 高級提示工程 149
6.3.1 提示詞的潛在復(fù)雜性 149
6.3.2 上下文學(xué)習(xí):提供示例 152
6.3.3 鏈?zhǔn)教崾荆悍纸鈫栴} 153
6.4 使用生成模型進(jìn)行推理 155
6.4.1 思維鏈:先思考再回答 156
6.4.2 自洽性:采樣輸出 159
6.4.3 思維樹:探索中間步驟 160
6.5 輸出驗證 161
6.5.1 提供示例 162
6.5.2 語法:約束采樣 164
6.6 小結(jié) 167
第7章 高級文本生成技術(shù)與工具 168
7.1 模型輸入/輸出:基于LangChain加載量化模型 169
7.2 鏈:擴(kuò)展LLM的能力 171
7.2.1 鏈?zhǔn)郊軜?gòu)的關(guān)鍵節(jié)點:提示詞模板 172
7.2.2 多提示詞鏈?zhǔn)郊軜?gòu) 174
7.3 記憶:構(gòu)建LLM的對話回溯能力 177
7.3.1 對話緩沖區(qū) 178
7.3.2 窗口式對話緩沖區(qū) 180
7.3.3 對話摘要 181
7.4 智能體:構(gòu)建LLM系統(tǒng) 185
7.4.1 智能體的核心機(jī)制:遞進(jìn)式推理 186
7.4.2 LangChain中的ReAct實現(xiàn) 187
7.5 小結(jié) 190
第8章 語義搜索與RAG 191
8.1 語義搜索與RAG技術(shù)全景 191
8.2 語言模型驅(qū)動的語義搜索實踐 193
8.2.1 稠密檢索 193
8.2.2 重排序 204
8.2.3 檢索評估指標(biāo)體系 207
8.3 RAG 211
8.3.1 從搜索到RAG 212
8.3.2 示例:使用LLM API進(jìn)行基于知識的生成 213
8.3.3 示例:使用本地模型的RAG 213
8.3.4 高級RAG技術(shù) 215
8.3.5 RAG效果評估 217
8.4 小結(jié) 218
第9章 多模態(tài)LLM 219
9.1 視覺Transformer 220
9.2 多模態(tài)嵌入模型 222
9.2.1 CLIP:構(gòu)建跨模態(tài)橋梁 224
9.2.2 CLIP的跨模態(tài)嵌入生成機(jī)制 224
9.2.3 OpenCLIP 226
9.3 讓文本生成模型具備多模態(tài)能力 231
9.3.1 BLIP-2:跨越模態(tài)鴻溝 231
9.3.2 多模態(tài)輸入預(yù)處理 235
9.3.3 用例1:圖像描述 237
9.3.4 用例2:基于聊天的多模態(tài)提示詞 240
9.4 小結(jié) 242
第三部分 訓(xùn)練和微調(diào)語言模型
第 10章 構(gòu)建文本嵌入模型 247
10.1 嵌入模型 247
10.2 什么是對比學(xué)習(xí) 249
10.3 SBERT 251
10.4 構(gòu)建嵌入模型 253
10.4.1 生成對比樣本 253
10.4.2 訓(xùn)練模型 254
10.4.3 深入評估 257
10.4.4 損失函數(shù) 258
10.5 微調(diào)嵌入模型 265
10.5.1 監(jiān)督學(xué)習(xí) 265
10.5.2 增強(qiáng)型SBERT 267
10.6 無監(jiān)督學(xué)習(xí) 271
10.6.1 TSDAE 272
10.6.2 使用TSDAE進(jìn)行領(lǐng)域適配 275
10.7 小結(jié) 276
第 11章 為分類任務(wù)微調(diào)表示模型 277
11.1 監(jiān)督分類 277
11.1.1 微調(diào)預(yù)訓(xùn)練的BERT模型 279
11.1.2 凍結(jié)層 281
11.2 少樣本分類 286
11.2.1 SetFit:少樣本場景下的高效微調(diào)方案 286
11.2.2 少樣本分類的微調(diào) 290
11.3 基于掩碼語言建模的繼續(xù)預(yù)訓(xùn)練 292
11.4 命名實體識別 297
11.4.1 數(shù)據(jù)準(zhǔn)備 298
11.4.2 命名實體識別的微調(diào) 303
11.5 小結(jié) 305
第 12章 微調(diào)生成模型 306
12.1 LLM訓(xùn)練三步走:預(yù)訓(xùn)練、監(jiān)督微調(diào)和偏好調(diào)優(yōu) 306
12.2 監(jiān)督微調(diào) 308
12.2.1 全量微調(diào) 308
12.2.2 參數(shù)高效微調(diào) 309
12.3 使用QLoRA進(jìn)行指令微調(diào) 317
12.3.1 模板化指令數(shù)據(jù) 317
12.3.2 模型量化 318
12.3.3 LoRA配置 319
12.3.4 訓(xùn)練配置 320
12.3.5 訓(xùn)練 321
12.3.6 合并權(quán)重 322
12.4 評估生成模型 322
12.4.1 詞級指標(biāo) 323
12.4.2 基準(zhǔn)測試 323
12.4.3 排行榜 324
12.4.4 自動評估 325
12.4.5 人工評估 325
12.5 偏好調(diào)優(yōu)、對齊 326
12.6 使用獎勵模型實現(xiàn)偏好評估自動化 327
12.6.1 獎勵模型的輸入和輸出 328
12.6.2 訓(xùn)練獎勵模型 329
12.6.3 訓(xùn)練無獎勵模型 332
12.7 使用DPO進(jìn)行偏好調(diào)優(yōu) 333
12.7.1 對齊數(shù)據(jù)的模板化 333
12.7.2 模型量化 334
12.7.3 訓(xùn)練配置 335
12.7.4 訓(xùn)練 336
12.8 小結(jié) 337
附錄 圖解DeepSeek-R1 338