get_quantizer接口
接口功能
返回MindIE Turbo中对应的量化实现。
参数说明
参数名称 |
是否必选 |
类型 |
默认值 |
描述 |
安全声明 |
---|---|---|---|---|---|
quant_description |
是 |
Dict[str, Any] |
- |
模型的模块名称和量化方法构成的字典,用于在MindIE Turbo中选择对应量化实现。该字典当前由msModelSlim在权重量化过程中生成,即模型权重路径下config.json中新增的“quantization_config”字段。 |
推理强依赖数据的合法性,需由用户保证。 |
prefix |
是 |
str |
- |
模块名称前缀。例如: "model.layers.0.self_attn.o_proj" |
|
packed_modules_mapping |
否 |
Dict[str, Any] |
None |
推理时实际堆叠模块到权重中原始模块的映射关系,该部分通常与linear相关。 例如: { "qkv_proj": ["q_proj", "k_proj", "v_proj"], "gate_up_proj": ["gate_proj", "up_proj"] } |
返回值说明
类型 |
描述 |
安全声明 |
---|---|---|
MindIETurboQuantizer |
MindIETurbo中具体量化实现类,继承自“MindIETurboQuantizer”。如:W8A8Quantizer。 |
推理强依赖数据的合法性,需由用户保证。 |
使用样例
1 2 3 4 5 6 7 8 9 10 11 12 13 | quant_description = { "model_quant_type": "W8A8", "model.embed_tokens.weight": "FLOAT", "model.layers.0.self_attn.o_proj.weight": "W8A8", "model.layers.0.self_attn.o_proj.input_scale": "W8A8", "model.layers.0.self_attn.o_proj.input_offset": "W8A8", "model.layers.0.self_attn.o_proj.quant_bias": "W8A8", "model.layers.0.self_attn.o_proj.deq_scale": "W8A8" } prefix = "model.layers.0.self_attn.o_proj" quantizer = MindIETurboQuantizer.get_quantizer( quant_description, prefix ) |