首页 > 其他分享 >转载:【AI系统】模型压缩基本介绍

转载:【AI系统】模型压缩基本介绍

时间:2024-12-14 14:10:24浏览次数:5  
标签:AI 压缩算法 压缩 转载 计算资源 模型 存储空间

随着神经网络模型的复杂性和规模不断增加,模型对存储空间和计算资源的需求越来越多,使得部署和运行成本显著上升。模型压缩的目标是通过减少模型的存储空间、减少计算量或提高模型的计算效率,从而在保持模型性能的同时,降低模型部署的成本。模型压缩的目标可以概括为以下几点:

  1. 减少模型显存占用:通过压缩模型参数或使用更高效的表示方式,可以显著减少模型所需的存储空间,从而降低模型在部署和执行过程中的存储成本。

  2. 加快推理速度:通过减少模型计算过程中的乘法和加法操作,可以降低模型的计算开销,达到模型运算加速的目的。

  3. 减少精度损失:在模型压缩过程中,尽可能地减小对模型性能的影响,保持模型在任务上的精度损失最小化。这需要在压缩技术选择和参数调优过程中进行细致的权衡和实验验证,确保模型在压缩后仍能够保持较高的性能水平。

模型压缩四件套

模型压缩的目标是降低表示、计算权重和中间激活的成本,这些成本占模型成本的大部分。我们根据如何降低权重和激活成本对模型压缩算法进行分类,有如下四大类别:

  1. 模型量化(Quantization):通过减少模型参数的表示精度,来降低模型的存储空间和计算复杂度。

  2. 参数剪枝(Pruning):通过删除模型中的不重要连接或参数,来减少模型的大小和计算量。

  3. 知识蒸馏(Knowledge Distillation):指通过构建一个轻量化的小模型(学生模型),利用性能更好教师模型的信息来监督训练学生模型,以期达到更好的性能和精度。

  4. 低秩分解(low-rank factorization):通过将模型中具体执行计算的矩阵分解为低秩的子矩阵,从而减少模型参数的数量和计算复杂度。低秩分解中,矩阵被分解为两个或多个低秩矩阵的乘积形式。

此外,模型压缩算法分为低成本和高成本算法,与上述分类标准无关。高成本的压缩算法需要基于大型数据集进行再训练过程。因此,它们可以生成更准确的压缩模型,但需要更多的时间来压缩模型。另一方面,低成本压缩算法仅基于少量校准数据执行简单的权重调整过程,但是需要注意可能的精度损失,因此训练后量化是常用的低成本压缩算法。

模型压缩流程

如下图所示,模型压缩通常处于机器学习模型训练和生产部署之间的阶段。它在模型训练完成后,准备将模型部署到目标环境之前进行。

image

模型压缩应用场景

模型压缩技术在许多应用场景中都有广泛的应用,特别是在资源受限的环境下或对模型性能要求较高的场景。以下是一些常见的模型压缩应用场景:

  1. 移动端应用:在移动设备上部署神经网络模型时,由于存储空间和计算资源的限制,模型压缩变得至关重要。模型压缩可以使得模型在移动设备上运行更加高效,并降低对设备资源的消耗,从而实现更好的用户体验。

  2. 物联网设备:在物联网(IoT)领域,许多设备的存储和计算资源极为有限。模型压缩可以帮助将神经网络模型部署到这些设备上,并在保持模型性能的同时减少资源消耗。

  3. 在线模型服务系统:在推荐、搜索等在线系统中,模型需要实时地处理大量的用户数据,模型压缩可以提高系统的响应速度和吞吐量,从而改善用户体验并降低系统的成本。

  4. 大模型压缩:大语言模型通常具有数以亿计的参数和复杂的网络结构,对存储空间和计算资源要求巨大。通过模型压缩技术,可以将大模型压缩为更小、更高效的版本,以适应资源受限的部署环境,并在保持模型性能的同时降低计算成本。

  5. 自动驾驶:在自动驾驶领域,由于对实时性能和计算资源的要求,模型压缩可以帮助优化神经网络模型以适应相应的场景。

如果您想了解更多AI知识,与AI专业人士交流,请立即访问昇腾社区官方网站https://www.hiascend.com/或者深入研读《AI系统:原理与架构》一书,这里汇聚了海量的AI学习资源和实践课程,为您的AI技术成长提供强劲动力。不仅如此,您还有机会投身于全国昇腾AI创新大赛和昇腾AI开发者创享日等盛事,发现AI世界的无限奥秘~
转载自:https://www.cnblogs.com/ZOMI/articles/18561211

