模型压缩相关技术概念澄清(量化/剪枝/知识蒸馏)

1.模型压缩背景

随着深度学习技术的不断发展,模型的规模和复杂度也随之增加。大型模型往往具有更高的精度和更强的泛化能力,但在实际应用中,模型的大小却成为了一个制约因素。模型体积过大会导致存储、传输和推理速度等方面的瓶颈,限制了模型在资源受限设备上的部署和应用。因此,模型压缩技术应运而生,旨在减少模型的体积,同时尽可能地保持模型的性能。

下面的这张图(推理流程图)可以看到模型压缩在整个模型推理流程中的位置,模型压缩处于离线推理模块中;

在这里插入图片描述

模型压缩的主要方法:
1.模型量化
2.模型剪枝
3.知识蒸馏

2.模型量化基础

1.深度学习神经网络模型的特点:
  • 数据参数量大
  • 计算量大
  • 内存占用大
  • 模型精度高
2.模型量化的概念

模型量化是一种将浮点计算转成低比特定点计算的技未,可以有效的降低模型计算强度、参数大小和内存消耗,但往往带来巨大的精度损失。无其是在极低比特(<4bit)、二值网络(Ibit)、甚至将梯度进行量化时,带来的精度挑战更大。

常见模型精度:

在这里插入图片描述

3.模型量化的优点
  • 保持精度:只要把控好量化的程度,对于高级任务精度的影响可以做到很小
  • 加速计算:传统的卷积运算一般采用FP32计算,INT8与其比可以增加3倍速度
  • 节省内存:INT8比FP32占用的空间更小,传输时间也能大幅下降
  • 节能:使用的位数少,做运算时搬运的数据少,访存次数就少了
4.模型量化方法
  • 量化训练(Quant Aware Training,QAT)

    量化训练让模型感知量化运算对模型精度带来的影响,通过finetune训练降低量化误差

  • 动态离线量化(Post Training Quantization Dynamic,PTQ Dynamic)

    动态离线量化仪将模型中特定算子的权重从FP32类型唤射成INT8/16类型

  • 静态离线量化(Post Training Quantization Static,PTQ Static)

    静态离线量化使用少量无标签校准数据,采用KL散度等方法计算量化比例因子。

5.量化原理

模型量化桥接了定点与浮点,建立了一种有效的数据映射关系,使得以较小的精度损失代价获得了较好的收益

3.模型剪枝基础

1.模型剪枝的概念

模型剪枝是一种从神经网络中移除“不必要”权重或偏差(weight/bias)的模型压缩技术。它可以通过减少模型的大小和计算量来提高模型的效率和速度。模型剪枝可以分为细粒度剪枝、粗粒度剪枝和结构化剪枝等不同的剪枝方法。

2.模型剪枝分类
  • Unstructured Pruning(非结构化剪枝)
    • 随机对独立的权重或神经元链接进行剪枝
    • 剪枝算法简单,模型压缩比高
    • 但精度不可控,剪枝后权重矩阵稀疏
  • Structured Pruning(结构化剪枝)
    • 对filter/channel/layer进行剪枝
    • 大部分算法在channel/layer上进行,相较非结构化更加保留原始结构
    • 剪枝算法相对复杂
3.常见剪枝算法
  • L1正则化剪枝

  • L2正则化剪枝

  • 稀疏结构学习剪枝

  • 通道剪枝

  • 卷积核剪枝

  • 低秩分解剪枝

  • 基于Hessian矩阵的剪枝

4.剪枝的优缺点
  • 模型剪枝的优点是可以减少模型的大小和计算量,提高模型的运行速度和效率。同时,模型剪枝可以提高模型的泛化能力,减少过拟合的风险。

  • 模型剪枝的缺点是可能会牺牲模型的准确率和压缩比,而且非结构化剪枝需要依赖于专门的运行库和硬件设备。

5.剪枝VS量化
  • 模型量化是通过减少权重表示或者激活所需的比特数来压缩模型

    在这里插入图片描述

    精度:32bit—>8bit

  • 模型剪枝研究的是模型权重中的冗余部分,尝试删除冗余的和非关键的部分

在这里插入图片描述

​ 精度不变,删除冗余和非关键的部分

4.知识蒸馏(Knowledge Distillation)基础

1.概念介绍

知识蒸馏(Knowledge Distillation,简记为 KD)是一种经典的模型压缩方法,核心思想是通过引导轻量化的学生模型“模仿”性能更好、结构更复杂的教师模型(或多模型的 ensemble),在不改变学生模型结构的情况下提高其性能。

2.蒸馏主要思想

知识蒸馏就是将已经训练好的模型包含的知识,蒸馏到另一个模型中去。具体来说,知识蒸馏,可以将一个网络的知识转移到另一个网络,两个网络可以是同构或者异构。一般是将一个复杂模型(或集成模型)蒸馏到一个轻量级模型中以提升运行速度,但也有以提升指标为目的的蒸馏。

