File size: 2,513 Bytes
19ab1aa
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
---
language:
- it
tags:
- pretrained
- pytorch
- causal-lm
- autoround
- intel-autoround
- woq
- awq
- autoawq
- auto-awq
- intel
- italia
- italiano
- italian 
license: mit
license_link: https://huggingface.co/iGeniusAI/Italia-9B-Instruct-v0.1/blob/main/LICENSE
model_name: Italia 9B Instruct v0.1
base_model: 
- iGeniusAI/Italia-9B-Instruct-v0.1
inference: false
model_creator: iGeniusAI
pipeline_tag: text-generation
prompt_template: '{prompt}
  '
quantized_by: fbaldassarri
---

## Model Information

Quantized version of [iGeniusAI/Italia-9B-Instruct-v0.1](https://huggingface.co/iGeniusAI/Italia-9B-Instruct-v0.1) using torch.float32 for quantization tuning.
- 4 bits (INT4)
- group size = 128
- Symmetrical Quantization
- Method AutoAWQ

Quantization framework: [Intel AutoRound](https://github.com/intel/auto-round) v0.4.3

Note: this INT4 version of Italia-9B-Instruct-v0.1 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.3.tar.gz
tar -xvzf v0.4.3.tar.gz
cd auto-round-0.4.3
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, GPTNeoXModel
  model_name = "iGeniusAI/Italia-9B-Instruct-v0.1"
  model = GPTNeoXModel.from_pretrained(model_name, trust_remote_code=True)
  tokenizer = AutoTokenizer.from_pretrained(model_name)
  from auto_round import AutoRound
  bits, group_size, sym, device, amp = 4, 128, True, 'cpu', False
  autoround = AutoRound(model, tokenizer, nsamples=128, iters=200, seqlen=512, batch_size=4, bits=bits, group_size=group_size, sym=sym, device=device, amp=amp)
  autoround.quantize()
  output_dir = "./AutoRound/iGeniusAI_Italia-9B-Instruct-v0.1-autoawq-int4-gs128-sym"
  autoround.save_quantized(output_dir, format='auto_awq', inplace=True)
```

Note: the `GPTNeoXSdpaAttention` class is deprecated in favor of simply modifying the `config._attn_implementation`attribute of the `GPTNeoXAttention` class. So this require transformers<4.48.

## License

[MIT](https://huggingface.co/iGeniusAI/Italia-9B-Instruct-v0.1/blob/main/LICENSE)

## Disclaimer

This quantized model comes with no warranty. It has been developed only for research purposes.