File size: 2,332 Bytes
970aee9 |
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 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 |
---
language:
- en
- es
- fr
- de
- pt
- ja
- it
- zh
- ko
- ar
- cs
- nl
pipeline_tag: text-generation
license: apache-2.0
library_name: transformers
tags:
- granite-3.3
- autoround
- auto-round
- intel-autoround
- intel
- woq
- pytorch
- ibm
- granite
- granite-3
model_name: Granite 3.3 2b instruct
base_model:
- ibm-granite/granite-3.3-2b-instruct
inference: false
model_creator: ibm-granite
prompt_template: '{prompt}'
quantized_by: fbaldassarri
---
## Model Information
Quantized version of [ibm-granite/granite-3.3-2b-instruct](https://huggingface.co/fbaldassarri/ibm-granite/granite-3.3-2b-instruct) using torch.float32 for quantization tuning.
- 8 bits (INT8)
- group size = 64
- Symmetrical Quantization
- Method WoQ (AutoRound format)
Fast and low memory, 2-3X speedup (slight accuracy drop at W8G64)
Quantization framework: [Intel AutoRound](https://github.com/intel/auto-round) v0.4.7
Note: this INT8 version of granite-3.3-2b-instruct has been quantized to run inference through CPU.
## Replication Recipe
### Step 1 Install Requirements
I suggest to install requirements into a dedicated python-virtualenv or a conda enviroment.
```
wget https://github.com/intel/auto-round/archive/refs/tags/v0.4.7.tar.gz
tar -xvzf v0.4.7.tar.gz
cd auto-round-0.4.7
pip install -r requirements-cpu.txt --upgrade
```
### Step 2 Build Intel AutoRound wheel from sources
```
pip install -vvv --no-build-isolation -e .[cpu]
```
### Step 3 Script for Quantization
```
from transformers import AutoModelForCausalLM, AutoTokenizer
model_name = "ibm-granite/granite-3.3-2b-instruct"
model = AutoModelForCausalLM.from_pretrained(model_name)
tokenizer = AutoTokenizer.from_pretrained(model_name)
from auto_round import AutoRound
bits, group_size, sym, device = 8, 64, True, 'cpu'
autoround = AutoRound(model, tokenizer, nsamples=128, iters=200, seqlen=512, batch_size=4, bits=bits, group_size=group_size, sym=sym, device=device)
autoround.quantize()
output_dir = "./AutoRound/ibm-granite_granite-3.3-2b-instruct-autoround-int8-gs64-sym"
autoround.save_quantized(output_dir, format='auto_round', inplace=True)
```
## License
[Apache 2.0 License](https://choosealicense.com/licenses/apache-2.0/)
## Disclaimer
This quantized model comes with no warrenty. It has been developed only for research purposes.
|