Summary
The WinMLQuantizationConfig.mode field currently accepts "qdq" as a legacy value, which is silently mapped to "static" in from_dict(). This creates confusion since "qdq" and "static" mean the same thing.
A follow-up PR should:
- Update all recipe JSON files (~50+ in
examples/recipes/) from "mode": "qdq" → "mode": "static"
- Update documentation (
docs/reference/index.md, docs/concepts/config-and-build.md) to remove "qdq" from the schema
- Update unit tests (
test_config.py, test_build.py, test_onnx.py, test_hf.py) to use "static" instead of "qdq"
- Remove the backward-compat shim in
src/winml/modelkit/quant/config.py (if raw_mode == "qdq": raw_mode = "static")
- Update the Literal type from
Literal["static", "dynamic", "rtn", "fp16"] — confirm no references to "qdq" remain
Notes
Summary
The
WinMLQuantizationConfig.modefield currently accepts"qdq"as a legacy value, which is silently mapped to"static"infrom_dict(). This creates confusion since"qdq"and"static"mean the same thing.A follow-up PR should:
examples/recipes/) from"mode": "qdq"→"mode": "static"docs/reference/index.md,docs/concepts/config-and-build.md) to remove"qdq"from the schematest_config.py,test_build.py,test_onnx.py,test_hf.py) to use"static"instead of"qdq"src/winml/modelkit/quant/config.py(if raw_mode == "qdq": raw_mode = "static")Literal["static", "dynamic", "rtn", "fp16"]— confirm no references to"qdq"remainNotes
"qdq"value was the original default before the mode field was unified in feat: precision-driven quantization (FP16, RTN int4, static QDQ) via --precision flag #872winml configgeneration still emits"qdq"anywhere