fbaldassarri's picture
Initial Upload
d1fa82f verified
metadata
language:
  - en
tags:
  - pytorch
  - causal-lm
  - pythia
  - autoround
  - intel
  - gptq
  - woq
license: apache-2.0
model_name: Pythia 12b
base_model: EleutherAI/pythia-12b
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-12b 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

Note: this INT4 version of pythia-12b 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-12b"
  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-12b-autoround-int4-gs128-asym"
  autoround.save_quantized(output_dir, format='auto_round', inplace=True)

License

Apache 2.0 License

Disclaimer

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