首页 > 其他分享 >深度学习--模型优化--模型的量化--92

深度学习--模型优化--模型的量化--92

时间:2024-07-03 14:41:47浏览次数:13  
标签:权重 -- 模型 聚类 线性 量化 92

目录

1. 什么是量化

量化可以理解为:从连续到离散,针对parameters(W)、activations(A)使用整数值取代浮点数值,

模型尺寸更小
改进inference时间
减小内存使用
更低的功耗/能量(单位焦耳)
一些GPUs支持
FPGAs和ASICs能够更激进的量化

量化技术的发展:

可量化的对象:输入值、特征值、权重\偏置项、误差\梯度值
量化位宽:1bit、8bit、3/4/6bit、float16、混合bit(不同层不同位宽)

神经网络的量化:高精度(位宽)转化成低精度(位宽),比如float32 -> float16, int8, int4, int2 等,缩小可表示的空间大小(位宽)bit width

2 位宽,高精度浮点数的表示

exponent / integer bits + fraction / precision bits

32位:

8位

64位:

如果我们从FP32减小位宽到FP16,或使用整数INT8,不就节省内存和计算资源了

3. K-means 聚类量化


将参数一维数组进行聚类


所下图所示权重矩阵的所有参数可以聚类为 4 个类别,不同的类别使用不同的颜色表示。
上半部分的权重矩阵可以取聚类中心,并储存在 centroids 向量中,
随后原来的权重矩阵只需要很少的空间储存对应的索引。

下半部是韩松等研究者利用反向传播的梯度对当前centroids 向量进行修正的过程。 注意这里有个根据weight颜色进程group的操作
这种量化过程能大量降低内存的需求,因为我们不再需要储存 FP64 或 FP32 的数据,而只需要储存INT8 或更少占位的数据。

4. 均匀/线性量化(linear quantization)

非对称量化与对称量化

非对称线性量化就是线性缩放肯定是需要bias偏置项的
量化权重为n-bit整数,公式如下:

当然量化之后如果要计算,还需要恢复成原始值进行运算,还原公式:

矩阵相乘-量化加速计算:

对称线性量化(Symmetric linear quantization):

还原公式:

注意这里没有bias

5. Thresholding量化

模型为了去拟合一些离群值或异常样本,很有可能学到一些不太常见的参数,从而使得过拟合,对测试集反而失去很大的精度。我们都知道weights越小越可以防止过拟合,将权重压制到-T到T之间。

这个T是权重里面的两端,一图胜千言:

如何选择合适的 threshold?

标签:权重,--,模型,聚类,线性,量化,92
From: https://www.cnblogs.com/cavalier-chen/p/18281600

相关文章

  • Elasticsearch
    一、es客户端-kibana 没有数据库概念,只有索引索引=表 建索引:建空索引(空表):PUTxxx注意:如果没有设置表字段类型,则会默认类型 查询所有:GETxxx/_search{"query":{"match_all":{}}} 统计:GET/xxx/_count 模糊匹配:GETxxx/_search{"query":{"match_......
  • 题目 3293: 蓝桥杯2024年第十五届决赛真题-数位翻转
    https://www.dotcpp.com/oj/problem3293.html 题目描述小明创造了一个函数f(x)用来翻转x的二进制的数位(无前导0)。比如f(11)=13,因为11=(1011)2,将其左右翻转后,变为13=(1101)2;再比如f(3)=3,f(0)=0,f(2)=f(4)=f(8)=1等等。小明随机出了一个长度为......
  • 动手学Avalonia:基于SemanticKernel与硅基流动构建AI聊天与翻译工具
    Avalonia是什么?Avalonia是一个跨平台的UI框架,专为.NET开发打造,提供灵活的样式系统,支持Windows、macOS、Linux、iOS、Android及WebAssembly等多种平台。它已成熟并适合生产环境,被SchneiderElectric、Unity、JetBrains和GitHub等公司采用。许多人认为Avalonia是WPF的继任者,它为XA......
  • SD中的VAE,你不能不懂
    什么是VAE?VAE,即变分自编码器(VariationalAutoencoder),是一种生成模型,它通过学习输入数据的潜在表示来重构输入数据。在StableDiffusion1.4或1.5模型中,通过VAE对模型进行部分更新,以提升模型渲染眼睛的能力。通过这种更新,模型在生成图像时能够更准确地捕捉和再现眼睛的细节,从......
  • OpenSpace Web3课程大纲
    这个OpenSpaceWeb3BootCamp区块链技术线下集训营培训的内容看起来不错,比较全面也比较深入,但我没有金钱和时间,而且似乎这个面向的应该是即将毕业的应届生,2个月脱产应该没多少工作的人参加,除了一些处于gap期的吧。年轻真好。不管怎样,在这里列一下这个培训的大纲,作为参考。夯实基......
  • dfsvc.exe 是 Windows 操作系统中的一个系统进程,它的全称是 "ClickOnce Deployment Se
    dfsvc.exe是Windows操作系统中的一个系统进程,它的全称是"ClickOnceDeploymentService"。这个进程主要用于支持ClickOnce技术,它是一种用于在Windows平台上发布和部署应用程序的技术。具体来说,ClickOnce是一种轻量级的、易于部署的应用程序部署技术,通常用于分发和更新.NE......
  • VMware vSphere Tanzu部署_01_Tanzu架构设计
    想写关于vspherewithtanzu系列的文章,想了很久,墨迹到现在才才想好整体的文章架构和实验的资源信息在这里感谢williamlam,因为它的文章,我才得以用32GB的机器来搭建Tanzu集群参考文档:https://williamlam.com/2020/11/complete-vsphere-with-tanzu-homelab-with-just-32gb-of-me......
  • COMP2041 |9044 - 24T2
    COMP(2041|9044)-24T2Assignment1:GiveAimsThisassignmentaimstogiveyoupracticeinShellprogramminggenerallyIntroductionYouaregoingtoimplementsimplebutfunctionalversionsofgiveandautotest.Yourtaskinthisassignmentistowrite8......
  • Winform数据绑定基类
    usingSystem;usingSystem.Collections.Generic;usingSystem.ComponentModel;usingSystem.Linq;usingSystem.Runtime.CompilerServices;usingSystem.Text;usingSystem.Threading.Tasks;usingSystem.Windows.Forms;usingSystem.Threading;publicabstractclassB......
  • 【Unity】EventTrigger各事件触发时机解释
    OnSelect():当鼠标按下了一个当前未在选中状态的UI时触发。如果一个UI已经被选中(成为焦点UI),那么再点击这个UI时,则不会再一次触发OnSelect。OnDeselect():在OnSelect()已经执行过之后,又选中了另外一个物体时,原有的物体就会触发OnDeselect(),取消选择。OnUpdateSelect():在......