圖解大模型:生成式AI原理與實戰(全彩) Hands-On Large Language Models: Language Understanding and Generation

[沙特] 傑伊·阿拉馬爾(Jay Alammar) [荷] 馬爾滕·格魯滕多斯特(Maarten Grootendorst)

  • 圖解大模型:生成式AI原理與實戰(全彩)-preview-1
  • 圖解大模型:生成式AI原理與實戰(全彩)-preview-2
圖解大模型:生成式AI原理與實戰(全彩)-preview-1

相關主題

商品描述

本書全程圖解式講解,通過大量全彩插圖拆解概念,讓讀者真正告別學習大模型的枯燥和復雜。

 

全書分為三部分,依次介紹語言模型的原理、應用及優化。第一部分 理解語言模型(第1~3章),解析語言模型的核心概念,包括詞元、嵌入向量及Transformer架構,幫助讀者建立基礎認知。第二部分 使用預訓練語言模型(第4~9章),介紹如何使用大模型進行文本分類、聚類、語義搜索、文本生成及多模態擴展,提升模型的應用能力。第三部分 訓練和微調語言模型(第10~12章),探討大模型的訓練與微調方法,包括嵌入模型的構建、分類任務的優化及生成式模型的微調,以適應特定需求。

 

本書適合對大模型感興趣的開發者、研究人員和行業從業者。讀者無須深度學習基礎,只要會用Python,就可以通過本書深入理解大模型的原理並上手大模型應用開發。書中示例還可以一鍵在線運行,讓學習過程更輕松。

作者簡介

Jay Alammar

Cohere總監兼工程研究員,知名大模型技術博客Language Models & Co作者,DeepLearning.AI和Udacity熱門機器學習和自然語言處理課程作者。

 

Jay的圖解系列文章“The Illustrated Transformer”“The Illustrated DeepSeek-R1”全網瘋傳,累積了幾百萬專業讀者。

 

 

Maarten Grootendorst

IKNL(荷蘭綜合癌症中心)高級臨床數據科學家,知名大模型技術博客博主,BERTopic等開源大模型軟件包作者(下載量超百萬),DeepLearning.AI和Udacity熱門機器學習和自然語言處理課程作者。

 

譯者李博傑

智能體初創公司PINE AI聯合創始人、首席科學家。曾任華為電腦網絡與協議實驗室副首席專家,入選華為首批“天才少年”項目。2019年獲中國科學技術大學(USTC)與微軟亞洲研究院(MSRA)聯合培養博士學位,曾獲ACM中國優秀博士學位論文獎和微軟學者獎學金。在SIGCOMM、SOSP、NSDI、USENIX ATC和PLDI等頂級會議上發表多篇論文。

 

目錄大綱

對本書的贊譽 xi

對本書中文版的贊譽 xiii

譯者序 xv

中文版序 xxi

前言 xxiii

第 一部分 理解語言模型

第 1章 大語言模型簡介 3

1.1 什麽是語言人工智能 4

1.2 語言人工智能的近期發展史 4

1.2.1 將語言表示為詞袋模型 5

1.2.2 用稠密向量嵌入獲得更好的表示 7

1.2.3 嵌入的類型 9

1.2.4 使用註意力機制編解碼上下文 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的訓練範式 22

1.5 LLM的應用 23

1.6 開發和使用負責任的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 小結 30

第 2章 詞元和嵌入 31

2.1 LLM的分詞 32

2.1.1 分詞器如何處理語言模型的輸入 32

2.1.2 下載和運行LLM 33

2.1.3 分詞器如何分解文本 36

2.1.4 詞級、子詞級、字符級與字節級分詞 37

2.1.5 比較訓練好的LLM分詞器 39

2.1.6 分詞器屬性 47

2.2 詞元嵌入 48

2.2.1 語言模型為其分詞器的詞表保存嵌入 49

2.2.2 使用語言模型創建與上下文相關的詞嵌入 49

2.3 文本嵌入(用於句子和整篇文檔) 52

2.4 LLM之外的詞嵌入 53

2.4.1 使用預訓練詞嵌入 53

2.4.2 word2vec算法與對比訓練 54

2.5 推薦系統中的嵌入 57

2.5.1 基於嵌入的歌曲推薦 57

2.5.2 訓練歌曲嵌入模型 58

2.6 小結 60

第3章 LLM的內部機制 61

3.1 Transformer模型概述 62

3.1.1 已訓練Transformer LLM的輸入和輸出 62

3.1.2 前向傳播的組成 64

3.1.3 從概率分佈中選擇單個詞元(採樣/解碼) 66

3.1.4 並行詞元處理和上下文長度 68

3.1.5 通過緩存鍵 值加速生成過程 70

3.1.6 Transformer塊的內部結構 71

3.2 Transformer架構的最新改進 79

3.2.1 更高效的註意力機制 79

3.2.2 Transformer塊 83

3.2.3 位置嵌入:RoPE 85

3.2.4 其他架構實驗和改進 87

3.3 小結 87

第二部分 使用預訓練語言模型

第4章 文本分類 91

4.1 電影評論的情感分析 92

4.2 使用表示模型進行文本分類 93

4.3 模型選擇 94

