Skip to content

Releases: intel/neural-compressor

Intel® Neural Compressor v2.0 Release

30 Dec 05:27
4eb3af0
Compare
Choose a tag to compare
  • Highlights
  • Features
  • Bug Fixes
  • Examples
  • Documentations

Highlights

  • Support the quantization for Intel® Xeon® Scalable Processors (e.g., Sapphire Rapids), Intel® Data Center GPU Flex Series, and Intel® Max Series CPUs & GPUs
  • Provide the new unified APIs for post-training optimizations (static/dynamic quantization) and during-training optimizations (quantization-aware training, pruning/sparsity, distillation, etc.)
  • Support the advanced fine-grained auto mixed precisions (AMP) upon all the supported precisions (e.g., INT8, BF16, and FP32)
  • Improve the model conversion from PyTorch INT8 model to ONNX INT8 model
  • Support the zero-code quantization in Visual Studio Code and JupyterLab with Neural Coder plugins
  • Support the quantization for 10K+ transformer-based models including large language models (e.g., T5, GPT, Stable Diffusion, etc.)

Features

  • [Quantization] Experimental Keras model in, quantized Keras model out (commit 4fa753)
  • [Quantization] Support quantization for ITEX v1.0 on Intel CPU and Intel GPU (commit a2fcb2)
  • [Quantization] Support hardware-neutral quantized ONNX QDQ models and validate on multiple devices (Intel CPU, NVidia GPU, AMD CPU, and ARM CPU) through ONNX Runtime
  • [Quantization] Enhance TensorFlow QAT: remove TFMOT dependency (commit 1deb7d)
  • [Quantization] Distinguish frameworks, backends and output formats for OnnxRuntime backend (commit 2483a8)
  • [Quantization] Support PyTorch/IPEX 1.13 and TensorFlow 2.11 (commit b7a2ef)
  • [AMP] Support more TensorFlow bf16 ops (commit 98d3c8)
  • [AMP] Add torch.amp bf16 support for IPEX backend (commit 2a361b)
  • [Strategy] Add accuracy-first tuning strategies: MSE_v2 (commit 80311f) and HAWQ (commit 83018e) to solve the accuracy problem of specific models
  • [Strategy] Refine the tuning strategy, add more data type, more op attributes like per tensor/per channel, dynamic/static, …etc
  • [Pruning] Add progressive pruning and pattern lock pruning_type (commit f46bb1)
  • [Pruning] Add per_channel sparse pattern (commit f46bb1)
  • [Distillation] Support self-distillation towards efficient and compact neural networks (commit acdd4c)
  • [Distillation] Enhance API of intermediate layers knowledge distillation (commit 3183f6)
  • [Neural Coder] Detect devices and ISA to adjust the optimization (commit 691d0b)
  • [Neural Coder] Automatically quantize with ONNX Runtime backend (commit f711b4)
  • [Neural Coder] Add Neural Coder Python Launcher (commit 7bb92d)
  • [Neural Coder] Add Visual Studio Plugin (commit dd39ca)
  • [Productivity] Support Pruning in GUI (commit d24fea)
  • [Productivity] Use config-driven API to replace yaml
  • [Productivity] Export ONNX QLinear to QDQ format (commit e996a9)
  • [Productivity] Validate 10K+ transformer-based models including large language models (e.g., T5, GPT, Stable Diffusion, etc.)

Bug Fixes

  • Fix quantization failed of Onnx models with over 2GB model size (commit 8d83cc)
  • Fix bf16 disabled by default (commit 83825a)
  • Fix PyTorch DLRM quantization out of memory (commit ff1725)
  • Fix ITEX resnetv2_50 tuning accuracy (commit ae1e05)
  • Fix bf16 ops error in QAT when torch version < 1.11 (commit eda8cb)
  • Fix the key comparison in the Bayesian strategy (commit 1e9c12)
  • Fix PyTorch T5 can’t do static quantization (commit ee3ef0)

