校准数据应从与模型预期使用场景分布相近的数据源中选取。常见来源包括:原始训练数据的子集(最能反映模型学到的表征分布)、验证集子集(已知代表目标任务分布)、特定任务数据(如代码生成任务选用代码数据集、对话任务选用对话语料)。重要的是校准数据不需要与训练数据完全一致,只需能代表模型实际会处理的典型输入即可。
校准样本数量在统计稳定性和计算效率之间存在权衡。研究表明,32-64个样本适合快速实验调试,128个样本提供良好的速度与质量平衡(也是AutoGPTQ等工具的默认值),256-512个样本可获得更好的统计特性但量化时间更长,1024个以上样本的收益递减明显。对于GPTQ等利用Hessian矩阵的方法,校准数据的质量比数量更重要。
近年研究(如COLA框架,2025)发现,校准数据在激活空间中的代表性和多样性比数据来源本身更能决定量化后的能力保持水平。有效的做法是:通过前向传播提取未压缩模型在各候选样本上的层级激活模式,利用随机投影降维后进行k-means聚类,从每个簇中选择最接近质心的样本,最大化激活空间的覆盖度。这种方法在数学推理和代码生成等复杂任务上可带来1-3个百分点的额外精度提升。
校准数据的序列长度应尽量匹配模型的最大序列长度(通常2048或4096 tokens),较长的序列能提供更好的统计信息,尤其对处理长文本的模型至关重要。数据格式也应与推理时的输入格式一致——如果模型主要用于多轮对话,校准数据应包含对话格式的样本;如果用于RAG场景,应包含带检索上下文的查询样本。分词必须使用与模型预训练时完全相同的tokenizer,分词不匹配是常见的精度损失来源。