Add VLM components to _default_disabled_quantizer_cfg?
Los mantenedores suelen responder en 2 días
@Edwardf0t1 ya está trabajando en esto.
Desde el 7/5/2026.
Evaluación
Este issue todavía no se ha evaluado.
Descripción
Hello, I'd like to propose a small change to how multimodal models are handled during quantization. Please correct me if my understanding is incorrect.
Currently, when quantizing a multimodal model with any recipe, ModelOpt attaches observers to the vision tower and multimodal projector alongside the language model. For models like moonshotai/Kimi-K2.6, this breaks at export with ValueError: tensor column shape must be divisible by the given group_size 32 but got 4304 (raised by compressed_tensors/quantization/lifecycle/forward_helpers.py:138 from inside modelopt.export_hf_checkpoint)". The failure happens after calibration completes, so the issue only happens after the run.
Every published VLM NVFP4 checkpoint I could find like nvidia/Kimi-K2.5-NVFP4, wafer-ai/Kimi-K2.6-NVFP4, RedHatAI/Kimi-K2.6-NVFP4 keeps vision and projector layers in BF16. I think intuitively this makes sense because vision encoders are tiny on large VLMs (typically <1% of params), so quantizing them yields negligible memory savings and quantization noise at the visual feature stage compounds through the LLM layers.
I think we can append ~4 patterns to _default_disabled_quantizer_cfg, this is the same universal-disable list that already covers lm_head, MoE routers, BatchNorm, and Mamba conv1d. This makes sense to me intuitively because looking at the code, the convention there seems to be "always wrong to quantize regardless of recipe," and I think VLM vision/projector components appear to meet that bar?
I had to fix these issues to get a working Kimi2.6 quant that serves inference via SGLang. Happy to provide details if needed and make a PR!
- Lenguaje dominante
- Python
- Estrellas
- 5.3k
- Forks
- 745
- Merge medio
- 3 d 17 h
- PR fusionados (30 d)
- 177
Preparar el entorno
- Sin Dockerfile ni archivo de Docker Compose
- Tiene una plantilla de pull request
- Leer la guía de contribución
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de NVIDIA/Model-Optimizer
-
[Bug] modelopt-mcp: all launcher subprocesses hang when the server runs as a stdio MCP server — missing stdin=DEVNULLPosiblemente ocupada @ChenhanYu la tomó hace 15 días. Abierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 88/100
NVIDIA/Model-Optimizer#2551 · 1 comentario · 1 asignado ·
Los mantenedores suelen responder en 2 días
-
Puzzletron Progress 6/8 (calculating one block scores) takes 10 to 20 times more than in tutorialQuizá libre de nuevo @tejasng053 la tomó hace 21 días y no hay ningún pull request abierto. Abiertobug
Dificultad 2/5 1-3 horas Aptitud para principiantes 68/100
NVIDIA/Model-Optimizer#1667 ·
Los mantenedores suelen responder en 2 días
-
feature request
Dificultad 5/5 Más de una semana Aptitud para principiantes 25/100
NVIDIA/Model-Optimizer#2865 ·
Los mantenedores suelen responder en 2 días
-
Dificultad 4/5 3-5 días Aptitud para principiantes 54/100
NVIDIA/Model-Optimizer#2857 ·
Los mantenedores suelen responder en 2 días
-
fp4_kernel_hopper.py uses tl.make_block_ptr, which is removed in Triton main (breaks NVFP4 fake quant)Posiblemente ocupada @kinjalpatel27 la tomó hace 2 días. Abierto
Dificultad 3/5 Medio día Aptitud para principiantes 72/100
NVIDIA/Model-Optimizer#2810 · 1 asignado ·
Los mantenedores suelen responder en 2 días
Todos los issues de NVIDIA/Model-Optimizer
Issues similares
-
bug needs-triage priority:medium
Dificultad 2/5 1-3 horas Aptitud para principiantes 86/100
yeongseon/azure-functions-logging-python#583 ·
Los mantenedores suelen responder en 1 día
-
documentation needs-triage priority:medium
Dificultad 2/5 1-3 horas Aptitud para principiantes 85/100
yeongseon/azure-functions-validation-python#546 ·
Los mantenedores suelen responder en 1 día
-
PHP workflow streaming requests buffer the full SSE responsePosiblemente ocupada @Winoren la tomó hoy. Abiertoreview: medium
Dificultad 2/5 1-3 horas Aptitud para principiantes 84/100
langgenius/dify#44270 · 1 comentario · 1 reacción ·
Los mantenedores suelen responder en 1 día
-
P4: low
Dificultad 2/5 1-3 horas Aptitud para principiantes 82/100
jeffknupp/association#523 ·
-
bug help wanted
Dificultad 2/5 1-3 horas Aptitud para principiantes 65/100
DarkStarSystems/pcons#229 ·
Los mantenedores suelen responder en 1 día