
Happy-LLM:從零開始構建大模型 內容簡介
2022年底,ChatGPT的誕生引發變革,以GPT係列模型為代表的大語言模型(Large Language Model,LLM)成為人工智能領域的研究熱點,LLM在此背景下基於預訓練語言模型取得突破性進展。本書分為基礎知識與實戰應用兩大部分,基礎知識部分包含第1~4章,首先介紹NLP的基本任務及文本表示的發展歷程,接著闡述LLM基本架構Transformer和經典PLM架構,最後詳述LLM的特點、能力和訓練過程;實戰應用部分包含第5~7章,依次講解基於PyTorch搭建LLM的全流程,借助主流框架實現LLM訓練,以及LLM的各類應用,幫助讀者構建完整的LLM知識體係。
本書適合具備一定編程經驗(尤其對Python編程語言有所了解)、掌握深度學習相關知識且了解NLP領域相關概念和術語的大學生、研究人員及LLM愛好者閱讀。
Happy-LLM:從零開始構建大模型 作者簡介
朱信忠,工學博士,博士生導師,二級教授,浙江省特級專家,浙江師範大學杭州人工智能研究院院長,工業和信息化部人工智能產業創新任務“智能機器人”揭榜掛帥項目負責人,國家高層次人才,國家有突出貢獻中青年專家,國家科技進步獎二等獎第一完成人,享受國務院政府特殊津貼。Datawhale 首席科學家,Happy-LLM、Hello-Agents 等開源項目總體負責人及核心貢獻者。主要研究方向為大模型、具身智能、世界模型、自主移動機器人及低空具身等。通過“場景—數據—技術—泛化”閉環迭代,推動具身智能揀貨、焊接、裝配、抹灰、噴塗等下一代“感知—理解—決策—執行”智能體技術與商業的協同進化。
宋誌學,河南理工大學工學學士、測繪工程碩士,西湖大學通用人工智能實驗室科研助理。研究方向為自然語言處理、多模態大模型智能體落地應用。Datawhale 成員,Self-LLM、Happy-LLM 等開源項目負責人,所負責項目數十次登上 GitHub 趨勢榜單,累計獲得GitHub 星標 5.5 萬餘次。
鄒雨衡,對外經濟貿易大學數據科學與大數據技術學士、管理科學與工程碩士,小紅書人工智能工程師,研究方向為大語言模型、大模型智能體及其落地應用。Datawhale 成員,LLM-Cookbook、LLM-Universe 等開源項目負責人,所負責項目數十次登上 GitHub 趨勢榜單,累計獲得 GitHub 星標 7.6 萬餘次。
Happy-LLM:從零開始構建大模型 目錄
第1章 NLP基礎概念 11.1 什麼是NLP 1
1.2NLP發展歷程 2
1.3NLP任務 3
1.3.1 中文分詞 3
1.3.2 子詞切分 3
1.3.3 詞性標注 4
1.3.4 文本分類 5
1.3.5 實體識別 5
1.3.6 關係抽取 6
1.3.7 文本摘要 6
1.3.8 機器翻譯 7
1.3.9 自動問答 8
1.4 文本表示的發展歷程 8
1.4.1 詞向量 9
1.4.2 語言模型 10
1.4.3Word2Vec 10
1.4.4ELMo 11
1.5 本章小結 12
參考資料 12
第2章 Transformer架構 14
2.1 注意力機製 14
2.1.1 什麼是注意力機製 14
2.1.2 深入理解注意力機製 17
2.1.3 注意力機製的實現 19
2.1.4 自注意力 20
2.1.5 掩碼自注意力 20
2.1.6 多頭注意力 22
2.2 編碼器-解碼器架構 26
2.2.1Seq2Seq 27
2.2.2 全連接神經網絡 28
2.2.3 層歸一化 29
2.2.4 殘差連接 31
2.2.5 編碼器 32
2.2.6 解碼器 33
2.3 搭建一個Transformer模型 34
2.3.1 嵌入層 35
2.3.2 位置編碼 36
2.3.3 一個完整的Transformer 41
參考資料 44
第3章 PLM 45
3.1 僅編碼器PLM 45
3.1.1BERT 46
3.1.2RoBERTa 54
3.1.3ALBERT 57
3.2 編碼器-解碼器PLM 59
T5 60
3.3 僅解碼器PLM 66
3.3.1GPT 66
3.3.2LLaMA 72
3.3.3GLM 74
參考資料 78
第4章LLM 80
4.1 什麼是LLM 81
4.1.1LLM的定義 81
4.1.2LLM的能力 82
4.1.3LLM的特點 84
4.2 如何訓練一個LLM 86
4.2.1 預訓練 87
4.2.2SFT 91
4.2.3RLHF 96
參考資料 100
第5章 動手搭建大模型 101
5.1 動手搭建一個LLaMA2大模型 101
5.1.1 定義超參數 101
5.1.2 構建RMS歸一化 102
5.1.3 構建LLaMA2Attention模塊 104
5.1.4 構建LLaMA2MLP模塊 111
5.1.5 構建LLaMA2的解碼器層 113
5.1.6 構建LLaMA2大模型 115
5.2 訓練分詞器 119
5.2.1 詞級分詞器 119
5.2.2 字符級分詞器 120
5.2.3 子詞級分詞器 120
5.2.4 訓練一個分詞器 122
5.3 預訓練一個小型LLM 129
5.3.1 數據下載 129
5.3.2 分詞器訓練實戰 131
5.3.3 數據集 137
5.3.4 預訓練 142
5.3.5SFT訓練 148
5.3.6 使用模型生成文本 154
第6章 大模型訓練流程實踐 161
6.1 模型預訓練 161
6.1.1Transformers框架介紹 161
6.1.2 初始化LLM 162
6.1.3 預訓練數據處理 166
6.1.4 使用Trainer類進行訓練 169
6.1.5 使用DeepSpeed實現分布式訓練 170
6.2 模型SFT 178
6.2.1 預訓練與SFT 179
6.2.2 微調數據處理 179
6.3 高效微調 185
6.3.1 高效微調方案 186
6.3.2LoRA微調 187
6.3.3LoRA微調的原理 188
6.3.4LoRA微調的代碼實現 189
6.3.5 使用peft實現LoRA微調 192
參考資料 194
第7章 大模型應用 195
7.1 大模型評測 195
7.1.1LLM的評測數據集 196
7.1.2 主流的大模型評測榜單 197
7.1.3 特定的大模型評測榜單 198
7.2RAG 199
7.2.1RAG的基本原理 199
7.2.2 實現一個RAG框架 200
7.3 智能體 209
7.3.1 什麼是智能體 209
7.3.2 智能體的類型 210
7.3.3 動手構造一個小型智能體 212
參考資料 219
······
