Fase 5: 21_quantize_nvfp4.py - compat shim para bug de import en llmcompressor 0.12.0
llmcompressor 0.12.0 (ultima version en PyPI) importa incondicionalmente GraniteMoeParallelExperts al armar su registro interno de arquitecturas MoE linearizables, incluso para modelos que no son GraniteMoe. transformers 5.14.1 renombro esa clase a GraniteMoeExperts, lo que rompia oneshot() para cualquier modelo (incluido este Qwen3.5 MoE, que ni siquiera esta en ese registro). Alias minimo antes de importar llmcompressor para que el import no explote; nunca se usa en la practica ya que Qwen3.5 MoE no matchea esa entrada del registro.
This commit is contained in:
@@ -49,9 +49,21 @@ from datasets import Dataset
|
||||
from safetensors import safe_open
|
||||
from transformers import AutoProcessor, Qwen3_5MoeForConditionalGeneration
|
||||
|
||||
from compressed_tensors.utils import save_mtp_tensors_to_checkpoint
|
||||
from llmcompressor import oneshot
|
||||
from llmcompressor.modifiers.quantization import QuantizationModifier
|
||||
# Compat shim: llmcompressor 0.12.0 (ultima version en PyPI) importa incondicionalmente
|
||||
# GraniteMoeParallelExperts al armar su registro de arquitecturas MoE "linearizables"
|
||||
# (llmcompressor/modeling/moe/granitemoe.py), incluso para modelos que no son GraniteMoe
|
||||
# (como este Qwen3.5 MoE). transformers 5.14.1 renombro esa clase a GraniteMoeExperts,
|
||||
# rompiendo ese import y abortando oneshot() para CUALQUIER modelo. Como Qwen3.5 MoE no
|
||||
# esta en ese registro (solo granitemoe/llama4), el alias nunca se usa realmente -- solo
|
||||
# hace falta que el nombre exista para que el import no explote.
|
||||
import transformers.models.granitemoe.modeling_granitemoe as _granitemoe_mod # noqa: E402
|
||||
|
||||
if not hasattr(_granitemoe_mod, "GraniteMoeParallelExperts"):
|
||||
_granitemoe_mod.GraniteMoeParallelExperts = _granitemoe_mod.GraniteMoeExperts
|
||||
|
||||
from compressed_tensors.utils import save_mtp_tensors_to_checkpoint # noqa: E402
|
||||
from llmcompressor import oneshot # noqa: E402
|
||||
from llmcompressor.modifiers.quantization import QuantizationModifier # noqa: E402
|
||||
|
||||
REPO_ROOT = Path(__file__).resolve().parent.parent
|
||||
MODEL_PATH = Path(os.environ.get("MODEL_PATH", "/workspace/ft-models/Qwen3.6-35B-A3B-mcp-bf16"))
|
||||
|
||||
Reference in New Issue
Block a user