蒸馏的常规做法是先训练一个 teacher 网络,然后使用这个 teacher 网络的输出和数据的真实标签去训练 student 网络。

3.知识蒸馏算法的关键组成
  • Knowledge
  • 蒸馏算法Distillate
  • 师生架构
4.知识蒸馏方法
  • Offline distillaction(离线蒸馏)

    在这里插入图片描述

    • 大多数知识蒸馏均采用该方法;该方法主要分为两个部分:1.预训练教师模型;2.蒸馏算法迁移知识
    • 大多采用单向知识迁移和两阶段训练过程;
    • 在训练教师模型时时间较长,但对学生模型的蒸馏比较高效
  • Online distillaction(在线蒸馏)

    在这里插入图片描述

    • 主要针对参数量大、精度性能好的教师模式不可获得的情况下;
    • 教师模型和学生模型同时更新
    • 但现有的online distillaction往往难以获得在线环境下参数量大、精度性能好的教师模型;
  • Self-distillaction(自监督蒸馏)

    在这里插入图片描述

    • 教师模型和学生模型使用相同结构的网络
    • 两者都采取端到端的可训练方案
    • 属于online distillaction一种特例;
5.总结
  • Offline Distillation 像知识渊博的老师向传授学生知识;
  • Online Distillation 更像老师和学生共同学习;
  • Self-Distillation 更像学生自己学习知识。

日常学习总结

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/469657.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Linux入门:环境变量与进程地址空间

一. 环境变量 1. 概念 1️⃣基本概念&#xff1a; 环境变量(environment variables)一般是指在操作系统中用来指定操作系统运行环境的一些参数 如&#xff1a;我们在编写C/C代码的时候&#xff0c;在链接的时候&#xff0c;从来不知道我们的所链接的动态静态库在哪里&#x…

Mysql前言

文章目录 Mysql 数据库简介SQL 基础语法什么是 SQL语句SQL 的作用SQL 语句的分类SQL 通用语法查询状态 &#x1f3e1;作者主页&#xff1a;点击&#xff01; &#x1f916;Mysql专栏&#xff1a;点击&#xff01; ⏰️创作时间&#xff1a;2024年11月12日18点20分 SQL是数据库…

VCSVerdi:KDB文件的生成和导入

相关阅读 VCShttps://blog.csdn.net/weixin_45791458/category_12828763.html Verdihttps://blog.csdn.net/weixin_45791458/category_12829428.html?spm1001.2014.3001.5482 前言 在复杂的设计中&#xff0c;很难在HDL或测试平台级别&#xff08;如使用系统函数&#xff…

2024年【汽车修理工(高级)】考试试卷及汽车修理工(高级)证考试

题库来源&#xff1a;安全生产模拟考试一点通公众号小程序 汽车修理工&#xff08;高级&#xff09;考试试卷是安全生产模拟考试一点通总题库中生成的一套汽车修理工&#xff08;高级&#xff09;证考试&#xff0c;安全生产模拟考试一点通上汽车修理工&#xff08;高级&#…

灵活就业,真的等同于失业吗?“三无人员”如何齐短板获贷款

现在灵活就业的人越来越多&#xff0c;目前有约2亿人选择灵活就业&#xff0c;今天咱们就来好好聊聊&#xff0c;灵活就业&#xff0c;它真的等同于失业吗&#xff1f; 咱们可以看看那些跑外卖的、做网约车司机的&#xff0c;虽然他们看起来在忙忙碌碌地工作&#xff0c;但细究…

python识别ocr 图片和pdf文件

#识别图片 pip3 install paddleocr pip3 install paddlepaddle#识别pdf pip3 install PyMuPDF 重点&#xff1a;路径不能有中文&#xff0c;不然pdf文件访问不了 from paddleocr import PaddleOCR from rest_framework.response import Response from rest_framework.views im…

由于找不到mfc120u.dll, 无法继续执行代码。重新安装程序可能解决引问题。

运行MFC程序报下面错误,无法到找运行库mfc120u.dll msvcr120.dll也找不到 下载C++运行库安装程序 mfc12对应2013运行库 运行库安装成功

介绍和安装及数据类型

1、介绍和安装 1.1、简介 ClickHouse是俄罗斯的Yandex于2016年开源的列式存储数据库&#xff08;DBMS&#xff09;&#xff0c;使用C语言编写&#xff0c;主要用于在线分析处理查询&#xff08;OLAP&#xff09;&#xff0c;能够使用SQL查询实时生成分析数据报告。 OLAP&…

【Pikachu】越权访问实战

