intel/neural-compressor · 上手攻略
- 仓库:intel/neural-compressor
- 链接:https://github.com/intel/neural-compressor
- 分类:ai
- 作者:Tom
- 更新:2026-08-19
是什么
Intel Neural Compressor 是 Intel 开源的模型压缩库,专注于 LLM/VLM 的低比特量化(Low-bit Quantization),覆盖 INT8、FP8、MXFP8、MXFP4、INT4、NVFP4 等多种低精度数据类型,支持 PyTorch、TensorFlow、JAX 三大框架。
其核心定位是:Intel 官方大模型推理优化工具链,在 Intel Gaudi AI 加速器、Intel Xeon 可扩展处理器、Intel Core Ultra、Intel Data Center GPU Flex/Max 等硬件上经过验证。
官方文档:https://intel.github.io/neural-compressor
解决什么问题
大模型推理的三大瓶颈——内存占用大、计算速度慢、硬件利用率低——都可以通过量化来缓解。Neural Compressor 解决了:
- 多精度选择困难:支持静态量化、动态量化、SmoothQuant、Weight-Only 量化、QAT(量化感知训练)、混合精度等多种方法,用户无需自己实现
- 跨框架统一 API:PyTorch/TensorFlow/JAX 各有一套量化 API,Neural Compressor 提供统一抽象
- Intel 硬件深度优化:针对 Intel 平台做了专项优化(IPEX、Gaudi 等),开箱即用
快速安装
选择框架后端
Neural Compressor 按框架分发为三个独立包,按部署环境选择对应包(不要同时装多个):
# PyTorch 后端(支持 CPU / Intel GPU / Gaudi HPU)
pip install neural-compressor-pt
# TensorFlow 后端
pip install neural-compressor-tf
# JAX 后端(实验性,需从源码构建)
pip install neural-compressor-jax
⚠️ 注意:v3.x 已移除 2.x 旧版 API(如
neural_compressor.config),建议使用 v3.8+ 版本(包含安全修复)。
安装 PyTorch 依赖(按硬件)
Intel CPU:
pip install torch
pip install intel_extension_for_pytorch # IPEX for CPU
Intel GPU:
pip install torch
pip install intel_extension_for_pytorch[xpu] # IPEX for Intel GPU
Intel Gaudi HPU(建议使用 Docker):
# 拉取已装好 torch 的 Gaudi 镜像
docker run -it --runtime=habana \
-e HABANA_VISIBLE_DEVICES=all \
-e OMPI_MCA_btl_vader_single_copy_mechanism=none \
--cap-add=sys_nice --net=host --ipc=host \
vault.habana.ai/gaudi-docker/1.24.0/ubuntu24.04/habanalabs/pytorch-installer-2.10.0:latest
⚠️ 注意:Gaudi 软件栈与 Neural Compressor 有版本对应关系,请参考 gaudi_version_map.md 使用匹配组合。
验证安装
import neural_compressor
print(neural_compressor.__version__) # 预期输出 3.8 或更高
核心用法
1. PyTorch FP8 量化(Gaudi 加速器)
from neural_compressor.torch.quantization import (
FP8Config,
prepare,
convert,
)
import torch
import torchvision.models as models
model = models.resnet18()
qconfig = FP8Config(fp8_config="E4M3")
model = prepare(model, qconfig)
# 校准(dummy calibration 示例)
model(torch.randn(1, 3, 224, 224).to("hpu"))
model = convert(model)
output = model(torch.randn(1, 3, 224, 224).to("hpu")).to("cpu")
print(output.shape)
2. Weight-Only 量化(加载 HuggingFace GPTQ 模型到 Gaudi)
from neural_compressor.torch.quantization import load
import torch
model_name = "TheBloke/Llama-2-7B-GPTQ"
model = load(
model_name_or_path=model_name,
format="huggingface",
device="hpu",
torch_dtype=torch.bfloat16,
)
⚠️ 首次加载会将模型格式从 auto-gptq 转换为 HPU 格式并缓存到本地,下次加载更快。
3. Transformers-like API(推荐,用于 LLM/VLM)
Neural Compressor v3 提供了类似 HuggingFace Transformers 的高层 API,适用于 LLaMA、Qwen、DeepSeek、Flux、FramePack 等主流模型:
from neural_compressor.torch import AutoQuantizer, AutoBalancer
# 权重-only 量化示例(需指定精度和算法)
# 完整示例见:https://github.com/intel/neural-compressor/blob/main/docs/source/PT_WeightOnlyQuant.md
4. 支持的量化方法一览
| 方法 | 精度 | 适用场景 | 成熟度 |
|---|---|---|---|
| 静态量化(Static Quantization) | INT8/FP8 | 已知输入分布,batch 固定 | ✅ 稳定 |
| 动态量化(Dynamic Quantization) | INT8/FP8 | 输入分布变化大 | ✅ 稳定 |
| SmoothQuant | INT8 | 激活值有异常值通道 | ✅ 稳定 |
| Weight-Only 量化(WOQ) | INT4/INT8 | 内存瓶颈优先,精度损失敏感度低 | ✅ 稳定 |
| MXFP8 / MXFP4 | FP8/FP4 | Gaudi 硬件,平衡精度与速度 | ⚠️ 实验性 |
| NVFP4 | NVFP4 | 极致内存压缩 | ⚠️ 实验性 |
| 量化感知训练(QAT) | 各精度 | 精度要求高的生产部署 | ✅ 稳定 |
| 混合精度(Mixed Precision) | 多精度混合 | 异构硬件自动选择 | ✅ 稳定 |
5. MXFP8 / MXFP4 混合精度自动调优
# 详见 docs/source/PT_MXQuant.md
# 实验性功能,需要 Gaudi 2/3 或兼容硬件
典型适用场景
- 本地大模型推理:将 7B/13B/70B 模型量化到 INT4/INT8,在消费级硬件(带 IPEX 的 Intel CPU 或 Arc 显卡)上运行
- Gaudi 加速:在 Intel Gaudi 2/3 上使用 FP8/MXFP8 量化加速 LLM 推理,配合 vLLM 使用
- 模型服务压缩:生产环境通过 Weight-Only 量化减少显存占用,降低部署成本
- VLM 量化:对视觉-语言模型(如 LLaVA、Qwen-VL)进行量化部署
- 扩散模型加速:对 Flux、FramePack 等生成模型的 diffusion 过程进行量化
坑与注意
- 版本选择:v3.9 是当前推荐版本(修复了 CVE),v3.8 也有重要安全修复;低于 v3.8 的版本建议升级。
- Gaudi 版本匹配:Gaudi 软件栈与 Neural Compressor 有严格版本对应,混用会导致量化失败;每次升级前查 gaudi_version_map.md。
- Python / PyTorch 版本约束:最新验证版本为 Python 3.11-3.13 + PyTorch 2.10-2.12(v3.9),使用旧版 Python/PyTorch 可能遇到兼容性问题。
- 实验性功能标记:MXFP8/MXFP4/NVFP4/Keras-JAX FP8 等标注为 experimental,生产环境慎用。
- 首次加载缓存:Weight-Only 加载首次会生成
hpu_model.safetensors缓存到本地目录,清理缓存后重新加载会有延迟。 - AMD/ARM/NVIDIA 支持有限:README 明确说明这些平台测试有限,主要支持还是 Intel 硬件。
- 2.x API 已移除:v3.x 移除了
neural_compressor.config等旧版 API,参考文档时注意区分。
与同类对比
| 工具 | 定位 | 优点 | 缺点 |
|---|---|---|---|
| Neural Compressor | Intel 官方模型压缩 | Intel 硬件深度优化、量化方法最全、多框架统一 API | 非 Intel 平台支持有限 |
| AutoRound (Intel) | Near-lossless WOQ | 精度损失极低,vLLM 集成 | 需配合 Neural Compressor 使用 |
| GPTQ / AutoGPTQ | 通用 GPTQ 量化 | 生态成熟、使用简单 | 无 Intel 专项优化 |
| AWQ | Activation-aware 量化 | 对某些模型效果好 | 硬件支持有限 |
| llama.cpp | 通用 LLM 推理 | 轻量、跨平台、量化格式丰富 | 无 Intel Gaudi 优化 |
| TensorRT-LLM | NVIDIA LLM 推理 | NVIDIA 官方优化、性能极强 | 依赖 NVIDIA 硬件 |
| vLLM | LLM 推理服务 | PagedAttention、连续批处理生态强 | 量化支持依赖后端(HF/TensorRT) |
一句话总结:在 Intel 硬件上跑 LLM 量化推理的首选工具,量化方法覆盖最全,Gaudi 加速器用户尤其应该优先考虑。
一句话推荐结论
Intel 平台大模型量化一站式方案——从 INT4 到 NVFP4 全覆盖,在 Gaudi/Xeon/Core Ultra 上开箱即用,是 Intel AI 加速生态的核心组件。
原始链接:https://github.com/intel/neural-compressor 验证版本:v3.9(推荐,当前 releases 最新稳定版) 硬件验证:Intel Gaudi 2/3 · Intel Xeon 4-6代 · Intel Core Ultra · Intel Arc B-Series · Intel Data Center GPU Max 支持框架:PyTorch 2.10-2.12 · TensorFlow · JAX 0.10(实验性) Python 版本:3.11-3.13(v3.9)