捷徑

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]

將張量轉換為標準化浮點權重格式。

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 儲存的每個縮放器區塊的量化因子張量。

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)

傳回類型:

torch.Tensor

get_original_weight() Tensor[source]

從標準化浮點權重格式取得原始權重。

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

將 float16 張量量化為 nf4 格式,取最接近的值,而不是向上捨入。

文件

存取 PyTorch 的完整開發者文件

檢視文件

教學

取得針對初學者和進階開發者的深入教學

檢視教學

資源

尋找開發資源並獲得您問題的解答

檢視資源