
nncf
压缩模型,让 OpenVINO 推理更快更省资源
NNCF(Neural Network Compression Framework)是 Intel 开源的神经网络压缩框架,专为提升 OpenVINO 推理性能而设计。它解决的是深度学习模型在部署时体积大、延迟高、算力消耗大的问题,让训练好的模型能在 Intel CPU、GPU、NPU 等硬件上跑得更快更省资源。核心能力包括训练后量化(PTQ)、量化感知训练(QAT)、权重压缩、结构化与非结构化剪枝、混合精度训练,并支持 LLM、GenAI、BERT、分类、目标检测、NLP 等多类模型。框架与 OpenVINO 深度集成,压缩后的模型可直接导出为 OpenVINO IR 进行推理,同时兼容 ONNX、PyTorch 等前端。它提供 Python API 和命令行工具,可自动完成量化校准与精度恢复,降低手工调优成本,适合需要把模型部署到边缘或服务端的工程团队。
项目数据
使用教程
环境要求
- Python 环境(NNCF 是以 Python 包形式发布和使用的)
- pip 包管理器,或 conda(二选一)
- 系统要求取决于所使用的后端(backend),具体见 docs/Installation.md
- 待量化的模型来自 PyTorch、TorchFX、ONNX 或 OpenVINO 之一
安装与启动步骤
-
1用 pip 安装 NNCF
官方推荐的安装方式,NNCF 作为常规 PyPI 包发布,一条命令即可完成安装。
pip install nncf -
2或用 conda 安装
如果使用 conda 环境,可改用 conda-forge 渠道安装,二选一即可,不要重复安装。
conda install -c conda-forge nncf -
3验证包已可导入
进入 Python 确认 nncf 模块能被正常导入,出现版本号说明安装成功。
python -c "import nncf; print(nncf.__version__)" -
4编写量化脚本
按 README 的 PyTorch 用法导入 nncf、torch 与 torchvision,并准备好待量化的 model 和 calibration_dataset 后再执行量化。
python quantize_demo.py -
5运行量化流水线
调用 nncf.quantize 传入模型与校准数据集,返回的即量化后的模型;ONNX/TorchFX 用法与此一致。
import nncf import torch from torchvision import datasets, models # 需先准备好 model 和 calibration_dataset quantized_model = nncf.quantize(model, calibration_dataset)
如何确认成功
执行 python -c "import nncf" 无报错,且 nncf.quantize(model, calibration_dataset) 能正常返回量化后的模型对象。
常见问题
Q:训练后量化(PTQ)后精度不达标怎么办?
A:可以对量化后的 PyTorch 模型做微调(量化感知训练 QAT),README 给出的示例在 examples/quantization_aware_training/torch/resnet18/README.md。
Q:NNCF 支持哪些模型框架?
A:README 明确支持 PyTorch、TorchFX、ONNX 和 OpenVINO 的模型,量化接口调用方式基本一致。
Q:必须用 conda 安装吗?
A:不是必须。NNCF 可通过 pip install nncf 安装,也可通过 conda install -c conda-forge nncf 安装,任选其一。
Q:安装细节和版本对应关系在哪查?
A:见仓库中的 docs/Installation.md,其中列出各后端的系统要求及对应版本矩阵。
注意事项
- NNCF 的系统要求与所用后端(PyTorch/ONNX/OpenVINO 等)对应,安装前建议先看 docs/Installation.md。
- 框架可与 OpenVINO 配合,用于优化神经网络在 OpenVINO 上的推理表现。
- 更多压缩算法效果与用法可参考 NNCF Model Zoo(docs/ModelZoo.md)和仓库中的 samples/tutorials。
核心亮点
- 与 OpenVINO 深度绑定,量化后可直接导出 IR 部署,端到端链路完整
- 支持 PTQ、QAT、剪枝、混合精度等多种压缩手段,覆盖 CNN 与 LLM 场景
- 提供自动量化与精度恢复流程,减少手工调参成本
不足之处
- 强依赖 OpenVINO 生态,非 Intel 硬件或非 OpenVINO 部署场景收益有限
- LLM 与 GenAI 相关压缩能力相对较新,部分高级特性文档和示例仍在完善
适用场景
- 将 BERT 等 NLP 模型量化后部署到 Intel CPU 服务端,降低推理延迟
- 把目标检测模型剪枝压缩后跑在边缘设备或 NPU 上
- 对 LLM 做训练后量化,减少显存占用并提升 OpenVINO 推理吞吐
替代项目
TensorRT、ONNX Runtime、NNI
项目介绍
同类项目推荐
Long-RL
开源
让强化学习轻松驾驭超长序列,训练更稳更快
Long-RL: Scaling RL to Long Sequences (NeurIPS 2025)
TPA
开源
把注意力复杂度从平方降到线性,长序列不再卡顿
[NeurIPS 2025 Spotlight] TPA: Tensor ProducT ATTenTion Transformer (https://arxiv.or···
minimind
开源
两小时造出你的小模型,练手入门不求人
Train a 64M-parameter LLM from scratch in just 2h!
pruna
开源
一键优化 AI 模型,推理提速又省资源。
Pruna is a model optimization framework built for developers, enabling you to delive···