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 [source]¶
將張量轉換為標準化浮點權重格式。
- dequantize_scalers(input_tensor: Tensor, quantization_factor: Tensor, scaler_block_size: int) Tensor [source]¶
用於解壓縮雙重量化縮放器。
- 參數:
input_tensor: 要轉換為 QLoRA 格式的輸入張量,這是 int8 格式的量化縮放器 quantization_factor: 以 inpt_weight.dtype 儲存的每個縮放器區塊的量化因子張量。
size: (n_scaler_blocks)
scaler_block_size: 用於雙重量化的縮放器區塊大小。
- static double_quantize_scalers(input_tensor: Tensor, block_size: int, scaler_block_size: int) Tuple[Tensor, Tensor, Tensor] [source]¶
用於實現縮放器的雙重量化。 我們首先取得輸入張量,並計算每個區塊的 absmax 量化因子。 然後,我們找到正 absmax 縮放器的平均值。 我們從縮放器中減去這個平均值, 然後我們再次計算每個區塊的 absmax 量化因子。 然後我們將縮放器量化為 int8。
- 參數:
input_tensor – 要轉換為 QLoRA 格式的輸入張量,通常是權重張量
- 傳回:
- 以 int8 格式儲存的每個區塊量化因子張量
size: (n_blocks)
- torch.Tensor: 以 int16 格式儲存的每個縮放器區塊的量化因子張量
size: (n_scaler_blocks)
- 傳回類型: