首页 > 其他分享 >关于深度学习量化的操作

关于深度学习量化的操作

时间:2024-09-18 21:22:11浏览次数:7  
标签:映射 对称 模型 学习 深度 量化 非对称 Round

0. 简介

深度学习中做量化提升运行速度是最常用的方法,尤其是大模型这类非常吃GPU显存的方法。一般是高精度浮点数表示的网络权值以及激活值用低精度(例如8比特定点)来近似表示达到模型轻量化,加速深度学习模型推理,目前8比特推理已经比较成熟。比如int8量化,就是让原来32bit存储的数字映射到8bit存储。int8范围是[-128,127], uint8范围是[0,255]。

使用低精度的模型推理的优点:1. 模型存储主要是每个层的权值,量化后模型占用空间小,32比特可以缩减至8比特,并且激活值用8比特后,减小了内存的访问带宽需求。2:单位时间内处理定点运算指令比浮点数运算指令多。

1. 量化分类

一般按照量化阶段不同分为后量化和训练时量化,用的比较多的是后量化,像tensorRT和RKNN按照量化映射方法又可以分为对称量化和非对称量化。

1.1 非对称量化(uint8 0-256)

非对称量化需要一个偏移量Z来完成零点的映射,即量化前的零点和量化后的零点不一致。非对称量化的一般公式为:

S=rmax−rminqmax−qminS=qmax−qminrmax−rmin

Z=qmax−Round(rmaxS)Z=qmax−Round(Srmax)

rmaxrmax和rminrmin表示真实数据的最大值和最小值, qmaxqmax和qminqmin表示量化后的最大值和最小值,例如uint8就是0和256。 Round()表示取整,如果是量化为int型。

1.1.1 量化

q=Round(rS+Z)q=Round(Sr+Z)

1.1.2 反量化

r=(q−Z)∗Sr=(q−Z)∗S

关于深度学习量化的操作_非对称

关于深度学习量化的操作_最小值_02

1.2 对称量化(int8 -128-127)

对称算法是通过一个收缩因子,将FP32中的最大绝对值映射到8比特的最大值,最大绝对值的负值(注意此值不是fp32的最小值,是最大绝对值的相反数,故对称)映射到8比特的最小值。对称量化在量化前和量化后的零点保持一致,即零点对应,因此无需像非对称量化那样引入一个偏移量Z。 对称量化的一般公式为:

S=∣rmax∣∣qmax∣S=∣qmax∣∣rmax∣

1.2.1量化

q=Round(rS)q=Round(Sr)Round()表示取整,如果是量化为int型。

1.2.2 反量化

r=q∗Sr=q∗S

关于深度学习量化的操作_数据_03

关于深度学习量化的操作_最小值_04

2. 量化的优缺点

2.1 量化的优点

  1. 减小模型尺寸,如8位整型量化可减少75%的模型大小
  2. 减少存储空间,在边缘侧存储空间不足时更具有意义
  3. 易于在线升级,模型更小意味着更加容易传输
  4. 减少内存耗用,更小的模型大小意味着不需要更多的内存
  5. 加快推理速度,访问一次32位浮点型可以访问四次int8整型,整型运算比浮点型运算更快
  6. 减少设备功耗,内存耗用少了推理速度快了自然减少了设备功耗
  7. 支持微处理器,有些微处理器属于8位的,低功耗运行浮点运算速度慢,需要进行8bit量化

2.2 量化的缺点

  1. 模型量化增加了操作复杂度,在量化时需要做一些特殊的处理,否则精度损失更严重
  2. 模型量化会损失一定的精度,虽然在微调后可以减少精度损失,但推理精度确实下降

3. 对称和非对称使用

对称量化无需引入偏移量Z,因此计算量低,缺点是量化后的数据是非饱和的,即有一部分区域不存在量化的数据。

非对称量化因为额外引入了一个偏移量来修正零点,因此需要的计算量会大一点。优点是其量化后的数据是饱和的,即量化前的最小值对应量化范围的最小值,量化后的最大值对应量化范围的最大值。

关于深度学习量化的操作_最小值_05

对于fp32的值若均匀分布在0左右,映射后的值也会均匀分布,若fp32的值分布不均匀,映射后不能充分利用。所以非对称可以处理好FP32数据分布不均匀的情况

若对称算法产生的量化后数据很多都是在【0,127】内,左边的范围利用很少,减弱了量化数据的表示能力,影响模型精度。

关于深度学习量化的操作_数据_06

