清华汪玉教授团队发布高效模型压缩专著,助力深度学习研究

《高效深度学习:模型压缩与设计》专著正式上市,提供高效模型压缩及设计方法的系统性分析。

原文标题:赠书 | 清华汪玉教授团队:首部高效模型压缩与设计专著重磅上市

原文作者:数据派THU

冷月清谈:

清华大学汪玉教授与宁雪妃助理研究员团队最新推出的专著《高效深度学习:模型压缩与设计(全彩)》对高效模型压缩和设计的方法进行了系统性探讨。本书兼顾理论与实践,涵盖了从模型剪枝、模型量化到神经网络架构搜索等多种压缩方法论,旨在帮助读者在资源受限的环境中实现大模型的高效部署。此外,该著作还关注定制化硬件加速器和大语言模型的加速与压缩问题,为希望进入高效模型设计领域的人士提供了全面的学习资料。此书不仅适合初学者理解高效深度学习的框架和基本概念,也为有科研经验的研究者提供了理论与实践相结合的资源,帮助他们深入相关领域的探索。毫无疑问,《高效深度学习:模型压缩与设计》将在推动人工智能的研究与应用中起到重要的作用。

怜星夜思:

1、高效模型压缩如何影响AI应用的实际部署?
2、书中提到的轻量化算法设计是否适用于所有深度学习模型?
3、如何看待定制化硬件加速器在模型压缩中的角色?

原文内容


文中有数据派THU福利哦图片

汪玉 宁雪妃 著
电子工业出版社-博文视点 2024-07-01
9787121480591 定价: 119.00 元


新书推荐


|关于本书|


本书系统地介绍了高效模型压缩和模型设计的方法,在编写上兼顾理论和实践。本书主体部分详细介绍了模型压缩的方法论,包括高效模块设计、模型剪枝、模型量化、模型二值化、神经网络架构搜索、知识蒸馏几大部分。另外,简要介绍了定制化硬件加速器的设计及大语言模型的加速和压缩。


|关于作者|


汪玉,清华大学电子工程系长聘教授、系主任,IEEE Fellow,国家自然科学基金杰出青年基金获得者,清华大学信息科学技术学院副院长,清华大学天津电子信息研究院院长。长期从事智能芯片、高能效电路与系统的研究,曾获得4次国际学术会议最佳论文奖及12次最佳论文提名。曾获CCF科学技术奖技术发明一等奖、国际设计自动化会议40岁以下创新者奖、CCF青竹奖等荣誉。2016年,知识成果转化入股深鉴科技,打造了世界一流的深度学习计算平台;2018年,深鉴科技被业内龙头企业赛灵思(现AMD)收购。2023年,推动成立无问芯穹,形成面向大模型的软硬件联合优化平台,在国内外10余种芯片上实现了业界领先的大模型推理性能。 


宁雪妃,清华大学电子工程系助理研究员。主要研究方向为高效深度学习。支撑深鉴科技、无问芯穹的早期模型压缩和部署工具链工作;参与10余项高效深度学习相关项目;在机器学习、计算机视觉、设计自动化领域发表学术论文40余篇,其中包含在NeurIPS、ICLR、ICML、CVPR、ICCV、ECCV、AAAI、TPAMI上发表的学术论文共20篇;带领团队在NeurIPS18和CVPR20会议上获得国际比赛奖项。



在大语言模型问世之前,尤其是在ChatGPT出现之前,人们几乎没有认真讨论过“人工智能是否具备自我意识”这个话题。


2024年,由AI驱动的GPT-4o等应用产品爆红。


这些热门产品的广阔应用前景令人振奋,吸引了大量资源投入AI的算法研究、数据清洗、算力等方面的基础建设中。


这些爆款应用是由大数据训练的大模型支撑的。


举例来说,近年来,大语言模型的训练数据和模型的体量迅速增长,从2017年发布的有1.65 亿参数量的Transformer,到2020年发布的有1750亿参数量的GPT-3,再到2022年发布的ChatGPT应用背后的模型也至少有数百亿参数量。


这样的训练数据和模型体量的增长带来了模型能力的提升,让大模型“涌现”出指令跟随、上下文学习等能力,展示出“通用”的生成能力。


有目共睹的是,生成式任务的智能算法模型扩大,对算力的需求急剧增加。


在这个背景下,高效深度学习领域显得尤为关键,得到了广泛关注。



如何将“大”模型(参数量大、计算量大)部署到“小”设备上(资源受限,计算和存储能 力低),同时尽量保持算法性能是各应用领域都非常关心的话题。



