|
22 | 22 |
|
23 | 23 | ## 1.3 神经网络架构搜索 |
24 | 24 |
|
25 | | -  神经网络架构搜索是一种使用机器学习的方法,可以在不需要大量人力的情况下,自动搜索最优网络架构的技术。通过给定搜索空间,如给定模型架构,范围,长度,将模型网络设计转换为搜索问题,通过设计搜索策略和自动化的模型评估方法,自动化快速搜索到给定搜索空间中符合目标的神经网络架构。 |
| 25 | +  神经网络架构搜索是一种使用机器学习的方法,可以在不需要大量人力的情况下,自动搜索最优网络架构的技术。通过给定搜索空间,如给定模型架构,范围,长度,将模型网络设计转换为搜索问题,通过设计搜索策略和自动化的模型评估方法,自动化快速搜索到给定搜索空间中符合目标的神经网络架构。尽管神经网络架构搜索本质上是一种用于自动设计神经网络结构的技术,但它在许多应用中,尤其是移动端、嵌入式设备等场景中的主要目标之一,是搜索出在保证精度的前提下计算开销更小、结构更简洁的模型架构。这与模型压缩的核心目标是一致的:在不显著牺牲性能的情况下降低模型复杂度。因此,我们将其视为模型压缩的一种形式。 |
26 | 26 |
|
27 | 27 | ## 1.4 知识蒸馏 |
28 | 28 |
|
29 | 29 |   知识蒸馏是一种用于将知识从大型复杂模型(通常称为教师模型)转移到较小的简化模型(称为学生模型)的技术。教师模型包含在大型数据集训练过程中学到的大量信息。蒸馏旨在将这些知识提炼成更紧凑、更高效的形式,可以轻松部署在资源受限的设备上或计算能力有限的场景中。 |
30 | 30 |
|
| 31 | +## 1.5 低秩分解 |
| 32 | +  低秩分解是一种通过将神经网络中的权重矩阵近似为低秩矩阵乘积的方式,来压缩模型参数并提升推理效率的技术。该方法的核心思想是利用矩阵的冗余性,将原始高维矩阵分解为两个或多个低秩矩阵的乘积,从而显著减少参数数量和计算开销。在实践中,低秩分解常应用于线性层或卷积层,并可结合其他压缩手段如剪枝和量化,进一步提升压缩效果。通过适当的分解策略,可以在保持模型性能的前提下,实现显著的模型压缩和加速。 |
31 | 33 |
|
32 | 34 |
|
33 | | -## 1.5 总结 |
| 35 | +## 1.6 总结 |
34 | 36 |
|
35 | | -剪枝、量化、神经架构搜索与蒸馏等模型压缩方法为去除模型冗余提供了有效的解决方案。不同的模型压缩方法的特点如下: |
| 37 | +剪枝、量化、神经架构搜索、知识蒸馏与低秩分解等模型压缩方法为去除模型冗余提供了有效的解决方案。不同的模型压缩方法的特点如下: |
36 | 38 |
|
37 | 39 | | 方法 | 描述 | 适用对象 | 是否要预训练 | 优点 | 缺点 | |
38 | 40 | |:---:|-----|:---:|:-----------------:|-----|-----| |
39 | | -| 模型剪枝 | 判断参数、通道、滤波、卷积层的显著性,并剪除不重要的部分。|卷积层、全连接层 | 是 |显著减少参数数量,便于在硬件上实现加速。<br> 结构化剪枝使模型变窄,从而减少存储与提高运算速度。| 非结构化剪枝会造成网络结构不规整,难以有效加速。<br> 结构化剪枝可能会造成与硬件平台不兼容,灵活性差。| |
40 | | -| 模型量化 | 基于权值共享、矩阵近似,减少参数及激活值的存储位数,降低内存开销。|卷积层、全连接层 | 是 | 有不错的压缩量和模型性能,训练时间短,可以获得存储量小、计算量低和模型性能好的小型模型。 | 量化后的权重和激活降低了模型的容量和特征图的质量,量化到特殊位置时,容易造成预测精度下降,另外会向梯度信息中引入噪声,导致基于梯度下降法的训练过程收敛难度增加。 | |
41 | | -| 神经网络架构搜索 | 通过搜索算法来探索不同的网络结构,以找到最优的模型配置。|所有层 | 否 | 能够自动化地发现高性能、资源高效的深度学习模型架构。 | 通常需要大量的计算资源和时间,且结果可能受限于搜索空间的定义和搜索算法的选择。 | |
42 | | -| 知识蒸馏 | 将softmax分类器输出作为软知识,作为训练学生模型的先验知识。|卷积层、整个模型 | 是 | 训练简单,可以显著减少参数数量,容易与其他压缩方法组合使用实现更大程度压缩。 | 模型训练时间长,需要训练教师和学生模型;特殊结构很难与卷积核和较小方向的模型结合使用,泛化性差。 | |
| 41 | +| **模型剪枝** | 判断参数、通道、滤波、卷积层的显著性,并剪除不重要的部分。|卷积层、全连接层 | 是 |显著减少参数数量,便于在硬件上实现加速。<br> 结构化剪枝使模型变窄,从而减少存储与提高运算速度。| 非结构化剪枝会造成网络结构不规整,难以有效加速。<br> 结构化剪枝可能会造成与硬件平台不兼容,灵活性差。| |
| 42 | +| **模型量化** | 基于权值共享、矩阵近似,减少参数及激活值的存储位数,降低内存开销。|卷积层、全连接层 | 是 | 有不错的压缩量和模型性能,训练时间短,可以获得存储量小、计算量低和模型性能好的小型模型。 | 量化后的权重和激活降低了模型的容量和特征图的质量,量化到特殊位置时,容易造成预测精度下降,另外会向梯度信息中引入噪声,导致基于梯度下降法的训练过程收敛难度增加。 | |
| 43 | +| **神经网络架构搜索** | 通过搜索算法来探索不同的网络结构,以找到最优的模型配置。|所有层 | 否 | 能够自动化地发现高性能、资源高效的深度学习模型架构。 | 通常需要大量的计算资源和时间,且结果可能受限于搜索空间的定义和搜索算法的选择。 | |
| 44 | +| **知识蒸馏** | 将softmax分类器输出作为软知识,作为训练学生模型的先验知识。|卷积层、整个模型 | 是 | 训练简单,可以显著减少参数数量,容易与其他压缩方法组合使用实现更大程度压缩。 | 模型训练时间长,需要训练教师和学生模型;特殊结构很难与卷积核和较小方向的模型结合使用,泛化性差。 | |
| 45 | +| **低秩分解** | 将权重矩阵近似为若干低秩因子矩阵的乘积,以减少参数和计算量。|卷积层、线性层| 是 | 显著减少参数量和FLOPs,带来真实的推理加速。保持较高的精度,对现有硬件友好,可与剪枝、量化等方法结合。 | 分解引入逼近误差,需要额外微调才能恢复性能。秩的选择和分解方式对效果敏感,调参成本较高。 | |
43 | 46 |
|
44 | 47 | ## 2.常见评估指标 |
45 | 48 |
|
@@ -76,15 +79,15 @@ $$FLOPS=\frac{FLOPs}{\text { second }}$$ |
76 | 79 |
|
77 | 80 | $$OPS=\frac{OPs}{\text { second }}$$ |
78 | 81 |
|
79 | | -### 2.6 压缩比(Compression Ratio) |
| 82 | +### 2.7 压缩比(Compression Ratio) |
80 | 83 |
|
81 | 84 |   压缩比是原始模型大小与压缩后模型大小的比值。比率越高意味着大小减少得越多,显示压缩在节省存储和内存方面的有效性。更高的压缩比意味着更小的模型大小,但也可能伴随性能损失。 |
82 | 85 |
|
83 | | -### 2.7 推理时间(Inference Time) |
| 86 | +### 2.8 推理时间(Inference Time) |
84 | 87 |
|
85 | 88 |   推理时间是指模型在推理过程中处理输入数据并生成响应所花费的时间。模型压缩通常会提高推理速度,因为它减少了计算量和模型大小。推理时间对于LLM需要响应用户查询或实时处理大量数据的实际应用程序尤其重要。 |
86 | 89 |
|
87 | | -### 2.8 吞吐量(Throughput) |
| 90 | +### 2.9 吞吐量(Throughput) |
88 | 91 |
|
89 | 92 |   吞吐量(Throughput)是指模型在单位时间内能够处理的数据量,通常用于衡量压缩后模型的效率。Throughput 通常是与其他性能指标(如准确率、延迟)一同考量,以平衡模型精度和推理速度之间的关系。在剪枝或量化时,如果模型的 Throughput 提升显著而精度损失较小,则该压缩方法是有效的。 |
90 | 93 |
|
|
0 commit comments