Examples

  • Add quantization examples of HuggingFace models with OnnxRuntime backend (commit f4aeb5)
  • Add Big language model quantization example: GPT-J (commit 01899d)
  • Add Distributed Distillation examples: MobileNetV2 (commit d33ebe) and CNN-2 (commit ebe9e2)
  • Update examples with INC v2.0 new API
  • Add Stable Diffusion example

Documentations

  • Update the accuracy of broad hardware (commit 71b056)
  • Refine API helper and documents

Validated Configurations

  • Centos 8.4 & Ubuntu 20.04
  • Python 3.7, 3.8, 3.9, 3.10
  • TensorFlow 2.9.3, 2.10.1, 2.11.0, ITEX 1.0
  • PyTorch/IPEX 1.11.0+cpu, 1.12.1+cpu, 1.13.0+cpu
  • ONNX Runtime 1.11.0, 1.12.1, 1.13.1
  • MxNet 1.7.0, 1.8.0, 1.9.1

Intel® Neural Compressor v1.14. 2 Release

01 Nov 17:26
Compare
Choose a tag to compare
  • Highlights
  • Features
  • Bug Fixes
  • Examples

Highlights

  • We support experimental quantization support for ITEX v1.0 on Intel CPU and GPU, which is the first time to support the quantization on Intel GPU. We support hardware-neutral quantized ONNX models and validate on multiple devices (Intel CPU, NVidia GPU, AMD CPU, and ARM CPU) through ONNX Runtime.

Features

  • Support quantization support on PyTorch v1.13 (commit 97c946)
  • Support experimental quantization support for ITEX v1.0 on Intel CPU and GPU (commit a2fcb2)
  • Support GUI on native Windows (commit fe9923)
  • Support INT8 model load and save API with IPEX backend (commit 23c585)

Bug Fixes

  • Fix GPT2 quantization failed with ONNX Runtime backend (commit aea121)

Examples

  • Support personalized Stable Diffusion with few-shot fine-tuning (commit 4247fd)
  • Add ITEX examples efficientnet_v2_b0, mobilenet_v1, mobilenet_v2, inception_resnet_v2, inception_v3, resnet101, resnet50, vgg16, xception, densenet121....etc. (commit 6ab557)
  • Validate quantized ONNX model on multiple devices (Intel CPU, NVIDIA GPU, AMD CPU, and ARM CPU) (commit 288340)

Validated Configurations

  • Centos 8.4
  • Python 3.8
  • TensorFlow 2.10, ITEX 1.0
  • PyTorch 1.12.0+cpu, 1.13.0+cpu, IPEX 1.12.0
  • ONNX Runtime 1.12
  • MxNet 1.9

Intel® Neural Compressor v1.14.1 Release

01 Oct 02:46
0839847
Compare
Choose a tag to compare
  • Bug Fixes
  • Productivity
  • Examples

Bug Fixes

  • Fix name matching issue of scale and zero-point in PyTorch (commit fd7a53)
  • Fix incorrect output quantization mode of MatMul + Relu fusion in TensorFlow (commit 9b5293)

Productivity

  • Support Onnx model with Python3.10 (commit 2faf0b)
  • Using TensorFlow create_file_writer API to support histogram of Tensorboard (commit f34852)

Examples

  • Add NAS notebooks (commit 5f0adf)
  • Add Bert mini 2:4, 1x4 and mixed examples with new Pruning API (commit a52074)
  • Add keras in, saved_model out resnet101, inception_v3, mobilenetv2, xception, resnetv2 examples (commit fdd40e)

Validated Configurations

  • Python 3.7, 3.8, 3.9, 3.10
  • Centos 8.3 & Ubuntu 18.04 & Win10
  • TensorFlow 2.9, 2.10
  • Intel TensorFlow 2.7, 2.8, 2.9
  • PyTorch 1.10.0+cpu, 1.11.0+cpu, 1.12.0+cpu
  • IPEX 1.10.0, 1.11.0, 1.12.0
  • MxNet 1.7, 1.9
  • ONNX Runtime 1.10, 1.11, 1.12

Intel® Neural Compressor v1.14 Release

20 Sep 12:57
073ac5f
Compare
Choose a tag to compare
  • Highlights
  • New Features
  • Improvements
  • Bug Fixes
  • Productivity
  • Examples

