《語言之舞:大語言模型應用實戰全書》封麵

內容簡介

近年來,大語言模型(LLM)技術飛速發展,深刻地改變著我們世界的各行各業,越來越多的人意識到這項技術的重要性,卻苦於缺少嚴謹、優質的一站式學習教程。

《語言之舞:大語言模型應用實戰全書》旨在為讀者提供全麵、深入且實踐性強的LLM 學習資源,力求將LLM 的理論知識與實際應用案例相結合,幫助讀者更好地理解和掌握這一前沿技術。

《語言之舞:大語言模型應用實戰全書》具有重視實踐、內容全麵且係統、案例豐富且實用、代碼規範且易懂、緊跟技術前沿等顯著的特色,是現階段LLM理論與實踐學習的集大成者。

《語言之舞:大語言模型應用實戰全書》的目標讀者包括但不限於:對LLM 感興趣的科研人員、工程師、學生以及希望了解和應用LLM 的企業管理者。本書也可成為各個院校培訓機構AI和大模型專業的教材。

作者簡介

牛亞運(網名:一個處女座的程序猿)

機器學習和大模型算法專家、國內知名AI博主。入選《關鍵對話:程序員創富》的“50位頂尖創業者和技術人”名單,擔任達摩院評測官及多個頭部社區的專家博主,多年位居CSDN社區歷史貢獻榜榜首。累計獲得20餘項專業資質,包括AI認證、軟件著作權、國家發明專利,並在SCI期刊上發表論文。在AI領域的粉絲超200萬人,所寫文章總瀏覽量突破6000萬人次。

倪靜 博士

上海理工大學管理學院人工智能係副教授,長期從事人工智能應用的相關研究,以第一作者/通訊作者身份在SCI/SSCI/CSSCI等期刊上發表論文40餘篇;主持、參與並完成國家自然科學基金、教育部人文社科、上海市自然科學基金等多項國家級和省部級相關項目,主持企業橫向項目30餘項,在人工智能應用、數字孿生、ERP/MEMS、項目管理、優化算法、智能設計/製造、AI+量化交易等方麵建樹頗豐。

目錄

