[Model] Support Nemotron 3 Super NVFP4 (#20407)
This commit is contained in:
@@ -793,6 +793,11 @@ class ModelConfig:
|
||||
quant_algo = json_quant_configs.get("quant_algo", None)
|
||||
|
||||
if quant_algo == "MIXED_PRECISION":
|
||||
architectures = getattr(self.hf_config, "architectures", []) or []
|
||||
if getattr(self.hf_config, "model_type", None) == "nemotron_h" or any(
|
||||
arch.startswith("NemotronH") for arch in architectures
|
||||
):
|
||||
return {"quant_method": "modelopt_mixed", "quant_algo": quant_algo}
|
||||
return {"quant_method": "w4afp8", "quant_algo": quant_algo}
|
||||
elif quant_algo and ("FP4" in quant_algo or "NVFP4" in quant_algo):
|
||||
return {"quant_method": "modelopt_fp4", "quant_algo": quant_algo}
|
||||
@@ -842,6 +847,10 @@ class ModelConfig:
|
||||
return "fp8"
|
||||
elif self.quantization == "modelopt_fp4":
|
||||
return "nvfp4"
|
||||
elif self.quantization == "modelopt_mixed":
|
||||
raise ValueError(
|
||||
"modelopt_mixed is only supported for pre-quantized checkpoints."
|
||||
)
|
||||
elif self.quantization == "modelopt":
|
||||
# Auto-detect from model config
|
||||
quant_cfg = self._parse_quant_hf_config()
|
||||
@@ -872,6 +881,7 @@ class ModelConfig:
|
||||
"modelopt",
|
||||
"modelopt_fp8",
|
||||
"modelopt_fp4",
|
||||
"modelopt_mixed",
|
||||
]
|
||||
modelopt_quantization_specified = (
|
||||
self.quantization in _MODELOPT_QUANTIZATION_METHODS
|
||||
@@ -913,6 +923,7 @@ class ModelConfig:
|
||||
"marlin",
|
||||
"modelopt_fp8",
|
||||
"modelopt_fp4",
|
||||
"modelopt_mixed",
|
||||
"gptq_marlin_24",
|
||||
"gptq_marlin",
|
||||
"awq_marlin",
|
||||
@@ -932,6 +943,7 @@ class ModelConfig:
|
||||
compatible_quantization_methods = {
|
||||
"modelopt_fp8": ["modelopt"],
|
||||
"modelopt_fp4": ["modelopt"],
|
||||
"modelopt_mixed": ["modelopt"],
|
||||
"petit_nvfp4": ["modelopt"],
|
||||
"w8a8_int8": ["compressed-tensors", "compressed_tensors"],
|
||||
"w8a8_fp8": ["compressed-tensors", "compressed_tensors"],
|
||||
|
||||
Reference in New Issue
Block a user