第 213 题:模型量化部署,INT8的校准数据集选择?
题目
模型量化部署,INT8的校准数据集选择?
完整讲解
一、模型量化与 INT8
量化:将权与激活从 FP32/FP16 映射到 INT8 等低比特,减小模型体积与显存、提高推理速度(硬件对 INT8 算力高)。INT8:8 比特整数,需确定缩放因子(scale)与零点(zero point),使浮点范围映射到 [-128,127] 或 [0,255];常用 per-tensor 或 per-channel 量化。
二、校准(Calibration)的作用
- 问题:权重量化可直接用 min/max 或分布估计 scale;激活的分布依赖真实输入,若用固定范围可能溢出或精度损失大。校准:用一批代表性输入(校准数据集)跑一遍模型,收集各层激活的分布(min/max、直方图等),据此计算每层/每 channel 的 scale 与 zero point。
- 校准数据集:应贴近线上分布(同域、同分辨率、同预处理),规模通常几百到几千条即可;过大浪费时间、过小或偏会导致分布估计不准、量化后精度差。常用训练集子集或无标注真实数据(仅需输入、不需标签)。
三、选择要点
- 代表性:覆盖主要场景与边界(不同分辨率、不同长度);避免只用单一类型(如全正样本)导致分布偏。
- 规模:经验上 100~1000 条常见;可做敏感性分析:逐步增加校准集大小,看验证集精度变化,选稳定且够用的规模。
- 与训练一致:预处理、输入格式与训练时一致;若训练用数据增强,校准可只用原图或固定增强,避免随机性导致分布不稳。
面试要点
- 能说清量化的目的与 INT8 的 scale/zero point;能解释校准的作用(确定激活的量化参数)。
- 能说明校准数据集应贴近线上分布、规模适中;能列举选择要点:代表性、规模、与训练一致。
- 能简述校准集过小或偏置导致精度下降;能提及 per-tensor vs per-channel。
记忆要点
- 量化=权与激活映射到 INT8;校准=用代表输入跑模型、收集分布、算 scale/zero point。
- 校准集=贴近线上、规模适中(百~千条)、与训练预处理一致;过小或偏→精度差。