第1章LLM構建流程.1
1.1 數據準備並初步清洗.2
1.1.1 數據采集.3
1.1.2 數據過濾.5
1.1.2.1 低質過濾.8
1.1.2.2 去重過濾.10
1.1.2.3 內容安全過濾.12
1.1.3 實戰案例:使用Falcon爬取並清洗互聯網數據.13
1.2 數據預處理.14
1.2.1 數據精洗.14
1.2.2 分詞及其預處理.14
1.2.2.1 分詞.15
1.2.2.2 Token後處理.19
1.2.3 分詞器.20
1.2.3.1 分詞器的概述.20
1.2.3.2 詞匯表擴充技術.23
1.2.3.3 代碼實戰.24
1.2.4 定義模型的輸入.25
1.2.4.1 構建輸入特征.25
1.2.4.2 Token處理階段的對比.26
1.3 模型預訓練與評估.27
1.3.1 模型搭建.27
1.3.1.1 建模任務及其模型架構選擇.28
1.3.1.2 模型框架選擇.30
1.3.2 模型預訓練與優化.31
1.3.2.1 模型預訓練.31
1.3.2.2 模型超參數調優.33
1.3.2.3 模型訓練優化及其常用策略.36
1.3.2.4 模型訓練優化之並行提速.37
1.3.2.5 拓展的並行技術之ZeRO.42
1.3.2.6 拓展的並行技術之FSDP.48
1.3.2.7 拓展的並行技術之MoE並行.52
1.3.2.8 模型訓練優化之降存提速六大技巧綜述.53
1.3.2.9 降存之詞匯表裁剪.53
1.3.2.10 降存之梯度檢查點.54
1.3.2.11 同時降存、提速之混合精度訓練.56
1.3.2.12 同時提速、降存之數據壓縮.60
1.3.2.13 同時提速、降存之量化感知訓練61
1.3.2.14 提速之梯度累積.63
1.3.3 預訓練後評估.65
1.3.3.1 概述.65
1.3.3.2 代碼實戰:基準評估案例(C-Eval).67
1.3.3.3 代碼實戰:人工評估案例.68
1.3.3.4 代碼實戰:大模型自動評估案例(BELLE).69
1.4 模型微調.70
1.4.1 LLM知識更新概述.70
1.4.2 模型微調策略.72
1.4.2.1 指令微調.74
1.4.2.2 對齊微調.78
1.4.2.3 代碼實戰.84
1.4.3 模型微調技術.86
1.4.3.1 參數高效微調.86
1.4.3.2 適配器微調.88
1.4.3.3 前綴微調.90
1.4.3.4 P-Tuning.92
1.4.3.5 Prompt-Tuning.94
1.4.3.6 P-TuningV2.98
1.4.3.7 LoRA.100
1.4.3.8 常用的參數高效微調方法對比.106
1.5 模型推理與優化.109
1.5.1 模型推理概述.109
1.5.2 推理階段可調參數.111
1.5.3 模型推理加速技術.112
1.5.3.1 模型量化技術.114
1.5.3.2 模型剪枝技術.119
1.5.3.3 模型蒸餾技術.121
1.5.3.4 KV緩存技術.126
第2章LLM的部署與監控.128
2.1 模型部署.129
2.1.1 模型部署概述.129
2.1.2 分布式環境配置.131
2.1.3 Docker部署實戰.133
2.2 模型監控與維護.133
2.3 實戰案例.135
第3章LLM的微調與推理部署實戰案例.137
3.1 基於LLaMA-3係列模型實戰.137
3.1.1 微調實戰.138
3.1.1.1 官方Demo案例:利用LoRA微調LLaMA-3-8B-Instruct並生成推理對話.138
3.1.1.2 基於Colab平台實現LoRA微調LLaMA-3-8B-Instruct-bnb-4bit.139
3.1.1.3 采用LLaMA-Factory工具GUI的方式微調LLaMA-3-8B-Instruct.139
3.1.1.4 基於Colab平台利用Unsloth優化框架實現LoRA微調LLaMA-3-8B-bnb.140
3.1.2 推理部署實戰.140
3.1.2.1 快速使用LLaMA-3-8B-Instruct進行推理測試.140
3.1.2.2 LLaMA-3-8B-InstructWebDemo部署.140
3.1.2.3 采用FastAPI部署與調用LLaMA-3-8B-Instruct.141
3.1.2.4 基於LMStudio結合LobeChat框架部署LLaMA-3模型.142
3.1.2.5 基於OLLaMA後端框架依次結合不同的前端框架搭建RAG.145
3.1.2.6 基於GPT4ALL框架及其量化後部署.148
3.1.3 在線測試實戰.150
3.2 基於ChatGLM-3係列模型實戰.150
3.2.1 微調實戰.151
3.2.1.1 官方Demo案例:利用P-TuningV2和LoRA在單卡GPU環境下進行微調.151
3.2.1.2 基於官方Demo微調:多卡全參數微調/單卡P-TuningV2微調.152
3.2.1.3 在雲服務器(4090-24GB)上采用P-TuningV2微調.152
3.2.1.4 基於LLaMA-Factory框架並采用GUI方式微調.154
3.2.2 推理部署實戰.155
3.2.2.1 采用官方Demo提供的CLI形式實現對話交互.155
3.2.2.2 采用官方Demo的Web界麵實現對話模式、工具模式、代碼解釋器模式.156
3.2.2.3 基於LangChain框架實現ChatGLM-3的工具調用.158
3.2.3 在線測試實戰.159
3.2.3.1 采用官方API接口方式調用.159
3.2.3.2 Web在線體驗.159
3.3 基於GPT-4o模型實戰.159
3.3.1 基於官方API進行在線推理測試.159
3.3.2 基於官方Web界麵進行在線測試.160
3.4 基於GLM-4係列模型實戰.163
3.4.1 微調實戰.163
3.4.1.1 基於官方Demo案例依次采用LoRA、P-TuningV2、SFT實現微調.163
3.4.1.2 在雲服務器(4090-24GB)上采用LoRA或P-TuningV2實現對話微調.164
3.4.2 推理部署實戰.164
3.4.2.1 基於官方Demo實現基礎用法:基於Transformers或vLLM後端並采用GLM-4-9B模型實現對話交互.164
3.4.2.2 基於官方Demo實現複雜用法:基於Web方式實現GLM-4-9B模型交互與功能拓展.165
3.4.2.3 基於雲服務器(4090-24GB)實現一鍵部署開啟服務並交互測試.167
3.4.3 在線測試實戰.167
3.4.3.1 采用官方API接口方式調用ChatGLM-4-plus.167
3.4.3.2 Web在線體驗.168
3.5 基於Qwen係列模型實戰.168
3.5.1 微調實戰:基於LLaMA-Factory框架微調Qwen-2模型.169
3.5.2 推理部署實戰.169
3.5.2.1 基於Transformer架構實現測試Qwen-2.5-7B-Instruct模型.169
3.5.2.2 基於OLLaMA部署Qwen-2.5-7B模型.170
3.5.3 在線測試實戰.171
3.5.3.1 API接口調用.171
3.5.3.2 Web在線體驗.171
3.6 基於DeepSeek-R1係列模型實戰.171
3.6.1 微調實戰.171
3.6.1.1 基於Mini-DeepSeek-R1項目實現.171
3.6.1.2 利用雲服務器.172
3.6.2 推理部署實戰.173
3.6.2.1 基於官方Demo實現基礎用法.173
3.6.2.2 基於LangChain框架實現.173
3.6.2.3 基於OLLaMA和Dify創建DeepSeek-R1的個性化應用.174
3.6.2.4 基於OLLaMA和AnythingLLM創建DeepSeek-R1個性化應用.175
3.6.3 在線測試實戰.177
3.6.3.1 API接口調用.177
3.6.3.2 Web在線體驗.177
第4章LLM項目的構建與應用178
4.1 生成式AI項目的生命周期.178
4.2 企業級LLM構建與實現的通用流程.184
4.2.1 如何選擇優質的應用場景.185
4.2.1.1 LLM在ToB領域落地應用的現有場景實踐.186
4.2.1.2 LLM的產品化實踐流程.187
4.2.1.3 LLM落地實踐中的產品側與技術側.187
4.2.2 如何實現企業級ChatGPT.189
4.2.2.1 選擇基座模型.189
4.2.2.2 準備數據.191
4.2.2.3 準備環境.193
4.2.2.4 模型遷移常用方法.194
4.2.2.5 模型評估.195
4.2.2.6 評價模型.197
4.2.2.7 模型修正.197
4.2.2.8 模型落地.197
4.3 基於LLM的研究方向.198
4.3.1 NLP任務.199
4.3.2 信息檢索和推薦係統.199
4.3.3 多模態和知識圖譜增強.199
4.3.4 基於LLM的智能體.200
4.4 基於LLM的領域應用.200
4.5 基於LLM的企業級需求和應用場景.201
第5章提示設計.203
5.1 提示工程概述.203
5.2 提示的設計要素和策略.207
5.2.1 提示的設計要素.207
5.2.2 提示內容的設計策略.209
5.3 提示設計的方法論.211
5.3.1 ICL.212
5.3.2 CoT.214
5.3.3 PCTS.217
5.3.4 對比ICL、CoT、PCTS.218
5.3.5 提示設計方法論分類.219
5.4 提示設計實踐指南和優秀框架.220
5.5MCP.221
5.5.1提示工程痛點與MCP出現.221
5.5.2MCP核心內容.222
5.5.3MCP的典型應用場景.223
5.5.4MCP的使用經驗與技巧.223
第6章LLM的進階與增強.225
6.1 LLM的局限性及其解決方案.226
6.1.1 LLM幻覺現象簡介與解決方法.228
6.1.2 LLM有毒性現象簡介與解決方法.230
6.1.3 LLM虛假信息現象簡介與解決方法.231
6.2 RAG.232
6.2.1 RAG概述.232
6.2.2 RAG工程化係統架構和開發組件.242
6.2.3 RAG的失敗案例及其優化.244
6.2.3.1 RAG的失敗案例.244
6.2.3.2 RAG宏觀技術角度的優化.246
6.2.3.3 RAG微觀策略角度的優化.248
6.2.3.4 探究並解決RAG框架下PDF場景的結構化數據提取問題.262
6.2.3.5 代碼實戰.267
6.2.4 RAG的發展及其挑戰.269
6.2.4.1 RAG發展的三階段.269
6.2.4.2 RAG麵臨的挑戰與未來發展趨勢.270
6.2.5 RAG案例實戰.271
6.2.5.1 基於LangChain框架實現RAG.271
6.2.5.2 基於LangChain-Chatchat框架實現RAG.273
6.2.6.3 基於LLaMAIndex框架實現RAG274
6.2.5.4 基於LocalGPT框架實現RAG.275
6.2.5.5 基於OLLaMA+AnythingLLM框架實現RAG.275
6.2.5.6 基於OLLaMA+Dify框架實現RAG.277
6.3 ETA.278
6.3.1 ETA概述.278
6.3.2 ETA實戰.284
6.3.2.1 基於OpenAI官方案例實現工具調用能力.284
6.3.2.2 基於GLM-4官方案例實現工具調用能力.285
6.3.2.3 基於Qwen官方案例實現工具調用能力.285
6.3.2.4 基於LangChain框架和GPT-4o實現多個工具調用.285
6.3.2.5 基於LangGraph框架和Qwen模型實現GraphETA.286
6.3.3 伯克利函數調用排行榜.287
6.4 智能體.287
6.4.1 智能體概述.287
6.4.1.1 智能體係統模塊.291
6.4.1.2 智能體框架工程化.295
6.4.1.3 未來挑戰.296
6.4.2 智能體常用能力.297
6.4.2.1 能力概覽及其實現方法.297
6.4.2.2 能力域分類.299
6.4.3 智能體設計的思想和主流模式.299
6.4.3.1 ReActAgent簡介.301
6.4.3.2 ReWOOAgent簡介.305
6.4.3.3 DERAAgent簡介.306
6.4.3.4 智能體設計的三大範式.307
6.4.4 智能體應用的分類.308
6.4.5 智能體實戰.309
6.4.5.1 模型推理:基於LangChain框架並結合GPT-4o和GPT-4實現ToolAgent.309
6.4.5.2 模型推理:基於LangChain框架實現ReActAgent.309
6.4.5.3 模型推理:基於LangChain框架實現KG-RAGAgent.310
6.4.5.4 基於LangChain框架和FastAPI部署ToolAgent服務.310
6.5 長上下文建模.311
6.5.1 大窗口技術概述.311
6.5.2 長上下文建模實戰.315
6.6 技術探討與分析.316
6.6.1 RAG技術與大窗口技術的爭論——衝突還是共生.316
6.6.2 智能體技術的自主性與ETA技術的可控性權衡的爭論.318
第7章LLM的訓練/推理框架、部署工具和提示庫.321
7.1 LLM的開發框架.321
7.1.1 側重數據處理的庫或框架.321
7.1.2 側重模型構建的庫或框架.322
7.2 LLM的訓練、評估、微調和推理框架.324
7.2.1 側重訓練的庫或框架.324
7.2.2 側重評估的庫或框架.326
7.2.3 側重微調的庫或框架.326
7.2.4 側重推理的庫或框架.328
7.3 LLM的部署和應用工具.330
7.3.1 Web框架和API服務.330
7.3.2 請求和並發處理.331
7.3.3 用戶界麵庫.331
7.3.4 實驗跟蹤和可視化.332
7.3.5 容器化和編排.332
7.3.6 高級的LLM部署和服務工具.333
7.4 LLM的向量數據庫.334
······

最後修改:2025 年 12 月 23 日