從零開始大模型開發與微調:基於PyTorch與ChatGLM

從零開始大模型開發與微調:基於PyTorch與ChatGLM

《從零開始大模型開發與微調:基於PyTorch與ChatGLM》是一本清華大學出版社出版的圖書,作者是王曉華。

基本介紹

  • 中文名:從零開始大模型開發與微調:基於PyTorch與ChatGLM
  • 作者:王曉華
  • 出版時間:2023年11月1日
  • 出版社:清華大學出版社
  • ISBN:9787302647072
  • 定價:89 元
  • 開本:16 開
  • 裝幀:平裝
作者簡介,內容簡介,圖書目錄,

作者簡介

內容簡介

大模型是深度學習自然語言處理皇冠上的一顆明珠,也是當前AI和NLP研究與產業中最重要的方向之一。本書使用PyTorch 2.0作為學習大模型的基本框架,以ChatGLM為例詳細講解大模型的基本理論、算法、程式實現、套用實戰以及微調技術,為讀者揭示大模型開發技術。本書配套示例原始碼、PPT課件。
《從零開始大模型開發與微調:基於PyTorch與ChatGLM》共18章,內容包括人工智慧與大模型、PyTorch 2.0深度學習環境搭建、從零開始學習PyTorch 2.0、深度學習基礎算法詳解、基於PyTorch卷積層的MNIST分類實戰、PyTorch數據處理與模型展示、ResNet實戰、有趣的詞嵌入、基於PyTorch循環神經網路的中文情感分類實戰、自然語言處理的編碼器、預訓練模型BERT、自然語言處理的解碼器、強化學習實戰、只具有解碼器的GPT-2模型、實戰訓練自己的ChatGPT、開源大模型ChatGLM使用詳解、ChatGLM高級定製化套用實戰、對ChatGLM進行高級微調。
《從零開始大模型開發與微調:基於PyTorch與ChatGLM》適合PyTorch深度學習初學者、大模型開發初學者、大模型開發人員學習,也適合高等院校人工智慧、智慧型科學與技術、數據科學與大數據技術、計算機科學與技術等專業的師生作為教學參考書。

圖書目錄

