本書從大型模型的結(jié)構(gòu)講起,讓讀者了解大型模型的內(nèi)部實(shí)現(xiàn)原理,然后講解如何在特定任務(wù)下對(duì)大型模型進(jìn)行預(yù)訓(xùn)練、有監(jiān)督的微調(diào),以及進(jìn)行強(qiáng)化學(xué)習(xí)。通過對(duì)模型采用不同方法的訓(xùn)練,持續(xù)改進(jìn)模型在特定任務(wù)上的性能。最后,本書將與讀者一起探討如何利用大型模型開發(fā)大模型時(shí)代的智能應(yīng)用。
本書共9章,第1章講解大型模型發(fā)展的歷史及其帶來的變革。第2章深入講解大型模型內(nèi)部結(jié)構(gòu)的演進(jìn)。第3章會(huì)嘗試自己運(yùn)行一個(gè)大模型。第4章介紹大型模型對(duì)模型訓(xùn)練和推理過程中帶來的技術(shù)挑戰(zhàn)和解決辦法。第5章講解如何進(jìn)行大型模型的預(yù)訓(xùn)練以獲取大模型的基本能力。第6章講解如何對(duì)大模型進(jìn)行有監(jiān)督的微調(diào),使大型模型輸出與人類意圖對(duì)齊。第7章講解如何通過強(qiáng)化學(xué)習(xí)進(jìn)一步提升大型模型的表現(xiàn)。第8章講解如何對(duì)大模型進(jìn)行評(píng)估。第9章講解如何利用大模型構(gòu)建智能應(yīng)用。
本書適合有一定深度學(xué)習(xí)基礎(chǔ)的讀者,幫助他們從原理到應(yīng)用,快速了解大型模型的原理、訓(xùn)練方法,并利用大型模型進(jìn)行智能應(yīng)用的開發(fā)。
本書深入淺出地介紹了人工智能和大模型的核心概念和算法,以及這些技術(shù)是如何發(fā)明和發(fā)展的。通過閱讀本書,讀者能夠理解大模型背后的技術(shù),感受到它所帶來的改變。
時(shí)間回到2010年,筆者剛剛加入IBM SPSS Modeler的研發(fā)團(tuán)隊(duì),從此開始了筆者在人工智能領(lǐng)域的職業(yè)生涯。轉(zhuǎn)眼間,這段旅程已經(jīng)持續(xù)了十五年。這十五年里,人工智能的發(fā)展波瀾壯闊,筆者有幸站在科技的潮頭,見證了3次極具意義的浪潮。每次浪潮都代表了人類對(duì)于智能的探索邁入了新的階段,每次浪潮也深刻地改變了科技的邊界,社會(huì)的面貌,以及我們的日常生活。
在筆者的職業(yè)生涯中,第1次人工智能浪潮可以追溯到卷積神經(jīng)網(wǎng)絡(luò)的崛起。這一波浪潮最具代表性的事件,也就是深度學(xué)習(xí)在計(jì)算機(jī)視覺領(lǐng)域的突破性進(jìn)展。從2012年AlexNet在ImageNet比賽上的驚艷表現(xiàn)開始,計(jì)算機(jī)視覺得以迅猛發(fā)展,神經(jīng)網(wǎng)絡(luò)在圖像識(shí)別、物體檢測、人臉識(shí)別等領(lǐng)域逐漸超過了人類的表現(xiàn)?梢哉f,卷積神經(jīng)網(wǎng)絡(luò)讓計(jì)算機(jī)具備了看的能力,得以從數(shù)億像素中理解出形狀和內(nèi)容。那一時(shí)期,視覺任務(wù)相對(duì)容易取得突破,這在一定程度上歸功于圖像本身所包含的直觀且自成一體的信息。就像一個(gè)三歲小孩能夠通過圖像辨別出水果、動(dòng)物、人物一樣,計(jì)算機(jī)在有了強(qiáng)大的視覺模型之后也能通過學(xué)習(xí)海量的圖片,較為準(zhǔn)確地判斷圖像中包含了什么。
然而,語言是另外一個(gè)層次的挑戰(zhàn)。語言是人類社會(huì)最自然的溝通工具,卻充滿了歧義和復(fù)雜的語境。一句話中的每個(gè)詞匯都可能包含多重含義,需要結(jié)合上下文乃至社會(huì)背景去理解,尤其是在日常交流中,隱含的諷刺、幽默,甚至體察情緒的能力遠(yuǎn)遠(yuǎn)超過一個(gè)剛學(xué)會(huì)說話的孩子。這就意味著,語言理解和生成任務(wù)對(duì)計(jì)算機(jī)來講要比視覺更具挑戰(zhàn)。
這就帶來了第2次人工智能浪潮: 基于Transformer的BERT預(yù)訓(xùn)練模型的出現(xiàn)。BERT模型通過利用大量語料和創(chuàng)新性的訓(xùn)練方法(例如前后句判斷和完形填空式的掩碼訓(xùn)練)讓模型逐漸學(xué)會(huì)理解語義和語境。這一階段,基于Transformer架構(gòu)的模型使自然語言處理實(shí)現(xiàn)了跨越式的發(fā)展。與之前的循環(huán)神經(jīng)網(wǎng)絡(luò)相比,Transformer顯著地提高了訓(xùn)練效率,通過自注意力機(jī)制,不僅能并行處理序列數(shù)據(jù),還能在長句中抓住遠(yuǎn)距離詞語之間的關(guān)聯(lián)。BERT的出現(xiàn)使NLP各項(xiàng)任務(wù)達(dá)到了前所未有的高度機(jī)器能夠理解段落、回答問題、生成摘要,并且通過預(yù)訓(xùn)練與下游任務(wù)微調(diào)的結(jié)合方式,有效地解決了許多工程應(yīng)用中的問題。
然后我們迎來了第3次浪潮,這一浪潮就是當(dāng)前的大模型革命。GPT系列的出現(xiàn),尤其是GPT3的出現(xiàn)和ChatGPT的廣泛傳播,讓人工智能不再局限于特定領(lǐng)域,而是成為全社會(huì)的討論熱點(diǎn)。GPT3不僅是一種模型,它的能力和表現(xiàn)讓我們重新思考人與機(jī)器之間的互動(dòng)模式。通過自然語言,GPT3具備了與人類進(jìn)行復(fù)雜對(duì)話、進(jìn)行推理、提供創(chuàng)意建議的能力,ChatGPT的出現(xiàn)更是掀起了一場關(guān)于人工智能將如何改變社會(huì)的全民討論。這是我們朝向通用人工智能邁出的重要一步,各行各業(yè)都在思考大模型將如何徹底變革其生產(chǎn)模式和交互方式。
大模型的崛起帶來了前所未有的理解、推理、生成的通用能力,也改變了人類與機(jī)器的交互方式。在這個(gè)大模型的時(shí)代,人與機(jī)器之間的界限變得越來越模糊,機(jī)器不再只是簡單地接受命令,它開始具備理解上下文、推測人類意圖,甚至具有一定創(chuàng)造力的能力。這種變革不僅是技術(shù)上的突破,更是一次對(duì)于人類社會(huì)運(yùn)作方式的重新定義。
筆者深感非常幸運(yùn),能夠處在這樣一個(gè)激動(dòng)人心的時(shí)代。人工智能的大浪潮,既推動(dòng)了時(shí)代的進(jìn)步,也讓我們這些從業(yè)者成為這場偉大變革的親歷者。筆者感受到的,不只是對(duì)于技術(shù)進(jìn)步的震撼,更是對(duì)于未來無限可能性的憧憬。
本書旨在和讀者一起探索大模型的原理、發(fā)展和應(yīng)用,筆者希望通過本書,能夠幫助更多的讀者理解大模型背后的技術(shù),感受到它所帶來的改變。無論你是科技愛好者,還是從事其他領(lǐng)域的專業(yè)人士,筆者相信你都能在這場變革中找到屬于自己的啟發(fā)和機(jī)遇。
希望我們能夠共同見證大模型時(shí)代的到來,也希望我們能夠攜手探索,用大模型技術(shù)去改變我們的生活,讓人工智能成為我們?nèi)粘5闹、伙伴,甚至靈感的源泉。讓我們一起迎接這個(gè)充滿希望和挑戰(zhàn)的未來。
資源下載提示
素材(源碼)等資源: 掃描目錄上方的二維碼下載。
視頻等資源: 掃描封底的文泉云盤防盜碼,再掃描書中相應(yīng)章節(jié)的二維碼,可以在線學(xué)習(xí)。
筆者的閱歷有限,書中難免存在疏漏,希望讀者熱心指正,在此表示感謝。
薛鵬
2025年5月于西安
薛鵬,深圳力維智聯(lián)技術(shù)有限公司人工智能首席科學(xué)家,上海迥靈信息技術(shù)有限公司CTO,原IBM AI產(chǎn)品Tech Lead。負(fù)責(zé)研發(fā)多款A(yù)I產(chǎn)品,十五年人工智能技術(shù)應(yīng)用經(jīng)驗(yàn)。目前致力于大模型平臺(tái)產(chǎn)品研發(fā)和大模型技術(shù)行業(yè)應(yīng)用。
本書源碼
第1章大模型時(shí)代
1.1大模型的發(fā)展歷史
1.1.1注意力機(jī)制的發(fā)揚(yáng)光大
1.1.2從GPT到InstructGPT
1.1.3ChatGPT驚艷登場
1.1.4全球首個(gè)AI程序員誕生
1.2大模型時(shí)代的新范式
第2章深入了解大模型(59min)
2.1Transformer橫空出世
2.1.1詞典生成
2.1.2詞嵌入
2.1.3自注意力機(jī)制
2.1.4層歸一化
2.1.5殘差連接
2.1.6前饋模塊
2.1.7Transformer的整體架構(gòu)
2.1.8位置編碼
2.1.9解碼器的輸入輸出
2.1.10掩碼機(jī)制
2.1.11交叉注意力
2.1.12線性分類頭
2.2GPT
2.2.1GPT1
2.2.2GPT2
2.2.3GPT3
2.2.4GPT4
2.3OpenAI o1
2.4Llama
2.4.1Llama1
2.4.2Llama2
2.4.3Llama3
第3章運(yùn)行第1個(gè)大模型
3.1HuggingFace介紹
3.2下載大模型
3.3運(yùn)行大模型
3.4HuggingFace里的Tokenizer
3.5HuggingFace里的模型
3.5.1創(chuàng)建和保存模型
3.5.2控制大模型的輸出
第4章大模型帶來的技術(shù)挑戰(zhàn)(127min)
4.1GPU的工作原理
4.1.1CPU和GPU的區(qū)別
4.1.2GPU的架構(gòu)
4.1.3GPU里的存儲(chǔ)
4.1.4Tensor Core
4.2大模型顯存占用
4.3優(yōu)化器
4.3.1指數(shù)加權(quán)平均
4.3.2SGD
4.3.3動(dòng)量梯度下降
4.3.4RMSProp
4.3.5Adam
4.3.6AdamW
4.4混合精度訓(xùn)練
4.4.1混合精度訓(xùn)練原理
4.4.2在PyTorch里進(jìn)行混合精度訓(xùn)練
4.5模型的量化技術(shù)
4.5.1量化技術(shù)的原理
4.5.2訓(xùn)練后動(dòng)態(tài)量化
4.5.3訓(xùn)練后靜態(tài)量化
4.5.4量化感知訓(xùn)練
4.5.5LLM.int8
4.5.6NF4量化
4.6梯度累加
4.7梯度檢查點(diǎn)
4.8分布式訓(xùn)練
4.8.1分布式數(shù)據(jù)并行
4.8.2DeepSpeed ZeRO
4.8.3Accelerate
4.9參數(shù)高效微調(diào)
4.9.1提示詞微調(diào)
4.9.2LoRA
4.10vLLM
4.10.1KV Cache
4.10.2Page Attention
4.10.3塊共享
4.10.4代碼示例
4.11FlashAttention
第5章大模型的預(yù)訓(xùn)練(15min)
5.1預(yù)訓(xùn)練的作用
5.2預(yù)訓(xùn)練的數(shù)據(jù)
5.3預(yù)訓(xùn)練的方法
5.4預(yù)訓(xùn)練Llama3.1
5.4.1最簡訓(xùn)練代碼
5.4.2數(shù)據(jù)清洗
5.4.3數(shù)據(jù)準(zhǔn)備
5.4.4初始化模型
5.4.5模型預(yù)訓(xùn)練
第6章大模型的監(jiān)督微調(diào)(13min)
6.1對(duì)話模板
6.2只關(guān)注回答
6.3噪聲嵌入微調(diào)
6.4SFT Trainer
第7章大模型的強(qiáng)化學(xué)習(xí)(69min)
7.1強(qiáng)化學(xué)習(xí)基礎(chǔ)
7.1.1強(qiáng)化學(xué)習(xí)里的基礎(chǔ)概念
7.1.2策略梯度算法
7.1.3ActorCritic算法
7.1.4廣義優(yōu)勢估計(jì)算法
7.2近端策略優(yōu)化
7.3直接偏好優(yōu)化
7.3.1KL散度
7.3.2BradleyTerry模型
7.3.3DPO的訓(xùn)練目標(biāo)
7.4利用TRL庫進(jìn)行PPO訓(xùn)練
7.4.1獎(jiǎng)勵(lì)模型
7.4.2PPO模型
第8章大模型的評(píng)估
8.1困惑度
8.2人工評(píng)估
8.3可解析的測評(píng)集
8.3.1MMLU
8.3.2MMLUPRO
8.3.3IFEVAL
8.3.4BBH
8.3.5MATH
8.3.6GPQA
8.4利用大模型評(píng)估
第9章構(gòu)建大模型應(yīng)用
9.1提示詞工程
9.1.1明確的任務(wù)指示
9.1.2提供上下文信息
9.1.3賦予大模型角色
9.1.4給模型思考時(shí)間
9.1.5給模型參考示例
9.2LangChain介紹
9.3第1個(gè)LangChain程序
9.4構(gòu)建一個(gè)聊天機(jī)器人
9.5LangChain的進(jìn)階功能
9.5.1對(duì)輸出進(jìn)行解析
9.5.2為提示詞增加樣例
9.6檢索增強(qiáng)生成
9.6.1RAG流程
9.6.2文檔分片
9.6.3向量嵌入模型
9.6.4向量存儲(chǔ)
9.6.5Retriever
9.6.6生成回答
9.7RAG進(jìn)階
9.7.1問題轉(zhuǎn)化
9.7.2混合檢索
9.7.3索引增強(qiáng)
9.7.4檢索結(jié)果重排
9.8智能體
9.8.1創(chuàng)建第1個(gè)智能體
9.8.2給智能體定義工具
9.8.3智能體使用工具的原理
9.8.4給智能體增加記憶
9.8.5人與智能體合作
9.8.6多智能體協(xié)作