neural-compressor
SOTA 低比特 LLM 量化(INT8/FP8/MXFP8/INT4/MXFP4/NVFP4)與稀疏性;在 PyTorch、TensorFlow 和 ONNX Runtime 上的領先模型壓縮技術
neural-compressor 是什麼?
SOTA 低比特 LLM 量化(INT8/FP8/MXFP8/INT4/MXFP4/NVFP4)與稀疏性;在 PyTorch、TensorFlow 和 ONNX Runtime 上的領先模型壓縮技術
neural-compressor 概覽
這是什麼
Intel® Neural Compressor 是一個開源 Python 函式庫,支援主流深度學習框架(PyTorch、TensorFlow 與 JAX)上常見的模型壓縮技術,包括靜態量化、動態量化、SmoothQuant、僅權重量化、量化感知訓練、混合精度等。透過與 AutoRound 整合,該函式庫能對大型語言模型(LLM)與視覺語言模型(VLM,如 LLaMA、Qwen、DeepSeek、Flux、FramePack)進行進階量化。它在 Intel 硬體(Gaudi AI 加速器、Core Ultra 處理器、Xeon 可擴充處理器、Xeon CPU Max 系列、Data Center GPU Flex 系列與 Data Center GPU Max 系列)上經過廣泛測試,並在 AMD CPU、ARM CPU 與 NVIDIA GPU 上進行有限測試。
主要功能
- 支援多種量化技術:靜態量化、動態量化、SmoothQuant、僅權重量化、量化感知訓練與混合精度。
- 提供 LLM 與 VLM 的進階低位元量化,包含 INT8、FP8、MXFP8、INT4、MXFP4 與 NVFP4 資料型態。
- 與 AutoRound 整合,實現大型模型的自動量化。
- 支援 PyTorch、TensorFlow 與 JAX 框架。
- 針對 Intel 硬體(Gaudi、Core Ultra、Xeon、Data Center GPU)最佳化,並額外支援 AMD、ARM 與 NVIDIA 平台。
使用情境
- 在 Intel 硬體上對深度學習模型進行量化壓縮,特別是 LLM 與 VLM 的推論部署。
- 在生產環境中減少模型大小與記憶體佔用,同時維持準確度。
- 在 Intel Gaudi AI 加速器上啟用 FP8 量化,以加速 LLM 推論。
- 在 Intel Gaudi2 上使用僅權重量化,有效率地載入大型語言模型。
快速開始
安裝所需的框架擴充套件: pip install neural-compressor-pt # 用於 PyTorch pip install neural-compressor-tf # 用於 TensorFlow pip install neural-compressor-jax # 用於 JAX 範例:在 Intel Gaudi2 上進行 FP8 量化 python 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) # 自訂校正(虛擬範例) 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) 在 Intel Gaudi2 上載入僅權重量化的大型語言模型: python from neural_compressor.torch.quantization import load model_name = 'TheBloke/Llama-2-7B-GPTQ' model = load( model_name_or_path=model_name, format='huggingface', device='hpu', torch_dtype=torch.bfloat16, )
授權與價格
採用 Apache-2.0 授權。此函式庫為開源且免費使用。
內容整理自該專案公開的 README 與儲存庫資訊。