深度神經(jīng)網(wǎng)絡(luò)高效計算
定 價:99 元
叢書名:人工智能前沿理論與實踐應(yīng)用叢書
- 作者:程健主編
- 出版時間:2024/8/1
- ISBN:9787121484018
- 出 版 社:電子工業(yè)出版社
- 中圖法分類:TP183
- 頁碼:284頁
- 紙張:
- 版次:
- 開本:24cm
近些年來,在深度學(xué)習(xí)的推動下,人工智能步入新的發(fā)展階段。然而,隨著深度學(xué)習(xí)模型性能的提升,其計算復(fù)雜度也在不斷增加,深度學(xué)習(xí)模型的運行效率面臨巨大挑戰(zhàn)。在這種情況下,深度學(xué)習(xí)高效計算成為在更大范圍內(nèi)應(yīng)用人工智能的重要環(huán)節(jié)。本書圍繞深度學(xué)習(xí)模型計算,重點從深度學(xué)習(xí)模型優(yōu)化、算法軟件加速、硬件架構(gòu)設(shè)計等方面展開介紹深度學(xué)習(xí)高效計算,主要包括低秩分解、剪枝、量化、知識蒸餾、精簡網(wǎng)絡(luò)設(shè)計與搜索、深度神經(jīng)網(wǎng)絡(luò)高效訓(xùn)練、卷積神經(jīng)網(wǎng)絡(luò)高效計算、大模型高效計算、神經(jīng)網(wǎng)絡(luò)加速器設(shè)計等內(nèi)容。
1 概述1
1.1 深度學(xué)習(xí)與人工智能1
1.2 深度學(xué)習(xí)高效計算 2
1.2.1 深度學(xué)習(xí)計算面臨困難 2
1.2.2 主要研究方向3
1.3 本章小結(jié) 4
2 神經(jīng)網(wǎng)絡(luò)與深度學(xué)習(xí)基礎(chǔ)5
2.1 神經(jīng)網(wǎng)絡(luò)5
2.1.1 感知機 5
2.1.2 多層感知機 6
2.1.3 深度學(xué)習(xí) 7
2.2 神經(jīng)網(wǎng)絡(luò)訓(xùn)練10
2.2.1 梯度下降 10
2.2.2 損失函數(shù) 11
2.2.3 過擬合與正則化 13
2.3 典型深度神經(jīng)網(wǎng)絡(luò)15
2.3.1 卷積神經(jīng)網(wǎng)絡(luò)15
2.3.2 循環(huán)神經(jīng)網(wǎng)絡(luò)16
2.3.3 圖神經(jīng)網(wǎng)絡(luò) 16
2.3.4 自注意力神經(jīng)網(wǎng)絡(luò)16
2.4 本章小結(jié) 17
3 深度學(xué)習(xí)框架介紹18
3.1 什么是深度學(xué)習(xí)框架18
3.2 深度學(xué)習(xí)框架的基本組成19
3.2.1 張量 19
3.2.2 算子 19
3.2.3 計算圖20
3.2.4 自動微分支持20
3.2.5 并行計算支持21
3.3 深度學(xué)習(xí)訓(xùn)練框架21
3.3.1 TensorFlow 22
3.3.2 PyTorch22
3.3.3 Caffe 22
3.3.4 MXNet 23
3.3.5 PaddlePaddle23
3.3.6 MindSpore24
3.4 深度學(xué)習(xí)推理框架 24
3.4.1 TensorFlow Lite24
3.4.2 MNN 25
3.4.3 NCNN 25
3.4.4 MACE 25
3.4.5 SNPE26
3.4.6 華為HiAI 26
3.4.7 TensorRT.26
3.4.8 QNN 27
3.5 本章小結(jié) 27
4 低秩分解28
4.1 張量基礎(chǔ) 28
4.1.1 張量定義 28
4.1.2 張量運算 29
4.1.3 特殊類型張量32
4.2 矩陣SVD 分解 33
4.2.1 特征值與特征向量33
4.2.2 特征值分解 34
4.2.3 SVD 分解34
4.2.4 全連接層SVD 分解 35
4.2.5 卷積層SVD 分解 36
4.3 張量低秩分解38
4.3.1 Tucker 分解39
4.3.2 CP 分解 41
4.3.3 BTD 分解 44
4.4 本章小結(jié)46
5 深度神經(jīng)網(wǎng)絡(luò)剪枝47
5.1 神經(jīng)網(wǎng)絡(luò)剪枝簡介 47
5.1.1 剪枝的基本概念和定義47
5.1.2 剪枝的作用與意義48
5.1.3 神經(jīng)網(wǎng)絡(luò)剪枝發(fā)展簡史 49
5.1.4 剪枝的基本類型 50
5.2 稀疏網(wǎng)絡(luò)存儲格式51
5.2.1 非結(jié)構(gòu)化剪枝存儲格式51
5.2.2 結(jié)構(gòu)化剪枝存儲格式53
5.3 神經(jīng)網(wǎng)絡(luò)剪枝算法53
5.3.1 基于重要性度量的剪枝 53
5.3.2 基于稀疏正則化的剪枝方法58
5.3.3 基于逐層特征重構(gòu)的剪枝61
5.3.4 運行時剪枝算法 62
5.3.5 基于初始化的剪枝算法 65
5.3.6 基于自動機器學(xué)習(xí)的剪枝算法 66
5.4 本章小結(jié) 71
6 量化72
6.1 量化基礎(chǔ)73
6.1.1 量化函數(shù) 73
6.1.2 量化計算 77
6.1.3 量化粒度 80
6.2 訓(xùn)練后量化81
6.2.1 量化參數(shù)求解82
6.2.2 量化誤差校正86
6.2.3 訓(xùn)練后量化經(jīng)典方法88
6.2.4 訓(xùn)練后量化流程 91
6.3 量化感知訓(xùn)練91
6.3.1 QAT 基礎(chǔ) 92
6.3.2 QAT 經(jīng)典方法 94
6.3.3 QAT 流程 98
6.4 進(jìn)階課題 99
6.4.1 混合精度量化100
6.4.2 無數(shù)據(jù)量化 105
6.4.3 二值量化 108
6.5 本章小結(jié) 113
7 知識蒸餾114
7.1 何為知識 114
7.2 如何蒸餾 118
7.2.1 軟標(biāo)簽蒸餾 118
7.2.2 隱層特征蒸餾124
7.3 相關(guān)應(yīng)用 128
7.3.1 魯棒訓(xùn)練 128
7.3.2 語義分割 130
7.3.3 目標(biāo)檢測 131
7.4 本章小結(jié) 135
8 精簡網(wǎng)絡(luò)設(shè)計與搜索136
8.1 手工設(shè)計神經(jīng)網(wǎng)絡(luò)架構(gòu)136
8.1.1 Network In Network 136
8.1.2 ResNeXt138
8.1.3 SqueezeNet 140
8.1.4 MobileNet 141
8.1.5 ShuffleNet 144
8.2 神經(jīng)網(wǎng)絡(luò)架構(gòu)搜索144
8.2.1 基于權(quán)重共享的神經(jīng)網(wǎng)絡(luò)架構(gòu)搜索 147
8.2.2 基于預(yù)測器的神經(jīng)網(wǎng)絡(luò)架構(gòu)搜索154
8.2.3 基于先驗指標(biāo)的神經(jīng)網(wǎng)絡(luò)架構(gòu)搜索 155
8.3 本章小結(jié) 156
9 深度神經(jīng)網(wǎng)絡(luò)高效訓(xùn)練方法 158
9.1 深度神經(jīng)網(wǎng)絡(luò)高效訓(xùn)練簡介158
9.1.1 什么是高效訓(xùn)練方法158
9.1.2 高效訓(xùn)練方法基本類型159
9.1.3 高效訓(xùn)練算法的意義159
9.2 深度神經(jīng)網(wǎng)絡(luò)訓(xùn)練基本流程160
9.2.1 數(shù)據(jù)預(yù)處理 160
9.2.2 前向傳播 161
9.2.3 反向傳播 162
9.2.4 權(quán)重更新 163
9.3 深度神經(jīng)網(wǎng)絡(luò)分布式訓(xùn)練163
9.3.1 參數(shù)服務(wù)器模式 164
9.3.2 Ring All-Reduce 模式 165
9.4 面向數(shù)據(jù)預(yù)處理的高效訓(xùn)練方法 167
9.4.1 基于GPU 的數(shù)據(jù)預(yù)處理167
9.4.2 基于數(shù)據(jù)重復(fù)的數(shù)據(jù)預(yù)處理168
9.5 基于梯度壓縮的高效分布式訓(xùn)練 169
9.5.1 梯度剪枝方法170
9.5.2 梯度量化方法170
9.5.3 本地殘差梯度積累171
9.5.4 本地梯度截斷172
9.6 面向顯存優(yōu)化的高效訓(xùn)練算法173
9.6.1 網(wǎng)絡(luò)訓(xùn)練內(nèi)存構(gòu)成173
9.6.2 梯度檢查點 174
9.6.3 內(nèi)存下放 175
9.6.4 激活壓縮的訓(xùn)練176
9.7 面向計算過程的網(wǎng)絡(luò)訓(xùn)練加速177
9.7.1 FP16 混合精度訓(xùn)練算法177
9.7.2 基于低比特量化的訓(xùn)練加速算法 178
9.7.3 稠密和稀疏網(wǎng)絡(luò)交替訓(xùn)練算法 179
9.7.4 基于稀疏反向傳播的訓(xùn)練加速 180
9.8 本章小結(jié) 181
10 卷積神經(jīng)網(wǎng)絡(luò)高效計算182
10.1 im2col 算法183
10.1.1 一維卷積的im2col 算法183
10.1.2 二維卷積的im2col 算法185
10.1.3 多輸入通道的二維卷積的im2col 算法188
10.1.4 多輸出通道的二維卷積的im2col 算法189
10.2 矩陣乘算法優(yōu)化與實現(xiàn)191
10.2.1 基礎(chǔ)實現(xiàn) 191
10.2.2 矩陣重排 192
10.2.3 分塊矩陣乘算法 196
10.2.4 向量化計算198
10.3 內(nèi)存高效的快速卷積算法 199
10.3.1 im2col 算法的問題200
10.3.2 單通道二維卷積的MEC 算法202
10.3.3 多通道二維卷積的MEC 算法204
10.3.4 空間復(fù)雜度分析 205
10.4 Winograd 快速卷積算法 206
10.4.1 Winograd 快速卷積206
10.4.2 多通道二維卷積的Winograd 算法 209
10.4.3 復(fù)雜度分析211
10.5 稀疏卷積高效計算213
10.5.1 模式剪枝213
10.5.2 動機及剪枝方式 213
10.5.3 塊剪枝216
10.5.4 2:4 剪枝 218
10.6 本章小結(jié) 220
11 大模型高效計算 222
11.1 大模型概述222
11.1.1 大模型發(fā)展歷程 222
11.1.2 Transformer 架構(gòu)223
11.1.3 計算特性分析 225
11.2 大模型壓縮方法226
11.2.1 大模型量化226
11.2.2 大模型剪枝231
11.3 高效訓(xùn)練與微調(diào)237
11.3.1 大模型高效訓(xùn)練算法 237
11.3.2 大模型參數(shù)高效微調(diào)方法 244
11.4 系統(tǒng)優(yōu)化 248
11.4.1 算子融合優(yōu)化:FlashAttention248
11.4.2 存儲管理優(yōu)化:Paged Attention 252
11.4.3 并行服務(wù)優(yōu)化:Continuous Batching253
11.5 高效解碼 254
11.5.1 推測解碼255
11.5.2 思維導(dǎo)圖257
11.6 本章小結(jié) 258
12 神經(jīng)網(wǎng)絡(luò)加速器設(shè)計基礎(chǔ)260
12.1 為什么要設(shè)計神經(jīng)網(wǎng)絡(luò)加速器260
12.2 神經(jīng)網(wǎng)絡(luò)加速器設(shè)計基礎(chǔ) 262
12.2.1 硬件描述語言基礎(chǔ)263
12.2.2 計算單元265
12.2.3 存儲結(jié)構(gòu)及片上網(wǎng)絡(luò) 270
12.2.4 數(shù)據(jù)流272
12.2.5 分塊及映射275
12.3 深度學(xué)習(xí)算法架構(gòu)協(xié)同設(shè)計279
12.3.1 結(jié)構(gòu)化稀疏加速器279
12.3.2 可變位寬加速器 281
12.3.3 其他協(xié)同設(shè)計方案284
12.4 網(wǎng)絡(luò)-架構(gòu)協(xié)同搜索 286
12.4.1 基于強化學(xué)習(xí)的網(wǎng)絡(luò)-架構(gòu)協(xié)同搜索 287
12.4.2 基于梯度的網(wǎng)絡(luò)-架構(gòu)協(xié)同搜索288
12.5 本章小結(jié) 289
13 實戰(zhàn)DNN 加速器設(shè)計291
13.1 加速器整體架構(gòu)291
13.2 接口互聯(lián) 292
13.3 構(gòu)成部件 293
13.3.1 協(xié)處理器293
13.3.2 處理單元陣列 296
13.3.3 存儲系統(tǒng)302
13.4 軟件設(shè)計 305
13.5 可配置參數(shù)與架構(gòu)拓展·306
13.6 本章小結(jié) 307
參考文獻(xiàn)309