快捷方式

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[原始碼]

將張量轉換為歸一化浮點權重格式

static dequantize(value: Tensor, nf4: Tensor) Tensor[原始碼]

將 nf4 值反量化為 bfloat16 格式

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)

返回型別:

torch.Tensor

get_original_weight() Tensor[原始碼]

從歸一化浮點權重格式獲取原始權重

static quantize_tensor_nearest(value: Tensor, nf4: Tensor) Tensor[原始碼]

將 float16 張量量化為 nf4 格式(最近值,非向上舍入)

文件

訪問全面的 PyTorch 開發者文件

檢視文件

教程

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

檢視教程

資源

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

檢視資源