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