Skip to content

Commit b088895

Browse files
authored
Fix issues #36
#36
1 parent b28d2f6 commit b088895

File tree

1 file changed

+2
-2
lines changed

1 file changed

+2
-2
lines changed

docs/ch03/ch03.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -29,11 +29,11 @@ $$
2929

3030
#### 非结构化剪枝
3131

32-
  非结构化剪枝去除不重要的神经元,相应地,被剪除的神经元和其他神经元之间的连接在计算时会被忽略。由于剪枝后的模型通常很稀疏,并且破坏了原有模型的结构,所以这类方法被称为非结构化剪枝。非结构化剪枝并不关心权重在网络中的位置,只是根据某种标准(例如,权重的绝对值大小)来决定是否移除这个权重。移除权重后,剩下的权重分布是稀疏的,即大多数权重为零。非结构化剪枝能极大降低模型的参数量和理论计算量,但是现有硬件架构的计算方式无法对其进行加速,通常需要特殊的硬件或软件支持来有效利用结果模型的稀疏性。所以在实际运行速度上得不到提升,需要设计特定的硬件才可能加速
32+
  非结构化剪枝的核心在于移除神经网络中不重要的单个权重。在这种方法中,特定的连接在计算时被忽略,权重的具体位置并不受限制,通常根据某种标准(如权重的绝对值大小)来决定是否将其置零。剪枝后,权重矩阵变得稀疏,即大多数元素为零,但矩阵的形状并未改变。非结构化剪枝由于粒度最细,通常能达到极高的压缩比且对模型精度的影响较小(理论参数量和计算量大幅降低)。然而,由于其产生的稀疏矩阵分布不规则,现有的通用硬件(如GPU)难以对其进行有效加速,通常需要专门设计的硬件加速器或特定的稀疏计算库支持,否则在实际运行中难以获得推理速度的提升
3333

3434
#### 结构化剪枝
3535

36-
  结构化剪枝则更加关注模型的组织结构,它试图识别并移除那些在整个模型结构中不重要的部分。这种剪枝方法可能涉及到移除整个神经元、卷积核、层或者更复杂的结构。通常以filter或者整个网络层为基本单位进行剪枝。一个filter被剪枝,那么其前一个特征图和下一个特征图都会发生相应的变化,但是模型的结构却没有被破坏,仍然能够通过 GPU 或其他硬件来加速,因此这类方法被称之为结构化剪枝
36+
  结构化剪枝则关注模型的宏观组织,试图移除模型中具有特定结构的组件。这种方法通常以通道(Channel)、卷积核(Filter)、注意力头(Attention Head)或整个层(Layer)为基本单位进行剪枝。例如,移除一个卷积核会导致对应的特征图消失,进而改变权重的维度。结构化剪枝的最大优势在于它保持了权重的稠密性,剪枝后的模型本质上是一个更窄或更浅的稠密网络。因此,它无需特殊的硬件或软件支持,即可直接在现有的通用GPU上获得显著的推理加速和显存节省
3737

3838
  非结构化剪枝关注于移除单个不重要的权重,导致权重矩阵变得稀疏,而结构化剪枝关注于移除整个神经单元或过滤器,导致网络结构上的变化,比如减小层数或通道数。在实际应用中,结构化剪枝通常能够提供更好的性能和压缩比,因为它能够更好地利用模型的内在结构。然而,结构化剪枝的实现通常更加复杂,需要更多的计算资源和对模型的深入理解。非结构化剪枝则相对简单,但可能不会达到结构化剪枝的压缩效果。
3939

0 commit comments

Comments
 (0)