Skip to content
Merged
Changes from all commits
Commits
Show all changes
48 commits
Select commit Hold shift + click to select a range
f46445f
Update
vkuzo Apr 20, 2026
3c92c1a
Update
vkuzo Apr 20, 2026
b513b61
Update
vkuzo Apr 21, 2026
a669b9e
Update
vkuzo Apr 21, 2026
53bd8d0
Update
vkuzo Apr 21, 2026
4c86363
Update
vkuzo Apr 21, 2026
3cc91ed
Update
vkuzo Apr 21, 2026
9b7dc74
Update
vkuzo Apr 21, 2026
d69b32a
Update
vkuzo Apr 21, 2026
294c9cc
Update
vkuzo Apr 21, 2026
65fae62
Update
vkuzo Apr 21, 2026
5ee2ad2
Update
vkuzo Apr 22, 2026
2adda75
Update
vkuzo Apr 22, 2026
6463808
Update
vkuzo Apr 22, 2026
d121bff
Update
vkuzo Apr 22, 2026
80421c8
Update
vkuzo Apr 22, 2026
d302888
Update
vkuzo Apr 22, 2026
9631b76
Update
vkuzo Apr 22, 2026
5fe6574
Update
vkuzo Apr 22, 2026
5292f2f
Update
vkuzo Apr 22, 2026
f679216
Update
vkuzo Apr 22, 2026
68dc794
Update
vkuzo Apr 23, 2026
3ffc619
Update
vkuzo Apr 23, 2026
2f0a3cf
Update
vkuzo Apr 23, 2026
fad1467
Update
vkuzo Apr 23, 2026
f668c26
Update
vkuzo Apr 23, 2026
522de32
Update
vkuzo Apr 23, 2026
f635432
Update
vkuzo Apr 23, 2026
31bcb11
Update
vkuzo Apr 23, 2026
75542fa
Update
vkuzo Apr 23, 2026
be9dc1b
Update
vkuzo Apr 23, 2026
f14cde0
Update
vkuzo Apr 23, 2026
83283cf
Update
vkuzo Apr 23, 2026
ed9e39f
Update
vkuzo Apr 23, 2026
2386670
Update
vkuzo Apr 23, 2026
c1da849
Update
vkuzo Apr 23, 2026
cdcd2b3
Update
vkuzo Apr 23, 2026
196d439
Update
vkuzo Apr 23, 2026
b0697ac
Update
vkuzo Apr 23, 2026
620250d
Update
vkuzo Apr 23, 2026
19bc5c8
Update
vkuzo Apr 23, 2026
61493d9
Update
vkuzo Apr 23, 2026
7794548
Update
vkuzo Apr 23, 2026
8f1f410
Update
vkuzo Apr 23, 2026
b664d8a
Update
vkuzo Apr 23, 2026
f23cf38
Update
vkuzo Apr 23, 2026
6650b1d
Update
vkuzo Apr 23, 2026
8a21110
Update
vkuzo Apr 23, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
50 changes: 49 additions & 1 deletion scripts/prototype/test_nvfp4_moe.py
Original file line number Diff line number Diff line change
@@ -1,11 +1,16 @@
"""Minimal OLMoE inference example with optional NVFP4 quantization for expert weights."""

import gc
import inspect
import subprocess
import tempfile
from contextlib import nullcontext

import fire
import torch
from transformers import AutoModelForCausalLM, AutoTokenizer
from transformers.models.olmoe.modeling_olmoe import OlmoeExperts
from transformers.quantizers.quantizer_torchao import TorchAoHfQuantizer

from torchao.prototype.mx_formats.inference_workflow import (
NVFP4DynamicActivationNVFP4WeightConfig,
Expand All @@ -14,7 +19,7 @@
from torchao.quantization import FqnToConfig, quantize_


def main(recipe: str = "bf16"):
def main(recipe: str = "bf16", run_lm_eval: bool = False):
print(f"{recipe=}")
model_id = "allenai/OLMoE-1B-7B-0924"

Expand Down Expand Up @@ -66,6 +71,49 @@ def main(recipe: str = "bf16"):

print(tokenizer.decode(output[0], skip_special_tokens=True))

if run_lm_eval:
if recipe == "nvfp4":
source = inspect.getsource(TorchAoHfQuantizer.get_weight_conversions)
if "gate_up_proj" not in source:
raise RuntimeError(
"Your version of `transformers` does not support NVFP4 MoE serialization. "
"Please install a version that includes "
"https://github.com/huggingface/transformers/pull/45609"
)

with tempfile.TemporaryDirectory() as output_dir:
print(f"\nSaving model to {output_dir}...")

if recipe != "bf16":
from transformers import TorchAoConfig

torchao_config = TorchAoConfig(quant_type=config)
model.config.quantization_config = torchao_config
model.hf_quantizer = TorchAoHfQuantizer(torchao_config)

model.save_pretrained(output_dir, safe_serialization=False)
tokenizer.save_pretrained(output_dir)

del model
gc.collect()
torch.cuda.empty_cache()

lm_eval_cmd = [
"lm_eval",
"--model",
"hf",
"--model_args",
f"pretrained={output_dir}",
"--tasks",
"wikitext",
"--num_fewshot",
"0",
"--batch_size",
"16",
]
print(f"Running: {' '.join(lm_eval_cmd)}")
subprocess.run(lm_eval_cmd, check=True)


if __name__ == "__main__":
fire.Fire(main)
Loading