|
--- |
|
language: |
|
- en |
|
pipeline_tag: text-generation |
|
tags: |
|
- AWQ |
|
inference: false |
|
--- |
|
|
|
# Stable Beluga 7B |
|
|
|
`Stable Beluga 7B` is a Llama2 7B model finetuned on an Orca style Dataset. |
|
|
|
This model is a 4-bit 128 group size AWQ quantized model. For more information about AWQ quantization, please click [here](https://github.com/mit-han-lab/llm-awq). |
|
|
|
## Model Date |
|
|
|
July 29, 2023 |
|
|
|
## Model License |
|
|
|
Please refer to original StableBeluga model license ([link](https://huggingface.co/stabilityai/StableBeluga-7B)). |
|
|
|
Please refer to the AWQ quantization license ([link](https://github.com/llm-awq/blob/main/LICENSE)). |
|
|
|
## CUDA Version |
|
|
|
This model was successfully tested on CUDA driver v530.30.02 and runtime v11.7 with Python v3.10.11. Please note that AWQ requires NVIDIA GPUs with compute capability of `8.0` or higher. |
|
|
|
For Docker users, the `nvcr.io/nvidia/pytorch:23.06-py3` image is runtime v12.1 but otherwise the same as the configuration above and has also been verified to work. |
|
|
|
## How to Use |
|
|
|
```bash |
|
git clone https://github.com/mit-han-lab/llm-awq \ |
|
&& cd llm-awq \ |
|
&& git checkout f084f40bd996f3cf3a0633c1ad7d9d476c318aaa \ |
|
&& pip install -e . \ |
|
&& cd awq/kernels \ |
|
&& python setup.py install |
|
``` |
|
|
|
```python |
|
import time |
|
import torch |
|
from awq.quantize.quantizer import real_quantize_model_weight |
|
from transformers import AutoModelForCausalLM, AutoConfig, AutoTokenizer, TextStreamer |
|
from accelerate import init_empty_weights, load_checkpoint_and_dispatch |
|
from huggingface_hub import snapshot_download |
|
|
|
model_name = "abhinavkulkarni/stabilityai-StableBeluga-7B-w4-g128-awq" |
|
|
|
# Config |
|
config = AutoConfig.from_pretrained(model_name, trust_remote_code=True) |
|
|
|
# Tokenizer |
|
try: |
|
tokenizer = AutoTokenizer.from_pretrained(config.tokenizer_name, trust_remote_code=True) |
|
except: |
|
tokenizer = AutoTokenizer.from_pretrained(model_name, use_fast=False, trust_remote_code=True) |
|
streamer = TextStreamer(tokenizer, skip_special_tokens=True) |
|
|
|
# Model |
|
w_bit = 4 |
|
q_config = { |
|
"zero_point": True, |
|
"q_group_size": 128, |
|
} |
|
|
|
load_quant = snapshot_download(model_name) |
|
|
|
with init_empty_weights(): |
|
model = AutoModelForCausalLM.from_config(config=config, |
|
torch_dtype=torch.float16, trust_remote_code=True) |
|
|
|
real_quantize_model_weight(model, w_bit=w_bit, q_config=q_config, init_only=True) |
|
model.tie_weights() |
|
|
|
model = load_checkpoint_and_dispatch(model, load_quant, device_map="balanced") |
|
|
|
# Inference |
|
prompt = f'''What is the difference between nuclear fusion and fission? |
|
###Response:''' |
|
|
|
input_ids = tokenizer(prompt, return_tensors='pt').input_ids.cuda() |
|
output = model.generate( |
|
inputs=input_ids, |
|
temperature=0.7, |
|
max_new_tokens=512, |
|
top_p=0.15, |
|
top_k=0, |
|
repetition_penalty=1.1, |
|
eos_token_id=tokenizer.eos_token_id, |
|
streamer=streamer) |
|
``` |
|
|
|
## Evaluation |
|
|
|
This evaluation was done using [LM-Eval](https://github.com/EleutherAI/lm-evaluation-harness). |
|
|
|
[StableBeluga-7B](https://huggingface.co/stabilityai/StableBeluga-7B) |
|
|
|
| Task |Version| Metric |Value | |Stderr| |
|
|--------|------:|---------------|-----:|---|------| |
|
|wikitext| 1|word_perplexity|9.5097| | | |
|
| | |byte_perplexity|1.5238| | | |
|
| | |bits_per_byte |0.6077| | | |
|
|
|
[StableBeluga-7B (4-bit 128-group AWQ)](https://huggingface.co/abhinavkulkarni/stabilityai-StableBeluga-7B-w4-g128-awq) |
|
|
|
| Task |Version| Metric |Value | |Stderr| |
|
|--------|------:|---------------|-----:|---|------| |
|
|wikitext| 1|word_perplexity|9.7783| | | |
|
| | |byte_perplexity|1.5317| | | |
|
| | |bits_per_byte |0.6152| | | |
|
|
|
## Acknowledgements |
|
|
|
Please cite this model using the following format: |
|
|
|
```bibtext |
|
@misc{touvron2023llama, |
|
title={Llama 2: Open Foundation and Fine-Tuned Chat Models}, |
|
author={Hugo Touvron and Louis Martin and Kevin Stone and Peter Albert and Amjad Almahairi and Yasmine Babaei and Nikolay Bashlykov and Soumya Batra and Prajjwal Bhargava and Shruti Bhosale and Dan Bikel and Lukas Blecher and Cristian Canton Ferrer and Moya Chen and Guillem Cucurull and David Esiobu and Jude Fernandes and Jeremy Fu and Wenyin Fu and Brian Fuller and Cynthia Gao and Vedanuj Goswami and Naman Goyal and Anthony Hartshorn and Saghar Hosseini and Rui Hou and Hakan Inan and Marcin Kardas and Viktor Kerkez and Madian Khabsa and Isabel Kloumann and Artem Korenev and Punit Singh Koura and Marie-Anne Lachaux and Thibaut Lavril and Jenya Lee and Diana Liskovich and Yinghai Lu and Yuning Mao and Xavier Martinet and Todor Mihaylov and Pushkar Mishra and Igor Molybog and Yixin Nie and Andrew Poulton and Jeremy Reizenstein and Rashi Rungta and Kalyan Saladi and Alan Schelten and Ruan Silva and Eric Michael Smith and Ranjan Subramanian and Xiaoqing Ellen Tan and Binh Tang and Ross Taylor and Adina Williams and Jian Xiang Kuan and Puxin Xu and Zheng Yan and Iliyan Zarov and Yuchen Zhang and Angela Fan and Melanie Kambadur and Sharan Narang and Aurelien Rodriguez and Robert Stojnic and Sergey Edunov and Thomas Scialom}, |
|
year={2023}, |
|
eprint={2307.09288}, |
|
archivePrefix={arXiv}, |
|
primaryClass={cs.CL} |
|
} |
|
``` |
|
|
|
```bibtext |
|
@misc{mukherjee2023orca, |
|
title={Orca: Progressive Learning from Complex Explanation Traces of GPT-4}, |
|
author={Subhabrata Mukherjee and Arindam Mitra and Ganesh Jawahar and Sahaj Agarwal and Hamid Palangi and Ahmed Awadallah}, |
|
year={2023}, |
|
eprint={2306.02707}, |
|
archivePrefix={arXiv}, |
|
primaryClass={cs.CL} |
|
} |
|
``` |
|
|
|
The model was quantized with AWQ technique. If you find AWQ useful or relevant to your research, please kindly cite the paper: |
|
|
|
``` |
|
@article{lin2023awq, |
|
title={AWQ: Activation-aware Weight Quantization for LLM Compression and Acceleration}, |
|
author={Lin, Ji and Tang, Jiaming and Tang, Haotian and Yang, Shang and Dang, Xingyu and Han, Song}, |
|
journal={arXiv}, |
|
year={2023} |
|
} |
|
``` |
|
|