SmoothQuant is a post-training quantization method that enables 8-bit weight and activation quantization for large transformer models by mathematically migrating the quantization difficulty from activations to weights. It solves the core problem of activation outliers—extreme values in certain channels that cause significant error during integer quantization—by applying a per-channel smoothing factor to the weights and correspondingly scaling the activations. This process equalizes the ranges across channels, allowing both weights and activations to be quantized to INT8 with minimal accuracy loss, without requiring any retraining.
Glossary
SmoothQuant

What is SmoothQuant?
SmoothQuant is an advanced post-training quantization (PTQ) technique designed to enable efficient 8-bit inference for large transformer models by addressing the challenge of activation outliers.
The technique is particularly valuable for transformer inference optimization, as it facilitates deployment on hardware with strict 8-bit compute acceleration, such as NVIDIA Tensor Cores or Intel DL Boost. By enabling full W8A8 quantization (8-bit weights and 8-bit activations), SmoothQuant provides a significant speedup and memory reduction compared to mixed-precision or FP16 inference. It is a foundational method within the parameter-efficient fine-tuning and model compression ecosystem, often used as a precursor to more aggressive techniques like 4-bit quantization (e.g., GPTQ, AWQ).
Key Features of SmoothQuant
SmoothQuant enables efficient 8-bit quantization of both weights and activations in transformer models by mathematically migrating the quantization difficulty from activations to weights.
Outlier Migration
The core innovation of SmoothQuant is its systematic migration of the quantization difficulty from activations to weights. Transformer activations contain extreme outliers (values orders of magnitude larger than the typical range), which are difficult to quantize accurately. SmoothQuant applies a mathematically derived per-channel scaling factor to the activations and a corresponding inverse scaling to the weights. This smooths the activation distribution, making it amenable to 8-bit quantization, while the more uniformly distributed weights absorb the quantization error with minimal impact on model accuracy.
Mathematical Smoothing
SmoothQuant performs a per-channel scaling transformation on the layer's input activations X and weights W before quantization. For a channel j, it finds a scaling factor s_j that minimizes the quantization error. The operation is:
- Smoothed Activation:
X_smooth[:, j] = X[:, j] / s_j - Smoothed Weight:
W_smooth[j, :] = W[j, :] * s_jThe key is that the linear operationY = X * Wremains mathematically equivalent:(X / s) * (W * s) = X * W. This equivalence allows the scaling to be fused into the previous layer's weights during deployment, resulting in zero runtime overhead.
Calibration-Based Scaling
The optimal per-channel scaling factors s_j are determined using a small, representative calibration dataset (typically 512 samples). The algorithm analyzes the activation and weight statistics to find the s that best balances their quantization ranges. A migration strength hyperparameter α controls the trade-off:
α = 0.5equally splits the quantization difficulty.α → 1migrates more difficulty to the weights (better for activation quantization).α → 0migrates more difficulty to the activations. This data-driven calibration ensures the smoothing is tailored to the specific model and its expected input distribution.
W8A8 Quantization
The primary outcome of SmoothQuant is enabling 8-bit integer quantization for both weights and activations (W8A8) in large transformers like OPT and BLOOM, where standard PTQ fails. This configuration is critical for hardware efficiency because:
- Weights (W8): Reduce model memory footprint by 4x compared to FP32.
- Activations (A8): Enable the use of fast, low-power integer arithmetic units (INT8 GEMM kernels) prevalent in modern AI accelerators (e.g., NVIDIA Tensor Cores, Intel AMX). This combination provides a significant latency reduction and energy savings during inference compared to mixed-precision (e.g., W8A16) or FP16 execution.
Training-Free Application
SmoothQuant is a post-training quantization (PTQ) method, requiring no retraining, fine-tuning, or backpropagation. This makes it:
- Computationally Efficient: Applies in minutes using only a calibration dataset.
- Data Efficient: Requires only a few hundred unlabeled samples.
- Preserves Original Model Quality: The smoothed, quantized model maintains high task performance (e.g., within 1% of FP16 accuracy on language modeling benchmarks). Its training-free nature allows for rapid deployment and iteration, making it ideal for production environments where full Quantization-Aware Training (QAT) is prohibitively expensive.
Hardware & Framework Support
SmoothQuant is designed for practical deployment and is supported by major inference engines. The fused scaling factors are typically applied during model export to standard runtimes.
- TensorRT: Supported via custom plugins or layer fusion during the ONNX-to-TensorRT conversion process.
- ONNX Runtime: Can be implemented using pre-quantized ONNX models with appropriate scaling constants embedded in the graph.
- PyTorch: Applied via libraries like
torch.int8or custom quantization backends. The technique is hardware-agnostic but delivers maximum benefit on accelerators with optimized INT8 pipelines, providing a clear path from algorithm to production inference.
SmoothQuant vs. Other Quantization Methods
A technical comparison of post-training quantization techniques for transformer models, focusing on their approach to handling activation outliers and their suitability for production deployment.
| Feature / Metric | SmoothQuant | GPTQ | AWQ | Standard PTQ (e.g., RTN) |
|---|---|---|---|---|
Core Innovation | Migrates quantization difficulty from activations to weights via mathematical smoothing. | Uses layer-wise Hessian-based calibration for ultra-low precision weight quantization. | Scales (protects) salient weights based on activation magnitudes. | Applies uniform quantization to weights and activations using a calibration dataset. |
Primary Target | 8-bit quantization of both weights and activations (W8A8). | Extreme weight quantization (e.g., 4-bit, 3-bit, 2-bit). | 4-bit weight quantization (W4). | 8-bit weight and activation quantization (W8A8). |
Handles Activation Outliers | ||||
Requires Training / Fine-Tuning | ||||
Calibration Dataset Required | ||||
Typical Accuracy Drop (LLMs) | < 1% | 2-5% | 1-3% |
|
Inference Speed Boost | ~2x (W8A8 vs. FP16) | ~3x (W4A16 vs. FP16) | ~3x (W4A16 vs. FP16) | ~2x (W8A8 vs. FP16) |
Memory Reduction (vs. FP16) | ~50% | ~75% (weights only) | ~75% (weights only) | ~50% |
Hardware Support | Widespread (standard 8-bit INT ops). | Requires custom 4-bit kernels for optimal speed. | Requires custom 4-bit kernels for optimal speed. | Widespread (standard 8-bit INT ops). |
Frameworks and Implementations
SmoothQuant is a post-training quantization technique that enables efficient 8-bit inference for large transformers by mathematically migrating quantization difficulty from activations to weights.
Core Mechanism: Outlier Smoothing
SmoothQuant's innovation is addressing activation outliers—extreme values in specific channels that cause significant quantization error. It applies a per-channel scaling factor to mathematically smooth these outliers by migrating the quantization difficulty from the activations to the weights. The operation is defined as: Y = (X diag(s)^{-1}) · (diag(s) W) = ̃X ̃W, where s is the smoothing factor. This transformation makes both the input X and weight W more quantization-friendly.
Mathematical Foundation
The technique is based on the mathematical equivalence of linear layers. For an operation Y = XW, SmoothQuant introduces a per-channel smoothing factor vector s. It absorbs this factor into the weights: ̃W = diag(s) W. Simultaneously, it scales down the corresponding activation channels: ̃X = X diag(s)^{-1}. The output Y remains identical, but the numerical ranges of ̃X and ̃W are now balanced, enabling effective per-tensor quantization for both.
Calibration & Migration Strength
A small calibration dataset is used to determine the optimal smoothing factor s. The key hyperparameter is the migration strength α, which controls how much quantization difficulty is transferred from activations to weights.
α = 0.5: Balances the difficulty evenly.α = 1.0: Fully migrates difficulty to weights (activation per-tensor, weight per-channel quantization).α = 0.0: No smoothing (equivalent to standard per-channel weight quantization). The optimalαis typically found empirically per model.
Implementation in Practice
SmoothQuant is implemented as a pre-processing step before standard INT8 quantization. The workflow is:
- Profile Activations: Run calibration data through the FP16 model to collect activation scales.
- Calculate Smoothing Factors: Compute
sbased on activation and weight statistics using the chosenα. - Transform Weights: Absorb
sinto the model's linear layer weights (̃W = diag(s) W). - Quantize: Apply standard per-tensor INT8 quantization to both the smoothed activations and transformed weights. Frameworks like TensorRT and Intel Neural Compressor have integrated support.
Performance & Use Cases
SmoothQuant enables W8A8 quantization (8-bit weights and 8-bit activations) for models like OPT-175B and BLOOM-176B with minimal accuracy loss (often <1%). This provides significant benefits:
- Speedup: Enables faster INT8 kernels on hardware like NVIDIA Tensor Cores.
- Memory Reduction: Cuts activation memory by 4x compared to FP16.
- Hardware Compatibility: Makes large models viable for deployment on GPUs with limited VRAM and on edge inference engines that only support per-tensor quantization. It is particularly effective for transformer-based LLMs known for severe activation outliers.
Related & Contrasting Techniques
Related Quantization Methods:
- GPTQ/AWQ: Focus on compressing weights to ultra-low precision (4-bit). SmoothQuant focuses on enabling 8-bit activations.
- Quantization-Aware Training (QAT): Requires retraining; SmoothQuant is a post-training method.
- LLM.int8(): Uses vector-wise quantization and mixed-precision decomposition for outliers, which can be slower. SmoothQuant eliminates outliers to allow faster, uniform INT8 kernels. Complementary Use: SmoothQuant can be combined with weight-only methods like GPTQ for further compression (e.g., W4A8).
Frequently Asked Questions
SmoothQuant is a foundational post-training quantization technique for transformer models. These questions address its core mechanism, implementation, and role in the edge AI stack.
SmoothQuant is a post-training quantization (PTQ) technique that enables efficient 8-bit integer (INT8) quantization of both weights and activations in transformer models by mathematically migrating the quantization difficulty from activations to weights. It works by identifying that activation outliers are the primary barrier to low-precision inference. The method applies a per-channel smoothing factor to mathematically equalize the magnitude between weights and activations before quantization. Specifically, it absorbs the extreme scales from the activations into the weights, smoothing the activation distribution. This allows standard INT8 quantization to be applied uniformly without significant accuracy loss, whereas previous methods often kept activations in higher precision (FP16).
Enabling Efficiency, Speed & Accuracy
Intelligent Analysis, Decision & Execution
We build AI systems for teams that need search across company data, workflow automation across tools, or AI features inside products and internal software.
Talk to Us
Search across company data
Give teams answers from docs, tickets, runbooks, and product data with sources and permissions.
Useful when people spend too long searching or get different answers from different systems.

