端侧神经网络量化(一):为什么要量化 & 量化基础

摘要

端侧设备算力弱、内存小,直接部署几百兆浮点模型几乎不可行------这是 AI 落地绕不开的坎。量化把 FP32 压成 INT8,体积缩到四分之一且几乎不掉精度,正是破局关键。本篇从仿射映射讲起,理清对称与非对称、量化粒度的取舍,拆解精度损失来源,帮你建立量化的核心直觉,为后续 PTQ、QAT 实战打底。


1. 端侧部署的困境

当我们试图把神经网络塞进手机、嵌入式设备或 IoT 终端时,马上就会撞上三重约束:

  • 算力:移动端处理器(如 ARM Cortex-A 系列)的浮点算力通常在几十到上百 GFLOPS,而桌面级 GPU 可达数十 TFLOPS,差距约两个数量级。

  • 内存带宽:LPDDR 带宽典型值为 15--50 GB/s,桌面 GPU 的 HBM 带宽可达 1--2 TB/s。模型推理的瓶颈往往是搬运权重而非计算本身。

  • 功耗:持续高负载计算会触发温控降频,电池供电设备尤为敏感。

以 ResNet-50 为例:FP32 模型体积约 98 MB,在 iPhone 12 的 A14 芯片上单次推理约 15 毫秒,功耗约 0.8W。当模型规模增大到 ViT-Large(约 1.2 GB),移动端几乎无法运行------加载即 OOM。

量化的价值就在这里:把 FP32 权重和激活值压缩到 INT8,模型体积直接缩到四分之一,内存带宽需求同步降低,定点运算在专用 NPU/DSP 上还能拿到更优的能效比。


2. 量化的数学定义

说白了,量化本质就是浮点数到整数的一次仿射映射:

复制代码
r = s × (q - z)

其中:

  • r:原始浮点值

  • q:量化后的整数值

  • s(scale):浮点缩放因子,决定映射精度

  • z(zero-point):浮点 0.0 对应的整数值,用于精确定位零值

反量化(推理时恢复)为:

复制代码
q = round(r / s) + z

来个具体例子:假设某层权重的值域为 -2.0, 3.0,量化为 INT8(值域 -128, 127),那么:

复制代码
s = (3.0 - (-2.0)) / (127 - (-128)) ≈ 0.0196
z = round(127 - 3.0 / 0.0196) ≈ -26

原始值 1.5 被量化为:round(1.5 / 0.0196) + (-26) = 77 - 26 = 51。反量化回去就是 51 × 0.0196 = 0.9996,和原始值差了约 0.5------这就是不可恢复的舍入误差。


3. 对称量化 vs 非对称量化

对称量化直接令 z = 0,强制量化区间关于零点对称。公式简化为:

复制代码
r = s × q

优点:推理时反量化只需一次乘法,不用减法,硬件实现更高效。代价是:当数据分布不对称时(比如 ReLU 输出的激活值恒 ≥ 0),一半的 INT8 值域就被白白浪费了。

非对称量化保留 z ≠ 0,把 INT8 的值域完整利用起来。公式跟前节一样。推理时需要"乘法 + 减法",计算开销略增,但精度更高。

工程上怎么选?一条经验规则:权重通常用对称量化(权重大多近似正态分布,对称性好);激活值则要看激活函数------ReLU 后的激活值适合非对称,GELU/SiLU 后则根据校准数据再定。


4. 量化粒度

量化粒度决定了 scale 和 zero-point 的共享范围,直接左右精度与效率的平衡:

4.1 Per-Tensor 量化

整个张量共享一套 (s, z)。实现简单,推理计算路径统一。问题是张量内不同通道的值域差异可能很大------一个通道权重集中在 -0.1, 0.1,另一个通道却跑到 -2.0, 2.0,per-tensor 一量化,小值通道几乎被压成零。

4.2 Per-Channel 量化

对权重的每个输出通道(卷积核 / 线性层输出维度)独立算一组 (s, z)。比如一个 64 × 3 × 3 × 3 的卷积核,per-channel 会为 64 个输出通道各算一组参数。精度比 per-tensor 好得多,代价是推理时每个通道的反量化要独立做一次乘法。

4.3 Per-Group 量化

把通道内进一步分组,每组 32、64 或 128 个元素独立量化。这是大模型 4-bit 量化的标准做法,在精度和效率之间找到了工程上的甜点。分组越小精度越高,但量化参数的存储开销也越大。当组大小 = 128 时,参数开销只增加 1/128,几乎可以忽略。


5. 量化误差从哪来

量化的精度损失,其实是三个因素叠加的结果:

  1. 舍入误差:连续浮点值映射到离散整数刻度,每个值最多损失 ±0.5 × s。误差会在多层网络里累积,每层都逃不掉。

  2. 截断误差:确定量化范围 r_min, r_max 时,超出边界的离群值会被硬截断。比如一个权重张量 99.9% 的值在 -0.5, 0.5,偏偏个别值飙到 ±10------按全范围量化,s 太大、内部值全被压碎;按 99.9% 范围截断,又会损失极端值的信息。

  3. 分布不匹配:量化默认数据均匀分布,可实际激活值往往是指数分布或长尾分布,量化刻度跟数据密度对不上,误差自然就来了。

后续整个系列都会围绕怎么压住这三点误差展开------PTQ 用校准数据优化截断策略,QAT 通过训练让模型主动适应量化误差,动态量化则在运行时统计、绕开激活分布的预校准假设。


6. 总结

量化的核心是一次仿射映射,由此衍生出对称与非对称的选择、per-tensor / per-channel / per-group 三种粒度的取舍,以及舍入、截断、分布不匹配三大精度损失来源。掌握这些,你就能判断何时量化、用什么粒度、误差从何而来。端侧部署已成 AI 落地主战场,量化是从"能跑"到"跑得好"的关键一跃,技术价值与工程需求都在快速放大。下一篇我们进入训练后量化(PTQ)实战。

相关推荐
waterfeeling14 小时前
用 Context7 做一次点云配准的调研—测试—报告闭环:鲁棒 ICP
人工智能
Data-Miner18 小时前
面对 AI 大模型智能涌现,如何从技术层面保护好隐私与数据安全?
大数据·人工智能
hpoenixf18 小时前
当 AI 开始谈“买什么”,研究助手离投顾和交易还有多远?
人工智能
大模型真好玩18 小时前
如何让视频模型对你言听计从?结构化提示词助你生成电影级画面
人工智能·agent·deepseek
zhang1338308907519 小时前
传统机械三杯式风速传感器易磨损冻堵?CG-88金属超声波风速风向传感器给出免运维方案
运维·服务器·网络·人工智能·自动化
特立独行的猫a19 小时前
会说确认叫车才下单-启元机器人官方滴滴打车技能源码详解
人工智能·机器人·技能·启元机器人
老金带你玩AI19 小时前
GPT-6.1 Terra上线:更便宜了,干活到底怎么样?
人工智能
会议咨询19 小时前
2027年电力电子、人工智能与大数据国际会议(PEABD 2027)
大数据·人工智能·电力电子
Jsundoku19 小时前
第五章 深度学习 -- 卷积神经网络
人工智能·深度学习·cnn
水如烟20 小时前
孤能子视角:SEP《人工智能的认识论》EIS读法·理解——理解幻觉与解压缩幻觉:同一缺口,两份报告
人工智能