SonySemiconductorSolutions/mct-model-optimization

Model Compression Toolkit (MCT) is an open source project for neural network model optimization under efficient, constrained hardware. This project provides researchers, developers, and engineers advanced quantization and compression tools for deploying state-of-the-art neural networks.

解决的问题

MCT (Model Compression Toolkit) 旨在帮助开发者压缩已训练的 AI 模型,使其在手机、摄像头和嵌入式硬件等边缘设备上运行得更快并占用更少的内存。它通过将大型神经网络转换为更小、已量化的版本,在不损失精度的情况下,解决了在计算和存储受限的设备上部署模型的问题。

工作原理

首先使用一个已经训练好的浮点模型(PyTorch 或 Keras 格式)。MCT 提供三种主要的量化流程,每种流程在复杂度和质量之间有不同的权衡:

  • Post-Training Quantization (PTQ):低复杂度,大约需要 1-10 分钟 CPU 时间,无需重新训练。
  • Gradient-based Post-Training Quantization (GPTQ):中等复杂度,利用梯度进行参数微调,大约需要 1-3 小时 GPU 时间。
  • Quantization-Aware Training (QAT):高复杂度,通过 12-36 小时的 GPU 时间重新训练模型以保持精度。

MCT 还包括混合精度搜索(为每一层选择最佳位宽)、图优化、量化阈值调整(MSE、no-clipping、MAE)以及诸如 shift-negative correction、outlier filtering 和 clustering 等高级算法。它具有硬件感知能力:TPC (Target Platform Capabilities) 功能允许您描述特定硬件的约束条件。如果您缺乏代表性数据集,MCT 可以根据存储在 batch-normalization 层中的统计信息生成合成图像。为了减小模型尺寸,它提供了结构化剪枝来移除冗余通道。调试和可视化功能包括网络编辑器、TensorBoard 报告以及 XQuant 可解释量化工具,该工具可显示逐层误差并提供修复建议。

适用人群

从事边缘 AI 应用开发,且需要在资源受限设备上部署已训练神经网络的工程师和研究人员。对于任何希望在保持高精度的同时减少模型尺寸或延迟,且工作在 PyTorch 或 Keras 环境中的用户也非常有用。

主要亮点

  • 支持三种量化工作流:PTQ、GPTQ 和 QAT。
  • 通过 Target Platform Capabilities (TPC) 实现硬件感知优化。
  • 混合精度搜索可为每一层分配最佳位宽。
  • 使用 batch-norm 统计信息生成合成数据,实现无数据量化。
  • 结构化剪枝可移除冗余通道以缩小模型尺寸。
  • 调试工具:网络编辑器、TensorBoard 可视化和 XQuant 可解释报告。

相关

  • 项目
  • 项目
  • 项目
  • 项目
  • 项目