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

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

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

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

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

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

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

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

    量化也是有计划的过程,选择INT4或INT8是个技术决策,但具体实施也要有综合评估的执行方案,是通过“低成本、快部署”的角度选择训练量化(PTQ),还是通过“高精度、强适配”选择量化感知训练(QAT) PTQ 和 QAT是什么训练量化(PTQ):模型训先练完再加工,训练好 FP32 模型,直接对权重或激活值做量化,不用重新训练量化感知训练(QAT):模型训练时预埋适配,训练过程中模拟量化误差,让模型学会适应低精度计算,最后导出量化模型。三、训练量化(PTQ)1. 核心概念与原理 训练量化,PTQ,全称Post-Training Quantization,是指模型训练完成,直接对权重和激活值进行量化的技术。 执行流程 这是一个量化感知训练的完整流程,通过训练让模型主动适应量化误差,通过模型在训练中体验量化误差,学习补偿,精度通常比训练量化(PTQ)精度损失更小,迭代优化支持参数调整重新训练

    34643编辑于 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)框架之一。

    11310编辑于 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
  • 来自专栏模型压缩

    INT8量化训练

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

    1.6K00发布于 2021-06-06
  • 来自专栏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
  • 来自专栏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.4K10编辑于 2024-12-06
  • 来自专栏GiantPandaCV

    EasyQuant 量化算法论文解读

    : image.png 论文算法解读 量化的定义 image.png 优化目标 量化推理的流程图 ? https://arxiv.org/pdf/2006.16669.pdf 最后看最右边的方框,表示得到卷积层输出量化激活结果之后,如果下一层不是量化计算层,则直接除以权值和输入激活的量化因子,得到反量化的输出 如果下一层也是量化层,则除了除以权值和输入激活的量化因子还需要再乘以下一层的输入量化因子得到量化的下一层的输入(Requantize)。 优化单层量化因子 image.png ? https://arxiv.org/pdf/2006.16669.pdf 实验还对比了 EasyQuant和 训练量化QAT(Quantize Aware Training),可以按到在ResNet50 总结 这篇论文提出了一个在低于8bit下精度还能保持比较好的量化算法,思想相对TensorRT的方法来说更加容易理解,而且实现上也更加的容易,实际端侧推理加速效果也不错。

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

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

    中文官方地址我放附录了,我们理解为这个框架可以把我们用tensorflow训练出来的模型转换到移动端进行部署即可,在这个转换过程中就可以自动调用算法执行模型剪枝,模型量化了。 ) print(correct / len(labels)) 最后测试结果如下表所示: 类型 模型大小 测试集精度 推理测试集10轮的时间 原始模型 242KB 97.39% 110.72 量化的模型 67KB 97.34% 35.97 可以看到对LeNet量化模型的大小变为原始模型的近1/4,并且精度几乎不降,且运行速度也有3-4倍加快。 也说明了训练量化的有效性。今天暂时就讲到这里了,我把源码放到github上了,地址见附录。 附录 Tensorflow-Lite官方文档:https://tensorflow.google.cn/lite Tensorflow量化官方实例:https://github.com/tensorflow

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

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

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

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

    基于OneFlow实现量化感知训练

    所以,这里推荐一系列讲解TFLite量化量化感知训练原理的文章,看一下这几篇文章阅读本文就没有任何问题了。 量化感知训练训练量化的主要区别在于它会对激活以及权重做模拟量化操作,即FP32->INT8->FP32。 这样做的好处是可以模拟量化的实际运行过程,将量化过程中产生的误差也作为一个特征提供给网络学习,一般来说量化感知训练会获得比训练量化更好的精度。 0x2. 在上一节提到,量化感知训练训练量化的主要区别在于它会对激活以及权重参数做模拟量化操作,即FP32->INT8->FP32。 freeze 这个函数会在统计完 scale,zero_point 发挥作用,这个函数和训练量化和模型转换有关。

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

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

    训练好的网络做量化,在实践中尝试过TensorRT的训练量化算法,在一些任务上效果还不错。 但是如果能在训练过程中去模拟量化的过程,让网络学习去修正量化带来的误差,那么得到的量化参数应该是更准确的,而且在实际量化推断中模型的性能损失应该能更小。 训练中模拟量化 首先来看下量化的具体定义,对于量化激活值到有符号整数,论文中给出的定义如下: ? 激活值8Bit量化定义 公式中的三角形表示量化的缩放因子,表示量化前的浮点数值。 而训练量化我理解就是在forward阶段去模拟量化这个过程,是把权值和激活值量化到再反量化回有误差的,所以训练过程还是浮点。 模拟量化卷积层示例图 具体实现的时候就是按照论文中的这个模拟量化卷积层示例图去写训练网络结构的。 4.

    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]的训练量化算法,效果还不错。 但是如果能在训练过程中去模拟量化的过程,让网络学习去修正量化带来的误差, 那么得到的量化参数应该是更准确的,而且在实际量化推断中模型的性能损失应该能更小。 按照惯例,先给出本文实验的代码:TrainQuantization 训练模拟量化 方法介绍 首先来看下量化的具体定义,对于量化激活值到有符号8bit整数,论文中给出的定义如下: 公式中的三角形表示量化的缩放因子 而训练量化说白了就是在forward阶段去模拟量化这个过程,本质就是把权值和激活值量化到8bit 再反量化回有误差的32bit,所以训练还是浮点,backward阶段是对模拟量化之后权值的求梯度, 然后用这个梯度去更新量化前的权值 具体实现的时候就是按照论文中的这个模拟量化卷积层示例图去写训练网络结构的。

    1.9K30发布于 2019-01-13
  • 来自专栏一点人工一点智能

    全景解读 LLM 训练技术

    这些聪明表现的背后,得益于大语言模型(LLM)的两个关键训练阶段:预训练(Pretraining)和训练(Post-training)。 ,我们沿用上述原论文给出的分类视角(taxonomy),从「微调」、「强化学习」、「测试时拓展」三个类别去认识各种训练技术。 更新的权重矩阵为: 由于r远小于d和k,因此 LoRA 只需要训练很少的参数,就可以达到与全参数微调相近的性能。 实现方式:QLoRA首先将预训练模型的权重量化为4-bit精度,然后在此基础上应用LoRA。由于4-bit量化可以显著降低显存占用,因此QLoRA可以在有限的GPU资源上微调更大的模型。 实践指南:如何选择训练方案 6.1 决策流程图 6.2 工具链推荐

    68710编辑于 2025-03-20
  • 来自专栏机器之心

    训练时代如何延续Scaling Law?这是你该读的LLM训练综述

    机器之心报道 编辑:Panda 现如今,微调和强化学习等训练技术已经成为提升 LLM 能力的重要关键。 LLM 的训练过程大致可分为两个阶段:预训练训练。 预训练阶段通常依赖在大规模语料库上的下一 token 预测目标,训练阶段通常则包括多轮微调和对齐。 通过这些目标明确的训练技术,LLM 可以更好地与人类意图和道德伦理要求对齐,最终提高其在现实世界中的适用性。下面总结了关键的训练阶段。 LLM 中的监督微调 如图 2 所示,微调是 LLM 训练配方的基本组成部分。 LLM 训练评估基准 为了评估 LLM 训练阶段的表现,人们已经提出了很多涉及多个领域的基准: 推理 强化学习对齐 多语言评估 通用理解 对话和搜索 结构良好的评估框架可确保全面了解 LLM 在各种任务中的优势和局限性

    54400编辑于 2025-05-02
领券