【白话模型量化系列一】矩阵乘法量化

简介: 矩阵乘法量化

- BEGIN -

模型量化是模型加速方向一个很重要的方法,主要思想就是用int8数据格式来存储和进行计算。这样做有两点好处:

  1. 可以减小模型存储的体积。原本float32存储需要4个字节,现在int8存储只需要1个字节,体积是原来的1/4。
  2. 可以加快计算速度。这主要是因为int8数据的读写更快,并且int8矩阵乘法一般来说会更快一点。

以现在最常用的Transformer模型来举例,在使用CUDA推理加速库(例如LightSeq)之后,矩阵乘法的占比高达将近90%。所以优化非矩阵乘法的速度意义不是很大了,占比不高,你算得再快对整体的提速也很小,因此可以尝试优化矩阵乘法。

image.png

用整数矩阵来表示浮点数矩阵



image.png

这样我们就可以得到两个浮点数矩阵的整数表示,接下来就可以利用他们来进行整数矩阵乘法的转换。

转化为整数矩阵乘法



image.png

总结一下流程


image.png

进阶(relu激活函数)



image.png

image.png

总结


如果矩阵乘法两个输入的范围都是关于零点对称的,那么计算公式为:


image.png

当然还有很多其他情况,例如softmax的输出范围一定是,那么attention中的矩阵乘法公式还得改写。

此外为了减小量化的损失,还需要在模型结构中插入伪量化节点,然后进行量化感知训练(QAT)。接着还需要将finetune后的模型存储为int8格式。然后还需要开发加载int8模型的推理加速库代码。最后就是本文讲到的整数矩阵乘法了。整个流程比较繁琐,这部分内容今后我会慢慢给大家分享。网上关于量化的优秀教程非常多,我不会讲太多理论上的量化知识,只会从实践的角度来白话一下我们在Transformer模型量化过程中做的一些尝试。

相关文章
|
机器学习/深度学习 编解码
一种用于心音分类的轻量级1D-CNN+DWT网络
这是由National Institute of Technology Rourkela, Central University of Rajasthan发布在**2022 ICETCI**的论文,利用离散小波变换(DWT)得到的多分辨率域特征对1D-CNN模型进行心音分类训练。
303 1
|
存储 NoSQL 前端开发
jwt与redis,把生成的token放入redis中进行临时存储
jwt与redis,把生成的token放入redis中进行临时存储
882 0
conda常用操作和配置镜像源
conda常用操作和配置镜像源
30045 0
|
机器学习/深度学习 算法 算法框架/工具
Tensorflow源码解析1 -- 内核架构和源码结构
# 1 主流深度学习框架对比 当今的软件开发基本都是分层化和模块化的,应用层开发会基于框架层。比如开发Linux Driver会基于Linux kernel,开发Android app会基于Android Framework。深度学习也不例外,框架层为上层模型开发提供了强大的多语言接口、稳定的运行时、高效的算子,以及完备的通信层和设备层管理层。因此,各大公司早早的就开始了深度学习框架的研
6558 0
|
机器学习/深度学习 PyTorch TensorFlow
ONNX 与量化:提高模型效率
【8月更文第27天】随着人工智能技术的广泛应用,模型部署变得越来越重要。为了在资源受限的设备上运行复杂的机器学习模型,模型量化技术成为了一种有效的手段。Open Neural Network Exchange (ONNX) 作为一种开放格式,支持在不同框架之间交换训练好的模型,同时也支持模型量化。本文将探讨如何结合 ONNX 和模型量化技术来提高模型的效率,减少模型大小并加快推理速度。
2144 2
|
12月前
|
关系型数据库 MySQL 数据库
一个 MySQL 数据库死锁的案例和解决方案
本文介绍了一个 MySQL 数据库死锁的案例和解决方案。
729 3
|
Python
Python编程--使用NMAP端口扫描
Python编程--使用NMAP端口扫描
175 1
|
人工智能 物联网
关于flux.1 loras的8个问题
Flux LoRA是一系列用于微调FLUX.1 AI模型的低阶适应模型,专为生成多样风格图像设计,如现实主义、动漫或艺术风格。LoRA通过调整模型权重实现特定美学或主题输出,无需大量再训练。Flux LoRA能创作从真实场景到幻想风光的各种图像,具体取决于选用的LoRA及输入提示。模型许可各不相同,使用前需确认授权范围。用户可通过ComfyUI等界面轻松集成LoRA模型。流行模型包括Flux Realism LoRA、Anime LoRA等。亦可利用自定义数据集训练个人化的LoRA。FLUX Lora提供在线免费试用。
|
缓存 并行计算 负载均衡
大模型推理优化实践:KV cache复用与投机采样
在本文中,我们将详细介绍两种在业务中实践的优化策略:多轮对话间的 KV cache 复用技术和投机采样方法。我们会细致探讨这些策略的应用场景、框架实现,并分享一些实现时的关键技巧。
|
JavaScript Java 测试技术
基于springboot+vue.js+uniapp的多功能智能手机阅读APP附带文章源码部署视频讲解等
基于springboot+vue.js+uniapp的多功能智能手机阅读APP附带文章源码部署视频讲解等
230 1