Ultralytics YOLO27:
获取 YOLO 许可
返回 Ultralytics 术语表

Model Pruning

模型剪枝会移除神经网络中重要性较低的权重、滤波器或层,以缩减模型体积和计算量。了解非结构化与结构化剪枝,并查看代码。

模型剪枝会移除对训练后神经网络输出贡献很小的参数,范围从单个权重到整个滤波器、注意力头或层,从而让模型更小、运行成本更低。大多数网络都过度参数化,因此可以移除相当一部分权重,而准确率几乎不受影响;之后再进行微调时尤其如此。2015 年的一种剪枝再训练方法将 AlexNet 的参数量从 6100 万降到 670 万,将 VGG-16 的参数量从 1.38 亿降到 1030 万,且 ImageNet 准确率没有损失。剪枝是为手机、相机和其他边缘 AI硬件准备模型的标准步骤,如今也应用于大型语言模型(LLM)。

模型剪枝的工作原理#

剪枝会根据重要性为候选权重或结构打分,移除得分最低的一部分,再对剩余的模型权重进行微调以恢复准确率。最简单且至今最常用的评分方法是权重幅值:接近零的权重,或 L1、L2 范数较小的滤波器,移除后对输出的影响最小。其他标准则会利用梯度或激活值,估算移除每个部分会使损失增加多少。一次移除过大比例的参数通常会损害准确率,因此剪枝通常分轮进行,每轮之后都进行微调,直到模型达到目标大小,或准确率下降超出容许范围:

剪枝也改变了研究人员对网络规模的看法。彩票假设认为,稠密网络包含一些小型子网络;如果这些子网络从其原始初始权重开始单独训练,就能达到完整网络的准确率。该假设的作者在 MNIST 和 CIFAR-10 上反复发现,这类子网络的规模不到原网络的 10%–20%。

非结构化剪枝与结构化剪枝#

非结构化剪枝会将张量中任意位置的单个权重置零。它可以在准确率损失很小的情况下实现高稀疏度,但张量形状保持不变,因此标准稠密内核仍要执行同样的工作;要获得加速,需要稀疏内核或硬件支持。Ampere 及之后的 NVIDIA GPU 支持一种模式:每四个连续权重中有两个为零的 2:4 稀疏模式,其运算速度最高可达到稠密运算的两倍。结构化剪枝会移除整个滤波器、通道、注意力头或层,得到更小的稠密模型,可在任何处理器上更快运行;但在移除相同数量权重时,准确率损失更大。移除滤波器时,也会移除下一层中与之对应的输入通道;Torch-Pruning 等库可以自动追踪这些依赖关系。PyTorch 的剪枝工具展示了这两种方法的区别:

import torch
from torch.nn.utils import prune

# Two identical convolution layers, one for each pruning style
torch.manual_seed(0)
a = torch.nn.Conv2d(16, 32, kernel_size=3)
b = torch.nn.Conv2d(16, 32, kernel_size=3)

# Unstructured: zero the 50% of individual weights with the smallest magnitude
prune.l1_unstructured(a, name="weight", amount=0.5)

# Structured: zero the 50% of output filters with the smallest L2 norm
prune.ln_structured(b, name="weight", amount=0.5, n=2, dim=0)

for name, layer in [("unstructured", a), ("structured", b)]:
    zeros = (layer.weight == 0).float().mean().item()
    empty = (layer.weight.flatten(1) == 0).all(dim=1).sum().item()
    print(f"{name}: {zeros:.0%} of weights zero, {empty} of 32 filters empty")

两层最终都有 50% 的权重为零。只有结构化剪枝后的层包含空滤波器,共 32 个滤波器中的 16 个;删除它们后,就会得到滤波器数量减半的稠密层,在普通硬件上可将计算量减半。专为稀疏计算打造的硬件也能从非结构化剪枝中受益:Ambarella 为 Ultralytics YOLO 提供的 CVflow 集成由 Ambarella 在自己的软件包分支中维护,它会在 YOLO 训练期间逐步剪枝权重,并在 ONNX 导出过程中保留稀疏性,以便编译到其边缘 AI 芯片上。

  • 模型量化:降低所有权重的精度,例如从 32 位浮点数降至 8 位整数,但保留所有权重。剪枝和量化常结合使用,因为剪枝会减少运算次数,量化则会降低每次运算的成本。
  • 知识蒸馏:训练较小的学生模型模仿较大的教师模型;结构化剪枝移除整个滤波器或层后,通常会采用知识蒸馏来恢复由此损失的准确率。
  • Dropout:作为正则化的一种形式,在训练期间临时将随机激活值置零,推理时则使用完整网络。

剪枝大型语言模型#

每轮剪枝后重新训练 LLM 的成本过高,因此单次剪枝方法会使用小型校准集,一次性完成剪枝。SparseGPT 在不到 4.5 小时内,将 1750 亿参数的 OPT 和 1760 亿参数的 BLOOM 模型剪枝到 60% 的非结构化稀疏度,困惑度仅略有上升;它也支持 GPU 可加速的 2:4 模式。结构化剪枝结合知识蒸馏可生成更小的稠密模型:NVIDIA 的 Minitron 从一个预训练的 150 亿参数模型中剪枝嵌入通道、MLP 神经元和注意力头,得到 8B 和 4B 模型;随后用比从头训练少至多 40 倍的 token 对它们重新训练。

Explore solutions

体育领域的计算机视觉

体育领域的计算机视觉

了解 Ultralytics YOLO 如何通过球员和球追踪、表现分析、教练洞察及运动员康复,推动体育视觉技术的发展。
了解详情
航空影像计算机视觉

航空影像计算机视觉

借助 Ultralytics YOLO,将无人机和航空影像转化为实时洞察,应用于农业、水产养殖、环境监测、自然保护和地理空间分析。
了解详情
航空航天中的计算机视觉

航空航天中的计算机视觉

使用 Ultralytics YOLO 模型将视觉 AI 应用于航空监测。借助计算机视觉解决方案,赋能无人机、航空航天工作流、环境保护和地理空间行业。
了解详情
安防领域的计算机视觉

安防领域的计算机视觉

使用 Ultralytics YOLO 模型守护每个场所。视觉 AI 可用于周界监控、威胁检测、车牌识别和工作场所安全。
了解详情
机器人领域的计算机视觉

机器人领域的计算机视觉

使用 Ultralytics YOLO 模型提升智能机器的能力。机器人领域的视觉 AI 可用于自主导航、感知、目标跟踪和实时控制。
了解详情
物流中的计算机视觉

物流中的计算机视觉

借助 Ultralytics YOLO 模型优化物流流程。视觉 AI 可用于包裹检查、分拣、车辆跟踪和仓库安全实时监控。
了解详情
零售中的计算机视觉

零售中的计算机视觉

借助 Ultralytics YOLO 模型重新构想零售。视觉 AI 可用于库存跟踪、货架监控、排队管理和更深入的客户洞察。
了解详情
医疗领域的计算机视觉

医疗领域的计算机视觉

借助 Ultralytics YOLO 模型构建医疗解决方案。医疗领域的视觉 AI 可加快医学影像处理、优化诊断并监测患者。
了解详情
制造业中的计算机视觉

制造业中的计算机视觉

利用 Ultralytics YOLO 模型优化制造流程。视觉 AI 可用于质量控制、缺陷检测、个人防护装备合规检查和装配线自动化。
了解详情
汽车领域的计算机视觉

汽车领域的计算机视觉

利用 Ultralytics YOLO 模型在汽车领域应用计算机视觉。视觉 AI 可提升道路安全、驾驶辅助和车辆自动化水平,让道路更智能。
了解详情
农业中的计算机视觉

农业中的计算机视觉

借助 Ultralytics YOLO 模型,将视觉 AI 引入智慧农业。为作物监测、牲畜追踪和精准农业提供支持,从而提高产量并实现更智能的生产。
了解详情
体育领域的计算机视觉

体育领域的计算机视觉

了解 Ultralytics YOLO 如何通过球员和球追踪、表现分析、教练洞察及运动员康复,推动体育视觉技术的发展。
了解详情
航空影像计算机视觉

航空影像计算机视觉

借助 Ultralytics YOLO,将无人机和航空影像转化为实时洞察,应用于农业、水产养殖、环境监测、自然保护和地理空间分析。
了解详情
航空航天中的计算机视觉

航空航天中的计算机视觉

使用 Ultralytics YOLO 模型将视觉 AI 应用于航空监测。借助计算机视觉解决方案,赋能无人机、航空航天工作流、环境保护和地理空间行业。
了解详情
安防领域的计算机视觉

安防领域的计算机视觉

使用 Ultralytics YOLO 模型守护每个场所。视觉 AI 可用于周界监控、威胁检测、车牌识别和工作场所安全。
了解详情
机器人领域的计算机视觉

机器人领域的计算机视觉

使用 Ultralytics YOLO 模型提升智能机器的能力。机器人领域的视觉 AI 可用于自主导航、感知、目标跟踪和实时控制。
了解详情
物流中的计算机视觉

物流中的计算机视觉

借助 Ultralytics YOLO 模型优化物流流程。视觉 AI 可用于包裹检查、分拣、车辆跟踪和仓库安全实时监控。
了解详情
零售中的计算机视觉

零售中的计算机视觉

借助 Ultralytics YOLO 模型重新构想零售。视觉 AI 可用于库存跟踪、货架监控、排队管理和更深入的客户洞察。
了解详情
医疗领域的计算机视觉

医疗领域的计算机视觉

借助 Ultralytics YOLO 模型构建医疗解决方案。医疗领域的视觉 AI 可加快医学影像处理、优化诊断并监测患者。
了解详情
制造业中的计算机视觉

制造业中的计算机视觉

利用 Ultralytics YOLO 模型优化制造流程。视觉 AI 可用于质量控制、缺陷检测、个人防护装备合规检查和装配线自动化。
了解详情
汽车领域的计算机视觉

汽车领域的计算机视觉

利用 Ultralytics YOLO 模型在汽车领域应用计算机视觉。视觉 AI 可提升道路安全、驾驶辅助和车辆自动化水平,让道路更智能。
了解详情
农业中的计算机视觉

农业中的计算机视觉

借助 Ultralytics YOLO 模型,将视觉 AI 引入智慧农业。为作物监测、牲畜追踪和精准农业提供支持,从而提高产量并实现更智能的生产。
了解详情
体育领域的计算机视觉

体育领域的计算机视觉

了解 Ultralytics YOLO 如何通过球员和球追踪、表现分析、教练洞察及运动员康复,推动体育视觉技术的发展。
了解详情
航空影像计算机视觉

航空影像计算机视觉

借助 Ultralytics YOLO,将无人机和航空影像转化为实时洞察,应用于农业、水产养殖、环境监测、自然保护和地理空间分析。
了解详情
航空航天中的计算机视觉

航空航天中的计算机视觉

使用 Ultralytics YOLO 模型将视觉 AI 应用于航空监测。借助计算机视觉解决方案,赋能无人机、航空航天工作流、环境保护和地理空间行业。
了解详情
安防领域的计算机视觉

安防领域的计算机视觉

使用 Ultralytics YOLO 模型守护每个场所。视觉 AI 可用于周界监控、威胁检测、车牌识别和工作场所安全。
了解详情
机器人领域的计算机视觉

机器人领域的计算机视觉

使用 Ultralytics YOLO 模型提升智能机器的能力。机器人领域的视觉 AI 可用于自主导航、感知、目标跟踪和实时控制。
了解详情
物流中的计算机视觉

物流中的计算机视觉

借助 Ultralytics YOLO 模型优化物流流程。视觉 AI 可用于包裹检查、分拣、车辆跟踪和仓库安全实时监控。
了解详情
零售中的计算机视觉

零售中的计算机视觉

借助 Ultralytics YOLO 模型重新构想零售。视觉 AI 可用于库存跟踪、货架监控、排队管理和更深入的客户洞察。
了解详情
医疗领域的计算机视觉

医疗领域的计算机视觉

借助 Ultralytics YOLO 模型构建医疗解决方案。医疗领域的视觉 AI 可加快医学影像处理、优化诊断并监测患者。
了解详情
制造业中的计算机视觉

制造业中的计算机视觉

利用 Ultralytics YOLO 模型优化制造流程。视觉 AI 可用于质量控制、缺陷检测、个人防护装备合规检查和装配线自动化。
了解详情
汽车领域的计算机视觉

汽车领域的计算机视觉

利用 Ultralytics YOLO 模型在汽车领域应用计算机视觉。视觉 AI 可提升道路安全、驾驶辅助和车辆自动化水平,让道路更智能。
了解详情
农业中的计算机视觉

农业中的计算机视觉

借助 Ultralytics YOLO 模型,将视觉 AI 引入智慧农业。为作物监测、牲畜追踪和精准农业提供支持,从而提高产量并实现更智能的生产。
了解详情

让我们携手构建 AI 的未来!

开启你的旅程,迎接机器学习的未来