在保持性能的同时缩小人工智能模型的规模

简介

对人工智能(AI)的需求日益增长,这就要求为有限的设备资源提供更小、更高效的模型。这些模型必须在体积更小的情况下获得相当的测试结果,以确保准确性和可靠性。在本文中,我们考虑了四种机器学习优化技术,它们可以在不影响性能的情况下实现紧凑的人工智能模型:模型蒸馏、模型剪枝、模型量化和数据集蒸馏。


蒸馏模型

定义: 什么是知识蒸馏?

知识提炼是将知识从大型模型转移到小型模型的过程。在机器学习中,大型模型的知识容量高于小型模型,但这种容量可能无法得到充分利用。知识蒸馏就是将知识从大型模型转移到小型模型而不失去有效性的过程。

过程

模型提炼过程包括训练一个较小的学生模型来模仿一个较大的教师模型的行为。通过使用教师模型所拥有的知识,学生模型即使小得多,也能获得类似的性能。这通常需要结合原始训练数据和教师模型生成的软标签来训练学生模型。通过将教师模型中的知识转移到学生模型中,我们创建了一个紧凑的模型,其中包含了进行准确预测所需的基本信息。

知识提炼
知识提炼的师生框架[1]。

修剪模型

定义: 什么是模型修剪?

模型剪枝是一种从预先训练好的神经网络中删除不必要的连接、参数或整个层的技术。剪枝可以根据权重大小、灵敏度分析或结构稀疏性等各种标准进行。通过删除冗余或不太重要的组件,我们可以在保持模型性能的同时显著缩小模型的大小。此外,剪枝还能提高推理速度,减少内存需求。对于在资源受限的设备上部署人工智能模型来说,这种技术是一种极具吸引力的方法。


模型量化

定义: 什么是模型量化?

模型量化降低了神经网络中数值的精度。通常,深度学习模型使用 32 位浮点数(FP32)来表示权重和激活。然而,通过将模型量化为位宽更小的表示,我们可以显著减少模型大小和内存需求。

说明

减少比特数意味着生成的模型所需的内存更少,能耗更低(理论上),矩阵乘法等整数运算的执行速度也更快。它还允许模型在有时仅支持整数数据类型的嵌入式设备上运行。

虽然量化会带来一些量化误差,但量化敏感训练等现代技术可以最大限度地减少精度损失。通过适当的校准和优化,量化模型可以达到与全精度模型类似的性能,同时使用更少的计算资源。有关量化敏感训练的更多信息,请参阅 NVIDIA 的这篇文章[2]。

通过 8 位量化,模型中的每个权重和激活值都被限制为 8 位整数,可以表示 0 到 255 之间的值。这意味着,我们将范围限制在离散的整数值,而不是大范围的浮点数值。由于 8 位整数比 32 位浮点数所需的位数更少,因此精度的降低可以提高存储和计算的效率。

需要注意的是,8 位量化只是量化的一个例子。还有其他量化技术,如 4 位量化,即精度进一步降低到 4 位整数。其基本思想是相同的,即用较少的位数来表示权重和激活,以实现较小的模型大小和较低的内存要求。


数据集的提炼

定义: 什么是记录蒸馏?

数据集提炼是一种使用原始训练数据中精心挑选的子集来训练较小模型的技术。其目的是创建一个经过提炼的数据集,该数据集既能捕捉到完整数据集的基本模式和特征,又能显著缩小数据集的规模。这种经过提炼的数据集可以作为原始数据集的替代,并能以较小的内存需求训练出性能相当的模型。

数据集蒸馏
记录蒸馏过程概述 [3]

过程

记录蒸馏过程通常包括以下步骤:

  1. 选择数据集: 第一步是从原始训练数据中选择一个有代表性的子集。该子集应涵盖数据分布,并捕捉整个数据集中最重要的模式和特征。为确保提炼出的数据集具有多样性和代表性,可以使用聚类或分层抽样等不同技术。
  2. 模型培训: 一旦创建了提炼数据集,就可以在这个子集上训练一个较小的模型。训练过程包括优化模型参数,使其适合蒸馏后的数据集,这与在完整数据集上的传统训练类似。不过,由于馏分数据集较小,训练过程通常更快,所需的计算资源也更少。
  3. 绩效评估: 较小的模型在经过提炼的数据集上经过训练后,要对其性能进行评估,以评价其有效性。这种评估可能涉及准确率、精确度、召回率或 F1 分数等指标的测量,具体取决于任务和应用。通过比较提炼模型和完整模型的性能,我们可以确定数据集提炼的成功程度。

劣势

  1. 信息丢失: 由于数据集的提炼是选择原始训练数据的一个子集,因此可能会造成信息损失。蒸馏后的数据集可能无法捕捉到完整数据集中存在的所有细微差别和罕见情况,这可能会导致模型在某些情况下性能下降。
  2. 对未见数据进行归纳: 在经过提炼的数据集上训练的较小模型,对未知数据的泛化能力可能不如在完整数据集上训练的模型。因此,必须仔细评估经过提炼的模型在训练数据集和评估数据集上的性能,以确保它在不同的数据分布中都能保持令人满意的性能。
  3. 数据集的偏差: 蒸馏数据集的选择可能存在偏差。如果提炼的数据集不能代表完整的数据集,那么经过训练的模型可能会表现出偏差,从而影响其公平性和准确性。为了减少这种偏差,有必要对蒸馏数据集进行仔细考虑和评估。

闭幕

在资源有限的环境中使用人工智能模型时,效率和紧凑性是至关重要的两个方面。通过使用模型蒸馏、模型剪枝、模型量化和数据集蒸馏等技术,我们可以在不牺牲性能的情况下有效缩小人工智能模型的规模。这些技术为优化模型大小提供了切实可行的解决方案,使我们能够在终端、移动平台和其他资源有限的环境中部署模型。在人工智能开发过程中,模型大小与性能之间的平衡对于在各个领域的广泛应用至关重要。

更多

如果您想阅读更多 Konfuzio 的人工智能相关博客:


文学

[ 1 ] J. Gou, B. Yu, S. J. Maybank, and D. Tao, "Knowledge Distillation: A Survey," International Journal of Computer Vision, accepted publication, 2021.Tao, "Knowledge Distillation: A Survey," International Journal of Computer Vision, accepted for publication, 2021. [arXiv:2006.05525 [cs.LG]].

[ 2 ] N. Zmora、H. Wu 和 J. Rodge,《利用英伟达 TensorRT 的量化感知训练实现 INT8 推理的 FP32 精度》,2021 年 7 月 20 日。

[ 3 ] R. Yu, S. Liu, and X. Wang, "Dataset Distillation: A Comprehensive Review," arXiv preprint arXiv:2301.07014, 2023.Wang, "Dataset Distillation: A Comprehensive Review," arXiv preprint arXiv:2301.07014, 2023.

"
"
Mohamed Dhiab 的头像

最新文章