深圳Yolo 视觉
深圳
立即加入
词汇表

模型剪枝

了解模型剪枝如何减少边缘AI中神经网络的规模和复杂性。探索优化Ultralytics YOLO26以在移动设备上实现更快推理的策略。

模型剪枝是机器学习中的一种技术,通过系统地移除不必要的参数来减小神经网络的大小和计算复杂度。就像园丁修剪枯死或过度生长的枝条以促进树木茁壮成长一样,开发者剪枝人工网络以使其更快、更小、更节能。这一过程对于在资源有限的设备上部署现代深度学习架构至关重要,例如智能手机、嵌入式传感器和边缘计算硬件。

模型修剪的工作原理

剪枝的核心思想是深度神经网络通常是“过参数化”的,这意味着它们包含的权重和偏差远多于解决特定问题所严格必需的数量。在训练过程中,模型会学习大量的连接,但并非所有连接都对最终输出做出同等贡献。剪枝算法会分析训练好的模型,识别并移除这些冗余或非信息性的连接——通常是那些权重接近零的连接。

剪枝模型的生命周期通常遵循以下步骤:

  1. 训练:大型模型被训练至收敛,以捕获复杂特征。
  2. 剪枝:将低重要性参数设置为零,或从网络结构中物理移除。
  3. 微调:模型进行第二轮微调,以使剩余参数能够调整并恢复在剪枝阶段损失的任何精度

这种方法论通常与彩票假说相关联,该假说认为密集网络包含更小、独立的子网络(中奖彩票),如果单独训练,这些子网络可以达到与原始模型相当的准确性。

剪枝策略的类型

剪枝方法通常根据被移除组件的结构进行分类。

  • 非结构化剪枝: 这种方法根据阈值(例如,权重大小)移除模型中任意位置的单个权重。尽管这能有效减少参数数量,但它会导致 稀疏矩阵,标准硬件难以高效处理。如果没有专用软件或硬件加速器,非结构化剪枝可能无法带来显著的速度提升。
  • 结构化剪枝: 这种方法移除整个几何结构,例如 卷积神经网络 (CNN) 中的通道、滤波器或层。通过保留密集矩阵结构,剪枝后的模型仍与标准 GPU 和 CPU 硬件兼容,从而直接改善 推理延迟 和吞吐量。

实际应用

剪枝是边缘AI的关键推动因素,它使得复杂模型能够在云连接不可用或速度过慢的环境中运行。

  • 移动端目标检测: 移动设备上的应用,例如实时语言翻译或增强现实,利用剪枝模型来延长电池续航并减少 内存占用。像 YOLO26 这样的优化架构因其固有的高效性,常被选作这些任务的基础。
  • 汽车安全:自动驾驶汽车和 autonomous vehicles 需要在瞬间做出决策。剪枝模型允许车载计算机处理高分辨率摄像头画面进行行人 detect,而不会因数据传输到服务器而产生延迟。
  • 工业物联网:在制造业中,装配线上的视觉检测系统使用轻量级模型来 detect 缺陷。模型剪枝确保这些系统可以在经济高效的微控制器上运行,而不是昂贵的服务器机架。

剪枝与相关优化技术

虽然模型剪枝是一个强大的工具,但它经常与其他的模型优化技术混淆或同时使用。

  • 剪枝与量化: 剪枝减少模型中参数(连接)的 数量。相比之下,模型量化 降低了这些参数的 精度,例如将32位浮点数转换为8位整数。两者常结合使用,以最大限度地提高 模型部署 的效率。
  • 剪枝与知识蒸馏: 剪枝通过移除部分来修改原始模型。知识蒸馏 则涉及训练一个全新的、更小的“学生”模型来模仿更大的“教师”模型的行为。

实施实例

以下python示例演示了如何使用PyTorch对卷积层应用非结构化剪枝。这是将模型导出到ONNX等优化格式之前的常见步骤。

import torch
import torch.nn as nn
import torch.nn.utils.prune as prune

# Initialize a standard convolutional layer
module = nn.Conv2d(in_channels=1, out_channels=20, kernel_size=3)

# Apply unstructured pruning to remove 30% of the connections
# This sets the weights with the lowest L1-norm to zero
prune.l1_unstructured(module, name="weight", amount=0.3)

# Calculate and print the sparsity (percentage of zero elements)
sparsity = 100.0 * float(torch.sum(module.weight == 0)) / module.weight.nelement()
print(f"Layer Sparsity: {sparsity:.2f}%")

对于希望管理数据集和模型整个生命周期(包括训练、评估和部署)的用户,Ultralytics Platform提供了一个流线型界面。它简化了创建YOLO26等高度优化模型并将其导出到TensorRT或CoreML等硬件友好格式的过程。

让我们一起共建AI的未来!

开启您的机器学习未来之旅