快捷方式

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]

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

static dequantize(value: Tensor, nf4: Tensor) Tensor[source]

將 nf4 值反量化為 bfloat16 格式

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)

返回型別:

torch.Tensor

get_original_weight() Tensor[source]

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

static quantize_tensor_nearest(value: Tensor, nf4: Tensor) Tensor[source]

將 float16 張量量化為 nf4 格式,使用最近鄰舍入而不是向上取整


© 版權所有 2024-至今, torchao 貢獻者。

使用 Sphinx 構建,主題由 Read the Docs 提供。

文件

訪問 PyTorch 的全面開發者文件

檢視文件

教程

獲取面向初學者和高階開發者的深度教程

檢視教程

資源

查詢開發資源並獲得問題解答

檢視資源