第1章 新時代的曙光—人工智慧與大模型 1
1.1 人工智慧:思維與實踐的融合 1
1.1.1 人工智慧的歷史與未來 2
1.1.2 深度學習與人工智慧 2
1.1.3 選擇PyTorch 2.0實戰框架 3
1.2 大模型開啟人工智慧的新時代 4
1.2.1 大模型帶來的變革 4
1.2.2 最強的中文大模型—清華大學ChatGLM介紹 5
1.2.3 近在咫尺的未來—大模型的套用前景 6
1.3 本章小結 7
第2章 PyTorch 2.0深度學習環境搭建 8
2.1 環境搭建1:安裝Python 8
2.1.1 Miniconda的下載與安裝 8
2.1.2 PyCharm的下載與安裝 11
2.1.3 Python代碼小練習:計算Softmax函式 14
2.2 環境搭建2:安裝PyTorch 2.0 15
2.2.1 Nvidia 10/20/30/40系列顯示卡選擇的GPU版本 15
2.2.2 PyTorch 2.0 GPU Nvidia運行庫的安裝 15
2.2.3 PyTorch 2.0小練習:Hello PyTorch 18
2.3 生成式模型實戰:古詩詞的生成 18
2.4 圖像降噪:手把手實戰第一個深度學習模型 19
2.4.1 MNIST數據集的準備 19
2.4.2 MNIST數據集的特徵和標籤介紹 21
2.4.3 模型的準備和介紹 22
2.4.4 對目標的逼近—模型的損失函式與最佳化函式 24
2.4.5 基於深度學習的模型訓練 24
2.5 本章小結 26
第3章 從零開始學習PyTorch 2.0 27
3.1 實戰MNIST手寫體識別 27
3.1.1 數據圖像的獲取與標籤的說明 27
3.1.2 實戰基於PyTorch 2.0的手寫體識別模型 29
3.1.3 基於Netron庫的PyTorch 2.0模型可視化 32
3.2 自定義神經網路框架的基本設計 34
3.2.1 神經網路框架的抽象實現 34
3.2.2 自定義神經網路框架的具體實現 35
3.3 本章小結 43
第4章 一學就會的深度學習基礎算法詳解 44
4.1 反向傳播神經網路的前身歷史 44
4.2 反向傳播神經網路兩個基礎算法詳解 47
4.2.1 最小二乘法詳解 48
4.2.2 梯度下降算法 50
4.2.3 最小二乘法的梯度下降算法及其Python實現 52
4.3 反饋神經網路反向傳播算法介紹 58
4.3.1 深度學習基礎 58
4.3.2 鏈式求導法則 59
4.3.3 反饋神經網路的原理與公式推導 60
4.3.4 反饋神經網路原理的激活函式 64
4.3.5 反饋神經網路原理的Python實現 66
4.4 本章小結 70
第5章 基於PyTorch卷積層的MNIST分類實戰 71
5.1 卷積運算的基本概念 71
5.1.1 基本卷積運算示例 72
5.1.2 PyTorch中的卷積函式實現詳解 73
5.1.3 池化運算 75
5.1.4 Softmax激活函式 77
5.1.5 卷積神經網路的原理 78
5.2 實戰:基於卷積的MNIST手寫體分類 80
5.2.1 數據的準備 80
5.2.2 模型的設計 81
5.2.3 基於卷積的MNIST分類模型 82
5.3 PyTorch的深度可分離膨脹卷積詳解 84
5.3.1 深度可分離卷積的定義 84
5.3.2 深度的定義以及不同計算層待訓練參數的比較 86
5.3.3 膨脹卷積詳解 87
5.3.4 實戰:基於深度可分離膨脹卷積的MNIST手寫體識別 87
5.4 本章小結 90
第6章 可視化的PyTorch數據處理與模型展示 91
6.1 用於自定義數據集的torch.utils.data工具箱使用詳解 92
6.1.1 使用torch.utils.data. Dataset封裝自定義數據集 92
6.1.2 改變數據類型的Dataset類中的transform的使用 93
6.1.3 批量輸出數據的DataLoader類詳解 98
6.2 實戰:基於tensorboardX的訓練可視化展示 100
6.2.1 可視化組件tensorboardX的簡介與安裝 100
6.2.2 tensorboardX可視化組件的使用 100
6.2.3 tensorboardX對模型訓練過程的展示 103
6.3 本章小結 105
第7章 ResNet實戰 106
7.1 ResNet基礎原理與程式設計基礎 106
7.1.1 ResNet誕生的背景 107
7.1.2 PyTorch 2.0中的模組工具 109
7.1.3 ResNet殘差模組的實現 110
7.1.4 ResNet網路的實現 112
7.2 ResNet實戰:CIFAR-10數據集分類 114
7.2.1 CIFAR-10數據集簡介 114
7.2.2 基於ResNet的CIFAR-10數據集分類 117
7.3 本章小結 118
第8章 有趣的詞嵌入 120
8.1 文本數據處理 120
8.1.1 Ag_news數據集介紹和數據清洗 120
8.1.2 停用詞的使用 123
8.1.3 詞向量訓練模型Word2Vec使用介紹 125
8.1.4 文本主題的提取:基於TF-IDF 128
8.1.5 文本主題的提取:基於TextRank 132
8.2 更多的詞嵌入方法—FastText和預訓練詞向量 134
8.2.1 FastText的原理與基礎算法 135
8.2.2 FastText訓練及其與PyTorch 2.0的協同使用 136
8.2.3 使用其他預訓練參數來生成PyTorch 2.0詞嵌入矩陣(中文) 140
8.3 針對文本的卷積神經網路模型簡介—字元卷積 141
8.3.1 字元(非單詞)文本的處理 141
8.3.2 卷積神經網路文本分類模型的實現—Conv1d(一維卷積) 148
8.4 針對文本的卷積神經網路模型簡介—詞卷積 151
8.4.1 單詞的文本處理 151
8.4.2 卷積神經網路文本分類模型的實現—Conv2d(二維卷積) 153
8.5 使用卷積對文本分類的補充內容 155
8.5.1 漢字的文本處理 155
8.5.2 其他細節 157
8.6 本章小結 158
第9章 基於循環神經網路的中文情感分類實戰 160
9.1 實戰:循環神經網路與情感分類 160
9.2 循環神經網路理論講解 165
9.2.1 什麼是GRU 165
9.2.2 單向不行,那就雙向 167
9.3 本章小結 168
第10章 從零開始學習自然語言處理的編碼器 169
10.1 編碼器的核心—注意力模型 170
10.1.1 輸入層—初始詞向量層和位置編碼器層 170
10.1.2 自注意力層 172
10.1.3 ticks和Layer Normalization 177
10.1.4 多頭注意力 178
10.2 編碼器的實現 180
10.2.1 前饋層的實現 181
10.2.2 編碼器的實現 182
10.3 實戰編碼器:拼音漢字轉化模型 184
10.3.1 漢字拼音數據集處理 185
10.3.2 漢字拼音轉化模型的確定 187
10.3.3 模型訓練部分的編寫 190
10.4 本章小結 191
第11章 站在巨人肩膀上的預訓練模型BERT 193
11.1 預訓練模型BERT 193
11.1.1 BERT的基本架構與套用 194
11.1.2 BERT預訓練任務與微調 195
11.2 實戰BERT:中文文本分類 198
11.2.1 使用Hugging Face獲取BERT預訓練模型 198
11.2.2 BERT實戰文本分類 200
11.3 更多的預訓練模型 203
11.4 本章小結 205
第12章 從1開始自然語言處理的解碼器 206
12.1 解碼器的核心—注意力模型 206
12.1.1 解碼器的輸入和互動注意力層的掩碼 207
12.1.2 為什麼通過掩碼操作能夠減少干擾 212
12.1.3 解碼器的輸出(移位訓練方法) 213
12.1.4 解碼器的實現 214
12.2 解碼器實戰—拼音漢字翻譯模型 215
12.2.1 數據集的獲取與處理 216
12.2.2 翻譯模型 218
12.2.3 拼音漢字模型的訓練 229
12.2.4 拼音漢字模型的使用 230
12.3 本章小結 231
第13章 基於PyTorch 2.0的強化學習實戰 232
13.1 基於強化學習的火箭回收實戰 232
13.1.1 火箭回收基本運行環境介紹 233
13.1.2 火箭回收參數介紹 234
13.1.3 基於強化學習的火箭回收實戰 234
13.1.4 強化學習的基本內容 239
13.2 強化學習的基本算法—PPO算法 243
13.2.1 PPO算法簡介 243
13.2.2 函式使用說明 244
13.2.3 一學就會的TD-error理論介紹 245
13.2.4 基於TD-error的結果修正 247
13.2.5 對於獎勵的倒序構成的說明 248
13.3 本章小結 249
第14章 ChatGPT前身—只具有解碼器的GPT-2模型 250
14.1 GPT-2模型簡介 250
14.1.1 GPT-2模型的輸入和輸出結構—自回歸性 251
14.1.2 GPT-2模型的PyTorch實現 252
14.1.3 GPT-2模型輸入輸出格式的實現 257
14.2 Hugging Face GPT-2模型源碼模型詳解 259
14.2.1 GPT2LMHeadModel類和GPT2Model類詳解 259
14.2.2 Block類詳解 270
14.2.3 Attention類詳解 274
14.2.4 MLP類詳解 281
14.3 Hugging Face GPT-2模型的使用與自定義微調 282
14.3.1 模型的使用與自定義數據集的微調 282
14.3.2 基於預訓練模型的評論描述微調 285
14.4 自定義模型的輸出 286
14.4.1 GPT輸出的結構 286
14.4.2 創造性參數temperature與採樣個數topK 288
14.5 本章小結 290
第15章 實戰訓練自己的ChatGPT 291
15.1 什麼是ChatGPT 291
15.2 RLHF模型簡介 293
15.2.1 RLHF技術分解 293
15.2.2 RLHF中的具體實現—PPO算法 296
15.3 基於RLHF實戰的ChatGPT正向評論的生成 297
15.3.1 RLHF模型進化的總體講解 297
15.3.2 ChatGPT評分模組簡介 298
15.3.3 帶有評分函式的ChatGPT模型的構建 300
15.3.4 RLHF中的PPO算法—KL散度 301
15.3.5 RLHF中的PPO算法—損失函式 303
15.4 本章小結 304
第16章 開源大模型ChatGLM使用詳解 305
16.1 為什麼要使用大模型 305
16.1.1 大模型與普通模型的區別 306
16.1.2 一個神奇的現象—大模型的湧現能力 307
16.2 ChatGLM使用詳解 307
16.2.1 ChatGLM簡介及套用前景 308
16.2.2 下載ChatGLM 309
16.2.3 ChatGLM的使用與Prompt介紹 310
16.3 本章小結 311
第17章 開源大模型ChatGLM 高級定製化套用實戰 312
17.1 醫療問答GLMQABot搭建實戰—基於ChatGLM搭建專業客服問答機器人 312
17.1.1 基於ChatGLM搭建專業領域問答機器人的思路 313
17.1.2 基於真實醫療問答的數據準備 314
17.1.3 文本相關性(相似度)的比較算法 315
17.1.4 提示語句Prompt的構建 316
17.1.5 基於單個文檔的GLMQABot的搭建 316
17.2 金融信息抽取實戰—基於知識鏈的ChatGLM本地化知識庫檢索與智慧型答案生成 318
17.2.1 基於ChatGLM搭建智慧型答案生成機器人的思路 319
17.2.2 獲取專業(範疇內)文檔與編碼存儲 320
17.2.3 查詢文本編碼的相關性比較與排序 322
17.2.4 基於知識鏈的ChatGLM本地化知識庫檢索與智慧型答案生成 325
17.3 基於ChatGLM的一些補充內容 327
17.3.1 語言的藝術—Prompt的前世今生 328
17.3.2 清華大學推薦的ChatGLM微調方法 329
17.3.2 一種新的基於ChatGLM的文本檢索方案 330
17.4 本章小結 331
第18章 對訓練成本上億美元的ChatGLM進行高級微調 332
18.1 ChatGLM模型的本地化處理 332
18.1.1 下載ChatGLM源碼與合併存檔 332
18.1.2 修正自定義的本地化模型 335
18.1.3 構建GLM模型的輸入輸出示例 337
18.2 高級微調方法1—基於加速庫Accelerator的全量數據微調 339
18.2.1 數據的準備—將文本內容轉化成三元組的知識圖譜 339
18.2.2 加速的秘密—Accelerate模型加速工具詳解 342
18.2.3 更快的速度—使用INT8(INT4)量化模型加速訓練 345
18.3 高級微調方法2—基於LoRA的模型微調 348
18.3.1 對ChatGLM進行微調的方法—LoRA 348
18.3.2 自定義LoRA的使用方法 349
18.3.3 基於自定義LoRA的模型訓練 350
18.3.4 基於自定義LoRA的模型推斷 352
18.3.5 基於基本原理的LoRA實現 355
18.4 高級微調方法3—基於Huggingface的PEFT模型微調 357
18.4.1 PEFT技術詳解 358
18.4.2 PEFT的使用與參數設計 359
18.4.3 Huggingface專用PEFT的使用 360
18.5 本章小結 362

相關詞條

熱門詞條

聯絡我們