此外还有很多其他的魔改版本,比如激活值饱和量化,通过选择合适的阈值T来将一些范围利用少的情况去除,然后再做对称量化。从而也实现对应的饱和量化的操作。下图为魔改版本激活值饱和量化(右图),选择合适的阈值T。以及原始版本权值非饱和量化(左图)

关于深度学习量化的操作_数据_07

标签:映射,对称,模型,学习,深度,量化,非对称,Round
From: https://blog.51cto.com/u_15641375/12049116

相关文章

  • 系统地掌握 SecureCRT 的基本使用;深入掌握 SecureCRT 的各项功能与技巧。深入掌握 Sec
    secureCRT.exe是一个用于安全远程访问的终端仿真程序。它主要用于通过SSH、Telnet和其他协议连接到远程计算机和网络设备,以实现安全的命令行操作。功能和用途安全连接:通过SSH加密协议提供安全的远程访问,保护数据传输。终端仿真:支持多种终端类型,如VT100、VT102、......
  • 2438.学习周刊-2024年38周
    ✍优秀项目VueTSXAdmin-resume-json-pdfVisActor一个字节出品的前端数据可视化解决方案,分成图表库VChart和表格库VTable[CalendarRemark](CalendarRemark)这个工具可以标记日历,并生成分享图x-crawl一个AI辅助的爬虫库,基于Node.js,抓取网页......
  • 【机器学习】自监督学习:解锁数据的无限潜能
    【机器学习】自监督学习:解锁数据的无限潜能前言1.自监督学习:一种新的学习范式1.1自监督学习与监督学习的区别1.2常见的自监督学习任务2.自监督学习的常见方法2.1对比学习SimCLR的实现2.2预文本任务Jigsaw任务的实现3.自监督学习的应用场景4.结论结语前言......
  • 吴恩达机器学习课程 笔记1 概念
    主要的人工智能分支人工智能(AI)是一个广泛的领域,包含了多个子领域或分支,每个分支都专注于解决特定类型的问题或执行特定的任务。以下是一些主要的人工智能分支:机器学习(MachineLearning):这是AI的一个核心部分,专注于构建可以从数据中学习并作出决策或预测的系统。深度学习(D......
  • Windows常用快捷键(学习笔记)
    键盘功能键:Tab,Shift,Ctrl,Win,空格,Enter,↑↓←→常用功能:Ctrl+Shift  ----  切换输入法Alt+F4----关闭窗口Ctrl+C ----复制Ctrl+V ----粘贴Ctrl+A ----全选Ctrl+X ----剪切Ctrl+Z ----撤销Ctrl+S ----保存Ctrl+D----功能:打开“添加收......
  • c++primer第七章函数学习笔记
    函数的基本知识定义函数无返回值voidfunctionName(parameterList){  statement(s);  return;//optional}有返回值  typeNamefuntionName(parameterList)  {    statements;    returnvalue;  }#include<iostream>usi......
  • 学习高校课程-软件工程-软件工程(ch2)
    2.1DEFININGTHEDISCIPLINEdefinitionforsoftwareengineering软件工程的定义(1)Theapplicationofasystematic,disciplined,quantifiableapproachtothedevelopment,operation,andmaintenanceofsoftware;thatis,theapplicationofengineeringtosoftw......
  • 计算机鱼类知识学习—django基于Django的云南鱼类知识学习的微信小程序开发
    标题:django基于Django的云南鱼类知识学习的微信小程序开发设计并开发一个基于Django框架,针对云南鱼类知识学习的微信小程序,旨在提供丰富的鱼类教育资源与趣味互动学习体验。小程序的主要功能模块:1.用户系统与登录•微信快速登录:利用微信开放平台接口,实现一键登录。•个人......
  • Nacos学习心得
            最近面试发现现在面试不仅要求会用常用的微服务组件,还需要能说出原理和各种什么功能。遂产生了开始学习《Nacos架构&原理》的念头,以下为学习笔记。0.Nacos的一些背景介绍Nacos的前身是阿里的三个产品CongigServer,VIPServer,Diamond。阿里在18年开源Nacos的......
  • 2024年最强网络安全学习路线,详细到直接上清华的教材!
     关键词:网络安全入门、渗透测试学习、零基础学安全、网络安全学习路线首先咱们聊聊,学习网络安全方向通常会有哪些问题前排提示:文末有CSDN官方认证Python入门资料包!1、打基础时间太长学基础花费很长时间,光语言都有几门,有些人会倒在学习linux系统及命令的路上,更多的人会倒......