快捷方式

Int4WeightOnlyConfig

class torchao.quantization.Int4WeightOnlyConfig(group_size: int = 128, layout: Optional[TensorCoreTiledLayout] = TensorCoreTiledLayout(inner_k_tiles=8), use_hqq: bool = False, zero_point_domain: Optional[ZeroPointDomain] = ZeroPointDomain.NONE, set_inductor_config: bool = True, preserve_zero: Optional[bool] = None, packing_format: PackingFormat = PackingFormat.PLAIN, version: int = 1)[源代码]

用于对线性层应用 uint4 重量仅非对称逐组量化的配置,使用“tensor_core_tiled”布局通过 tinygemm 内核加速。

注意

这针对的是 tinygemm int4mm 内核(torch.ops.aten._weight_int4pack_mmtorch.ops.aten._weight_int4pack_mm_for_cpu),与传统类型的整数量化相比,量化算法的主要区别如下:1)。零点位于浮点域而不是整数域(zero_point_domain`=`ZeroPointDomain.FLOAT)2)。浮点零不必精确表示(choose_qparams_affine 中的 preserve_zero`=False)请遵循 choose_qparams_affinequantize_affinedequantize_affine 中的相关代码,了解如何选择量化参数以及如何为 tinygemm 量化/反量化张量。

参数:
  • group_size – 量化参数,控制量化的粒度,较小的尺寸更精细,可选值为 [256, 128, 64, 32]

  • layout – 量化张量的布局类型,默认为 TensorCoreTiledLayout(inner_k_tiles=8)

  • use_hqq – 是否使用 hqq 或默认量化模式,默认为 False

  • zero_point_domain – 零点的数据类型,可选值为 [ZeroPointDomain.FLOAT, ZeroPointDomain.INT, ZeroPointDomain.NONE]

  • set_inductor_config – 如果为 True,则将 torchinductor 设置调整为推荐值。

  • preserve_zero – 是否保留零点,默认为 None。如果 zero_point_domain 是 ZeroPointDomain.INT,则将设置为 True

  • packing_format – int4 张量的打包格式,从版本 2 及以上可用

文档

访问全面的 PyTorch 开发者文档

查看文档

教程

为初学者和高级开发者提供深入的教程

查看教程

资源

查找开发资源并让您的问题得到解答

查看资源