|
--- |
|
license: other |
|
language: |
|
- en |
|
pipeline_tag: text2text-generation |
|
tags: |
|
- alpaca |
|
- llama |
|
- chat |
|
- gpt4 |
|
inference: false |
|
--- |
|
# GPT4 Alpaca LoRA 30B - 4bit GGML |
|
|
|
This is a 4-bit GGML version of the [Chansung GPT4 Alpaca 30B LoRA model](https://huggingface.co/chansung/gpt4-alpaca-lora-30b). |
|
|
|
It was created by merging the LoRA provided in the above repo with the original Llama 30B model, producing unquantised model [GPT4-Alpaca-LoRA-30B-HF](https://huggingface.co/TheBloke/gpt4-alpaca-lora-30b-HF) |
|
|
|
The files in this repo were then quantized to 4bit and 5bit for use with [llama.cpp](https://github.com/ggerganov/llama.cpp). |
|
|
|
## Provided files |
|
| Name | Quant method | Bits | Size | RAM required | Use case | |
|
| ---- | ---- | ---- | ---- | ---- | ----- | |
|
`gpt4-alpaca-lora-30B.GGML.q4_0.bin` | q4_0 | 4bit | 20.3GB | 23GB | Maximum compatibility | |
|
`gpt4-alpaca-lora-30B.GGML.q4_2.bin` | q4_2 | 4bit | 20.3GB | 23GB | Best compromise between resources, speed and quality | |
|
`gpt4-alpaca-lora-30B.GGML.q5_0.bin` | q5_0 | 5bit | 22.4GB | 25GB | Brand new 5bit method. Potentially higher quality than 4bit, at cost of slightly higher resources. | |
|
`gpt4-alpaca-lora-30B.GGML.q5_1.bin` | q5_1 | 5bit | 24.4GB | 27GB | Brand new 5bit method. Slightly higher resource usage than q5_0.| |
|
|
|
* The q4_0 file provides lower quality, but maximal compatibility. It will work with past and future versions of llama.cpp* The q4_0 file provides lower quality, but maximal compatibility. It will work with past and future versions of llama.cpp |
|
* The q4_2 file offers the best combination of performance and quality. This format is still subject to change and there may be compatibility issues, see below. |
|
* The q5_0 file is using brand new 5bit method released 26th April. This is the 5bit equivalent of q4_0. |
|
* The q5_1 file is using brand new 5bit method released 26th April. This is the 5bit equivalent of q4_1. |
|
|
|
## q4_2 compatibility |
|
|
|
q4_2 is a relatively new 4bit quantisation method offering improved quality. However they are still under development and their formats are subject to change. |
|
|
|
In order to use these files you will need to use recent llama.cpp code. And it's possible that future updates to llama.cpp could require that these files are re-generated. |
|
|
|
If and when the q4_2 file no longer works with recent versions of llama.cpp I will endeavour to update it. |
|
|
|
If you want to ensure guaranteed compatibility with a wide range of llama.cpp versions, use the q4_0 file. |
|
|
|
## q5_0 and q5_1 compatibility |
|
|
|
These new methods were released to llama.cpp on 26th April. You will need to pull the latest llama.cpp code and rebuild to be able to use them. |
|
|
|
Third-party UIs/tools may not support this yet. |
|
|
|
## How to run in `llama.cpp` |
|
|
|
I use the following command line; adjust for your tastes and needs: |
|
|
|
``` |
|
./main -t 18 -m gpt4-alpaca-lora-30B.GGML.q4_2.bin --color -c 2048 --temp 0.7 --repeat_penalty 1.1 -n -1 -p "Below is an instruction that describes a task. Write a response that appropriately completes the request. |
|
### Instruction: |
|
Write a story about llamas |
|
### Response:" |
|
``` |
|
Change `-t 18` to the number of physical CPU cores you have. For example if your system has 8 cores/16 threads, use `-t 8`. |
|
|
|
If you want to have a chat-style conversation, replace the `-p <PROMPT>` argument with `-i -ins` |
|
|
|
## How to run in `text-generation-webui` |
|
|
|
Create a model directory that has `ggml` (case sensitive) in its name. Then put the desired .bin file in that model directory. |
|
|
|
Further instructions here: [text-generation-webui/docs/llama.cpp-models.md](https://github.com/oobabooga/text-generation-webui/blob/main/docs/llama.cpp-models.md). |
|
|
|
# Original GPT4 Alpaca Lora model card |
|
|
|
This repository comes with LoRA checkpoint to make LLaMA into a chatbot like language model. The checkpoint is the output of instruction following fine-tuning process with the following settings on 8xA100(40G) DGX system. |
|
- Training script: borrowed from the official [Alpaca-LoRA](https://github.com/tloen/alpaca-lora) implementation |
|
- Training script: |
|
```shell |
|
python finetune.py \ |
|
--base_model='decapoda-research/llama-30b-hf' \ |
|
--data_path='alpaca_data_gpt4.json' \ |
|
--num_epochs=10 \ |
|
--cutoff_len=512 \ |
|
--group_by_length \ |
|
--output_dir='./gpt4-alpaca-lora-30b' \ |
|
--lora_target_modules='[q_proj,k_proj,v_proj,o_proj]' \ |
|
--lora_r=16 \ |
|
--batch_size=... \ |
|
--micro_batch_size=... |
|
``` |
|
|
|
You can find how the training went from W&B report [here](https://wandb.ai/chansung18/gpt4_alpaca_lora/runs/w3syd157?workspace=user-chansung18). |
|
|