Spaces:
No application file
No application file
# AWQ 4bit Inference | |
We integrated [AWQ](https://github.com/mit-han-lab/llm-awq) into FastChat to provide **efficient and accurate** 4bit LLM inference. | |
## Install AWQ | |
Setup environment (please refer to [this link](https://github.com/mit-han-lab/llm-awq#install) for more details): | |
```bash | |
conda create -n fastchat-awq python=3.10 -y | |
conda activate fastchat-awq | |
# cd /path/to/FastChat | |
pip install --upgrade pip # enable PEP 660 support | |
pip install -e . # install fastchat | |
git clone https://github.com/mit-han-lab/llm-awq repositories/llm-awq | |
cd repositories/llm-awq | |
pip install -e . # install awq package | |
cd awq/kernels | |
python setup.py install # install awq CUDA kernels | |
``` | |
## Chat with the CLI | |
```bash | |
# Download quantized model from huggingface | |
# Make sure you have git-lfs installed (https://git-lfs.com) | |
git lfs install | |
git clone https://huggingface.co/mit-han-lab/vicuna-7b-v1.3-4bit-g128-awq | |
# You can specify which quantized model to use by setting --awq-ckpt | |
python3 -m fastchat.serve.cli \ | |
--model-path models/vicuna-7b-v1.3-4bit-g128-awq \ | |
--awq-wbits 4 \ | |
--awq-groupsize 128 | |
``` | |
## Benchmark | |
* Through **4-bit weight quantization**, AWQ helps to run larger language models within the device memory restriction and prominently accelerates token generation. All benchmarks are done with group_size 128. | |
* Benchmark on NVIDIA RTX A6000: | |
| Model | Bits | Max Memory (MiB) | Speed (ms/token) | AWQ Speedup | | |
| --------------- | ---- | ---------------- | ---------------- | ----------- | | |
| vicuna-7b | 16 | 13543 | 26.06 | / | | |
| vicuna-7b | 4 | 5547 | 12.43 | 2.1x | | |
| llama2-7b-chat | 16 | 13543 | 27.14 | / | | |
| llama2-7b-chat | 4 | 5547 | 12.44 | 2.2x | | |
| vicuna-13b | 16 | 25647 | 44.91 | / | | |
| vicuna-13b | 4 | 9355 | 17.30 | 2.6x | | |
| llama2-13b-chat | 16 | 25647 | 47.28 | / | | |
| llama2-13b-chat | 4 | 9355 | 20.28 | 2.3x | | |
* NVIDIA RTX 4090: | |
| Model | AWQ 4bit Speed (ms/token) | FP16 Speed (ms/token) | AWQ Speedup | | |
| --------------- | ------------------------- | --------------------- | ----------- | | |
| vicuna-7b | 8.61 | 19.09 | 2.2x | | |
| llama2-7b-chat | 8.66 | 19.97 | 2.3x | | |
| vicuna-13b | 12.17 | OOM | / | | |
| llama2-13b-chat | 13.54 | OOM | / | | |
* NVIDIA Jetson Orin: | |
| Model | AWQ 4bit Speed (ms/token) | FP16 Speed (ms/token) | AWQ Speedup | | |
| --------------- | ------------------------- | --------------------- | ----------- | | |
| vicuna-7b | 65.34 | 93.12 | 1.4x | | |
| llama2-7b-chat | 75.11 | 104.71 | 1.4x | | |
| vicuna-13b | 115.40 | OOM | / | | |
| llama2-13b-chat | 136.81 | OOM | / | | |