快捷方式

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 開發者文件

檢視文件

教程

為初學者和高階開發者提供深入的教程

檢視教程

資源

查詢開發資源並讓您的問題得到解答

檢視資源