mindspore_gs.ptq.BaseQuantForCausalLM

class mindspore_gs.ptq.BaseQuantForCausalLM[源代码]

因果语言模型量化基类,定义了量化模型的标准接口。

该基类为所有量化因果语言模型实现定义了标准接口。它提供了所有派生类必须实现的基本结构和必需方法。

该类实现了一个注册机制,允许不同的模型框架注册它们的实现。这使得AutoQuantForCausalLM能够提供自动模型检测和选择功能。

样例:

>>> from mindspore_gs.ptq.models.base_model import BaseQuantForCausalLM
>>>
>>> # A custom model implementation
>>> class MyCustomQuantModel(BaseQuantForCausalLM):
>>>     pass
calibrate(ptq_config, layers_policy, datasets, **kwargs)[源代码]

模型校准和量化。

这是一个抽象方法,必须由派生类实现。它应该使用校准数据集处理模型校准过程,并根据提供的配置应用量化。

参数:
  • ptq_config (PTQConfig) - 训练后量化的配置。

  • layers_policy (dict) - 不同层量化策略的策略。

  • datasets (Dataset) - 用于量化的校准数据集。

  • kwargs (dict) - 其他关键字参数。

异常:
  • NotImplementedError - 子类必须实现此方法。

fake_quant(ptq_config, layers_policy, quant_safetensors_path='')[源代码]

对模型应用伪量化。

该方法对模型应用伪量化,这对于验证量化效果而不实际转换为整数操作非常有用。

参数:
  • ptq_config (PTQConfig) - 训练后量化的配置。

  • layers_policy (dict) - 不同层量化策略的策略。

  • quant_safetensors_path (str, 可选) - 量化safetensors的路径。默认为 ""

异常:
  • NotImplementedError - 子类必须实现此方法。

forward(input_ids, max_new_tokens=1)[源代码]

模型前向推理。

这是一个抽象方法,必须由派生类实现。它应该处理模型推理的前向传递逻辑。

参数:
  • input_ids (Tensor) - 模型的输入token ID。

  • max_new_tokens (int, 可选) - 最大生成token数,默认为 1

返回:

前向传递结果。

异常:
  • NotImplementedError - 子类必须实现此方法。

classmethod from_pretrained(**kwargs)[源代码]

从预训练模型创建量化实例。

这是一个抽象方法,必须由派生类实现。它应该处理加载预训练模型权重和配置。

参数:
  • kwargs (dict) - 创建模型所需的任意关键字参数。

返回:

BaseQuantForCausalLM - 量化模型实例。

异常:
  • NotImplementedError - 子类必须实现此方法。

static get_model_hub_registry()[源代码]

获取已注册的模型框架注册表。

返回:

dict[str, type] - 字典,将模型框架名称映射到它们各自的类实现。

static reg_model_hub(alias=None)[源代码]

注册模型框架装饰器。

该装饰器将类注册为模型框架实现,使其可用于自动检测和选择。

参数:
  • alias (str, 可选) - 模型框架别名,如果未提供,将使用类名。默认为 None

返回:

function - 注册类的装饰器函数。

样例:

>>> @BaseQuantForCausalLM.reg_model_hub("qwen3")
>>> class QWen3QuantModel(BaseQuantForCausalLM):
>>>     pass
save_quantized(save_path)[源代码]

保存量化模型到磁盘。

这是一个抽象方法,必须由派生类实现。它应该处理保存量化模型权重和配置。

参数:
  • save_path (str) - 应保存量化模型的路径。

异常:
  • NotImplementedError - 子类必须实现此方法。