Highlights
We are excited to announce the release of Intel® Neural Compressor v1.14! We release new Pruning API for PyTorch, allowing users select better combinations of criteria, pattern and scheduler to achieve better pruning accuracy. This release also supports Keras input for TensorFlow quantization, and self-distilled quantization for better quantization accuracy.

New Features

  • Pruning/Sparsity
    • Support new structured sparse patterns N in M and NxM (commit 6cec70)
    • Add pruning criteria snip and snip momentum (commit 6cec70)
    • Add iterative pruning and decay types (commit 6cec70)
  • Quantization
    • Support different Keras formats (h5, keras, keras saved model) as input and output of TensorFlow saved model (commit 5a6f09)
    • Enable Distillation for Quantization (commit 03f1f3 & e20c76)
  • GUI
    • Add mixed precision (commit 26e902)

Improvement

  • Enhance tuning for Quantization with IPEX 1.12 to remove additional Quant/DeQuant (commit 192100)
  • Add upstream and download API for HuggingFace model hub, which can handle configuration files, tokenizer files and int8 model weights in the format of transformers (commit 46d945)
  • Align with Intel PyTorch extension new API (commit cc368a)
  • Add load with yaml and pt to be compatible with older PyTorch model saving type (commit a28705)

Bug Fixes

  • Quantization
    • Fix data type of ONNX Runtime quantization from fp64 to fp32 (commit cb7b48)
    • Fix MXNET config issue with default config (commit b75ff2)
  • Export
    • Fix export_to_onnx API (commit 158c7f)

Productivity

  • Support TensorFlow 2.10.0 (commit d6b6c9 & 8130e7)
  • Support OnnxRuntime 1.12 (commit 498ac4)
  • Export PyTorch QAT to Onnx (commit 029a63)
  • Add Tensorflow and PyTorch container tpp file (commit d245b5)

Examples

  • Add example of download from HuggingFace model hub and example of upstream models to the hub (commit 46d945)
  • Add notebooks for Neural Coder (commit 105db7)
  • Add 2 IPEX examples: bert_large (squad), distilbert_base (squad) (commit 192100)
  • ADD 2 DDP for prune once for all examples: roberta-base and Bert Base (commit 26a476)

Validated Configurations

  • Python 3.7, 3.8, 3.9, 3.10
  • Centos 8.3 & Ubuntu 18.04 & Win10
  • TensorFlow 2.9, 2.10
  • Intel TensorFlow 2.7, 2.8, 2.9
  • PyTorch 1.10.0+cpu, 1.11.0+cpu, 1.12.0+cpu
  • IPEX 1.10.0, 1.11.0, 1.12.0
  • MxNet 1.7, 1.9
  • ONNX Runtime 1.10, 1.11, 1.12

Intel® Neural Compressor v1.13.1 Release

13 Aug 11:52
Compare
Choose a tag to compare

Features

  • Support experimental auto-coding quantization for PyTorch

    • Post-training static and dynamic quantization for PyTorch
    • Post-training static quantization for IPEX
    • Mixed-precision (BF16, INT8, and FP32) for PyTorch
  • Refactor quantization utilities for ONNX Runtime

Bug fix

  • Fixed model compression orchestration issue caused by PyTorch v1.11
  • Fixed GUI issues

Validated Configurations

  • Python 3.8
  • Centos 8.4
  • TensorFlow 2.9
  • Intel TensorFlow 2.9
  • PyTorch 1.12.0+cpu
  • IPEX 1.12.0
  • MXNet 1.7.0
  • ONNX Runtime 1.11.0

Intel® Neural Compressor v1.13 Release

27 Jul 09:04
98d829a
Compare
Choose a tag to compare

Features

  • Quantization

    • Support new quantization APIs for Intel TensorFlow
    • Support FakeQuant (QDQ) quantization format for ITEX
    • Improve INT8 quantization recipes for ONNX Runtime
  • Mixed Precision

    • Enhance mixed precision interface to support BF16 (FP16) mixed with FP32
  • Neural Architecture Search

    • Support SuperNet-based neural architecture search (DyNAS)
  • Sparsity

    • Support training for block-wise structured sparsity
  • Strategy

    • Support operator-type based tuning strategy

Productivity

  • Support light (default) and full binary packages (default package size 0.5MB, full package size 2MB)
  • Add experimental accuracy diagnostic feature for INT8 quantization including tensor statistics visualization and fine-grained precision setting
  • Add experimental one-click BF16/INT8 low precision enabling & inference optimization, first-ever code-free solution in industry

Ecosystem

  • Upstream 4 more quantized models (emotion_ferplus, ultraface, arcfase, bidaf) to ONNX Model Zoo
  • Upstream 10 quantized Transformers-based models to HuggingFace Model Hub

Examples

  • Add notebooks for Quantization on Intel DevCloud, Distillation/Sparsity/Quantization for BERT-Mini SST-2, and Neural Architecture Search (DyNAS)
  • Add more quantization examples from TensorFlow Model Zoo

Validated Configurations

  • Python 3.8, 3.9, 3.10
  • Centos 8.3 & Ubuntu 18.04 & Win10
  • TensorFlow 2.7, 2.8, 2.9
  • Intel TensorFlow 2.7, 2.8, 2.9
  • PyTorch 1.10.0+cpu, 1.11.0+cpu, 1.12.0+cpu
  • IPEX 1.10.0, 1.11.0, 1.12.0
  • MxNet 1.6.0, 1.7.0, 1.8.0
  • ONNX Runtime 1.9.0, 1.10.0, 1.11.0

Intel® Neural Compressor v1.12 Release

27 May 14:40
Compare
Choose a tag to compare

Features

  • Quantization

    • Support accuracy-aware AMP (INT8/BF16/FP32) on PyTorch
    • Improve post-training quantization (static & dynamic) on PyTorch
    • Improve post-training quantization on TensorFlow
    • Improve QLinear and QDQ quantization modes on ONNX Runtime
    • Improve accuracy-aware AMP (INT8/FP32) on ONNX Runtime
  • Pruning

    • Improve pruning-once-for-all for NLP models
  • Sparsity

    • Support experimental sparse kernel for reference examples

Productivity

  • Support model deployment by loading INT8 models directly from HuggingFace model hub
  • Improve GUI with optimized model downloading, performance profiling, etc.

Ecosystem

  • Highlight simple quantization usage with few clicks on ONNX Model Zoo
  • Upstream INC quantized models (ResNet101, Tiny YoloV3) to ONNX Model Zoo

Examples

  • Add Bert-mini distillation + quantization notebook example
  • Add DLRM & SSD-ResNet34 quantization examples on IPEX
  • Improve BERT structured sparsity training example

Validated Configurations

  • Python 3.8, 3.9, 3.10
  • Centos 8.3 & Ubuntu 18.04 & Win10
  • TensorFlow 2.6.2, 2.7, 2.8
  • Intel TensorFlow 1.15.0 UP3, 2.7, 2.8
  • PyTorch 1.8.0+cpu, 1.9.0+cpu, 1.10.0+cpu
  • IPEX 1.8.0, 1.9.0, 1.10.0
  • MxNet 1.6.0, 1.7.0, 1.8.0
  • ONNX Runtime 1.8.0, 1.9.0, 1.10.0

Intel® Neural Compressor v1.11 Release

15 Apr 14:04
Compare
Choose a tag to compare

Features

  • Quantization
    • Supported QDQ as experimental quantization format for ONNX Runtime
    • Improved FX symbolic tracing for PyTorch
    • Supported multi-metrics for quantization tuning
  • Knowledge distillation
    • Improved distillation algorithm for intermediate layer knowledge transfer
  • Productivity
    • Improved quantization productivity for ONNX Runtime through GUI
    • Improved PyTorch INT8 model save/load methods
  • Ecosystem
    • Upstreamed INC quantized Yolov3, DenseNet, Mask-Rcnn, Yolov4 models to ONNX Model Zoo
    • Became PyTorch ecosystem tool shortly after published PyTorch INC tutorial
  • Examples
    • Added INC quantized ResNet50 v1.5 and BERT-Large model for IPEX
    • Supported dynamic quantization & weight sharing on bare metal reference engine

