
動手構建大模型 內容簡介
本書采用創新且實用的教學策略,巧妙融合理論基礎與實踐應用,深入剖析自然語言處理(Natural Language Processing,NLP)領域的新進展,以及大語言模型(Large Language Model,LLM)的原理。書中不僅係統闡述了 LLM 的理論基礎,還通過實際項目案例展示了如何將這些模型應用於構建RAG係統。本書遵循由淺入深的路徑,從LLM的基礎知識入手,詳細闡釋了模型的訓練流程,並深入探討了如何利用提示技術與模型進行高效交互。書中還重點介紹了兩個在業界得到廣泛認可的框架—LlamaIndex和LangChain,它們是開發RAG應用的強大工具。書中的項目案例不僅為讀者提供了寶貴的實踐經驗,也能夠加深讀者對相關概念的理解和應用。此外,書中進一步探討了包括智能體和微調在內的高級技術,這些技術能夠顯著提升問答係統的性能。
動手構建大模型 作者簡介
路易斯-弗朗索瓦·布沙爾(Louis-François Bouchard)
Towards AI公司聯合創始人兼首席技術官(CTO),網名“What's AI”。他致力於普及AI知識並解釋AI技術原理,讓大眾能夠輕鬆理解AI。在深切體會到初創企業與學術界之間存在的巨大技能差距後,他從蒙特利爾學習算法研究所退學,放棄繼續攻讀博士學位,全身心投入YouTube科普內容創作和Towards AI公司的相關工作之中。
路易·彼得斯(Louie Peters)
Towards AI公司聯合創始人兼首席執行官(CEO)。他致力於開發普惠化AI職業資源,推動大眾高效進入AI領域。同時,依托帝國理工學院物理學背景及摩根大通集團的投資研究經驗,他尤為關注AI技術的顛覆性影響、經濟效應,以及持續技術突破對現實場景應用的賦能作用。
動手構建大模型 目錄
第1章LLM簡介11.1語言模型簡史1
1.2什麼是LLM2
1.3LLM的組成2
1.3.1Transformer2
1.3.2語言建模3
1.3.3分詞3
1.3.4嵌入4
1.3.5訓練/微調5
1.3.6預測5
1.3.7上下文窗口5
1.3.8規模法則6
1.3.9提示詞7
1.3.10LLM中的湧現能力及測試基準7
1.3.11LLM簡史9
1.3.12項目:使用LLM(GPT-3.5API)進行翻譯13
1.3.13項目:通過小樣本學習來控製LLM的輸出14
1.4本章小結16
第2章LLM架構和概況17
2.1理解Transformer17
2.1.1論文“AttentionIsAllYouNeed”17
2.1.2架構實戰21
2.2Transformer架構的設計選擇24
2.2.1編碼器-解碼器架構24
2.2.2僅編碼器架構26
2.2.3僅解碼器架構28
2.2.4Transformer架構的優化技術30
2.3生成式預訓練Transformer(GPT)架構31
2.3.1掩碼自注意力31
2.3.2GPT的訓練過程31
2.3.3MinGPT32
2.4LMM簡介33
2.4.1常見架構和訓練目標33
2.4.2開源版本的Flamingo34
2.4.3指令微調的LMM35
2.4.4探索LLaVA—一個指令微調的LMM36
2.4.5超越視覺和語言36
2.5專有模型vs.開放模型vs.開源模型37
2.5.1CohereLLM37
2.5.2OpenAI的GPT-3.5turbo、GPT-4o和GPT-4omini38
2.5.3Anthropic的Claude3模型38
2.5.4GoogleDeepMind的Gemini39
2.5.5Meta的LLaMA239
2.5.6MistralLLM40
2.6LLM的應用和示例41
2.6.1商業與職業41
2.6.2法律與合規42
2.6.3醫療保健和健康42
2.6.4教育與研究43
2.6.5媒體與娛樂43
2.6.6技術與軟件43
2.6.7個人發展與生活方式44
2.6.8金融與投資45
2.6.9運動與健康45
2.6.10其他46
2.6.11使用LLM的風險和倫理考量46
2.7本章小結46
第3章LLM實踐48
3.1理解幻覺和偏見48
3.1.1通過控製輸出減輕LLM的幻覺49
3.1.2解碼方法51
3.1.3微調LLM52
3.2LLM性能評估54
3.2.1目標函數和評估指標54
3.2.2內在指標:困惑度55
3.2.3外部指標:基準測試56
3.3本章小結58
第4章提示技術簡介59
4.1提示詞和提示工程59
4.2提示技術63
4.2.1零樣本提示63
4.2.2上下文學習和小樣本提示63
4.2.3角色提示64
4.2.4鏈式提示65
4.2.5思維鏈提示65
4.3提示注入與安全66
4.4本章小結68
第5章RAG70
5.1為什麼使用RAG70
5.2嵌入向量71
5.3向量數據庫與向量存儲72
5.4從頭構建一個RAG管道73
5.4.1數據預處理73
5.4.2生成嵌入向量75
5.4.3查找相關文本塊76
5.4.4測試餘弦相似度77
5.4.5相似度計算實戰77
5.4.6提示詞增強79
5.5本章小結82
第6章LangChain和LlamaIndex簡介83
6.1LLM框架83
6.2LangChain介紹83
6.3項目1:使用LangChain構建LLM驅動的應用86
6.3.1提示模板86
6.3.2摘要鏈示例87
6.3.3問答鏈示例88
6.4項目2:構建新聞文章摘要器89
6.5LlamaIndex介紹94
6.5.1數據連接器94
6.5.2節點95
6.5.3索引96
6.5.4查詢引擎98
6.5.5路由器98
6.5.6保存和加載本地索引99
6.6LangChain、LlamaIndex與OpenAIAssistants99
6.7本章小結101
第7章使用LangChain進行提示102
7.1LangChain提示模板102
7.2小樣本提示和樣例選擇器107
7.2.1人類與AI的信息交互108
7.2.2小樣本提示108
7.2.3樣例選擇器110
7.3LangChain鏈114
7.3.1使用LLMChain生成文本114
7.3.2在會話鏈中增加記憶115
7.3.3使用順序鏈連接鏈116
7.3.4調試鏈116
7.3.5定製鏈117
7.4項目1:使用輸出解析器管理輸出118
7.5項目2:新聞文章摘要器的改進127
7.6項目3:基於文本數據創建知識圖譜—揭示隱藏的連接133
7.6.1使用LangChain構建知識圖譜134
7.6.2知識圖譜可視化135
7.7本章小結137
第8章索引、檢索與數據預處理138
8.1LangChain的索引和檢索器138
8.2數據攝取141
8.2.1從PDF中加載數據142
8.2.2從網頁中加載數據142
8.2.3從GoogleDrive中加載數據144
8.3文本切分器144
8.3.1基於字符長度的文本切分145
8.3.2基於邏輯終點的文本切分146
8.3.3基於NLTK的其他語種切分148
8.3.4基於SpaCy的其他語種切分148
8.3.5Markdown格式的文本切分149
8.3.6基於Token的文本切分151
8.4相似性搜索與嵌入向量152
8.4.1開源嵌入模型153
8.4.2Cohere嵌入154
8.5項目1:客服問答聊天機器人156
8.5.1工作流程157
8.5.2文檔切分及向量化158
8.5.3基於策略設計提示詞159
8.5.4基於LLM生成回答160
8.6項目2:基於Whisper和LangChain的YouTube視頻摘要器161
8.6.1使用Whisper進行音頻轉錄163
8.6.2切分文檔並生成摘要163
8.6.3將轉錄內容添加到DeepLake166
8.7項目3:為你的知識庫創建語音助手169
8.7.1從HuggingFaceHub獲取內容170
8.7.2加載和切分文本171
8.7.3嵌入向量以及DeepLake庫172
8.7.4創建語音助手173
8.7.5基於Streamlit構建交互界麵175
8.8通過自批判鏈防止輸出不良內容177
8.9在客服問答聊天機器人中防止輸出不良內容181
8.10本章小結185
第9章高級RAG187
9.1從概念驗證到產品:RAG係統的挑戰187
9.2使用LlamaIndex的高級RAG技術187
9.2.1嵌入模型與LLM微調189
9.2.2RAG監控與評估189
9.2.3混合檢索與嵌入向量檢索189
9.3LlamaIndex查詢189
9.3.1查詢構建190
9.3.2查詢擴展190
9.3.3查詢轉換191
9.3.4使用查詢引擎來回答問題191
9.3.5重排序195
9.3.6遞歸檢索與從小到大的檢索197
9.4RAG指標與評估198
9.4.1RAG與LLM評估指標198
9.4.2檢索評估指標200
9.4.3基於社區的評估工具202
9.4.4自定義RAG評估工作流205
9.5LangChain的LangSmith與LangChainHub210
9.6本章小結214
第10章智能體215
10.1什麼是智能體:大模型作為推理引擎215
10.2AutoGPT和BabyAGI概述220
10.2.1AutoGPT220
10.2.2使用AutoGPT與LangChain221
10.2.3BabyAGI227
10.2.4使用BabyAGI與LangChain229
10.3LangChain中的智能體仿真項目232
10.3.1CAMEL項目233
10.3.2生成式智能體234
10.4項目1:構建創建分析報告的智能體235
10.5項目2:使用LlamaIndex查詢和匯總數據庫242
10.5.1第1步:定義數據源並創建向量存儲索引242
10.5.2第2步:配置查詢引擎244
10.5.3第3步:開發會話智能體245
10.5.4第4步:為智能體添加自定義函數246
10.6項目3:使用OpenAIAssistants構建智能體249
10.7項目4:LangChainOpenGPTs251
10.8項目5:對PDF中的財務信息進行多模態分析253
10.8.1數據提取253
10.8.2存儲在DeepLake中257
10.8.3微調嵌入空間259
10.8.4聊天機器人實戰262
10.9本章小結264
第11章微調265
11.1理解微調265
11.2LoRA266
11.3項目1:使用LoRA進行SFT267
11.3.1加載數據集268
11.3.2設置LoRA配置和訓練超參數270
11.3.3合並LoRA和OPT參數272
11.3.4推理274
11.4項目2:使用SFT和LoRA進行金融情感分析276
11.4.1加載數據集277
11.4.2初始化模型和訓練器278
11.4.3合並LoRA和OPT280
11.4.4推理281
11.5項目3:用醫療數據微調CohereLLM283
11.5.1CohereAPI283
11.5.2數據集284
11.5.3微調287
11.6RLHF290
11.7項目4:使用RLHF改進LLM292
11.7.1SFT293
11.7.2訓練獎勵模型297
11.7.3強化學習300
11.7.4推理305
11.8本章小結307
第12章部署與優化309
12.1模型蒸餾和教師模型309
12.2LLM部署優化:量化、剪枝和投機解碼312
12.2.1模型量化313
12.2.2量化LLM315
12.2.3模型剪枝316
12.2.4投機解碼318
12.3項目:使用穀歌雲平台上的CPU部署量化模型319
12.3.1量化模型320
12.3.2使用量化模型進行推理322
12.3.3使用穀歌雲平台上的計算引擎部署量化模型323
12.4在雲服務提供商上部署開源LLM325
12.5本章小結326
總結328
······
最後修改:2026 年 05 月 05 日
© 允許規範轉載