实际应用场景关心的硬件性能指标主要包括延时(Latency)、吞吐率(Throughput)、功率(Power)、能耗(Energy)和存储(Storage)。


对这些指标的要求反映出用户体验、场景限制、成本控制多方面的需求。例如:


  • 延时和吞吐率影响了可用性和实时性;

  • 热设计功耗(ThermalDesign Power,TDP,即最大负荷的能量释放)决定硬件冷却系统所需具备的散热能力水平;

  • 能耗和存储均直接影响系统成本,等等。 


为优化这些指标,研究者和工程师探索了多条路径,纵跨不同设计层次,包括算法设计、软件设计、硬件设计。


在硬件层次,根据算法特性定制化地设计硬件架构,其中可能涉及采用新型器件,代表性工作包括基于FPGA和ASIC的专用硬件架构设计、基于存算器件的专用硬件架构设计。


具体来说,这些工作根据神经网络的算法特性(例如,算子类型、数据的复用模式等)或新器件特性(例如,模拟域计算或存储的能力、器件的非理想特性等)设计专门的计算单元、数据流、指令等,从而用更低的能耗完成同样的计算,即达到更高能效(Energy Efficiency)。


在软件层次,开发者需要针对神经网络模型和硬件平台的特性实现计算算子或系统软件,并开发编译优化工具等,例如,编译优化工具可将神经网络计算流图进行优化、切分、映射,从而将其部署到硬件平台,典型工作包括机器学习编译框架TVM等。


在算法层次,轻量化算法设计针对软硬件系统特性调整算法,通过调整神经网络的模型结构、数据表示等降低其计算开销(Computation Cost)、访存开销(Memory Access Cost)和存储开销(Memory Overhead)。计算开销、访存开销和存储开销的降低最终会体现在延时、吞吐率、功率、能耗、存储容量等指标上。


《高效深度学习:模型压缩与设计(全彩)》一书主体部分围绕“轻量化算法设计”这一思路展开,即通过从头设计或通过压缩已有模型得到更高效的轻量化模型。



书中详细介绍了模型压缩的方法论,包括高效模块设计、模型剪枝、模型量化、模型二值化、神经网络架构搜索、知识蒸馏几大部分。


另外,本书简要介绍了定制化硬件加速器的设计及大语言模型的加速和压缩。



目录


向上滑动阅览                                             

第1部分  基础

1 绪论 2

1.1 神经网络技术的发展 2

1.2 神经网络的高效化需求 3

1.3 神经网络的高效化路径 4

1.4 本书主要内容 6


2 基础知识 7

2.1 优化问题 7

2.1.1 优化问题的定义和分类 7

2.1.2 优化方法的分类 9

2.2 卷积神经网络模型 10

2.2.1 基础模块 10

2.2.2 代表性模型介绍 13

2.3 视觉Transformer模型 15

2.3.1 基础模块 16

2.3.2 模型分类与总结 18


第2部分  高效模型压缩方法论

3 高效模块设计 20

3.1 概述 20

3.2 代表性模型介绍 21

3.2.1 SqueezeNet  21

3.2.2 MobileNet系列 22

3.2.3 ShuffleNet系列 24

3.2.4 GhostNet 26

3.2.5 ConvNeXt 27

3.2.6 VoVNet系列 28

3.2.7 RepVGG  29

3.3 高效模块的5个设计维度 30

3.4 本章小结 31


4 模型剪枝 32

4.1 模型剪枝的定义和分类 32

4.2 模型敏感度分析方法 34

4.2.1 层内和层间敏感度分析 34

4.2.2 层内敏感度分析指标 35

4.3 结构化剪枝方法 37

4.3.1 基于权重正则的结构化剪枝方法 37

4.3.2 基于搜索的结构化剪枝方法 39

4.3.3 给定资源限制的条件下的结构化剪枝方法 44

4.4 近似低秩分解方法 47

4.5 非结构化剪枝方法 48

4.6 半结构化剪枝方法 51

4.7 针对激活值的剪枝方法 53

4.8 剪枝方法的经验性选择 55

4.8.1 剪枝流程的选择 55

4.8.2 剪枝稀疏模式的选择 56

4.8.3 关于任务性能的经验 56

4.9 Group Lasso 结构化剪枝的实践案例 57

4.10 本章小结 60


5 模型量化 61

5.1 模型量化的定义和分类 61

5.2 模型量化过程和量化推理过程 64

5.3 量化格式和操作 65

5.3.1 均匀量化格式 66

5.3.2 非均匀量化格式 68

