Skip to content

Commit 4995535

Browse files
committed
format, fix import
1 parent fb9e3ce commit 4995535

File tree

3 files changed

+20
-6
lines changed

3 files changed

+20
-6
lines changed

examples/quantization_w8a8_fp8/qwen3_vl_moe_fp8_example.py

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,3 @@
1-
21
from transformers import AutoProcessor, Qwen3VLMoeForConditionalGeneration
32

43
from llmcompressor import oneshot
@@ -28,7 +27,7 @@
2827
"re:.*lm_head",
2928
"re:visual.*",
3029
"re:model.visual.*",
31-
're:.*mlp.gate$',
30+
"re:.*mlp.gate$",
3231
],
3332
)
3433

@@ -38,4 +37,4 @@
3837
# Save to disk in compressed-tensors format.
3938
SAVE_DIR = MODEL_ID.rstrip("/").split("/")[-1] + "-FP8-DYNAMIC"
4039
model.save_pretrained(SAVE_DIR)
41-
processor.save_pretrained(SAVE_DIR)
40+
processor.save_pretrained(SAVE_DIR)

src/llmcompressor/modeling/prepare.py

Lines changed: 14 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,21 @@
11
import tqdm
22
from compressed_tensors.utils import replace_module
3+
from loguru import logger
34
from transformers import PreTrainedModel
45

56
from llmcompressor.modeling.deepseek_v3 import replace as replace_deepseekv3
67
from llmcompressor.modeling.llama4 import replace as replace_llama4
78
from llmcompressor.modeling.qwen3_moe import replace as replace_Qwen3MoE
8-
from llmcompressor.modeling.qwen3_vl_moe import replace as replace_Qwen3VLMoE
9+
10+
try:
11+
from llmcompressor.modeling.qwen3_vl_moe import replace as replace_Qwen3VLMoE
12+
except ImportError:
13+
logger.warning(
14+
"Qwen3-VL-MoE support is not available. "
15+
"Please ensure that you have the correct version of transformers installed."
16+
)
17+
replace_Qwen3VLMoE = None
18+
919
from llmcompressor.utils.helpers import patch_attr
1020

1121
__all__ = ["replace_modules_for_calibration"]
@@ -14,9 +24,11 @@
1424
replacements = {
1525
"DeepseekV3MoE": replace_deepseekv3,
1626
"Llama4TextMoe": replace_llama4,
17-
"Qwen3VLMoeTextSparseMoeBlock": replace_Qwen3VLMoE,
1827
}
1928

29+
if replace_Qwen3VLMoE is not None:
30+
replacements["Qwen3VLMoeTextSparseMoeBlock"] = replace_Qwen3VLMoE
31+
2032

2133
def replace_modules_for_calibration(
2234
model: PreTrainedModel,

src/llmcompressor/modeling/qwen3_vl_moe.py

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,11 +14,14 @@ def __init__(self, config, original):
1414
self.gate = wrap_gate(original.gate)
1515
self.experts = SequentialQwen3VLMoeTextExperts(config, original.experts)
1616

17+
1718
class SequentialQwen3VLMoeTextExperts(torch.nn.ModuleList):
1819
def __init__(self, config, original):
1920
self.num_experts = original.gate_up_proj.shape[0]
2021
with skip_weights_initialize():
21-
super().__init__([Qwen3VLMoeTextMLP(config) for _ in range(self.num_experts)])
22+
super().__init__(
23+
[Qwen3VLMoeTextMLP(config) for _ in range(self.num_experts)]
24+
)
2225

2326
intermediate_size = original.down_proj.shape[1]
2427

0 commit comments

Comments
 (0)