Automate internal workflows
Use AI to route work, draft outputs, trigger actions, and keep approvals and logs in place.
Useful when repetitive work moves across multiple tools and teams.

Add AI to products and internal tools
Build assistants, guided actions, or decision support into the software your team or customers already use.
Useful when AI needs to be part of the product, not a separate tool.
Related Terms
SmoothQuant operates within a broader ecosystem of techniques for making large models efficient. These related concepts are essential for understanding its role in the model optimization pipeline.
Post-Training Quantization (PTQ)
Post-Training Quantization is the overarching category of techniques to which SmoothQuant belongs. PTQ reduces the numerical precision of a pre-trained model's weights and activations (e.g., from 32-bit floating-point to 8-bit integers) after training is complete, using a small calibration dataset. It is distinguished from Quantization-Aware Training (QAT). SmoothQuant specifically solves a key PTQ challenge: the presence of large outlier values in activations, which cause significant quantization error.
Quantization-Aware Training (QAT)
Quantization-Aware Training is an alternative to PTQ where the model is fine-tuned with simulated quantization in the forward pass. This allows the model to learn parameters that are inherently robust to the precision loss of subsequent integer quantization. While QAT often yields higher accuracy than PTQ, it requires significant compute and a training pipeline. SmoothQuant is a PTQ method designed to achieve QAT-like accuracy without any retraining, making it faster and more resource-efficient.
Activation Outliers
Activation Outliers are a small number of feature dimensions with values orders of magnitude larger than the typical activation range in transformer models (e.g., OPT, BLOOM). These outliers, often concentrated in specific attention layers, are the primary obstacle to 8-bit quantization of activations. They cause severe clipping and quantization error. SmoothQuant's core innovation is a mathematical smoothing operation that migrates this quantization difficulty from the activations to the more uniformly distributed weights.
Weight Quantization
Weight Quantization is the process of reducing the precision of a model's static parameters. Weights are typically easier to quantize than activations because their distribution is more uniform and stable. Methods like GPTQ and AWQ focus primarily on compressing weights to very low precision (e.g., 4-bit). SmoothQuant enables W8A8 (8-bit weights and 8-bit activations) quantization by using a per-channel scaling factor to absorb the activation outliers into the weights, making the weights slightly harder to quantize but making the activations trivial to quantize.
INT8 Inference
INT8 Inference refers to executing a model using 8-bit integer arithmetic for both matrix multiplications and activations. This is a key hardware optimization target, as modern AI accelerators (e.g., NVIDIA Tensor Cores, Intel AMX) provide massive throughput for INT8 operations compared to FP16/BF16. SmoothQuant is a direct enabler of pure INT8 inference for large transformers, as prior methods could only quantize weights to INT8 while keeping activations in higher precision, leaving significant performance on the table.
Per-Tensor vs. Per-Channel Quantization
These are granularity schemes for applying quantization scales.
- Per-Tensor: A single scale factor is used for an entire tensor. Simple but inaccurate for tensors with wide value ranges.
- Per-Channel: A unique scale factor is used for each output channel of a weight tensor. More accurate and common for weights. SmoothQuant employs a per-channel scaling operation for the weights and a corresponding per-token inverse scaling for the activations. This asymmetric granularity is key to its effectiveness, as it allows the smoothing to precisely target the channels responsible for activation outliers.

About the author
Prasad Kumkar
CEO & MD, Inference Systems
Prasad Kumkar is the CEO & MD of Inference Systems and writes about AI systems architecture, LLM infrastructure, model serving, evaluation, and production deployment. Over 5+ years, he has worked across computer vision models, L5 autonomous vehicle systems, and LLM research, with a focus on taking complex AI ideas into real-world engineering systems.
His work and writing cover AI systems, large language models, AI agents, multimodal systems, autonomous systems, inference optimization, RAG, evaluation, and production AI engineering.
Partnered with leading AI, data, and software stack.
How We Work
Custom AI workflows for your Business
One-fit-all AI don't work for modern businesses. At Inferensys, we aim to understand your business & custom requirements; which we use to define most efficient agentic workflows, the data, and the tools for your business.
01
Review the use case
We understand the task, the users, and where AI can actually help.
Read more02
Pick the right approach
We define what needs search, automation, or product integration.
Read more03
Build the first useful version
We implement the part that proves the value first.
Read more04
Improve from there
We add the checks and visibility needed to keep it useful.
Read moreThe first call is a practical review of your use case and the right next step.
Talk to Us