所谓理想&#xff0c;只是同时拥有实力的人才能说的“现实”。所谓弱就是一种罪。 1.Over Permission概述 如果使用A用户的权限去操作B用户的数据&#xff0c;A的权限小于B的权限&#xff0c;如果能够成功操作&#xff0c;则称之为越权操作。 越权漏洞形成的原因是后台使用了…

KubeVirt入门介绍

KubeVirt入门介绍 KubeVirt 是一个开源项目&#xff0c;旨在通过 Kubernetes 管理虚拟机&#xff08;VM&#xff09;&#xff0c;使得 Kubernetes 不仅支持容器化工作负载&#xff0c;还支持虚拟机的部署和管理。这种双重支持的目标是提供一个统一的云原生平台&#xff0c;让开…

分布式----Ceph部署

目录 一、存储基础 1.1 单机存储设备 1.2 单机存储的问题 1.3 商业存储解决方案 1.4 分布式存储&#xff08;软件定义的存储 SDS&#xff09; 1.5 分布式存储的类型 二、Ceph 简介 三、Ceph 优势 四、Ceph 架构 五、Ceph 核心组件 #Pool中数据保存方式支持两种类型&…

智慧仓储物流可视化平台

通过图扑 HT 对仓储与物流流程进行动态可视化管理。实时跟踪库存状态和物流路径&#xff0c;优化资源配置与调度&#xff0c;提升运营效率及准确性&#xff0c;支持全流程决策优化及管理。

万字长文解读深度学习——卷积神经网络CNN

推荐阅读&#xff1a; 卷积神经网络&#xff08;CNN&#xff09;详细介绍及其原理详解 CNN笔记&#xff1a;通俗理解卷积神经网络 文章目录 &#x1f33a;深度学习面试八股汇总&#x1f33a;主要组件输入层卷积层 (Convolutional Layer)批归一化层&#xff08;Batch Normalizat…

100+SCI科研绘图系列教程(R和python)

科研绘图系列&#xff1a;箱线图加百分比点图展示组间差异-CSDN博客科研绘图系列&#xff1a;箱线图加蜜蜂图展示组间数据分布-CSDN博客科研绘图系列&#xff1a;小提琴图和双侧小提琴图展示组间差异-CSDN博客科研绘图系列&#xff1a;组间差异的STAMP图的ggplot2实现-CSDN博客…

【在Linux世界中追寻伟大的One Piece】多路转接epoll

目录 1 -> I/O多路转接之poll 1.1 -> poll函数接口 1.2 -> poll的优点 1.3 -> poll的缺点 1.4 -> poll示例 1.4.1 -> 使用poll监控标准输入 2 -> I/O多路转接之epoll 2.1 -> 初识epoll 2.2 -> epoll的相关系统调用 2.2.1 -> epoll_cre…

招聘app开发,人才招聘、求职首要方式

随着互联网的快速发展&#xff0c;各种线上应用成为了大众生活中不可或缺的一部分&#xff0c;不管是购物、娱乐、找工作等都可以通过手机应用进行。因此&#xff0c;对于企业说&#xff0c;线上招聘app至关重要&#xff0c;能够快速帮助企业找到合适的人才。企业直接与求职者交…

学习方法——看差的书籍

CSAPP证明从1中午2点到下午3&#xff1a;40&#xff0c;但是还是只是推理证明而已&#xff0c;但是想起来了课上老师讲的东西了 还可以知道补码运算的大前提知识&#xff01;&#xff01;&#xff01; 但是最好不要一下学这个一下子学哪个&#xff0c;学哪一个都不能尽情投入。…

【人工智能】Transformers之Pipeline(二十三):文档视觉问答(document-question-answering)

​​​​​​​ 目录 一、引言 二、文档问答&#xff08;document-question-answering&#xff09; 2.1 概述 2.2 impira/layoutlm-document-qa 2.2.1 LayoutLM v1 2.2.2 LayoutLM v2 2.2.3 LayoutXLM 2.2.4 LayoutLM v3 2.3 pipeline参数 2.3.1 pipeline对象实例化…

Python酷库之旅-第三方库Pandas(206)

目录 一、用法精讲 961、pandas.IntervalIndex.mid属性 961-1、语法 961-2、参数 961-3、功能 961-4、返回值 961-5、说明 961-6、用法 961-6-1、数据准备 961-6-2、代码示例 961-6-3、结果输出 962、pandas.IntervalIndex.length属性 962-1、语法 962-2、参数 …

【论文阅读】利用SEM二维图像表征黏土矿物三维结构

导言 在油气储层研究中&#xff0c;黏土矿物对流体流动的影响需要在微观尺度上理解&#xff0c;但传统的二维SEM图像难以完整地表征三维孔隙结构。常规的三维成像技术如FIB-SEM&#xff08;聚焦离子束扫描电子显微镜&#xff09;虽然可以获取高精度的3D图像&#xff0c;但成本…