量化校准(calibration)的数据集选择?多少样本足够?
量化校准(calibration)指在 PTQ 中,用一批无标签或带标签数据跑一遍前向,统计激活(及可选权重)的分布(min/max、直方图、分位数等),据此确定每层或每 channel 的 scale、zero_point 等量化参数。校准数据不需要与下游任务完全一致,但分布应接近真实推理输入,否则 scale 会偏,导致 clipping 或分辨率浪费。
常用做法:从训练集或公开语料中随机采样若干条(或句子/段落),保证覆盖不同长度与类型即可;有时用验证集子集。无训练数据时可用通用文本(如 Wikipedia 片段)。关键不是「任务标签」而是激活分布有代表性;若模型有多模态或多场景,可每类采样一些。避免只用极短或极长序列,以免分布偏颇。
经验上 几百条(如 128~512 条)序列往往足够让 per-tensor 或 per-channel 的 min/max 或分位数稳定;更多(如 1024~2048)收益递减。若用 MSE 等更复杂校准(如选最优 clip 百分位),可适当增加。大模型 PTQ 常见 256~512 条;校准时间远小于训练,不必追求海量数据。
| 返回模块 | 返回总览 |