由 Arm ML 工具维护
本文档概述了用于组合各种技术以优化机器学习模型以进行部署的实验性 API。
概述
协同优化是一个总括过程,它包含各种技术,以生成一个模型,该模型在部署时表现出最佳的推理速度、模型大小和准确性等目标特征的平衡。
协同优化的理念是通过将各种技术逐一应用来构建在单个技术之上,以实现累积的优化效果。以下优化技术的各种组合都是可能的
尝试将这些技术串联在一起时出现的问题是,应用一种技术通常会破坏前一种技术的结果,从而破坏同时应用所有技术的整体益处;例如,聚类不会保留剪枝 API 引入的稀疏性。为了解决这个问题,我们引入了以下实验性协同优化技术
- 稀疏性保留聚类
- 稀疏性保留量化感知训练 (PQAT)
- 聚类保留量化感知训练 (CQAT)
- 稀疏性和聚类保留量化感知训练
这些提供了多种部署路径,可用于压缩机器学习模型,并在推理时利用硬件加速。下图展示了多种部署路径,可以在其中探索以寻找具有所需部署特性的模型,其中叶节点是可部署的模型,这意味着它们已部分或完全量化并处于 tflite 格式。绿色填充表示需要重新训练/微调的步骤,虚线红色边框突出显示协同优化步骤。用于获取给定节点的模型的技术在相应的标签中指示。
上图中省略了直接的、仅量化(训练后或 QAT)的部署路径。
我们的目标是在上述部署树的第三层达到完全优化的模型;但是,任何其他级别的优化都可能令人满意并实现所需的推理延迟/准确性权衡,在这种情况下,无需进一步优化。建议的训练过程是迭代地遍历适用于目标部署场景的部署树的级别,并查看模型是否满足推理延迟要求,如果未满足,则使用相应的协同优化技术进一步压缩模型,并重复此过程,直到模型完全优化(剪枝、聚类和量化),如果需要。
下图显示了经过协同优化管道处理的样本权重内核的密度图。
结果是一个量化的部署模型,它减少了唯一值的数量,并且根据训练时指定的稀疏性目标,还包含大量稀疏权重。除了显着的模型压缩优势外,特定的硬件支持还可以利用这些稀疏的、聚类的模型来显著降低推理延迟。
结果
以下是我们在使用 PQAT 和 CQAT 协同优化路径进行实验时获得的一些准确性和压缩结果。
稀疏性保留量化感知训练 (PQAT)
模型 | 项目 | 基线 | 剪枝模型(50% 稀疏性) | QAT 模型 | PQAT 模型 |
---|---|---|---|---|---|
DS-CNN-L | FP32 Top1 准确率 | 95.23% | 94.80% | (伪 INT8) 94.721% | (伪 INT8) 94.128% |
INT8 全整数量化 | 94.48% | 93.80% | 94.72% | 94.13% | |
压缩 | 528,128 → 434,879 (17.66%) | 528,128 → 334,154 (36.73%) | 512,224 → 403,261 (21.27%) | 512,032 → 303,997 (40.63%) | |
Mobilenet_v1-224 | FP32 Top 1 准确率 | 70.99% | 70.11% | (伪 INT8) 70.67% | (伪 INT8) 70.29% |
INT8 全整数量化 | 69.37% | 67.82% | 70.67% | 70.29% | |
压缩 | 4,665,520 → 3,880,331 (16.83%) | 4,665,520 → 2,939,734 (37.00%) | 4,569,416 → 3,808,781 (16.65%) | 4,569,416 → 2,869,600 (37.20%) |
聚类保留量化感知训练 (CQAT)
模型 | 项目 | 基线 | 聚类模型 | QAT 模型 | CQAT 模型 |
---|---|---|---|---|---|
Mobilenet_v1 在 CIFAR-10 上 | FP32 Top1 准确率 | 94.88% | 94.48% | (伪 INT8) 94.80% | (伪 INT8) 94.60% |
INT8 全整数量化 | 94.65% | 94.41% | 94.77% | 94.52% | |
大小 | 3.00 MB | 2.00 MB | 2.84 MB | 1.94 MB | |
Mobilenet_v1 在 ImageNet 上 | FP32 Top 1 准确率 | 71.07% | 65.30% | (伪 INT8) 70.39% | (伪 INT8) 65.35% |
INT8 全整数量化 | 69.34% | 60.60% | 70.35% | 65.42% | |
压缩 | 4,665,568 → 3,886,277 (16.7%) | 4,665,568 → 3,035,752 (34.9%) | 4,569,416 → 3,804,871 (16.7%) | 4,569,472 → 2,912,655 (36.25%) |
CQAT 和 PCQAT 结果,模型按通道聚类
以下结果是使用 按通道聚类 技术获得的。它们说明,如果模型的卷积层按通道聚类,则模型准确率更高。如果您的模型包含许多卷积层,我们建议按通道聚类。压缩率保持不变,但模型准确率会更高。在我们的实验中,模型优化管道为“聚类 -> 聚类保留 QAT -> 训练后量化,int8”。
模型 | 聚类 -> CQAT,int8 量化 | 按通道聚类 -> CQAT,int8 量化 |
---|---|---|
DS-CNN-L | 95.949% | 96.44% |
MobileNet-V2 | 71.538% | 72.638% |
MobileNet-V2(剪枝) | 71.45% | 71.901% |