5.3.3 三种量化操作 71

5.4 量化参数 73

5.4.1 缩放系数 73

5.4.2 零点位置 74

5.4.3 量化位宽 74

5.5 训练后量化75

5.5.1 训练后量化的流程 75

5.5.2 重参数化 76

5.5.3 缩放系数的选取方法 80

5.5.4 量化值调整 83

5.6 量化感知训练 87

5.6.1 基础与流程 87

5.6.2 调整模型架构的方法 90

5.6.3 量化器设计的技巧 92

5.6.4 常用的训练技巧 97

5.7 混合位宽量化 97

5.7.1 基于敏感度指标的混合位宽量化 97

5.7.2 基于搜索的混合位宽量化 99

5.8 量化方法的经验性选择 100

5.8.1 量化流程的选择 100

5.8.2 数据表示的设计和决定 100

5.8.3 算子的选择与处理和计算图的调整 102

5.8.4 关于任务性能的经验 104

5.9 拓展:低比特推理硬件实现 104

5.9.1 定点计算的硬件效率 104

5.9.2 浮点计算转定点计算的原理 105

5.9.3 非均匀量化格式的计算 111

5.9.4 典型的计算单元和加速器架构 112

5.10 拓展:低比特训练简介 115

5.10.1 应用背景 115

5.10.2 挑战分析 116

5.10.3 相关工作 116

5.11 本章小结 117


6 模型二值化 118

6.1 模型二值化的定义和分类 118

6.2 模型二值化的基础:以XNOR-Net为例 120

6.3 二值化方式 122

6.3.1 朴素二值化方式 123

6.3.2 间接二值化方式 127

6.4 训练技巧 131

6.4.1 修改损失函数 132

6.4.2 降低梯度估计误差 133

6.4.3 多阶段的训练方法 135

6.4.4 训练经验 136

6.5 架构设计 137

6.5.1 模型架构的调整 138

6.5.2 模型架构搜索 141

6.5.3 集成方法与动态模型 142

6.6 模型二值化在其他任务与架构中的应用 142

6.7 本章小结 144


7 神经网络架构搜索146

7.1 神经网络架构搜索的定义和分类 146

7.2 搜索空间 149

7.2.1 人工设计搜索空间 150

7.2.2 自动设计搜索空间 154

7.2.3 总结 156

7.3 搜索策略 157

7.3.1 基于强化学习的搜索策略 157

7.3.2 基于进化算法的搜索策略 159

7.3.3 随机搜索策略 160

7.3.4 基于架构性能预测器的搜索策略 160

7.3.5 总结 164

7.4 评估策略 165

7.4.1 独立训练策略 166

7.4.2 基于权重共享的单次评估策略 167

7.4.3 基于权重生成的单次评估策略 172

7.4.4 零次评估策略 172

7.5 可微分神经网络架构搜索 175

7.5.1 连续松弛方法 175

7.5.2 优化方法 176

7.5.3 搜索坍缩问题 177

7.5.4 更高效的可微分搜索算法 179

7.6 考虑硬件效率的神经网络架构搜索 180

7.6.1 考虑硬件效率的搜索空间设计 181

7.6.2 硬件效率指标的加速评估方法 182

7.6.3 考虑多种硬件效率目标的搜索策略 184

7.6.4 面向多种硬件设备及约束的神经网络架构搜索方法 186

7.7 本章小结 188


8 知识蒸馏 190

8.1 知识蒸馏的定义和分类 190

8.2 知识类型和知识分量:“学什么”  192

8.2.1 基于响应的知识 192

8.2.2 基于特征的知识 194

8.2.3 基于关系的知识 197

8.3 知识来源:“向谁学” 199

8.3.1 离线蒸馏 199

8.3.2 互学习 199

8.3.3 自蒸馏 200

8.4 本章小结 201


第3部分  拓展和前沿

9 相关领域:高效灵活的AI推理硬件和系统 203

9.1 概述 203

9.2 硬件加速器设计和软硬件协同优化 204

9.2.1 从CPU到硬件加速器 204

9.2.2 AI加速器中的软硬件协同优化 206

9.2.3 Roofline分析模型 207

9.2.4 基于指令集的AI加速器 210

9.3 神经网络计算资源虚拟化 211

9.3.1 虚拟化的概念 211

9.3.2 AI加速器的时分复用与空分复用虚拟化 212

9.3.3 相关工作简介 214

9.4 本章小结 215


10 前沿应用:大语言模型的加速和压缩 218

10.1 大语言模型的发展 218

