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)[原始碼]¶
用於將權重轉換為 QLoRA NF4 格式的 NF4Tensor 類
- static convert_to_norm_float_weight(input_tensor: Tensor, n_blocks: int, block_size: int, nf4: Tensor) Tensor[原始碼]¶
將張量轉換為歸一化浮點權重格式
- dequantize_scalers(input_tensor: Tensor, quantization_factor: Tensor, scaler_block_size: int) Tensor[原始碼]¶
用於解包雙量化縮放器
- 引數:
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][原始碼]¶
用於實現縮放器的雙量化。我們首先取輸入張量,計算每個塊的絕對最大值量化因子。然後,我們計算正的絕對最大值縮放器的均值。我們從縮放器中減去這個均值,然後再次計算每個塊的絕對最大值量化因子。最後,我們將縮放器量化為 int8。
- 引數:
input_tensor – 輸入張量,用於轉換為 QLoRA 格式,通常是權重張量
- 返回:
- 按塊量化因子張量,儲存為 int8 格式
大小:(n_blocks)
- torch.Tensor: 按縮放器塊量化因子張量,儲存為 int16 格式
大小:(n_scaler_blocks)
- 返回型別: