AutoCompress: Automated Hardware-Guided Model Compression
Abstract
LLM pruning must preserve quality while meeting hardware- and workload-specific constraints on latency, throughput, and memory. Existing pruning workflows often target parameter counts, requiring practitioners to manually select model sizes that meet latency, throughput, and GPU memory limits. However, parameter count alone does not predict these metrics, which depend on the model architecture, workload, hardware, and serving engine. We introduce AutoCompress, a hardware-guided compression framework that directly incorporates such constraints into differentiable architecture search. AutoCompress jointly optimizes global and per-layer structure to produce heterogeneous architectures, guided by serving-engine cost models validated against end-to-end latency, throughput, and memory measurements. We evaluate AutoCompress on long-context local coding, batched datacenter serving, and latency-sensitive in-game interaction. Compared to the state-of-the-art Minitron pruning framework, AutoCompress improves average accuracy across eight benchmarks by 6.57, 2.35, and 0.57 percentage points on RTX 5070, RTX 5080, and H100, respectively. AutoCompress also compresses Nemotron 3.5 Super from 120B to 74B parameters for single-B200 BF16 serving at 128K context, retaining 95% of its mean benchmark score.
Figures & tables
| On-device game NPC | Local coding agent | Datacenter inference | |
|---|---|---|---|
| Hardware | 1 RTX 5070 (12 GB) | 1 RTX 5080 (16 GB) | 8 H100, TP1 DP8 |
| Parent | Nemotron Nano 3 Elastic 12B (12.4B / 2.1B active) | Nemotron 3.5 Lightning (31.6B / 3.6B active) | Nemotron 3.5 Lightning (31.6B / 3.6B active) |
| Workload | batch size 1; 2,048 input + 256 output tokens | batch size 1; 262,144 cached + 16,384 input + 1,024 output tokens | batch size 128 per GPU; 8,192 input + 65,536 output tokens |
| Latency / throughput target | latency 750 ms | latency 11.5 s | throughput 7,330 tok/s per GPU (+50% over the parent) |
| Memory target | 4.0 GiB | 13.96 GiB | – |
| Parent cost | 1,147 ms, 8.76 GiB | 12.44 s, 23.67 GiB | 4,922 tok/s per GPU |
| Dimension | Lightning 3.5: RTX 5080 / H100 | Nano 3 12B: RTX 5070 |
|---|---|---|
| Hidden size | 2688, 2432, 2176, 1920, 1664, 1408 | 1920, 1792, 1664, 1536, 1408, 1280 |
| Mamba | 64, 56, 48, 40, 32 (global) | 64 or remove (per layer) |
| Routed experts | 128, 112, 96, 80, 64 | 128, 96, 64, 32 |
| Routed FFN width | 1856, 1536, 1280, 1024 | 960, 704, 448, 192, 0 |
| Shared FFN width | 3712, 2816, 1920 | 3712, 2688, 1856, 1024, 0 |
| Depth | Fixed | Mamba and MoE layers may be removed |
| Contract | Method | Search tokens | KD tokens | KD loss | AIME25 | LiveCodeBench | MMLU-Pro | MATH-500 | GSM8K | IFEval | IFBench | GPQA | Avg 8 |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| RTX 5070 | AutoCompress | 4.18B | 30B | 0.1909 | 0.42 | 1.11 | 26.46 | 36.40 | 47.54 | 55.13 | 24.49 | 21.78 | 26.67 |
| Minitron++ | 8.49B | 30B | 0.2366 | 0.00 | 0.48 | 19.76 | 29.90 | 34.29 | 43.76 | 17.43 | 15.21 | 20.10 | |
| RTX 5080 | AutoCompress | 2.85B | 10B | 0.1637 | 52.71 | 49.44 | 67.45 | 93.60 | 92.87 | 83.64 | 55.61 | 55.87 | 68.90 |
| Minitron++ | 8.57B | 10B | 0.1710 | 48.75 | 43.81 | 67.89 | 92.70 | 92.93 | 79.57 | 49.83 | 56.94 | 66.55 | |
| 8 H100 | AutoCompress | 3.00B | 10B | 0.1809 | 55.42 | 48.02 | 64.80 | 92.80 | 92.49 | 82.53 | 53.74 | 53.09 | 67.86 |
| Minitron++ | 9.98B | 10B | 0.1820 | 53.54 | 47.78 | 64.43 | 92.85 | 92.72 | 81.38 | 52.04 | 53.60 | 67.29 |
Appendix figures & tables6 assets
Supplementary material from the paper’s appendix.
Appendix
| Contract | Runs | Table entries | GPU-h |
|---|---|---|---|
| Local coding (RTX 5080) | 60 | 468 | 3.5 |
| Datacenter throughput (H100) | 180 | 408 | 24.8 |
| On-device NPC (RTX 5070) | 96 | 660 | 4.5 |
LLM Compression
Large language model compression reduces the memory, compute, and context costs of LLMs while aiming to preserve their capabilities.
See all 294 papers