首页
学习
活动
专区
圈层
工具
发布
    • 综合排序
    • 最热优先
    • 最新优先
    时间不限
  • 来自专栏AI系统

    【AI系统】训练量化与部署

    本文将会重点介绍训练量化技术的两种方式:动态和静态方法,将模型权重和激活从浮点数转换为整数,以减少模型大小和加速推理。并以 KL 散度作为例子讲解校准方法和量化粒度控制来平衡模型精度和性能。 训练量化的方式 训练量化的方式主要分为动态和静态两种。 其核心是计算量化比例因子,使用静态量化的模型进行预测,在此过程中量化模型的缩放因子会根据输入数据的分布进行调整。相比量化训练,静态离线量化不需要重新训练,可以快速得到量化模型。 目的就是改变量化域,实则就是改变真实的分布,并使得修改得真实分布在量化量化前相对熵越小越好。 训练量化的技巧 对权重使用每通道(per-channel)粒度,对激活使用每张量(per-tensor)粒度 权重张量在不同通道中的值分布差异很大,如果使用单一的缩放因子进行量化,可能会导致较大的精度损失

    1.2K10编辑于 2024-12-06
  • 来自专栏AI异构

    ​AdaRound:训练量化的自适应舍入

    本文发现,这不是最佳的量化策略。本文提出了 AdaRound,一种用于训练量化的更好的权重舍入机制,它可以适应数据和任务损失。 AdaRound 不仅比舍入取整有显著的提升,而且还为几种网络和任务上的训练量化建立了新的最新技术。 在全面的研究中,表明 AdaRound 为几个网络和任务(包括 ResNet18,ResNet50,MobilenetV2,InceptionV3 和 DeeplabV3)提供了最新的训练量化新技术。 这意味着在进行训练量化时,通过仔细舍入权重,可以获得很多收益。本文的其余部分旨在设计一种有充分根据和计算效率的舍入机制。 ? 随机舍入与四舍五入对比 方法 在本节中,提出AdaRound,这是一种用于训练量化的新舍入程序,在理论上是有充分根据的,并且在实践中显示出显着的性能改进。本文从理论上分析由于量化引起的损失。

    2.8K11发布于 2021-03-09
  • 来自专栏大模型应用

    大模型应用:高精度量化感知训练(QAT)与低成本训练量化(PTQ)方案优选.55

    PTQ 和 QAT是什么训练量化(PTQ):模型训先练完再加工,训练好 FP32 模型,直接对权重或激活值做量化,不用重新训练量化感知训练(QAT):模型训练时预埋适配,训练过程中模拟量化误差,让模型学会适应低精度计算,最后导出量化模型。三、训练量化(PTQ)1. 核心概念与原理 训练量化,PTQ,全称Post-Training Quantization,是指模型训练完成,直接对权重和激活值进行量化的技术。 :复杂模型量化精度可能下降 5%-10%适配性差:量化误差无法被模型适应,复杂模型易出现性能暴跌仅支持静态量化:对激活值的量化基于校准数据,泛化性有限4. 训练终止判断:达到训练轮数或精度目标5. 模型导出:生成最终的INT8量化模型6. 性能验证:对比量化模型与原模型的精度差异7. 部署决策:精度达标则上线,不达标则调整参数重新训练3.

    41843编辑于 2026-03-24
  • 来自专栏CreateAMind

    QMamba:面向视觉状态空间模型的训练量化方法

    鉴于在资源受限的边缘设备上部署SSMs的计算成本较高,训练量化(Post-Training Quantization, PTQ)作为一种技术,具有推动SSMs高效部署的潜力。 训练量化(Post-Training Quantization, PTQ)是解决这一问题的有效方法,它可以在仅使用少量未标注的校准数据集的情况下,将模型的权重和激活值量化为整数,从而减轻内存和功耗负担 训练量化 量化是一种有效的模型压缩技术,它将权重和激活值从浮点数转换为低比特整数,从而减少内存存储和计算消耗。 量化方法大致可分为两类:量化感知训练 (Quantization-Aware Training, QAT)[1, 4, 5] 和训练量化 (Post-Training Quantization, PTQ 6 结论 在本研究中,我们首次提出了 QMamba,这是首个专为基于状态空间模型(SSM)的视觉模型设计的训练量化(PTQ)框架之一。

    12110编辑于 2026-03-11
  • 来自专栏磐创AI技术团队的专栏

    TensorFlow 模型优化工具包  —  训练整型量化

    最初,我们通过“混合运算”为训练量化提供支持,该方法可量化模型参数(例如权重),但以浮点方式执行部分计算。今天,我们很高兴宣布推出一款新工具:训练整型量化。 优化模型以缩减尺寸、延时和功耗,使准确率损失不明显 为何应使用训练整型量化 我们之前发布的“混合”训练量化方法可在许多情况下减少模型大小和延迟时间,但却必须进行浮点计算,这可能不适用于所有硬件加速器 CPU 大小和延迟时间,即应使用“混合”训练量化工具。 与现有的训练量化功能类似,默认情况下,未进行量化操作的算子将自动以浮点方式执行。 同时,我们也鼓励您尝试使用训练量化法,因为它也许能满足模型的所有需求! 文档和教程 您可以在 TensorFlow 网站上找到关于训练整型量化、新量化规范以及训练整型量化教程的详细信息。

    1.8K50发布于 2019-07-10
  • 来自专栏AI异构

    AdaQuant:改进训练神经网络量化:分层校准和整数编程

    AdaQuant:改进训练神经网络量化:分层校准和整数编程 本文是以色列理工学院与英特尔联合提出的基于PTQ的神经网络量化技术,并且提出了不同复杂度下的量化策略方案与基于整数编程的混合精度搜索。 论文信息 摘要 训练量化方法使用简单,并且只需要少量未标记的校准集,因此引起了相当大的关注。在没有明显过拟合的情况下,这个小的数据集不能用于微调模型。相反,这些方法仅使用校准集来设置激活的动态范围。 例如,在ResNet50上,实现了所有层权重和激活4-bit量化,且精度下降不到1%。 方法 在大多数训练量化设置中,会提供一个模型和一个小的未标记校准集。 尽管还有其他训练量化技术可以与我们的方法潜在地结合起来,例如偏差校正,均衡和离群的信道拆分,但是,并没有必要。 Full pipeline and ablation study 尽管一些研究人员提出了用于训练的混合精度量化的不同方法,但没有一个提供其代码。

    3.8K10发布于 2021-04-13
  • 来自专栏GiantPandaCV

    INT8量化训练

    【GiantPandaCV导读】本文聊了两篇做INT8量化训练的文章,量化训练说的与quantization-aware Training有区别,量化训练指的是在模型训练的前向传播和后向传播都有INT8 两篇文章都是基于对梯度构建分析方程求解得到解决量化训练会引起的训练崩溃和精度损失严重的情况。 Unified INT8也是类似minimize量化梯度与原来梯度的量化误差Error的思想,与Distribution Adaptive INT8不同的是通过收敛性分析方程,发现可以通过降低学习率和减少梯度量化误差 Unified INT8也是类似minimize量化梯度与原来梯度的量化误差Error的思想,Unified INT8是通过收敛性分析方程,发现了可以通过降低学习率和减少梯度量化误差。 -反量化的梯度, 是学习率,Term(3)说明要降低学习率。

    1.4K30发布于 2021-04-30
  • 来自专栏模型压缩

    INT8量化训练

    【导读】本文聊了两篇做INT8量化训练的文章,量化训练说的与quantization-aware Training有区别,量化训练指的是在模型训练的前向传播和后向传播都有INT8量化。 两篇文章都是基于对梯度构建分析方程求解得到解决量化训练会引起的训练崩溃和精度损失严重的情况。 而量化训练则是在前向传播和后向传播都加入量化,而且做完矩阵运算再把运算的结果反量化回去浮点数。 Unified INT8也是类似minimize量化梯度与原来梯度的量化误差Error的思想,Unified INT8是通过收敛性分析方程,发现了可以通过降低学习率和减少梯度量化误差。 ; $\eta{t}$ 是量化-反量化的梯度, $\eta{t}$ 是学习率,Term(3)说明要降低学习率。

    1.6K00发布于 2021-06-06
  • 来自专栏奇点大数据

    话说量化5

    钱是越多越好吗?这个问题似乎不用回答,那是肯定的啊。试问在座的各位看客哪位不是在挣钱,挣更多的钱,挣更多更多的钱的路上奔跑着的呢?钱是一种交换物质(当然也可以是精神层面的)的重要工具,对于每个人都很重要。所以狭义来说,钱当然是越多越好。

    49210发布于 2018-09-14
  • 来自专栏晓飞的算法工程笔记

    ERQ:32位转5位仅掉些许精度,来看看两段式训练量化 | ICML 2024

    训练量化(PTQ)在视觉Transformer(ViTs)领域引起了广泛关注,因为它在模型压缩方面表现出了高效率。 最近,研究人员逐渐关注于视觉Transformer的训练量化(PTQ),该方法旨在利用一个小型校准数据集和较低的成本对模型进行量化。 为了适应ViTs独特的结构,已经许多研究探索了各种训练量化(PTQ)方法。 论文提出一种为ViTs量身定制的两步训练量化方法ERQ,旨在顺序减小由量化激活和权重引起的量化误差。如图1所示,ERQ由两个步骤组成,即激活量化误差减少(Aqer)和权重量化误差减少(Wqer)。 与全面训练数据和计算密集型重训练相关的量化感知训练(QAT)相比,训练量化(PTQ)在一个小型数据集上运行,减少了时间开销,因此引起了广泛关注。

    43210编辑于 2024-10-16
  • 来自专栏CNN

    【Ubuntu】Tensorflow对训练的模型做8位(uint8)量化转换

    本文链接:https://blog.csdn.net/huachao1001/article/details/101285133 1 量化为PB格式模型 从官方提供的tensorflow版本与编译工具版本中选择 Tensorflow源码 下载1.13版本Tensorflow源码:https://github.com/tensorflow/tensorflow/tree/v1.13.2 使用bazel编译tensorflow量化工具 bazel build tensorflow/tools/graph_transforms:transform_graph 1.3 执行转换量化命令 将导出的pb模型执行模型量化转换,以tensorflow_inception_graph.pb type=float, shape="1,299,299,3") remove_nodes(op=Identity, op=CheckNumerics) fold_old_batch_norms ' 2 量化为 TFLite格式模型 除了使用transform_graph工具对pb模型进行量化转换外,还可以使用TFLite对模型进行量化处理,但是需要注意的是,使用TFLite转换得到的量化模型是tflite结构

    2K30发布于 2019-10-22
  • 来自专栏AI系统

    【AI系统】感知量化训练 QAT

    此外,还提供了一些实践技巧,包括从校准良好的 PTQ 模型开始、使用余弦退火学习率计划等,以及 QAT 与训练量化(PTQ)的比较。 感知量化训练流程 传统的训练量化将模型从 FP32 量化到 INT8 精度时会产生较大的数值精度损失。 正向传播 在正向传播中,FakeQuant 节点将输入数据量化为低精度(如 INT8),进行计算再反量化为浮点数。这样,模型在训练期间就能体验到量化引入的误差,从而进行相应的调整。 )}{\sqrt{\sigma_B^2 + \epsilon}} + \beta 在量化感知训练中应用 BN 折叠的过程涉及将 BN 层的参数合并到前一层的权重和偏置中,并对这些合并的权重进行量化 要使用 TensorRT 推理 QAT 模型,通常需要以下步骤: 训练量化模型: 首先使用训练框架(如 PyTorch、PaddlePaddle 和 MindSpore)进行量化感知训练并保存量化的模型

    1.5K10编辑于 2024-12-06
  • 来自专栏GiantPandaCV

    EasyQuant 量化算法论文解读

    如果下一层也是量化层,则除了除以权值和输入激活的量化因子还需要再乘以下一层的输入量化因子得到量化的下一层的输入(Requantize)。 优化单层量化因子 image.png ? https://arxiv.org/pdf/2006.16669.pdf 实验还对比了 EasyQuant和 训练量化QAT(Quantize Aware Training),可以按到在ResNet50 的方法的,而且让人惊讶的是图(c),int5 EasyQuant 的精度基本和 int8 相当,没有降多少,这个确实很厉害。 总结 这篇论文提出了一个在低于8bit下精度还能保持比较好的量化算法,思想相对TensorRT的方法来说更加容易理解,而且实现上也更加的容易,实际端侧推理加速效果也不错。 [4] http://on-demand.gputechconf.com/gtc/2017/presentation/s7310-8-bit-inference-with-tensorrt.pdf [5]

    1.3K20发布于 2020-07-09
  • 来自专栏GiantPandaCV

    深度学习算法优化系列五 | 使用TensorFlow-Lite对LeNet进行训练量化

    今天主要是利用tflite来跑一下这个量化算法,量化一个最简单的LeNet-5模型来说明一下量化的有效性。tflite全称为TensorFlow Lite,是一种用于设备端推断的开源深度学习框架。 中文官方地址我放附录了,我们理解为这个框架可以把我们用tensorflow训练出来的模型转换到移动端进行部署即可,在这个转换过程中就可以自动调用算法执行模型剪枝,模型量化了。 67KB 97.34% 35.97 可以看到对LeNet量化模型的大小变为原始模型的近1/4,并且精度几乎不降,且运行速度也有3-4倍加快。 也说明了训练量化的有效性。今天暂时就讲到这里了,我把源码放到github上了,地址见附录。 附录 Tensorflow-Lite官方文档:https://tensorflow.google.cn/lite Tensorflow量化官方实例:https://github.com/tensorflow

    2K10发布于 2020-01-21
  • 来自专栏我爱计算机视觉

    北大&华为诺亚提出Vision Transformer的训练量化方法

    该方法的有效性在多个基准模型和数据集上得到验证,其性能优于SOTA的训练量化算法。 训练量化是一种有效的模型压缩技术,它可以直接量化神经网络模型,而无需进行微调。大多数现有的训练量化方法是为卷积神经网络(CNN)或递归神经网络(RNN)设计的。 因此,作者希望为视觉Transformer结构探索训练量化,以减少显存和计算成本。 在本文中,作者研究了具有混合精度的视觉Transformer模型的训练量化方法,以获得更高的压缩比和加速比。 Results and Analysis Image classification 从上表可以看出,基于分类任务,在多个模型和多个数据集上,本文的训练量化方法都优于其他训练量化方法。 实验结果表明,与传统的训练量化方法相比,该方法在网络精度和存储开销方面都有很大的改进。

    1.8K10发布于 2021-10-27
  • 来自专栏GiantPandaCV

    基于OneFlow实现量化感知训练

    量化感知训练训练量化的主要区别在于它会对激活以及权重做模拟量化操作,即FP32->INT8->FP32。 这样做的好处是可以模拟量化的实际运行过程,将量化过程中产生的误差也作为一个特征提供给网络学习,一般来说量化感知训练会获得比训练量化更好的精度。 0x2. 在上一节提到,量化感知训练训练量化的主要区别在于它会对激活以及权重参数做模拟量化操作,即FP32->INT8->FP32。 freeze 这个函数会在统计完 scale,zero_point 发挥作用,这个函数和训练量化和模型转换有关。 0x5. 总结 本文分享了笔者最近的一项工作,基于OneFlow Eager版本做量化感知训练,目前手动做量化感知训练对用户没有友好性。

    1K30发布于 2021-08-19
  • 来自专栏GiantPandaCV

    MXNet实现卷积神经网络训练量化

    训练好的网络做量化,在实践中尝试过TensorRT的训练量化算法,在一些任务上效果还不错。 但是如果能在训练过程中去模拟量化的过程,让网络学习去修正量化带来的误差,那么得到的量化参数应该是更准确的,而且在实际量化推断中模型的性能损失应该能更小。 而训练量化我理解就是在forward阶段去模拟量化这个过程,是把权值和激活值量化到再反量化回有误差的,所以训练过程还是浮点。 模拟量化卷积层示例图 具体实现的时候就是按照论文中的这个模拟量化卷积层示例图去写训练网络结构的。 4. 得到训好的模型与每层的量化因子之后,就可以模拟真实的量化推断过程,不过因为MXNet的卷积层不支持整型运算,所以模拟的过程也是用浮点来模拟,具体实现细节可见示例代码。 5.

    1.3K20发布于 2020-03-20
  • 来自专栏GiantPandaCV

    海思NNIE之PFPLD训练量化

    之前写了关于海思NNIE的一些量化部署工作,笔者不才,文章没有写得很具体,有些内容并没有完全写在里面。好在目前看到了一些使用nniefacelib脱坑的朋友,觉得这个工程还是有些用的。 目前在活体检测领域用其渲染的depth map作为伪标签进行训练,已经成为了一种标配性的存在。所以当人脸姿态估计算法性能接近于它,证明训练的姿态已经非常不错了。 这其实和训练数据集里面闭眼图片的数量过少有关系,加强眼部的训练并不能抵抗这种情况,因为不是一个维度的事情,最佳的方式依然是添加闭眼数据。 示例图片 四、量化 过去一周,笔者对训练代码进行了整理,完成了多种版本的转换工作,包括 pytorch caffe ncnn nnie 听说有小伙伴将这套模型跑到了ios上,说不定之后会放出来。 量化精度 Github地址如下: https://github.com/Oneflow-Inc/oneflow

    1.6K20发布于 2020-08-04
  • 来自专栏GiantPandaCV

    Pytorch实现卷积神经网络训练量化(QAT)

    量化就是将浮点数(高精度)表示的权重和偏置用低精度整数(常用的有INT8)来近似表示,在量化到低精度之后就可以应用移动平台上的优化技术如NEON对计算过程进行加速,并且原始模型量化的模型容量也会减少 非对称量化 image.png 4. 中部小结 将上面两种算法直接应用到各个网络上进行量化(训练量化PTQ)测试模型的精度结果如下: ? 红色部分即将上面两种量化算法应用到各个网络上做精度测试结果 5. 训练模拟量化 我们要在网络训练的过程中模型量化这个过程,然后网络分前向和反向两个阶段,前向阶段的量化就是第二节和第三节的内容。 bias设置为None,即训练的时候不量化bias。 QAT方式明显好于Post Train Quantzation 注意前面有一些精度几乎为0的数据是因为MobileNet训练出来之后某些层的权重非常接近0,使用训练量化方法之后权重也为0,这就导致推理结果完全错误

    4.2K40发布于 2020-08-04
  • 来自专栏Ldpe2G的个人博客

    卷积神经网络训练模拟量化实践

    训练好的网络做量化,在实践中尝试过TensorRT[5][8]的训练量化算法,效果还不错。 但是如果能在训练过程中去模拟量化的过程,让网络学习去修正量化带来的误差, 那么得到的量化参数应该是更准确的,而且在实际量化推断中模型的性能损失应该能更小。 而训练量化说白了就是在forward阶段去模拟量化这个过程,本质就是把权值和激活值量化到8bit 再反量化回有误差的32bit,所以训练还是浮点,backward阶段是对模拟量化之后权值的求梯度, 然后用这个梯度去更新量化前的权值 具体实现的时候就是按照论文中的这个模拟量化卷积层示例图去写训练网络结构的。 8-bit Inference with TensorRT [6] TensorRT(5)-INT8校准原理 [7] caffe-int8-convert-tool.py

    1.9K30发布于 2019-01-13
领券