快捷方式

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 的全面开发者文档

查看文档

教程

获取面向初学者和高级开发者的深度教程

查看教程

资源

查找开发资源并获得问题解答

查看资源