Update for Transformers GPTQ support
Browse files- README.md +24 -18
- config.json +35 -24
- gptq_model-4bit-128g.safetensors → model.safetensors +0 -0
- quantize_config.json +1 -1
README.md
CHANGED
@@ -14,17 +14,20 @@ tags:
|
|
14 |
---
|
15 |
|
16 |
<!-- header start -->
|
17 |
-
|
18 |
-
|
|
|
19 |
</div>
|
20 |
<div style="display: flex; justify-content: space-between; width: 100%;">
|
21 |
<div style="display: flex; flex-direction: column; align-items: flex-start;">
|
22 |
-
<p><a href="https://discord.gg/theblokeai">Chat & support:
|
23 |
</div>
|
24 |
<div style="display: flex; flex-direction: column; align-items: flex-end;">
|
25 |
-
<p><a href="https://www.patreon.com/TheBlokeAI">Want to contribute? TheBloke's Patreon page</a></p>
|
26 |
</div>
|
27 |
</div>
|
|
|
|
|
28 |
<!-- header end -->
|
29 |
|
30 |
# CodeUp Llama 2 13B Chat HF - GPTQ
|
@@ -77,11 +80,11 @@ All GPTQ files are made with AutoGPTQ.
|
|
77 |
|
78 |
| Branch | Bits | GS | Act Order | Damp % | GPTQ Dataset | Seq Len | Size | ExLlama | Desc |
|
79 |
| ------ | ---- | -- | --------- | ------ | ------------ | ------- | ---- | ------- | ---- |
|
80 |
-
| [main](https://huggingface.co/TheBloke/CodeUp-Llama-2-13B-Chat-HF-GPTQ/tree/main) | 4 | 128 | No | 0.1 | [Evol Instruct Code](https://huggingface.co/datasets/nickrosh/Evol-Instruct-Code-80k-v1) | 4096 | 7.26 GB | Yes | Most compatible option. Good inference speed in AutoGPTQ and GPTQ-for-LLaMa. Lower inference quality than other options. |
|
81 |
-
| [gptq-4bit-32g-actorder_True](https://huggingface.co/TheBloke/CodeUp-Llama-2-13B-Chat-HF-GPTQ/tree/gptq-4bit-32g-actorder_True) | 4 | 32 | Yes | 0.1 | [Evol Instruct Code](https://huggingface.co/datasets/nickrosh/Evol-Instruct-Code-80k-v1) | 4096 | 8.00 GB | Yes | 4-bit, with Act Order and group size 32g. Gives highest possible inference quality, with maximum VRAM usage. Poor AutoGPTQ CUDA speed. |
|
82 |
-
| [gptq-4bit-64g-actorder_True](https://huggingface.co/TheBloke/CodeUp-Llama-2-13B-Chat-HF-GPTQ/tree/gptq-4bit-64g-actorder_True) | 4 | 64 | Yes | 0.1 | [Evol Instruct Code](https://huggingface.co/datasets/nickrosh/Evol-Instruct-Code-80k-v1) | 4096 | 7.51 GB | Yes | 4-bit, with Act Order and group size 64g. Uses less VRAM than 32g, but with slightly lower accuracy. Poor AutoGPTQ CUDA speed. |
|
83 |
-
| [gptq-4bit-128g-actorder_True](https://huggingface.co/TheBloke/CodeUp-Llama-2-13B-Chat-HF-GPTQ/tree/gptq-4bit-128g-actorder_True) | 4 | 128 | Yes | 0.1 | [Evol Instruct Code](https://huggingface.co/datasets/nickrosh/Evol-Instruct-Code-80k-v1) | 4096 | 7.26 GB | Yes | 4-bit, with Act Order and group size 128g. Uses even less VRAM than 64g, but with slightly lower accuracy. Poor AutoGPTQ CUDA speed. |
|
84 |
-
| [gptq-8bit--1g-actorder_True](https://huggingface.co/TheBloke/CodeUp-Llama-2-13B-Chat-HF-GPTQ/tree/gptq-8bit--1g-actorder_True) | 8 | None | Yes | 0.1 | [Evol Instruct Code](https://huggingface.co/datasets/nickrosh/Evol-Instruct-Code-80k-v1) | 4096 | 13.36 GB | No | 8-bit, with Act Order. No group size, to lower VRAM requirements and to improve AutoGPTQ speed. |
|
85 |
| [gptq-8bit-128g-actorder_True](https://huggingface.co/TheBloke/CodeUp-Llama-2-13B-Chat-HF-GPTQ/tree/gptq-8bit-128g-actorder_True) | 8 | 128 | Yes | 0.1 | [Evol Instruct Code](https://huggingface.co/datasets/nickrosh/Evol-Instruct-Code-80k-v1) | 4096 | 13.65 GB | No | 8-bit, with group size 128g for higher inference quality and with Act Order for even higher accuracy. Poor AutoGPTQ CUDA speed. |
|
86 |
|
87 |
## How to download from branches
|
@@ -200,6 +203,7 @@ The files provided will work with AutoGPTQ (CUDA and Triton modes), GPTQ-for-LLa
|
|
200 |
ExLlama works with Llama models in 4-bit. Please see the Provided Files table above for per-file compatibility.
|
201 |
|
202 |
<!-- footer start -->
|
|
|
203 |
## Discord
|
204 |
|
205 |
For further support, and discussions on these models and AI in general, join us at:
|
@@ -219,13 +223,15 @@ Donaters will get priority support on any and all AI/LLM/model questions and req
|
|
219 |
* Patreon: https://patreon.com/TheBlokeAI
|
220 |
* Ko-Fi: https://ko-fi.com/TheBlokeAI
|
221 |
|
222 |
-
**Special thanks to**:
|
223 |
|
224 |
-
**Patreon special mentions**:
|
225 |
|
226 |
|
227 |
Thank you to all my generous patrons and donaters!
|
228 |
|
|
|
|
|
229 |
<!-- footer end -->
|
230 |
|
231 |
# Original model card: DeepSE's CodeUp Llama 2 13B Chat HF
|
@@ -238,10 +244,10 @@ Thank you to all my generous patrons and donaters!
|
|
238 |
# CodeUp: A Multilingual Code Generation Llama2 Model with Parameter-Efficient Instruction-Tuning on a Single RTX 3090
|
239 |
|
240 |
## Description
|
241 |
-
In recent years, large language models (LLMs) have shown exceptional capabilities in a wide range of applications due to their fantastic emergence ability. To align with human preference, instruction-tuning and reinforcement learning from human feedback (RLHF) are proposed for Chat-based LLMs (e.g., ChatGPT, GPT-4). However, these LLMs (except for Codex) primarily focus on the general domain and are not specifically designed for the code domain. Although Codex provides an alternative choice, it is a closed-source model developed by OpenAI. Hence, it is imperative to develop open-source instruction-following LLMs for the code domain.
|
242 |
-
However, the large-scale number of LLMs' parameters ($\ge$7B) and training datasets require a vast amount of computational resources, which significantly impedes the development of training and inference on consumer hardware.
|
243 |
|
244 |
-
To handle these challenges, in this project, we adopt the latest powerful foundation model `Llama 2` and construct high-quality instruction-following data for code generation tasks, and propose an instruction-following multilingual code generation Llama2 model. Meanwhile, to make it fit an academic budget and consumer hardware (e.g., a single RTX 3090) based on `Alpaca-LoRA`, we equip `CodeUp` with the advanced parameter-efficient fine-tuning (PEFT) methods (e.g., [LoRA](https://arxiv.org/abs/2106.09685)) which enable efficient adaptation of pre-trained language models (PLMs, also known as foundation model) to various downstream applications without fine-tuning the entire model's parameters. The overall training recipe is as follows.
|
245 |
|
246 |
![Training Framework](assets/Framework.jpg)
|
247 |
|
@@ -254,15 +260,15 @@ Recently, it has attracted significant attention to exploiting much larger and m
|
|
254 |
- `output`: `str`, the answer to the instruction as generated by `text-davinci-003`.
|
255 |
|
256 |
### High-quality Data Filter
|
257 |
-
However, after carefully checking the LLMs-self-generated data, we observe three critical problems that may hinder LLMs' instruction learning due to ambiguous and irrelevant noise. That is
|
258 |
|
259 |
1. When `instruction` doesn't specify the programming language (PL) of implementation, the `output` appears with diverse options, e.g., Python, C++, and JavaScript.
|
260 |
2. It is ambiguous to identify which programming language `output` is implemented by.
|
261 |
-
3. Both `instruction` and `output` are irrelevant to the code-specific domain.
|
262 |
|
263 |
-
Hence, we filter the ambiguous and irrelevant data by rigorous design to obtain high-quality instruction data. Specifically, to solve 1) we set Python as the default PL of implementation and use [Guesslang](https://guesslang.readthedocs.io/en/latest/) package to detect the PL of a given source code in `output`. If the Python is detected, this prompt is retained. Otherwise, it will be filtered. 2) and 3) In these cases, we delete these prompts. After that, about 5K low-quality instruction data is filtered. To supplement the high-quality instruction data, we further integrate the `data/new_codealpaca.json` data (about 4.5K) under the above filter rules.
|
264 |
|
265 |
-
This way, we gain the 19K high-quality instruction data of code generation. The following is the instruction number distribution of each PL with Radar visualization before and after filtering.
|
266 |
|
267 |
<!-- | Raw Data (20K + 4K)| Filtered Data (19K) |
|
268 |
| -- | -- |
|
|
|
14 |
---
|
15 |
|
16 |
<!-- header start -->
|
17 |
+
<!-- 200823 -->
|
18 |
+
<div style="width: auto; margin-left: auto; margin-right: auto">
|
19 |
+
<img src="https://i.imgur.com/EBdldam.jpg" alt="TheBlokeAI" style="width: 100%; min-width: 400px; display: block; margin: auto;">
|
20 |
</div>
|
21 |
<div style="display: flex; justify-content: space-between; width: 100%;">
|
22 |
<div style="display: flex; flex-direction: column; align-items: flex-start;">
|
23 |
+
<p style="margin-top: 0.5em; margin-bottom: 0em;"><a href="https://discord.gg/theblokeai">Chat & support: TheBloke's Discord server</a></p>
|
24 |
</div>
|
25 |
<div style="display: flex; flex-direction: column; align-items: flex-end;">
|
26 |
+
<p style="margin-top: 0.5em; margin-bottom: 0em;"><a href="https://www.patreon.com/TheBlokeAI">Want to contribute? TheBloke's Patreon page</a></p>
|
27 |
</div>
|
28 |
</div>
|
29 |
+
<div style="text-align:center; margin-top: 0em; margin-bottom: 0em"><p style="margin-top: 0.25em; margin-bottom: 0em;">TheBloke's LLM work is generously supported by a grant from <a href="https://a16z.com">andreessen horowitz (a16z)</a></p></div>
|
30 |
+
<hr style="margin-top: 1.0em; margin-bottom: 1.0em;">
|
31 |
<!-- header end -->
|
32 |
|
33 |
# CodeUp Llama 2 13B Chat HF - GPTQ
|
|
|
80 |
|
81 |
| Branch | Bits | GS | Act Order | Damp % | GPTQ Dataset | Seq Len | Size | ExLlama | Desc |
|
82 |
| ------ | ---- | -- | --------- | ------ | ------------ | ------- | ---- | ------- | ---- |
|
83 |
+
| [main](https://huggingface.co/TheBloke/CodeUp-Llama-2-13B-Chat-HF-GPTQ/tree/main) | 4 | 128 | No | 0.1 | [Evol Instruct Code](https://huggingface.co/datasets/nickrosh/Evol-Instruct-Code-80k-v1) | 4096 | 7.26 GB | Yes | Most compatible option. Good inference speed in AutoGPTQ and GPTQ-for-LLaMa. Lower inference quality than other options. |
|
84 |
+
| [gptq-4bit-32g-actorder_True](https://huggingface.co/TheBloke/CodeUp-Llama-2-13B-Chat-HF-GPTQ/tree/gptq-4bit-32g-actorder_True) | 4 | 32 | Yes | 0.1 | [Evol Instruct Code](https://huggingface.co/datasets/nickrosh/Evol-Instruct-Code-80k-v1) | 4096 | 8.00 GB | Yes | 4-bit, with Act Order and group size 32g. Gives highest possible inference quality, with maximum VRAM usage. Poor AutoGPTQ CUDA speed. |
|
85 |
+
| [gptq-4bit-64g-actorder_True](https://huggingface.co/TheBloke/CodeUp-Llama-2-13B-Chat-HF-GPTQ/tree/gptq-4bit-64g-actorder_True) | 4 | 64 | Yes | 0.1 | [Evol Instruct Code](https://huggingface.co/datasets/nickrosh/Evol-Instruct-Code-80k-v1) | 4096 | 7.51 GB | Yes | 4-bit, with Act Order and group size 64g. Uses less VRAM than 32g, but with slightly lower accuracy. Poor AutoGPTQ CUDA speed. |
|
86 |
+
| [gptq-4bit-128g-actorder_True](https://huggingface.co/TheBloke/CodeUp-Llama-2-13B-Chat-HF-GPTQ/tree/gptq-4bit-128g-actorder_True) | 4 | 128 | Yes | 0.1 | [Evol Instruct Code](https://huggingface.co/datasets/nickrosh/Evol-Instruct-Code-80k-v1) | 4096 | 7.26 GB | Yes | 4-bit, with Act Order and group size 128g. Uses even less VRAM than 64g, but with slightly lower accuracy. Poor AutoGPTQ CUDA speed. |
|
87 |
+
| [gptq-8bit--1g-actorder_True](https://huggingface.co/TheBloke/CodeUp-Llama-2-13B-Chat-HF-GPTQ/tree/gptq-8bit--1g-actorder_True) | 8 | None | Yes | 0.1 | [Evol Instruct Code](https://huggingface.co/datasets/nickrosh/Evol-Instruct-Code-80k-v1) | 4096 | 13.36 GB | No | 8-bit, with Act Order. No group size, to lower VRAM requirements and to improve AutoGPTQ speed. |
|
88 |
| [gptq-8bit-128g-actorder_True](https://huggingface.co/TheBloke/CodeUp-Llama-2-13B-Chat-HF-GPTQ/tree/gptq-8bit-128g-actorder_True) | 8 | 128 | Yes | 0.1 | [Evol Instruct Code](https://huggingface.co/datasets/nickrosh/Evol-Instruct-Code-80k-v1) | 4096 | 13.65 GB | No | 8-bit, with group size 128g for higher inference quality and with Act Order for even higher accuracy. Poor AutoGPTQ CUDA speed. |
|
89 |
|
90 |
## How to download from branches
|
|
|
203 |
ExLlama works with Llama models in 4-bit. Please see the Provided Files table above for per-file compatibility.
|
204 |
|
205 |
<!-- footer start -->
|
206 |
+
<!-- 200823 -->
|
207 |
## Discord
|
208 |
|
209 |
For further support, and discussions on these models and AI in general, join us at:
|
|
|
223 |
* Patreon: https://patreon.com/TheBlokeAI
|
224 |
* Ko-Fi: https://ko-fi.com/TheBlokeAI
|
225 |
|
226 |
+
**Special thanks to**: Aemon Algiz.
|
227 |
|
228 |
+
**Patreon special mentions**: Sam, theTransient, Jonathan Leane, Steven Wood, webtim, Johann-Peter Hartmann, Geoffrey Montalvo, Gabriel Tamborski, Willem Michiel, John Villwock, Derek Yates, Mesiah Bishop, Eugene Pentland, Pieter, Chadd, Stephen Murray, Daniel P. Andersen, terasurfer, Brandon Frisco, Thomas Belote, Sid, Nathan LeClaire, Magnesian, Alps Aficionado, Stanislav Ovsiannikov, Alex, Joseph William Delisle, Nikolai Manek, Michael Davis, Junyu Yang, K, J, Spencer Kim, Stefan Sabev, Olusegun Samson, transmissions 11, Michael Levine, Cory Kujawski, Rainer Wilmers, zynix, Kalila, Luke @flexchar, Ajan Kanaga, Mandus, vamX, Ai Maven, Mano Prime, Matthew Berman, subjectnull, Vitor Caleffi, Clay Pascal, biorpg, alfie_i, 阿明, Jeffrey Morgan, ya boyyy, Raymond Fosdick, knownsqashed, Olakabola, Leonard Tan, ReadyPlayerEmma, Enrico Ros, Dave, Talal Aujan, Illia Dulskyi, Sean Connelly, senxiiz, Artur Olbinski, Elle, Raven Klaugh, Fen Risland, Deep Realms, Imad Khwaja, Fred von Graf, Will Dee, usrbinkat, SuperWojo, Alexandros Triantafyllidis, Swaroop Kallakuri, Dan Guido, John Detwiler, Pedro Madruga, Iucharbius, Viktor Bowallius, Asp the Wyvern, Edmond Seymore, Trenton Dambrowitz, Space Cruiser, Spiking Neurons AB, Pyrater, LangChain4j, Tony Hughes, Kacper Wikieł, Rishabh Srivastava, David Ziegler, Luke Pendergrass, Andrey, Gabriel Puliatti, Lone Striker, Sebastain Graf, Pierre Kircher, Randy H, NimbleBox.ai, Vadim, danny, Deo Leter
|
229 |
|
230 |
|
231 |
Thank you to all my generous patrons and donaters!
|
232 |
|
233 |
+
And thank you again to a16z for their generous grant.
|
234 |
+
|
235 |
<!-- footer end -->
|
236 |
|
237 |
# Original model card: DeepSE's CodeUp Llama 2 13B Chat HF
|
|
|
244 |
# CodeUp: A Multilingual Code Generation Llama2 Model with Parameter-Efficient Instruction-Tuning on a Single RTX 3090
|
245 |
|
246 |
## Description
|
247 |
+
In recent years, large language models (LLMs) have shown exceptional capabilities in a wide range of applications due to their fantastic emergence ability. To align with human preference, instruction-tuning and reinforcement learning from human feedback (RLHF) are proposed for Chat-based LLMs (e.g., ChatGPT, GPT-4). However, these LLMs (except for Codex) primarily focus on the general domain and are not specifically designed for the code domain. Although Codex provides an alternative choice, it is a closed-source model developed by OpenAI. Hence, it is imperative to develop open-source instruction-following LLMs for the code domain.
|
248 |
+
However, the large-scale number of LLMs' parameters ($\ge$7B) and training datasets require a vast amount of computational resources, which significantly impedes the development of training and inference on consumer hardware.
|
249 |
|
250 |
+
To handle these challenges, in this project, we adopt the latest powerful foundation model `Llama 2` and construct high-quality instruction-following data for code generation tasks, and propose an instruction-following multilingual code generation Llama2 model. Meanwhile, to make it fit an academic budget and consumer hardware (e.g., a single RTX 3090) based on `Alpaca-LoRA`, we equip `CodeUp` with the advanced parameter-efficient fine-tuning (PEFT) methods (e.g., [LoRA](https://arxiv.org/abs/2106.09685)) which enable efficient adaptation of pre-trained language models (PLMs, also known as foundation model) to various downstream applications without fine-tuning the entire model's parameters. The overall training recipe is as follows.
|
251 |
|
252 |
![Training Framework](assets/Framework.jpg)
|
253 |
|
|
|
260 |
- `output`: `str`, the answer to the instruction as generated by `text-davinci-003`.
|
261 |
|
262 |
### High-quality Data Filter
|
263 |
+
However, after carefully checking the LLMs-self-generated data, we observe three critical problems that may hinder LLMs' instruction learning due to ambiguous and irrelevant noise. That is
|
264 |
|
265 |
1. When `instruction` doesn't specify the programming language (PL) of implementation, the `output` appears with diverse options, e.g., Python, C++, and JavaScript.
|
266 |
2. It is ambiguous to identify which programming language `output` is implemented by.
|
267 |
+
3. Both `instruction` and `output` are irrelevant to the code-specific domain.
|
268 |
|
269 |
+
Hence, we filter the ambiguous and irrelevant data by rigorous design to obtain high-quality instruction data. Specifically, to solve 1) we set Python as the default PL of implementation and use [Guesslang](https://guesslang.readthedocs.io/en/latest/) package to detect the PL of a given source code in `output`. If the Python is detected, this prompt is retained. Otherwise, it will be filtered. 2) and 3) In these cases, we delete these prompts. After that, about 5K low-quality instruction data is filtered. To supplement the high-quality instruction data, we further integrate the `data/new_codealpaca.json` data (about 4.5K) under the above filter rules.
|
270 |
|
271 |
+
This way, we gain the 19K high-quality instruction data of code generation. The following is the instruction number distribution of each PL with Radar visualization before and after filtering.
|
272 |
|
273 |
<!-- | Raw Data (20K + 4K)| Filtered Data (19K) |
|
274 |
| -- | -- |
|
config.json
CHANGED
@@ -1,26 +1,37 @@
|
|
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 |
}
|
|
|
1 |
{
|
2 |
+
"_name_or_path": "meta-llama/Llama-2-13b-chat-hf",
|
3 |
+
"architectures": [
|
4 |
+
"LlamaForCausalLM"
|
5 |
+
],
|
6 |
+
"bos_token_id": 1,
|
7 |
+
"eos_token_id": 2,
|
8 |
+
"hidden_act": "silu",
|
9 |
+
"hidden_size": 5120,
|
10 |
+
"initializer_range": 0.02,
|
11 |
+
"intermediate_size": 13824,
|
12 |
+
"max_position_embeddings": 4096,
|
13 |
+
"model_type": "llama",
|
14 |
+
"num_attention_heads": 40,
|
15 |
+
"num_hidden_layers": 40,
|
16 |
+
"num_key_value_heads": 40,
|
17 |
+
"pad_token_id": 0,
|
18 |
+
"pretraining_tp": 1,
|
19 |
+
"rms_norm_eps": 1e-05,
|
20 |
+
"rope_scaling": null,
|
21 |
+
"tie_word_embeddings": false,
|
22 |
+
"torch_dtype": "float16",
|
23 |
+
"transformers_version": "4.31.0",
|
24 |
+
"use_cache": true,
|
25 |
+
"vocab_size": 32000,
|
26 |
+
"quantization_config": {
|
27 |
+
"bits": 4,
|
28 |
+
"group_size": 128,
|
29 |
+
"damp_percent": 0.1,
|
30 |
+
"desc_act": false,
|
31 |
+
"sym": true,
|
32 |
+
"true_sequential": true,
|
33 |
+
"model_name_or_path": null,
|
34 |
+
"model_file_base_name": "model",
|
35 |
+
"quant_method": "gptq"
|
36 |
+
}
|
37 |
}
|
gptq_model-4bit-128g.safetensors → model.safetensors
RENAMED
File without changes
|
quantize_config.json
CHANGED
@@ -6,5 +6,5 @@
|
|
6 |
"sym": true,
|
7 |
"true_sequential": true,
|
8 |
"model_name_or_path": null,
|
9 |
-
"model_file_base_name":
|
10 |
}
|
|
|
6 |
"sym": true,
|
7 |
"true_sequential": true,
|
8 |
"model_name_or_path": null,
|
9 |
+
"model_file_base_name": "model"
|
10 |
}
|