• 记录模型压缩概述


    1.为什么需要模型压缩?

    理论上来说,深度神经网络的模型做的越大,网络做的越深,非线性程度也就会越大,相应的表达能力也就会越强,但是,带来相应的代价就是训练成本的提高。同时在部署的时候,大模型往往需要要求较高的硬件支持,随着越来越多的深度学习模型落地,很多情况下,需要将模型在移动端等部署,这种的部署环境受到能耗和设备体积的限制,硬件的计算能力和存储能力都相对较弱,所以说诉求就主要体现在以下方面:1.速度、2.存储容量、3.耗能

    这三点诉求都需要我们根据终端环境对现有模型进行小型化处理,在不损失精度的情况下,让模型的体积更小、速度更快、能耗更低。

    2.模型压缩的基本方法

    模型压缩可以通过以下几种方法实现:

    剪裁:类似”化学结构式的减肥“,将模型结构中对预测结果不重要的网络结构减裁掉,使网络结构变得更加小,比如在每层网络中,有些神经元的权重非常的小,对模型加载信息的影响微乎其微,如果将这些权重较小的神经元删除,则既能保证模型精度不受大影响,又能减小模型大小

    量化:类似”量子级别的减肥“,神经网络模型的参数一般都用float32的数据表示,但是如果我们将float32的数据计算精度都变成int8的计算精度,则可以牺牲一点模型精度来获取更快的计算速度 。

    蒸馏:类似”老师教学生“,使用一个效果好的大模型指导一个小模型训练,因为大模型可以提供更多的软分类信息量,所以会训练出一个效果接近大模型的小模型

    神经网络架构搜索:类似”化学结构式的重构“,以模型大小和推理速度为约束进行模型结构搜索,从而获得更高效的网络结构

    除此之外还有权重共享、低秩分解等技术也可以实现模型压缩

  • 相关阅读:
    javascript 数组原理
    Fisco开发第一个区块链应用
    《Android Gradle》权威指南笔记
    安全典型配置(一)使用ACL限制FTP访问权限案例
    在阿里云 ACK 上部署 EMQX MQTT 服务器集群
    [SpringBoot Server]SpringBoot tomcat配置
    使用 LSTM 进行多变量时间序列预测--问题汇总
    Chrome 配置samesite=none方式
    JAVA工作经验1年面试题
    18650锂电池参数、充放电时间计算详解
  • 原文地址:https://blog.csdn.net/weixin_48592695/article/details/126252927