Skip to main content
Pre-release

This release is a pre-release and may not be stable for production use.

LLM Compressor

docs PyPI slack huggingface

English · 简体中文

llmcompressor is the fast, efficient, and easy-to-use library for optimizing models for deployment with vLLM, including:

  • Comprehensive set of quantization algorithms and transforms for weight, activation, KV cache, and attention quantization
  • Seamless integration with Hugging Face models and repositories
  • Models saved in the compressed-tensors format, compatible with vLLM
  • DDP and disk offloading support for compressing very large models with hardware efficiency

✨ Read the announcement blog here! ✨

LLM Compressor Flow


💬 Join us on the vLLM Community Slack and share your questions, thoughts, or ideas in:

  • #sig-quantization
  • #llm-compressor

🚀 What's New!

Big updates have landed in LLM Compressor! To get a more in-depth look, check out the LLM Compressor overview.

Since the v0.14.0 release, a number of meaningful improvements have landed:

  • HIGGS mixed-precision quantization: HIGGS collects layer-wise MSE sensitivity data and formulates an integer linear program to select an optimal mixed-precision configuration for a target average bitwidth. The resulting config can be passed to oneshot or model_free_ptq.
  • Block-wise QAD: A new QADModifier runs quantization-aware distillation after a weight-quantization modifier in the same recipe. It caches calibration inputs and the unquantized subgraph output as the teacher, then trains the quantized weights through compressed-tensors fake quantization, without loading a separate teacher model.
  • Layerwise compression and sequential offloading: The sequential pipeline can now decompress and compress one layer at a time, avoiding upfront whole-model conversion for large checkpoints. Onload/offload is managed manually with optional CPU staging and pinned memory.
  • REAP reports and non-uniform pruning: REAP now writes per-expert saliency reports, supports calibration-only report generation with sparsity=0.0, and accepts per-layer non-uniform expert sparsity. n_routed_experts is now recorded in config names, and GPT-OSS is skipped.
  • MoNe expert pruning: MoNe collapses low-saliency experts into constant "novice" vectors instead of removing them, keeping the router at full width while reducing expert compute.
  • Faster observers for E8M0 formats: The MSE and iMatrix observers gained exponential grid search and magnitude normalization for E8M0 scales, and the iMatrix observer now shares the MSE Triton kernel, with roughly 1.2-3.4x end-to-end speedups on tested models.
  • MFPTQ SpinQuant rotations: SpinQuantConverter applies offline R1/R2 Hadamard rotations directly to safetensors before model-free quantization, and model_free_ptq now accepts converter chains.
  • MXFP6 and MXFP4xFP8 support: Added MXFP6A8/MXFP6A16 schemes and examples, plus an MXFP4xFP8 example and refreshed quantization documentation.
  • Broader hardware and model support: The fused GPTQ Triton kernel now runs on Intel XPU, MTP layers load through Transformers MtpModel, and new checkpoints and examples include Nemotron 3.5 Super VL FP8, Zyphra Zaya1, Muse Spark, and Qwen3.6 MXFP4xFP8.
  • Docs and community: Added the Open Research Hub for community experiment results and a full Simplified Chinese README translation.

Model highlights

The Red Hat AI team has been using LLM Compressor to produce a fresh batch of production-ready quantized checkpoints:

Supported Precisions and Types

  • Activation Quantization: W8A8 (int8 and fp8), W4AFP8, Microscale (NVFP4, MXFP4, MXFP6A8, MXFP8)
  • Mixed Precision: W4A16, W8A16, MXFP8A16, MXFP6A16, MXFP4A16, NVFP4A16
  • Attention and KV Cache Quantization: FP8, NVFP4
  • Low/Arbitrary-bit Quantization: WNA4, WNA8, WNA16

Supported Algorithms

  • Simple PTQ
  • GPTQ
  • AWQ
  • SmoothQuant
  • AutoRound
  • Rotation-based (SpinQuant, QuIP)
  • REAP expert pruning

Quantizing your model, step-by-step

Please refer to our step-by-step compression guide for detailed information about selecting quantization schemes, algorithms, and their use cases.

Additional information about LLM Compressor functionality is also available in our User Guides and FAQ.

Installation

pip install llmcompressor

Get Started

End-to-End Examples

Applying quantization with llmcompressor:

Weight and Activation Quantization

Weight Only Quantization

Attention and KV Cache Quantization

Architecture-Specific Quantization

Non-Uniform Quantization

Big Model Quantization Support

Model-Free Definition Quantization

DDP Quantization

Quick Tour

Let's quantize Qwen3-30B-A3B with FP8 weights and activations using the Round-to-Nearest algorithm.

