NF4Tensor¶
- class torchao.dtypes.NF4Tensor(tensor_meta: SubclassTensorArgs, block_size: int, n_blocks: int, scaler_block_size: int, quantized_scalers: Tensor, quantization_factor: Tensor, scaler_mean: Tensor, quantized_data: Tensor, nf4: Tensor)[source]¶
用於將權重轉換為 QLoRA NF4 格式的 NF4Tensor 類
- static convert_to_norm_float_weight(input_tensor: Tensor, n_blocks: int, block_size: int, nf4: Tensor) Tensor[source]¶
將張量轉換為歸一化浮點權重格式
- dequantize_scalers(input_tensor: Tensor, quantization_factor: Tensor, scaler_block_size: int) Tensor[source]¶
用於解包二次量化的縮放因子
- 引數:
input_tensor – 要轉換為 QLoRA 格式的輸入張量,這是 int8 格式的量化縮放因子
quantization_factor – 儲存在 inpt_weight.dtype 中的每個縮放因子塊的量化因子張量
scaler_block_size – 用於二次量化的縮放因子塊大小。
- static double_quantize_scalers(input_tensor: Tensor, block_size: int, scaler_block_size: int) Tuple[Tensor, Tensor, Tensor][source]¶
用於實現縮放因子的二次量化。我們首先獲取輸入張量,計算每個塊的最大絕對值量化因子。然後找到正的最大絕對值縮放因子的平均值。我們將此平均值從縮放因子中減去,然後再次計算每個塊的最大絕對值量化因子。最後將縮放因子量化為 int8 格式。
- 引數:
input_tensor – 要轉換為 QLoRA 格式的輸入張量,通常是權重張量
- 返回值:
- 儲存在 int8 格式中的每個塊的量化因子張量
大小:(n_blocks)
- torch.Tensor: 儲存在 int16 格式中的每個縮放因子塊的量化因子張量
大小:(n_scaler_blocks)
- 返回型別: