--- language: en license: apache-2.0 tags: - text-classfication - int8 - PostTrainingStatic datasets: - mrpc metrics: - f1 --- # INT8 BERT base uncased finetuned MRPC ### Post-training static quantization This is an INT8 PyTorch model quantized with [IntelĀ® Neural Compressor](https://github.com/intel/neural-compressor). The original fp32 model comes from the fine-tuned model [Intel/bert-base-uncased-mrpc](https://huggingface.co/Intel/bert-base-uncased-mrpc). The calibration dataloader is the train dataloader. The default calibration sampling size 300 isn't divisible exactly by batch size 8, so the real sampling size is 304. The linear module **bert.encoder.layer.9.output.dense, bert.encoder.layer.10.output.dense** falls back to fp32 to meet the 1% relative accuracy loss. ### Test result - Batch size = 8 - [Amazon Web Services](https://aws.amazon.com/) c6i.xlarge (Intel ICE Lake: 4 vCPUs, 8g Memory) instance. | |INT8|FP32| |---|:---:|:---:| | **Throughput (samples/sec)** |23.986|11.202| | **Accuracy (eval-f1)** |0.8997|0.9042| | **Model size (MB)** |120|418| ### Load with IntelĀ® Neural Compressor (build from source): ```python from neural_compressor.utils.load_huggingface import OptimizedModel int8_model = OptimizedModel.from_pretrained( 'Intel/bert-base-uncased-mrpc-int8-static', ) ``` Notes: - The INT8 model has better performance than the FP32 model when the CPU is fully occupied. Otherwise, there will be the illusion that INT8 is inferior to FP32.