File size: 2,210 Bytes
44586aa
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
---
language:
- en
tags:
- pytorch
- causal-lm
- pythia
- autoround
- intel
- woq
- intel-autoround
license: apache-2.0
model_name: Pythia 70m deduped
base_model: EleutherAI/pythia-70m-deduped
inference: false
model_creator: EleutherAI
datasets:
- EleutherAI/pile
pipeline_tag: text-generation
prompt_template: '{prompt}
  '
quantized_by: fbaldassarri
---



## Model Information

Quantized version of [EleutherAI/pythia-70m-deduped](https://huggingface.co/EleutherAI/pythia-70m-deduped) using torch.float32 for quantization tuning.
- 4 bits (INT4)
- group size = 128
- Asymmetrical Quantization
- Method AutoRound (WOQ)

Fast and low memory, 2-3X speedup (slight accuracy drop at W4G128)

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

Note: this INT4 version of pythia-70m-deduped 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. 

```
python -m pip install <package> --upgrade
```

- accelerate==1.0.1
- auto_gptq==0.7.1
- neural_compressor==3.1
- torch==2.3.0+cpu
- torchaudio==2.5.0+cpu
- torchvision==0.18.0+cpu
- transformers==4.45.2

### Step 2 Build Intel AutoRound wheel from sources

```
python -m pip install git+https://github.com/intel/auto-round.git
```

### Step 3 Script for Quantization

```
  from transformers import AutoModelForCausalLM, AutoTokenizer
  model_name = "EleutherAI/pythia-70m-deduped"
  model = AutoModelForCausalLM.from_pretrained(model_name)
  tokenizer = AutoTokenizer.from_pretrained(model_name)
  from auto_round import AutoRound
  bits, group_size, sym = 4, 128, False
  autoround = AutoRound(model, tokenizer, nsamples=128, iters=200, seqlen=512, batch_size=4, bits=bits, group_size=group_size, sym=sym)
  autoround.quantize()
  output_dir = "./AutoRound/EleutherAI_pythia-70m-deduped-autoround-int4-gs128-asym"
  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 warranty. It has been developed only for research purposes.