Note that the model can be swapped for a local or remote HF-compatible checkpoint and the recipe may be changed to target different quantization algorithms or formats.

Apply Quantization

Quantization is applied by selecting an algorithm and calling the oneshot API.

from compressed_tensors.offload import dispatch_model
from transformers import AutoModelForCausalLM, AutoTokenizer

from llmcompressor import oneshot
from llmcompressor.modifiers.quantization import QuantizationModifier

MODEL_ID = "Qwen/Qwen3-30B-A3B"

# Load model.
model = AutoModelForCausalLM.from_pretrained(MODEL_ID)
tokenizer = AutoTokenizer.from_pretrained(MODEL_ID)

# Configure the quantization algorithm and scheme.
# In this case, we:
#   * quantize the weights to FP8 using RTN with block_size 128
#   * quantize the activations dynamically to FP8 during inference
recipe = QuantizationModifier(
    targets="Linear",
    scheme="FP8_BLOCK",
    ignore=["lm_head", "re:.*mlp.gate$"],
)

# Apply quantization.
oneshot(model=model, recipe=recipe)

# Confirm generations of the quantized model look sane.
print("========== SAMPLE GENERATION ==============")
dispatch_model(model)
input_ids = tokenizer("Hello my name is", return_tensors="pt").input_ids.to(
    model.device
)
output = model.generate(input_ids, max_new_tokens=20)
print(tokenizer.decode(output[0]))
print("==========================================")

# Save to disk in compressed-tensors format.
SAVE_DIR = MODEL_ID.split("/")[1] + "-FP8-BLOCK"
model.save_pretrained(SAVE_DIR)
tokenizer.save_pretrained(SAVE_DIR)

Inference with vLLM

The checkpoints created by llmcompressor can be loaded and run in vllm:

Install:

pip install vllm

Run:

from vllm import LLM
model = LLM("Qwen/Qwen3-30B-A3B-FP8-BLOCK")
output = model.generate("My name is")

Questions / Contribution

  • If you have any questions or requests open an issue and we will add an example or documentation.
  • We appreciate contributions to the code, examples, integrations, and documentation as well as bug reports and feature requests! Learn how here.
  • Browse community experiments and share your compression results in the Open Research Hub. All results are welcome.

Citation

If you find LLM Compressor useful in your research or projects, please consider citing it:

@software{llmcompressor2024,
    title={{LLM Compressor}},
    author={Red Hat AI and vLLM Project},
    year={2024},
    month={8},
    url={https://github.com/vllm-project/llm-compressor},
}

Metadata

Release files for llmcompressor 0.15.1a20261106

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for llmcompressor 0.15.1a20261106
File Size Uploaded Provenance Actions
llmcompressor-0.15.1a20261106.tar.gz 3.3 MB With provenance Details for llmcompressor-0.15.1a20261106.tar.gz

Built distribution (wheel)

Table of built distributions (wheels) for llmcompressor 0.15.1a20261106
File Interpreter ABI Platform Actions
llmcompressor-0.15.1a20261106-py3-none-any.whl Python 3 none any Details for llmcompressor-0.15.1a20261106-py3-none-any.whl

Total release size: 3.7 MB

Release files / llmcompressor-0.15.1a20261106.tar.gz

Download URL llmcompressor-0.15.1a20261106.tar.gz
Size 3.3 MB
Tags Source
SHA-256 checksum
How to use checksums
d0150f8890cd510478fbfd6b5b9c8e214bcf8dd424fc26811804b21008555a4f
BLAKE2b-256 checksum
How to use checksums
255f8dbf92bbcbf80e88c9e1fa9a9805c221377a2054ac12dfe7990f31f4bd8d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.7

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Nov 7, 2026.

Transparency log

Release files / llmcompressor-0.15.1a20261106-py3-none-any.whl

Download URL llmcompressor-0.15.1a20261106-py3-none-any.whl
Size 450.9 kB
Tags Python 3
SHA-256 checksum
How to use checksums
2068120c73cc482f6f96c0f6dc305670d952cd6fa488bd5b751c236f44240b6b
BLAKE2b-256 checksum
How to use checksums
c8620463fbd16ceb1285a517138d73c3c78aa18016581effed1eb92f535fa6a9
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.7

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Nov 7, 2026.

Transparency log

Security for llmcompressor 0.15.1a20261106

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

Full provenance

Both files in this release have been uploaded with provenance metadata.

Select from 2 files

Attestation for llmcompressor-0.15.1a20261106.tar.gz

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Nov 7, 2026.

Transparency log

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Release history Release notifications | RSS feed

This release
Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page