极智AI | 谈谈模型量化组织方式

本文涉及的产品
视觉智能开放平台,分割抠图1万点
视觉智能开放平台,图像通用资源包5000点
视觉智能开放平台,视频通用资源包5000点
简介: 本文主要聊一下深度学习模型量化组织方式。

本文主要聊一下深度学习模型量化组织方式。

在我的这篇 《【模型推理】谈谈推理引擎的推理组织流程》文章里对模型量化策略进行了一些介绍,有兴趣的同学可以翻看一下。今天这里主要聊一下实际推理中,怎么来组织量化过程,涉及多层之间如何衔接的问题。这里分两个部分聊一下:量化模型结构、实际举例说明。


1、量化模型结构

量化的操作会对网络模型有什么影响呢?下图以卷积为例,图左边表示对输入进行量化的过程,其中 Quantize Weight 权重量化在推理前就完成,Quantize Activation 激活值量化需要在推理时进行;图中间表示量化的卷积层运算;图右边表示怎么和后续层进行衔接。

以上描述的整个过程可以表示为 quantization -> compute -> dequantization / requantization,这样就完成了一个量化的卷积结构。最近在适配新的卡,我拿一个 tf 框架量化好的网络片断展示一下。

可以看到上述结构中既有 quantization,也有 dequantization,这些看起来很正常。注意看黄色框,是做了把两个量化层进行 tf.add 拼接的操作,tf.add 的功能十分丰富,可以做元素加、矩阵加、元素和矩阵加,也具有广播的机制,总体来说,通过 tf.add 有两种情况:(1)eltwise-add 维度不变,类似的算子有 darknet shortcut;(2)维度改变,类似算子有 darknet route、pytorch torch.nn.cat。对于常用的线性量化来说,类似算子拼接 concat / eltwise 的非线性变换对于常规量化来说其实并不友好。


2、实际举例

为了对模型量化的组织方式进行更加好的说明,这里我进行了一些举例。

2.1 Conv + Conv 结构

2.1.1 网络结构组织

假设两个 conv 都进行量化。

还未量化时的模型结构如下所示:

在经过权重量化和激活值量化后,结构示意如下:

上图中 Sr1_FxP 为定点数,不少推理框架在实际推理中会进行算子融合,从而减少层与层之间的数据搬运开销,一般会把数据搬运的对象转换为 INT 类型的 Tensor。算子融合示意如下:

不同于常规的 conv + bn + relu 的算子融合,这里其实是做量化过程特有的 conv1 + requantize 的融合,完了会得到如下 quantizedConv2d 的算子层。

2.1.2 数学关系式

对于量化过程,不只是需要对量化算子计算缩放系数,还需要进行量化网络结构组织,以及算子参数计算。

假设卷积的数学表达式如下:

激活值量化和权重量化的数学表达如下:

将上式代入原始卷积表达式中,可以得到如下式子:

由于紧接着下一层还要量化,所以 y 也需要量化,其量化方式如下:

将上式代入卷积表达式中,得到了如下式子:

根据上式,假设模型压缩后的卷积核参数为 wq,偏置为 bq,后一层 Requantize 的定点数参数为 Sr1_FxP,那么可以得到如下对应关系:

把上式代入,得到融合后的卷积量化公式是如下,其中qx、wq、qy 一般是 int8 数据类型,bq、qy1 一般是 int32 数据类型,Sr1_FxP 是个定点数:

上述的数据表达可以对应到如下示意图:

接下来介绍下 Requantize 层的计算是如何实现的,从 Requantize 的计算公式定义可知,Requantize 层实现了把一个范围的整型数映射到了另一个范围的整型数,以下是 Requantize 的计算方式:

上述式子中 k 为定点数的小数点所占比特位长度,>>k 表示比特位右移的操作。

2.2 Conv + RELU 结构

假设这个结构有两种量化形式:(1)conv 量化 + relu 量化;(2)conv 量化 + relu 不量化。

2.2.1 RELU 量化的网络结构组织

假设 Conv 和 RELU 都进行量化。

未量化的模型结构如下:

经过激活值量化和权重量化后的结构示意如下:

上图中 Sr1_FxP 为定点数,若进行算子融合,会得到如下示意图:

2.2.2 RELU 量化的数学关系式

这里沿用第一个例子的假设变量,同时假设 X4_INT 为 k,那么对于 RELU 函数的量化,我们可以得到如下的数学表达式:

其中最关键的思想是:不管是 qy > zy,还是 qy <= zy,都使用了 clip 截断函数代替了 RELU,因为使用 clip 截断到 0 以上的范围,就相当于进行了 RELU 操作。

假设模型压缩后的卷积核参数为 wq,其偏置为 bq,后一层 Requantize 的定点数参数为 Sr1_FxP,这个时候 RELU 这个层就相当于没有了,那么可以得到如下对应关系:

把上式代入,得到融合后的卷积量化公式是如下,其中 qx、wq、qy 一般是 int8 数据类型,bq、qy1 一般是 int32 数据类型,Sr1_FxP 是个定点数:

2.2.3 RELU 不量化的网络模型结构组织:

如下图所示,此时可以将 Conv1 和 Dequantize 进行算子融合,减少数据传输次数,其中 X2_INT 一般是 int32 数据类型。

2.2.4 RELU 不量化的数学表达式:

融合后,输入是 int8 数据类型,输出是浮点数据类型,数学表达如下:

同样可以得到量化后的卷积参数如下:

Dequantize 层有两种运算方案:

(1)浮点化整数,Sr1_FxP 也采用浮点运算存储,这一步就相当于直接采用了浮点运算进行缩放;

(2)类似于 Requantize 层的操作,也就是 (定点小数 * 整数) = (整数 * 整数,然后右移小数位长度),只是这里 Dequantize 输出为浮点数而已。

以上聊了一下模型量化的组织方式,并拿 Conv + Conv、Conv + RELU 的常见结构进行了介绍。


有问题欢迎沟通,收工了~


logo_show.gif


相关文章
|
1月前
|
人工智能 自然语言处理 IDE
模型微调不再被代码难住!PAI和Qwen3-Coder加速AI开发新体验
通义千问 AI 编程大模型 Qwen3-Coder 正式开源,阿里云人工智能平台 PAI 支持云上一键部署 Qwen3-Coder 模型,并可在交互式建模环境中使用 Qwen3-Coder 模型。
401 109
|
16天前
|
人工智能 Java API
AI 超级智能体全栈项目阶段一:AI大模型概述、选型、项目初始化以及基于阿里云灵积模型 Qwen-Plus实现模型接入四种方式(SDK/HTTP/SpringAI/langchain4j)
本文介绍AI大模型的核心概念、分类及开发者学习路径,重点讲解如何选择与接入大模型。项目基于Spring Boot,使用阿里云灵积模型(Qwen-Plus),对比SDK、HTTP、Spring AI和LangChain4j四种接入方式,助力开发者高效构建AI应用。
609 122
AI 超级智能体全栈项目阶段一:AI大模型概述、选型、项目初始化以及基于阿里云灵积模型 Qwen-Plus实现模型接入四种方式(SDK/HTTP/SpringAI/langchain4j)
|
2月前
|
人工智能 自然语言处理 搜索推荐
AI Compass前沿速览:Qoder Agentic编程、vivo Vision头显、AIRI桌面伴侣、RM-Gallery奖励模型平台
AI Compass前沿速览:Qoder Agentic编程、vivo Vision头显、AIRI桌面伴侣、RM-Gallery奖励模型平台
AI Compass前沿速览:Qoder Agentic编程、vivo Vision头显、AIRI桌面伴侣、RM-Gallery奖励模型平台
|
28天前
|
机器学习/深度学习 数据采集 人工智能
PyTorch学习实战:AI从数学基础到模型优化全流程精解
本文系统讲解人工智能、机器学习与深度学习的层级关系,涵盖PyTorch环境配置、张量操作、数据预处理、神经网络基础及模型训练全流程,结合数学原理与代码实践,深入浅出地介绍激活函数、反向传播等核心概念,助力快速入门深度学习。
85 1
|
18天前
|
机器学习/深度学习 人工智能 自然语言处理
AI Compass前沿速览:Qwen3-Max、Mixboard、Qwen3-VL、Audio2Face、Vidu Q2 AI视频生成模型、Qwen3-LiveTranslate-全模态同传大模型
AI Compass前沿速览:Qwen3-Max、Mixboard、Qwen3-VL、Audio2Face、Vidu Q2 AI视频生成模型、Qwen3-LiveTranslate-全模态同传大模型
230 13
AI Compass前沿速览:Qwen3-Max、Mixboard、Qwen3-VL、Audio2Face、Vidu Q2 AI视频生成模型、Qwen3-LiveTranslate-全模态同传大模型
|
19天前
|
人工智能 负载均衡 API
Vercel 发布 AI Gateway 神器!可一键访问数百个模型,助力零门槛开发 AI 应用
大家好,我是Immerse,独立开发者、AGI实践者。分享编程、AI干货、开源项目与个人思考。关注公众号“沉浸式趣谈”,获取独家内容。Vercel新推出的AI Gateway,统一多模型API,支持自动切换、负载均衡与零加价调用,让AI开发更高效稳定。一行代码切换模型,告别接口烦恼!
186 1
Vercel 发布 AI Gateway 神器!可一键访问数百个模型,助力零门槛开发 AI 应用
|
1月前
|
人工智能 监控 Kubernetes
稳定支撑大规模模型调用,携程旅游的 AI 网关实践
为了进一步提升服务水平和服务质量,携程很早就开始在人工智能大模型领域进行探索。而随着工作的深入,大模型服务的应用领域不断扩大,公司内部需要访问大模型服务的应用也越来越多,不可避免的就遇到了几个问题,我们自然就会想到使用网关来对这些服务接入进行统一管理,并增加各种切面上的流量治理功能。
170 40
|
23天前
|
机器学习/深度学习 人工智能 自然语言处理
如何让AI更“聪明”?VLM模型的优化策略与测试方法全解析​
本文系统解析视觉语言模型(VLM)的核心机制、推理优化、评测方法与挑战。涵盖多模态对齐、KV Cache优化、性能测试及主流基准,助你全面掌握VLM技术前沿。建议点赞收藏,深入学习。
312 8
|
2月前
|
人工智能 自然语言处理 机器人
AI Compass前沿速览:Jetson Thor英伟达AI计算、Gemini 2.5 Flash Image、Youtu腾讯智能体框架、Wan2.2-S2V多模态视频生成、SpatialGen 3D场景生成模型
AI Compass前沿速览:Jetson Thor英伟达AI计算、Gemini 2.5 Flash Image、Youtu腾讯智能体框架、Wan2.2-S2V多模态视频生成、SpatialGen 3D场景生成模型
AI Compass前沿速览:Jetson Thor英伟达AI计算、Gemini 2.5 Flash Image、Youtu腾讯智能体框架、Wan2.2-S2V多模态视频生成、SpatialGen 3D场景生成模型

热门文章

最新文章