Intel® Neural Compressor v1.10 Release

28 Feb 05:27
1eb6529
Compare
Choose a tag to compare

Features

  • Quantization
    • Supported the quantization on latest deep learning frameworks
    • Supported the quantization for a new model domain (Audio)
    • Supported the compatible quantization recipes for framework upgrade
  • Pruning & Knowledge distillation
    • Supported fine-tuning and quantization using INC & Optimum for “Prune Once for All: Sparse Pre-Trained Language Models” published at ENLSP NeurIPS Workshop 2021
  • Structured sparsity
    • Proved the sparsity training recipes across multiple model domains (CV, NLP, and Recommendation System)

Productivity

  • Improved INC GUI for easy quantization
  • Supported Windows OS conda installation

Ecosystem

  • Upgraded INC v1.9 into HuggingFace Optimum
  • Upsteamed INC quantized mobilenet & faster-rcnn models to ONNX Model Zoo

Examples

  • Supported quantization on 300 random models
  • Added bare-metal examples for Bert-mini and DLRM

Validated Configurations

  • Python 3.7, 3.8, 3.9
  • Centos 8.3 & Ubuntu 18.04 & Win10
  • TensorFlow 2.6.2, 2.7, 2.8
  • Intel TensorFlow 1.15.0 UP3, 2.7, 2.8
  • PyTorch 1.8.0+cpu, 1.9.0+cpu, 1.10.0+cpu
  • IPEX 1.8.0, 1.9.0, 1.10.0
  • MxNet 1.6.0, 1.7.0, 1.8.0
  • ONNX Runtime 1.8.0, 1.9.0, 1.10.0

Distribution:

  Channel Links Install Command
Source Github https://github.com/intel/neural-compressor.git $ git clone https://github.com/intel/neural-compressor.git
Binary Pip https://pypi.org/project/neural-compressor $ pip install neural-compressor
Binary Conda https://anaconda.org/intel/neural-compressor $ conda install neural-compressor -c conda-forge -c intel

Contact:

Please feel free to contact inc.maintainers@intel.com, if you get any questions.

Intel® Neural Compressor v1.9 Release

04 Jan 01:56
768c49e
Compare
Choose a tag to compare

Features

  • Knowledge distillation

    • Supported one-shot compression pipelines (knowledge distillation during quantization-aware training) on PyTorch
    • Added more distillation examples on TensorFlow and PyTorch
  • Quantization

    • Supported multi-objective tuning for quantization
    • Supported Intel Extension for PyTorch v1.10 version
    • Improved quantization-aware training support on PyTorch v1.10
  • Pruning

    • Added more magnitude pruning examples on TensorFlow
  • Reference bara-metal examples

    • Supported BF16 optimizations on NLP models
    • Added sparse DLRM model (experimental)
  • Productivity

    • Added Python favorable API (alternative to YAML configuration file)
    • Improved user facing APIs more pythonic
  • Ecosystem

    • Integrated pruning API into HuggingFace Optimum
    • Added ssd-mobilenetv1, efficientnet, ssd, fcn_rn50, inception_v1 quantized models to ONNX Model Zoo

Validated Configurations

  • Python 3.7 & 3.8 & 3.9
  • Centos 8.3 & Ubuntu 18.04
  • TensorFlow 2.6.2 & 2.7
  • Intel TensorFlow 2.4.0, 2.5.0 and 1.15.0 UP3
  • PyTorch 1.8.0+cpu, 1.9.0+cpu, IPEX 1.8.0
  • MxNet 1.6.0, 1.7.0, 1.8.0
  • ONNX Runtime 1.6.0, 1.7.0, 1.8.0

Distribution:

  Channel Links Install Command
Source Github https://github.com/intel/neural-compressor.git $ git clone https://github.com/intel/neural-compressor.git
Binary Pip https://pypi.org/project/neural-compressor $ pip install neural-compressor
Binary Conda https://anaconda.org/intel/neural-compressor $ conda install neural-compressor -c conda-forge -c intel

Contact:

Please feel free to contact inc.maintainers@intel.com, if you get any questions.