10.2 大语言模型的架构和推理过程 219

10.3 大语言模型的高效性分析 220

10.3.1 效率瓶颈 220

10.3.2 优化路径 221

10.4 典型的大语言模型的压缩方法:量化 223

10.5 本章小结 226


后记 227

参考文献 229




适读人群


对于希望进入模型压缩领域的初学者,本书归纳了高效深度学习领域的整体框架,并注重阐述和辨析重要的基本概念,希望可以帮助读者快速获得对该领域的整体认知和掌握重要概念。


对于有一定科研经验、希望在相关科研方向进行探索的读者,本书在多个层次提供了框架性总结,定位多个子领域之间、同一子领域内多个方法之间的关系,希望可以帮助读者加强对知识的整合,利用框架更好地进行创新探索。


对于需要工具书辅助解决实际问题的读者,本书不仅包含对实践经验的总结,也包含对每个细分技术及其应用的逻辑的详细说明,希望可以帮助读者厘清分析和解决问题的思路,并快速定位到相关文献。


名家点评


本书系统地解析了压缩、设计与量化神经网络模型的技术,严谨地梳理了重要概念、逻辑与框架,理论结合实践,深入浅出。


对初学者而言,本书是快速掌握该领域的理想教材;对研究者与从业者而言,本书是深化理解、拓宽视野、启发创新的宝贵资源。无论求知或深耕,皆可借本书汲取知识、收获启迪,共探人工智能前沿。


ACM Fellow,IEEE Fellow,AAAS Fellow
香港科技大学讲席教授
阿里巴巴达摩院荣誉顾问
谢源


本书全面梳理了高效模型压缩和模型设计的方法论,结构逻辑清晰,内容紧跟前沿。书中提供的系统性的方法论总结和前沿性的知识介绍能为该领域的科研工作者提供许多启示。


AAAS Fellow,ACM Fellow,IEEE Fellow,NAI Fellow
杜克大学电气与计算机工程系教授
陈怡然


本书全面地总结了模型压缩方法论,同时分享了不少实践经验,这对模型压缩方法在工业界的实际应用提供了重要参考,是值得学习的优秀教材。


华为算法应用部部长
王云鹤



图片数据派THU独家福利!图片

点点为数据派THU的粉丝们争取了3本赠书福利!欢迎小伙伴儿在下方留言区畅谈对本书的看法,我们将为点赞数最高(截至2024年7月23日早9点)的3位读者免费送上此书~小编会联系你们哦!(之前获得过赠书的粉丝不能参与)





关于我们

数据派THU作为数据科学类公众号,背靠清华大学大数据研究中心,分享前沿数据科学与大数据技术创新研究动态、持续传播数据科学知识,努力建设数据人才聚集平台、打造中国大数据最强集团军。




新浪微博:@数据派THU

微信视频号:数据派THU

今日头条:数据派THU

轻量化算法的设计思路可以广泛应用,但实际效果和适用性可能因模型和任务的不同而有所差异,尤其在处理复杂场景时,可能需要进一步调整算法策略。

这是一种趋势,但是否适用依然要看具体情况。比如在图像识别和自然语言处理上,轻量化设计可能有不同的实现方式和效果,值得医院仔细对待。

我认为轻量化算法设计是一种创新思维,针对不同的模型,选择合适的压缩方法是关键,有些模型可能在轻量化处理后损失较大,所以不能一刀切。

高效模型压缩可以大幅度减小模型体积,尤其是在移动设备和嵌入式系统中,这对于响应速度和节省算力都是有帮助的。可以考虑具体应用,比如自动驾驶、物联网等领域。

从理论上讲,压缩模型不会以太多损失降低性能,如何找到一个平衡点很关键。我认为可以参考一些行业案例,看看压缩后的模型在实际任务中的表现。

我觉得压缩不仅关乎技术,背后也牵涉到商业利益,许多大公司已经在这方面投入重金,因此高效的模型部署对他们来说尤为重要,尤其是在资源紧张的场景中。

定制化硬件加速器可以极大化地提升模型推理的效率,尤其是在需要实时处理的领域。比如,边缘计算设备常常依赖于这样的加速器来满足实时性要求。

我觉得这是个很有意思的话题。定制化硬件在算法优化和模型运行中有着不可或缺的作用,尤其是它可以被设计成优先处理特定类型的模型,从而减少时间和能耗。

从我的理解来看,定制化硬件加速器可以为模型压缩提供良好的支持,但它们的设计要与算法的特性紧密结合,挑选合适的硬件资源非常重要。