大型語言模型實戰(zhàn)指南:應用實踐與場景落地 劉聰 沈盛宇 李特麗 杜振東
定 價:99 元
- 作者:劉聰 沈盛宇 李特麗 杜振東
- 出版時間:2024/8/1
- ISBN:9787111758457
- 出 版 社:機械工業(yè)出版社
- 中圖法分類:TP391-62
- 頁碼:
- 紙張:膠版紙
- 版次:
- 開本:16開
內(nèi)容簡介 這是一本系統(tǒng)梳理并深入解析大模型的基礎理論、算法實現(xiàn)、數(shù)據(jù)構(gòu)造流程、模型微調(diào)方法、偏好對齊方法的著作,也是一本能手把手教你構(gòu)建角色扮演、信息抽取、知識問答、AI Agent等各種強大的應用程序的著作。本書得到了零一萬物、面壁智能、通義千問、百姓AI、瀾舟科技等國內(nèi)主流大模型團隊的負責人的高度評價和鼎力推薦。具體地,通過本書你能了解或掌握以下知識:(1)大型語言模型的基礎理論,包括常見的模型架構(gòu)、領域大型語言模型以及如何評估大模型的性能。(2)大模型微調(diào)的關鍵步驟:從數(shù)據(jù)的收集、清洗到篩選,直至微調(diào)訓練的技術細節(jié)。(3)大模型人類偏好對齊方法,從基于人工反饋的強化學習框架到當前主流的對齊方法。(4)通過GPTs快速搭建個性化的專屬ChatGPT應用。(5)通過開源模型在多種場景下搭建大模型應用,包括:表格查詢、角色扮演、信息抽取、知識問答、AI Agent等。(6)掌握大模型Agent方法以及Agent常用框架。(7)基于LangChain框架構(gòu)建一個AutoGPT應用。本書集大模型理論、實踐和場景落地于一體,提供大量經(jīng)詳細注釋的代碼,方便讀者理解和實操。總之,不管里是想深入研究大模型本身,還是進行大模型相關應用搭建,本書都應該能給你頗具價值的技術啟發(fā)與思考,讓你在大模型的路上快速前行,少走彎路。
(1)作者資深,質(zhì)量有保障作者是NLP和AI領域的資深專家,大模型領域的先驅(qū)者,實戰(zhàn)經(jīng)驗豐富。(2)理論扎實,讓你透徹理解大模型核心技術深入解析大模型的基礎理論、算法實現(xiàn)、數(shù)據(jù)構(gòu)造流程、模型微調(diào)方法、偏好對齊方法等,并提供大量代碼及注解。(3)注重實戰(zhàn),手把手教你開發(fā)大模型應用手把手教你如何構(gòu)建簡單但強大的應用程序,如角色扮演、信息抽取、知識問答、AI Agent等。(4)指導行業(yè)實戰(zhàn),讓你將大模型真正落地深入探討了領域特定大模型的應用,如法律、醫(yī)療、金融和教育等。
PREFACE
前 言
為什么要寫本書
2022年11月30日,ChatGPT模型問世后,立刻在全球范圍內(nèi)掀起了軒然大波。無論是AI從業(yè)者還是非AI從業(yè)者,都在熱議ChatGPT極具沖擊力的交互體驗和驚人的生成內(nèi)容。各大廠紛紛入局大型語言模型,“百模”甚至“千!贝髴(zhàn)的帷幕慢慢被拉開。很多企業(yè)和高校也隨之開源了一些表現(xiàn)優(yōu)異的大型語言模型,例如GLM系列模型、LLaMA系列模型、CPM系列模型、Yi系列模型、Baichuan系列模型、Qwen系列模型、Mistral系列模型、DeepSeek系列模型、Moss模型等。但是大型語言模型距離真正落地,還有一段艱難的路要走,例如:如何優(yōu)化通用大型語言模型在領域上的效果,如何在某些場景中合理運用大型語言模型,如何確保生成內(nèi)容的穩(wěn)定性和安全性,如何確保大型語言模型可以在生產(chǎn)環(huán)境下穩(wěn)定使用等。
2023年,很多人在做底座大型語言模型的搭建、領域大型語言模型的預訓練或微調(diào),我們也出版了《ChatGPT原理與實戰(zhàn):大型語言模型的算法、技術和私有化》一書,對大型語言模型的知識體系進行了細致的梳理,并且通過實戰(zhàn)幫助讀者從零開始搭建自己的ChatGPT模型。但很多讀者反饋這本書對大型語言模型應用部分的講解不夠細致,并且隨著技術和時代的發(fā)展,大型語言模型如何進行場景落地變得尤為重要。
因此,經(jīng)過一番思考和準備之后,我們決定從大型語言模型的應用落地角度出發(fā),進一步系統(tǒng)梳理大型語言模型的相關技術,幫助讀者學習如何利用開源的大型語言模型優(yōu)化自身領域或場景中的使用效果。
技術的變化是飛速的,在撰寫本書初期,OpenAI的GPTs應用還沒有提出,不少應用還沒有以產(chǎn)品形態(tài)呈現(xiàn)。隨著新的應用的推出,我們修改了相關章節(jié),目的是希望本書介紹的大型語言模型相關技術更具前沿性。技術會持續(xù)更新?lián)Q代,書中提到的很多技術也許在不遠的將來會被更強大的技術所取代,但這并不影響我們學習這一系列技術,因為學習這些技術本身會引發(fā)更深層次的思考。
AI已來,學無止境,那么請各位與我們一起來迎接AGI(人工通用智能)的到來吧。
讀者對象
AIGC(生成式人工智能)相關領域的師生。
初入AI行業(yè)的從業(yè)人員。
對大型語言模型感興趣的讀者。
本書特色
本書是一本集理論、實戰(zhàn)、應用與落地于一體的大型語言模型力作,具備以下特點。
1)理論聯(lián)系實際。本書不僅全面講解了大型語言模型的核心理論,如Transformer架構(gòu)和各種主流模型等,還深入探討了領域特定模型的應用,如法律、醫(yī)療、金融和教育領域,有助于讀者從多個維度理解和實踐大型語言模型。
2)實戰(zhàn)應用落地。本書詳細介紹了如何構(gòu)建具有個性化特點的大型語言模型應用,包括大型語言模型的微調(diào)方法、人類偏好對齊技術,以及構(gòu)建具體應用的步驟等。通過實戰(zhàn)案例和深入淺出的講解,確保讀者能夠理解模型的構(gòu)建和優(yōu)化過程。
3)多樣化應用場景。本書通過展示大型語言模型在多種場景下的應用潛力,如角色扮演、信息抽取、知識問答等,引導讀者探索大型語言模型在不同領域的應用可能性,以激發(fā)讀者的創(chuàng)新思維,最終實現(xiàn)大型語言模型的應用創(chuàng)新。
4)應用發(fā)展洞察。本書結(jié)合了我們在AI領域的豐富經(jīng)驗,從基礎理論到實戰(zhàn)應用,從簡單模型應用到復雜系統(tǒng)應用,提供了全面的技術和應用視角。通過分析大型語言模型的行業(yè)應用、挑戰(zhàn)、解決方案以及未來的發(fā)展趨勢,為讀者在迅速變化的技術領域中應用大型語言模型提供了寶貴的參考。
如何閱讀本書
本書從邏輯上分為三部分。
第一部分(第1~3章)為基礎知識,深入探討大型語言模型的核心概念。第1章詳細介紹大型語言模型的基礎理論,包括常見的模型架構(gòu)、領域大型語言模型以及如何評估模型的性能。第2章解析模型微調(diào)的關鍵步驟,即數(shù)據(jù)的收集、清洗到篩選,直至微調(diào)訓練。第3章介紹如何將大型語言模型與人類偏好進行對齊,詳細介紹了基于人工反饋的強化學習框架及當前主流的對齊方法,旨在提供一個全面的視角來幫助讀者理解大型語言模型的發(fā)展和優(yōu)化路徑。
第二部分(第4~7章)著眼于大型語言模型的實際應用,指導讀者構(gòu)建簡單但強大的應用程序。第4章展示如何利用GPTs來快速構(gòu)建一個個性化的專屬ChatGPT應用。第5章介紹Text2SQL應用的搭建,以及如何通過DeepSeek Coder模型進行定制化優(yōu)化。第6章探討角色扮演應用的構(gòu)建,并介紹了如何通過微調(diào)Baichuan模型來增強體驗。第7章聚焦于對話信息抽取應用的搭建,展示了如何通過微調(diào)Qwen模型來將大型語言模型有效地應用于實際場景中。
第三部分(第8~10章)帶領讀者挑戰(zhàn)更加復雜的應用的搭建。第8章介紹大型語言模型Agent以及常用框架。第9章深入RAG(檢索增強生成)模型的各個組件,展示了如何構(gòu)建一個基于知識庫的智能問答應用。第10章則基于LangChain框架,引導讀者構(gòu)建一個AutoGPT應用,展示了大型語言模型在自動化任務執(zhí)行中的潛力。
本書內(nèi)容豐富,旨在為讀者提供一個結(jié)構(gòu)清晰的學習路徑,無論是大型語言模型的新手還是有經(jīng)驗的開發(fā)者,都能從中獲得寶貴的知識和靈感。
勘誤和支持
由于水平有限,書中難免存在一些遺漏或者不夠準確的地方,懇請讀者批評指正。如果讀者發(fā)現(xiàn)了書中的錯誤,可以將其提交到 https://github.com/liucongg/LLMsBook。同時,讀者遇到任何問題,歡迎發(fā)送郵件至郵箱 logcongcong@gmail.com,我們將在線上提供解答。期待得到讀者的真摯反饋!
致謝
首先要感謝提出ChatGPT的每一位研究員,他們的堅持讓人工智能進入大型語言模型時代,讓我有機會體驗到人工智能的魅力,也讓我對人工智能有了新的認識。
感謝為大型語言模型開源社區(qū)貢獻力量的每一個人,他們的無私奉獻讓更多人體會到了大型語言模型的美好。
感謝我碩士期間的導師侯鳳貞以及本科期間的關媛、廖俊、胡建華、趙鴻萍、楊帆等老師,他們指引我走到今天。
感謝在“云問”共同奮斗的每一位充滿創(chuàng)意和活力的朋友:李平、楊萌、李辰剛、張雅冰、孟凡華、李蔓、付曉東、丁興華。由衷感謝云問公司創(chuàng)始人王清琛、茆傳羽、張洪磊對我工作的支持,十分榮幸可以與各位在一家創(chuàng)業(yè)公司一起為人工智能落地而努力奮斗。
感謝關注“NLP工作站”的社區(qū)成員以及所有粉絲,他們的支持才讓我有了不斷創(chuàng)作的動力。
最后感謝我的爸爸媽媽、爺爺奶奶,他們將我培養(yǎng)成人,并時時刻刻給予我信心和力量!
謹以此書獻給我親愛的妻子崔天宇!
劉 聰
2024年2月
劉聰
中國藥科大學碩士,從事NLP工作5年,任職云問NLP研究院首席算法架構(gòu)師,MLNLP(機器學習算法與自然語言處理)社區(qū)的學術委員,長期關注人工智能前沿內(nèi)容,知乎粉絲量8k+,知乎文章閱讀量257萬,擁有個人公眾號,原創(chuàng)文章60余篇。主攻文本向量表征、問答系統(tǒng)、文本生成(AIGC)方向,并致力于開源工作,開源了中文首個Unilm預訓練模型,中文GPT2項目,夸夸閑聊機器人(ChatBot)等相關項目。作為主要負責人,在多項自然語言處理比賽中獲得前三甲的名次,發(fā)表多篇中文核心期刊,專利一篇,sci論文4篇。
CONTENTS
目 錄
前言
第1章 大型語言模型基礎?1
1.1 Transformer基礎?1
1.2 常用的大型語言模型?4
1.2.1 GPT系列模型?4
1.2.2 OPT模型?11
1.2.3 Bloom模型?12
1.2.4 GLM系列模型?12
1.2.5 LLaMA系列模型?14
1.2.6 Baichuan系列模型?16
1.2.7 Qwen系列模型?18
1.2.8 Skywork模型?19
1.3 領域大型語言模型?21
1.3.1 法律大型語言模型?21
1.3.2 醫(yī)療大型語言模型?24
1.3.3 金融大型語言模型?27
1.3.4 教育大型語言模型?29
1.4 大型語言模型評估?30
1.4.1 大型語言模型的評估
內(nèi)容?30
1.4.2 大型語言模型的評估
方法?32
1.4.3 大型語言模型評估
榜單?33
1.5 本章小結(jié)?37
第2章 大型語言模型的常用
微調(diào)方法?38
2.1 數(shù)據(jù)構(gòu)造與清洗?38
2.1.1 數(shù)據(jù)構(gòu)造方法?39
2.1.2 數(shù)據(jù)清洗方法?43
2.2 分詞器構(gòu)造?44
2.2.1 分詞器概述?44
2.2.2 BPE分詞器?45
2.2.3 WordPiece分詞器?52
2.2.4 Unigram分詞器?56
2.2.5 SentencePiece分詞器?58
2.2.6 詞表融合?62
2.3 大型語言模型的微調(diào)方法?63
2.3.1 前綴調(diào)優(yōu)?63
2.3.2 提示調(diào)優(yōu)?64
2.3.3 P-Tuning v2?65
2.3.4 LoRA?65
2.3.5 DyLoRA?66
2.3.6 AdaLoRA?67
2.3.7 QLoRA?67
2.3.8 QA-LoRA?68
2.3.9 LongLoRA?69
2.3.10 VeRA?69
2.3.11 S-LoRA?70
2.4 基于PEFT的LLaMA模型
微調(diào)實戰(zhàn)?71
2.4.1 項目介紹?71
2.4.2 數(shù)據(jù)預處理?71
2.4.3 模型微調(diào)?72
2.4.4 模型預測?77
2.5 本章小結(jié)?78
第3章 大型語言模型的人類
偏好對齊?79
3.1 基于人類反饋的強化學習框架?79
3.2 前沿偏好對齊方法?84
3.2.1 RRHF?84
3.2.2 RLAIF?85
3.2.3 DPO?87
3.2.4 APO?89
3.3 基于DPO的偏好對齊實戰(zhàn)?90
3.3.1 數(shù)據(jù)集介紹?90
3.3.2 TRL框架介紹?92
3.3.3 訓練代碼解析?93
3.4 本章小結(jié)?96
第4章 創(chuàng)建個人專屬的ChatGPT
—GPTs?97
4.1 GPTs初體驗?97
4.2 GPTs的初階使用?105
4.2.1 知識庫的使用?105
4.2.2 內(nèi)置插件的使用?108
4.2.3 知識庫與內(nèi)置插件的
結(jié)合使用?111
4.3 GPTs的高階使用?113
4.4 本章小結(jié)?122
第5章 大型語言模型SQL任務
實戰(zhàn)?123
5.1 公開數(shù)據(jù)集?123
5.1.1 英文公開數(shù)據(jù)集?123
5.1.2 中文公開數(shù)據(jù)集?128
5.2 主流方法?132
5.2.1 基于規(guī)則的方法?133
5.2.2 基于深度學習的方法?133
5.2.3 基于預訓練語言模型的
方法?136
5.2.4 基于大型語言模型的
方法?136
5.3 Text2SQL任務實戰(zhàn)?141
5.3.1 項目介紹?141
5.3.2 數(shù)據(jù)預處理?142
5.3.3 模型微調(diào)?147
5.3.4 模型預測?149
5.4 本章小結(jié)?150
第6章 大型語言模型的角色扮演
應用?151
6.1 角色扮演?151
6.1.1 大型語言模型如何進行
角色扮演?153
6.1.2 角色扮演數(shù)據(jù)的構(gòu)造
方法?155
6.1.3 大型語言模型角色扮演的
能力評估?155
6.2 角色扮演實戰(zhàn)測試?156
6.3 基于Baichuan的角色扮演模型
微調(diào)?159
6.3.1 項目介紹?159
6.3.2 數(shù)據(jù)預處理?160
6.3.3 模型微調(diào)?164
6.3.4 模型預測?171
6.4 本章小結(jié)175
第7章 大型語言模型的對話要素
抽取應用?176
7.1 對話要素抽取?176
7.2 對話要素抽取實戰(zhàn)測試?177
7.2.1 基于GPT-3.5 API進行
對話要素抽取?178
7.2.2 基于Qwen-1.8B模型
進行對話要素抽取?180
7.3 基于Qwen的對話要素抽取
模型微調(diào)?183
7.3.1 項目介紹?183
7.3.2 數(shù)據(jù)預處理?183
7.3.3 模型微調(diào)?190
7.3.4 模型預測?198
7.4 本章小結(jié)?202
第8章 Agent應用開發(fā)?203
8.1 Agent概述?203
8.2 Agent的主要模塊?205
8.3 Agent的行為決策機制?207
8.4 主流Agent 框架?211
8.4.1 LangChain框架?211
8.4.2 LlamaIndex框架?214
8.4.3 AutoGPT框架?215
8.4.4 AutoGen 框架?216
8.4.5 SuperAGI框架?219
8.5 本章小結(jié)?221
第9章 基于知識庫的大型語言
模型問答應用?222
9.1 基于知識庫問答?222
9.2 向量數(shù)據(jù)庫?224
9.2.1 文本的向量表征?225
9.2.2 向量的距離度量方法?228
9.2.3 常用的向量數(shù)據(jù)庫?229
9.3 基于知識庫的大型語言模型
問答實戰(zhàn)?231
9.3.1 BGE微調(diào)?231<