4.4 使用特定任務模型 96

4.5 利用嵌入向量的分類任務 99

4.5.1 監督分類 99

4.5.2 沒有標註數據怎麽辦 102

4.6 使用生成模型進行文本分類 105

4.6.1 使用T5 106

4.6.2 使用ChatGPT進行分類 110

4.7 小結 113

第5章 文本聚類和主題建模 114

5.1 ArXiv文章:計算與語言 115

5.2 文本聚類的通用流程 116

5.2.1 嵌入文檔 116

5.2.2 嵌入向量降維 117

5.2.3 對降維後的嵌入向量進行聚類 119

5.2.4 檢查生成的簇 120

5.3 從文本聚類到主題建模 122

5.3.1 BERTopic:一個模塊化主題建模框架 124

5.3.2 添加特殊的“樂高積木塊” 131

5.3.3 文本生成的“樂高積木塊” 135

5.4 小結 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 提示詞的潛在復雜性 149

6.3.2 上下文學習:提供示例 152

6.3.3 鏈式提示:分解問題 153

6.4 使用生成模型進行推理 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 小結 167

第7章 高級文本生成技術與工具 168

7.1 模型輸入/輸出:基於LangChain加載量化模型 169

7.2 鏈:擴展LLM的能力 171

7.2.1 鏈式架構的關鍵節點:提示詞模板 172

7.2.2 多提示詞鏈式架構 174

7.3 記憶:構建LLM的對話回溯能力 177

7.3.1 對話緩沖區 178

7.3.2 窗口式對話緩沖區 180

7.3.3 對話摘要 181

7.4 智能體:構建LLM系統 185

7.4.1 智能體的核心機制:遞進式推理 186

7.4.2 LangChain中的ReAct實現 187

7.5 小結 190

第8章 語義搜索與RAG 191

8.1 語義搜索與RAG技術全景 191

8.2 語言模型驅動的語義搜索實踐 193

8.2.1 稠密檢索 193

8.2.2 重排序 204

8.2.3 檢索評估指標體系 207

8.3 RAG 211

8.3.1 從搜索到RAG 212

8.3.2 示例:使用LLM API進行基於知識的生成 213

8.3.3 示例:使用本地模型的RAG 213

8.3.4 高級RAG技術 215

8.3.5 RAG效果評估 217

8.4 小結 218

第9章 多模態LLM 219

9.1 視覺Transformer 220

9.2 多模態嵌入模型 222

9.2.1 CLIP:構建跨模態橋梁 224

9.2.2 CLIP的跨模態嵌入生成機制 224

9.2.3 OpenCLIP 226

9.3 讓文本生成模型具備多模態能力 231

9.3.1 BLIP-2:跨越模態鴻溝 231

9.3.2 多模態輸入預處理 235

9.3.3 用例1:圖像描述 237

9.3.4 用例2:基於聊天的多模態提示詞 240

9.4 小結 242

第三部分 訓練和微調語言模型

第 10章 構建文本嵌入模型 247

10.1 嵌入模型 247

10.2 什麽是對比學習 249

10.3 SBERT 251

10.4 構建嵌入模型 253

10.4.1 生成對比樣本 253

10.4.2 訓練模型 254

10.4.3 深入評估 257

10.4.4 損失函數 258

10.5 微調嵌入模型 265

10.5.1 監督學習 265

10.5.2 增強型SBERT 267

10.6 無監督學習 271

10.6.1 TSDAE 272

10.6.2 使用TSDAE進行領域適配 275

10.7 小結 276

第 11章 為分類任務微調表示模型 277

11.1 監督分類 277

11.1.1 微調預訓練的BERT模型 279

11.1.2 凍結層 281

11.2 少樣本分類 286

11.2.1 SetFit:少樣本場景下的高效微調方案 286

11.2.2 少樣本分類的微調 290

11.3 基於掩碼語言建模的繼續預訓練 292

11.4 命名實體識別 297

11.4.1 數據準備 298

11.4.2 命名實體識別的微調 303

11.5 小結 305

第 12章 微調生成模型 306

12.1 LLM訓練三步走:預訓練、監督微調和偏好調優 306

12.2 監督微調 308

12.2.1 全量微調 308

12.2.2 參數高效微調 309

12.3 使用QLoRA進行指令微調 317

12.3.1 模板化指令數據 317

12.3.2 模型量化 318

12.3.3 LoRA配置 319

12.3.4 訓練配置 320

12.3.5 訓練 321

12.3.6 合並權重 322

12.4 評估生成模型 322

12.4.1 詞級指標 323

12.4.2 基準測試 323

12.4.3 排行榜 324

12.4.4 自動評估 325

12.4.5 人工評估 325

12.5 偏好調優、對齊 326

12.6 使用獎勵模型實現偏好評估自動化 327

12.6.1 獎勵模型的輸入和輸出 328

12.6.2 訓練獎勵模型 329

12.6.3 訓練無獎勵模型 332

12.7 使用DPO進行偏好調優 333

12.7.1 對齊數據的模板化 333

12.7.2 模型量化 334

12.7.3 訓練配置 335

12.7.4 訓練 336

12.8 小結 337

附錄 圖解DeepSeek-R1 338

後記 349