标签:AI,压缩算法,压缩,转载,计算资源,模型,存储空间
From: https://www.cnblogs.com/khronos0206/p/18606656

相关文章

  • 转载:【AI系统】感知量化训练 QAT
    本文将会介绍感知量化训练(QAT)流程,这是一种在训练期间模拟量化操作的方法,用于减少将神经网络模型从FP32精度量化到INT8时的精度损失。QAT通过在模型中插入伪量化节点(FakeQuant)来模拟量化误差,并在训练过程中最小化这些误差,最终得到一个适应量化环境的模型。文中还会讨论伪量化......
  • 转载:【AI系统】低比特量化原理
    计算机里面数值有很多种表示方式,如浮点表示的FP32、FP16,整数表示的INT32、INT16、INT8,量化一般是将FP32、FP16降低为INT8甚至INT4等低比特表示。模型量化则是一种将浮点值映射到低比特离散值的技术,可以有效的减少模型的参数大小、内存消耗和推理延迟,但往往带来较大的精......
  • 转载:【AI系统】训练后量化与部署
    本文将会重点介绍训练后量化技术的两种方式:动态和静态方法,将模型权重和激活从浮点数转换为整数,以减少模型大小和加速推理。并以KL散度作为例子讲解校准方法和量化粒度控制来平衡模型精度和性能。训练后量化的方式训练后量化的方式主要分为动态和静态两种。动态离线量化动态......
  • 转载:【AI系统】动态图与静态图转换
    从TensorFlow、PyTorch,到PaddlePaddle、MindSpore、MegEngine,主流的AI框架动静态图转换,经历了动静分离、动静结合到动静统一的发展过程。兼顾动态图易用性和静态图执行性能高效两方面优势,均具备动态图转静态图的功能,支持使用动态图编写代码,框架自动转换为静态图网络结构执行计......
  • 转载:【AI系统】计算图挑战与未来
    目前主流的AI框架都选择使用计算图来抽象神经网络计算表达,通过通用的数据结构(张量)来理解、表达和执行神经网络模型,通过计算图可以把AI系统化的问题形象地表示出来。计算图与框架关系计算图回顾在AI框架中,其计算图的基本组成有两个主要的元素:1)基本数据结构张量和2)基本计......
  • 转载:【AI系统】并行训练基本介绍
    分布式训练是一种模型训练模式,它将训练工作量分散到多个工作节点上,从而大大提高了训练速度和模型准确性。虽然分布式训练可用于任何类型的AI模型训练,但将其用于大模型和计算要求较高的任务最为有利。本篇幅将围绕在PyTorch2.0中提供的多种分布式训练方式展开,包括并行训练,如:数......
  • 转载:【AI系统】计算图的控制流实现
    计算图在数学上作为一个有向无环图(DAG,DirectedAcyclicGraph),能够把神经网络模型的概念抽象出来作为同一描述,不过在计算机的编程中,会遇到很多if、else、while、for等控制流语句,有向无环图改如何表示控制流变成了计算图中一个很重要的问题。好处在于,引入控制流之后,开发者可以向计......
  • 转载:【AI系统】昇思MindSpore并行
    本文将会介绍昇思MindSpore的并行训练技术,以及如何通过张量重排布和自动微分简化并行策略搜索,实现高效大模型训练。大模型的带来随着深度学习的发展,为了实现更高的准确率和更丰富的应用场景,训练数据集和神经网络模型的规模日益增大。特别是自然语言处理(NaturalLanguageProcess......
  • 转载:【AI系统】张量并行
    在大模型的训练中,单个设备往往无法满足计算和存储需求,因此需要借助分布式训练技术。其中,模型并行(ModelParallelism,MP)是一种重要的方法。模型并行的基本思想是将模型的计算任务拆分到不同的设备上执行,以提高训练效率和处理更大规模的模型。下面将重点介绍模型并行中的张量并行。......
  • 转载:【AI系统】流水并行
    在大模型的训练中,单个设备往往无法满足计算和存储需求,因此需要借助分布式训练技术。其中,模型并行(ModelParallelism,MP)是一种重要的方法。模型并行的基本思想是将模型的计算任务拆分到不同的设备上执行,以提高训练效率和处理更大规模的模型。模型并行主要分为朴素的模型并行、张量......