Skip to content

docs: add AutoQuantize mixed-precision search blog#1979

Draft
realAsma wants to merge 4 commits into
chenhany/omniml-5476from
asma/autoquantize-blog
Draft

docs: add AutoQuantize mixed-precision search blog#1979
realAsma wants to merge 4 commits into
chenhany/omniml-5476from
asma/autoquantize-blog

Conversation

@realAsma

Copy link
Copy Markdown
Contributor

What does this PR do?

Type of change: documentation.

Adds the AutoQuantize technical blog to the announcements system introduced by #1971.

  • Preserves the source derivation, deployment-aware search details, results, usage example, and references in native Sphinx RST.
  • Adds the MMLU accuracy-versus-effective-bits figure as a losslessly optimized asset.
  • Adds a newest-first landing-page card and AutoQuantize filter.
  • Credits the authors in this order: Asma Beevi K T, Wei Ming, Frida Hou, Juhi Mittal, Jenny Chen, Ajinkya Rasane, Meng Xin.

This is a stacked PR targeting the branch for #1971. After #1971 merges, this PR can be retargeted to main.

Usage

N/A; documentation only.

Testing

  • Focused pre-commit hooks on all three changed files.
  • git diff --check.
  • Focused Sphinx HTML build for the announcement and landing page.
  • Rendered-output checks for equations, table, Python code block, image and alt text, references, external links, card, filter, and exact author order.
  • Full fail-on-warning build was attempted; remaining warnings were unrelated optional autodoc environment warnings.

Before your PR is "Ready for review"

  • Is this change backward compatible?: ✅
  • If you copied code from any other sources or added a new PIP dependency, did you follow guidance in CONTRIBUTING.md: N/A
  • Did you write any new necessary tests?: N/A
  • Did you update Changelog?: N/A
  • Did you get Claude approval on this PR?: N/A

Additional Information

Depends on #1971.

Signed-off-by: realAsma <akuriparambi@nvidia.com>
@copy-pr-bot

copy-pr-bot Bot commented Jul 15, 2026

Copy link
Copy Markdown

Auto-sync is disabled for draft pull requests in this repository. Workflows must be run manually.

Contributors can view more details about this message here.

@coderabbitai

coderabbitai Bot commented Jul 15, 2026

Copy link
Copy Markdown
Contributor

Important

Review skipped

Draft detected.

Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Enterprise

Run ID: 3719afbb-bab5-4613-829a-ee4855b8a30c

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch asma/autoquantize-blog

Comment @coderabbitai help to get the list of available commands.

Signed-off-by: realAsma <akuriparambi@nvidia.com>
AutoQuantize gradient is fast!
==============================

**Speed.** The direct way to measure sensitivity — quantize one layer at a time and measure a downstream evaluation such as loss, accuracy — runs the whole model per measurement. The AutoQuantize gradient scores all layer × format combinations in one forward + backward sweep. On Qwen3.6-35B-A3B, with everything else identical, that's a ~51× difference (Table 1).

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Should we add a brief line explaining what the KL divergence sensitivity score represents?

Since we already define the AutoQuantize Gradient-based sensitivity earlier, this would give readers the full context for the comparison.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I added this, could you take a look at the latest?

Signed-off-by: realAsma <akuriparambi@nvidia.com>
Comment thread docs/source/announcements/autoquantize.rst Outdated

A mixed-precision assignment is only useful if the runtime can execute it. So AutoQuantize performs a deployment-aware search — runtime coupling constraints are folded into the search rather than patched up afterwards, meaning the searched model is deployable out of the box in vLLM, SGLang, TensorRT-LLM, and similar inference runtimes. Any restriction of the form "this group of operators takes one joint format decision" becomes a merged knapsack item with aggregated sensitivity and cost.

**1) Joint quantization for fused linear layers.** Inference runtimes often fuse linear operators, which imposes a shared quantization format across the fused group. This constraint is applied within each layer: that layer's Q, K, and V projections are fused and must share one format, so the fused QKV projection becomes a single decision variable. The naive score would just sum the three per-projection sensitivities — but that treats their Hessians as independent, when the three outputs actually interact through the attention operation. Instead, AutoQuantize quantizes all three projections jointly with format :math:`f` and measures the sensitivity at the attention output, so the metric naturally captures how the projections' quantization errors combine through attention:

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks like there's no score rule to redirect QKV to an attention output, we only have that for MoEs: https://github.com/NVIDIA/Model-Optimizer/blob/main/modelopt/torch/quantization/algorithms.py#L1027

In my understanding the QKV will actually get a summed score

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yes, @meenchen had recently implemented that and found that it was better. So I am keeping that here instead of making it confusing.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I see, is it this PR:#1878? We should consider merging it if it works better :)

Comment thread docs/source/announcements/autoquantize.rst Outdated
Signed-off-by: realAsma <akuriparambi@nvidia.com>
Results
*******

.. image:: assets/autoquantize-qwen3-mmlu-effective-bits.png

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

BB: Can you get BF16 baselines for the models in the figure, regenerate this figure with BF16 baseline (plotted as a horizontal line) and send the figure to me in slack? Do not upload it here before my approval.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🤖 Bot comment.

🐝

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🤖 Bot comment.

I’ve queued the BF16 baseline runs and a regenerated figure with horizontal BF16 reference lines. I’ll send the candidate privately in Slack and will not upload it to this PR before your approval.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants