量化会话配置¶
SessionConfig¶
功能说明¶
量化会话配置类,用于配置量化相关的参数、校准数据以及运行设备。
类原型¶
class SessionConfig(BaseModel):
processor_cfg_map: Dict[str, BaseModel] = {}
calib_data: Optional[List[Any]] = None
device: str = 'cpu'
参数说明¶
| 参数名 | 输入/返回值 | 含义 | 使用限制 |
|---|---|---|---|
| processor_cfg_map | 输入 | 量化处理器配置映射图 | 必选。 数据类型:字典。默认为{},使用量化功能时,至少应配置一个量化处理器(如W8A8ProcessorConfig),不可单独配置保存处理器(SaveProcessorConfig)。 每个键、值对应一个量化处理器名称和量化处理器配置类,当前可选量化处理器名称: ['m3', 'm4', 'm6', 'w8a8', 'w8a8_dynamic', 'w8a8_timestep', 'fa3', 'save'],与可选量化处理器配置[M3ProcessorConfig, M4ProcessorConfig, M6ProcessorConfig, W8A8ProcessorConfig, W8A8DynamicProcessorConfig, W8A8TimeStepProcessorConfig, FA3ProcessorConfig, SaveProcessorConfig]一一对应,其中'fa3'需要搭配'w8a8_dynamic'一起使用。 |
| calib_data | 输入 | 异常值抑制和量化校准数据 | 可选。 数据类型:列表。默认值为None,为Data-Free场景,Label-Free场景必须输入。多模态生成模型量化场景中,需要提前dump校准数据并加载后传入作为calib_data。 |
| device | 输入 | 量化过程运行设备 | 可选。 数据类型:字符串。默认值为'cpu',可选值:['cpu', 'npu']。 |
调用示例¶
import torch
from ascend_utils.common.security.pytorch import safe_torch_load
from msmodelslim.quant.session.session import W8A8ProcessorConfig, W8A8QuantConfig, SaveProcessorConfig
from msmodelslim.quant.session.session import SessionConfig
session_config = SessionConfig(
processor_cfg_map={
"w8a8": W8A8ProcessorConfig(
cfg=W8A8QuantConfig(
act_method='minmax'
),
disable_names=[]
),
"save": SaveProcessorConfig(
output_path="./",
safetensors_name=None,
json_name=None,
save_type=['safe_tensor'],
part_file_size=None
)
},
calib_data=safe_torch_load("calib_data.pth"),
device="npu"
)
W8A8ProcessorConfig¶
功能说明¶
W8A8量化处理器配置类,用于配置W8A8量化处理器相关的参数。
类原型¶
class W8A8ProcessorConfig(BaseModel):
cfg: W8A8QuantConfig
disable_names: list
参数说明¶
| 参数名 | 输入/返回值 | 含义 | 使用限制 |
|---|---|---|---|
| cfg | 输入 | W8A8量化配置 | 必选。 数据类型:W8A8QuantConfig,W8A8量化配置类。 |
| disable_names | 输入 | 回退层 | 必选。 数据类型:列表。列表中每个元素为回退层名称。 |
调用示例¶
from msmodelslim.quant.session.session import W8A8ProcessorConfig, W8A8QuantConfig
w8a8_processor_cfg = W8A8ProcessorConfig(
cfg=W8A8QuantConfig(
act_method='minmax'
),
disable_names=[]
)
W8A8QuantConfig¶
功能说明¶
W8A8量化配置类,用于配置W8A8量化相关的参数。
类原型¶
class W8A8QuantConfig(BaseModel):
act_method: str = 'minmax'
参数说明¶
| 参数名 | 输入/返回值 | 含义 | 使用限制 |
|---|---|---|---|
| act_method | 输入 | 激活值量化方法 | 可选。 数据类型:字符串。可选值: ['minmax', 'histogram', 'mix'],分别对应MinMax激活量化、Histogram直方图激活量化、MinMax与Histogram混合的激活量化。 |
调用示例¶
from msmodelslim.quant.session.session import W8A8QuantConfig
w8a8_quant_cfg = W8A8QuantConfig(
act_method='minmax'
)
W8A8DynamicProcessorConfig¶
功能说明¶
W8A8动态量化处理器配置类,用于配置W8A8动态量化处理器相关的参数。
类原型¶
class W8A8DynamicProcessorConfig(BaseModel):
cfg: W8A8DynamicQuantConfig
disable_names: list
参数说明¶
| 参数名 | 输入/返回值 | 含义 | 使用限制 |
|---|---|---|---|
| cfg | 输入 | W8A8动态量化配置 | 必选。 数据类型:W8A8DynamicQuantConfig,W8A8动态量化配置类。 |
| disable_names | 输入 | 回退层 | 必选。 数据类型:列表。列表中每个元素为回退层名称。 |
调用示例¶
from msmodelslim.quant.session.session import W8A8DynamicProcessorConfig, W8A8DynamicQuantConfig
w8a8dynamic_processor_cfg = W8A8DynamicProcessorConfig(
cfg=W8A8DynamicQuantConfig(
act_method='minmax'
),
disable_names=[]
)
W8A8DynamicQuantConfig¶
功能说明¶
W8A8动态量化配置类,用于配置W8A8动态量化相关的参数。
类原型¶
class W8A8DynamicQuantConfig(BaseModel):
act_method: str = 'minmax'
参数说明¶
| 参数名 | 输入/返回值 | 含义 | 使用限制 |
|---|---|---|---|
| act_method | 输入 | 激活值量化方法 | 可选。 数据类型:字符串。可选值: ['minmax', 'histogram', 'mix'],分别对应MinMax激活量化、Histogram直方图激活量化、MinMax与Histogram混合的激活量化。 |
调用示例¶
from msmodelslim.quant.session.session import W8A8DynamicQuantConfig
w8a8dynamic_quant_cfg = W8A8DynamicQuantConfig(
act_method='minmax'
)
W8A8TimeStepProcessorConfig¶
功能说明¶
W8A8时间步量化处理器配置类,用于配置W8A8时间步量化处理器相关的参数。
类原型¶
class W8A8TimeStepProcessorConfig(BaseModel):
cfg: W8A8TimeStepQuantConfig
disable_names: list
timestep_sep: int
参数说明¶
| 参数名 | 输入/返回值 | 含义 | 使用限制 |
|---|---|---|---|
| cfg | 输入 | W8A8时间步量化配置 | 必选。 数据类型:W8A8TimeStepQuantConfig,W8A8时间步量化配置类。 |
| disable_names | 输入 | 回退层 | 必选。 数据类型:列表。列表中每个元素为回退层名称。 |
| timestep_sep | 输入 | 时间步量化的动静态量化分割阈值 | 必选。 数据类型:整数。通常设置为多模态生成模型视图生成中总推理时间步的一半。 |
调用示例¶
from msmodelslim.quant.session.session import W8A8TimeStepProcessorConfig, W8A8TimeStepQuantConfig
w8a8timestep_processor_cfg = W8A8TimeStepProcessorConfig(
cfg=W8A8TimeStepQuantConfig(
act_method='minmax'
),
disable_names=[],
timestep_sep=25
)
W8A8TimeStepQuantConfig¶
功能说明¶
W8A8时间步量化配置类,用于配置W8A8时间步量化相关的参数。
类原型¶
class W8A8TimeStepQuantConfig(BaseModel):
act_method: str = 'minmax'
参数说明¶
| 参数名 | 输入/返回值 | 含义 | 使用限制 |
|---|---|---|---|
| act_method | 输入 | 激活值量化方法 | 可选。 数据类型:字符串。可选值: ['minmax', 'histogram', 'mix'],分别对应MinMax激活量化、Histogram直方图激活量化、MinMax与Histogram混合的激活量化。 |
调用示例¶
from msmodelslim.quant.session.session import W8A8TimeStepQuantConfig
w8a8timestep_quant_cfg = W8A8TimeStepQuantConfig(
act_method='minmax'
)
FA3ProcessorConfig¶
功能说明¶
FA3量化处理器配置类,用于配置FA3量化处理器相关的参数。
类原型¶
class FA3ProcessorConfig(BaseModel):
pass
调用示例¶
from msmodelslim.quant.session.session import FA3ProcessorConfig
fa3_processor_cfg = FA3ProcessorConfig()
SaveProcessorConfig¶
功能说明¶
量化保存处理器配置类,用于配置量化保存处理器相关的参数。
类原型¶
class SaveProcessorConfig(BaseModel):
output_path: str
safetensors_name: Optional[str] = None
json_name: Optional[str] = None
save_type: list = ['safe_tensor']
part_file_size: Optional[int] = None
参数说明¶
| 参数名 | 输入/返回值 | 含义 | 使用限制 |
|---|---|---|---|
| output_path | 输入 | 量化保存路径 | 必选。 数据类型:字符串。无默认值。 |
| safetensors_name | 输入 | 量化权重safetensors命名 | 可选。 数据类型:字符串。默认值为None,根据量化类型生成,例如quant_model_weight_w8a8.safetensors。 |
| json_name | 输入 | 量化权重描述文件json命名 | 可选。 数据类型:字符串。默认值None,根据量化类型生成,例如quant_model_description_w8a8.json。 |
| save_type | 输入 | 量化权重保存格式 | 可选。 数据类型:列表,元素为字符串。默认值['safe_tensor'],多模态生成模型量化场景下默认采用safetensors格式。 |
| part_file_size | 输入 | 保存成safetensors权重文件时,进行分片保存时,每个部分的大小,单位为GB | 可选。 数据类型:整型。默认值为None,不启用分片保存的功能。否则将会按照用户设置值进行分片,实际保存的权重可能略大于设置的值。 |
调用示例¶
from msmodelslim.quant.session.session import SaveProcessorConfig
save_processor_cfg = SaveProcessorConfig(
output_path="./",
safetensors_name=None,
json_name=None,
save_type=['safe_tensor'],
part_file_size=None
)
M3ProcessorConfig¶
功能说明¶
异常值抑制M3算法处理器配置类,用于配置M3异常值抑制处理器相关的参数。
类原型¶
class M3ProcessorConfig(BaseModel):
pass
调用示例¶
from msmodelslim.quant.session.session import M3ProcessorConfig
m3_processor_cfg = M3ProcessorConfig()
M4ProcessorConfig¶
功能说明¶
异常值抑制M4算法处理器配置类,用于配置M4异常值抑制处理器相关的参数。
类原型¶
class M4ProcessorConfig(BaseModel):
pass
调用示例¶
from msmodelslim.quant.session.session import M4ProcessorConfig
m4_processor_cfg = M4ProcessorConfig()
M6Config¶
功能说明¶
异常值抑制M6算法参数配置类,用于配置M6异常值抑制相关的参数。
类原型¶
class M6Config(BaseModel):
alpha: float = None
beta: float = None
参数说明¶
| 参数名 | 输入/返回值 | 含义 | 使用限制 |
|---|---|---|---|
| alpha | 输入 | 控制算法的平滑程度 | 可选。 数据类型:float。取值范围为 [0, 1],默认值 None。如果 alpha 和 beta 均指定为具体数值,则直接使用这些值;如果任一值未传入,算法将自动进行寻优以计算最优的 alpha 和 beta 值,用于异常值抑制。 |
| beta | 输入 | 控制算法的平滑程度 | 可选。 数据类型:float。取值范围为 [0, 1],默认值 None。如果 alpha 和 beta 均指定为具体数值,则直接使用这些值;如果任一值未传入,算法将自动进行寻优以计算最优的 alpha 和 beta 值,用于异常值抑制。 |
调用示例¶
from msmodelslim.quant.session.session import M6Config
m6_cfg = M6Config(alpha=0.8, beta=0.2)
M6ProcessorConfig¶
功能说明¶
异常值抑制M6算法处理器配置类,用于配置M6量化处理器相关的参数。
类原型¶
class M6ProcessorConfig(BaseModel):
cfg: M6Config
参数说明¶
| 参数名 | 输入/返回值 | 含义 | 使用限制 |
|---|---|---|---|
| cfg | 输入 | M6异常值抑制配置 | 必选。 数据类型:M6Config,M6异常值抑制配置类。 |
调用示例¶
from msmodelslim.quant.session.session import M6ProcessorConfig, M6Config
m6_processor_cfg = M6ProcessorConfig(
cfg=M6Config(
alpha=0.8,
beta=0.2
)
)