File size: 1,971 Bytes
a212970
857d28d
a212970
857d28d
 
 
 
 
 
 
 
 
a212970
857d28d
01e2dd7
857d28d
33749c1
 
 
857d28d
e3069f5
857d28d
 
 
 
 
 
ec9cbc8
857d28d
 
 
 
 
 
ec9cbc8
857d28d
 
9b30774
 
 
70a58f5
857d28d
33749c1
 
 
 
 
 
 
01e2dd7
 
33749c1
 
 
 
01e2dd7
 
33749c1
 
 
 
 
 
 
9b30774
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
---
language: en
license: mit
tags:
- text-classfication
- int8
- Intel® Neural Compressor
- PostTrainingStatic
datasets: 
- mrpc
metrics:
- f1
---

# INT8 MiniLM-L12-H384 finetuned MRPC

## Post-training static quantization

### PyTorch

This is an INT8  PyTorch model quantized with [huggingface/optimum-intel](https://github.com/huggingface/optimum-intel) through the usage of [Intel® Neural Compressor](https://github.com/intel/neural-compressor). 
The original fp32 model comes from the fine-tuned model [Intel/MiniLM-L12-H384-uncased-mrpc](https://huggingface.co/Intel/MiniLM-L12-H384-uncased-mrpc).

The calibration dataloader is the train dataloader. The default calibration sampling size 100 isn't divisible exactly by batch size 8, so the real sampling size is 104.

The linear module **bert.encoder.layer.6.attention.self.key** falls back to fp32 to meet the 1% relative accuracy loss.

#### Test result

|   |INT8|FP32|
|---|:---:|:---:|
| **Accuracy (eval-f1)** |0.9039|0.9097|
| **Model size (MB)**  |33.5|127|

#### Load with optimum:

```python
from optimum.intel import INCModelForSequenceClassification 

model_id = "Intel/MiniLM-L12-H384-uncased-mrpc-int8-static"
int8_model = INCModelForSequenceClassification.from_pretrained(model_id)
```

### ONNX

This is an INT8 ONNX model quantized with [Intel® Neural Compressor](https://github.com/intel/neural-compressor).

The original fp32 model comes from the fine-tuned model [Intel/MiniLM-L12-H384-uncased-mrpc](https://huggingface.co/Intel/MiniLM-L12-H384-uncased-mrpc).

The calibration dataloader is the eval dataloader. The calibration sampling size is 100.

#### Test result

|   |INT8|FP32|
|---|:---:|:---:|
| **Accuracy (eval-f1)** |0.9013|0.9097|
| **Model size (MB)**  |33|128|


#### Load ONNX model:

```python
from optimum.onnxruntime import ORTModelForSequenceClassification
model = ORTModelForSequenceClassification.from_pretrained('Intel/MiniLM-L12-H384-uncased-mrpc-int8-static')
```