TheBloke commited on
Commit
d803136
1 Parent(s): 9dc5373

Initial GPTQ model commit

Browse files
Files changed (1) hide show
  1. README.md +329 -0
README.md ADDED
@@ -0,0 +1,329 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ ---
2
+ inference: false
3
+ license: other
4
+ ---
5
+
6
+ <!-- header start -->
7
+ <div style="width: 100%;">
8
+ <img src="https://i.imgur.com/EBdldam.jpg" alt="TheBlokeAI" style="width: 100%; min-width: 400px; display: block; margin: auto;">
9
+ </div>
10
+ <div style="display: flex; justify-content: space-between; width: 100%;">
11
+ <div style="display: flex; flex-direction: column; align-items: flex-start;">
12
+ <p><a href="https://discord.gg/theblokeai">Chat & support: my new Discord server</a></p>
13
+ </div>
14
+ <div style="display: flex; flex-direction: column; align-items: flex-end;">
15
+ <p><a href="https://www.patreon.com/TheBlokeAI">Want to contribute? TheBloke's Patreon page</a></p>
16
+ </div>
17
+ </div>
18
+ <!-- header end -->
19
+
20
+ # June Lee's Wizard Vicuna 13B GPTQ
21
+
22
+ These files are GPTQ 4bit model files for [June Lee's Wizard Vicuna 13B](https://huggingface.co/TheBloke/wizard-vicuna-13B-HF) merged with [Kaio Ken's SuperHOT 8K](https://huggingface.co/kaiokendev/superhot-13b-8k-no-rlhf-test).
23
+
24
+ It is the result of quantising to 4bit using [GPTQ-for-LLaMa](https://github.com/qwopqwop200/GPTQ-for-LLaMa).
25
+
26
+ **This is an experimental new GPTQ which offers up to 8K context size**
27
+
28
+ The increased context is tested to work with [ExLlama](https://github.com/turboderp/exllama), via the latest release of [text-generation-webui](https://github.com/oobabooga/text-generation-webui).
29
+
30
+ It has also been tested from Python code using AutoGPTQ, and `trust_remote_code=True`.
31
+
32
+ Code credits:
33
+ - Original concept and code for increasing context length: [kaiokendev](https://huggingface.co/kaiokendev)
34
+ - Updated Llama modelling code that includes this automatically via trust_remote_code: [emozilla](https://huggingface.co/emozilla).
35
+
36
+ Please read carefully below to see how to use it.
37
+
38
+ GGML versions are not yet provided, as there is not yet support for SuperHOT in llama.cpp. This is being investigated and will hopefully come soon.
39
+
40
+ ## Repositories available
41
+
42
+ * [4-bit GPTQ models for GPU inference](https://huggingface.co/TheBloke/wizard-vicuna-13B-SuperHOT-8K-GPTQ)
43
+ * [Unquantised SuperHOT fp16 model in pytorch format, for GPU inference and for further conversions](https://huggingface.co/TheBloke/wizard-vicuna-13B-SuperHOT-8K-fp16)
44
+ * [Unquantised base fp16 model in pytorch format, for GPU inference and for further conversions](https://huggingface.co/junelee/wizard-vicuna-13b)
45
+
46
+ ## How to easily download and use this model in text-generation-webui with ExLlama
47
+
48
+ Please make sure you're using the latest version of text-generation-webui
49
+
50
+ 1. Click the **Model tab**.
51
+ 2. Under **Download custom model or LoRA**, enter `TheBloke/wizard-vicuna-13B-SuperHOT-8K-GPTQ`.
52
+ 3. Click **Download**.
53
+ 4. The model will start downloading. Once it's finished it will say "Done"
54
+ 5. Untick **Autoload the model**
55
+ 6. In the top left, click the refresh icon next to **Model**.
56
+ 7. In the **Model** dropdown, choose the model you just downloaded: `wizard-vicuna-13B-SuperHOT-8K-GPTQ`
57
+ 8. To use the increased context, set the **Loader** to **ExLlama**, set **max_seq_len** to 8192 or 4096, and set **compress_pos_emb** to **4** for 8192 context, or to **2** for 4096 context.
58
+ 9. Now click **Save Settings** followed by **Reload**
59
+ 10. The model will automatically load, and is now ready for use!
60
+ 11. Once you're ready, click the **Text Generation tab** and enter a prompt to get started!
61
+
62
+ ## How to use this GPTQ model from Python code with AutoGPTQ
63
+
64
+ First make sure you have AutoGPTQ and Einops installed:
65
+
66
+ ```
67
+ pip3 install einops auto-gptq
68
+ ```
69
+
70
+ Then run the following code. Note that in order to get this to work, `config.json` has been hardcoded to a sequence length of 8192.
71
+
72
+ If you want to try 4096 instead to reduce VRAM usage, please manually edit `config.json` to set `max_position_embeddings` to the value you want.
73
+
74
+ ```python
75
+ from transformers import AutoTokenizer, pipeline, logging
76
+ from auto_gptq import AutoGPTQForCausalLM, BaseQuantizeConfig
77
+ import argparse
78
+
79
+ model_name_or_path = "TheBloke/wizard-vicuna-13B-SuperHOT-8K-GPTQ"
80
+ model_basename = "wizard-vicuna-13b-superhot-8k-GPTQ-4bit-128g.no-act.order"
81
+
82
+ use_triton = False
83
+
84
+ tokenizer = AutoTokenizer.from_pretrained(model_name_or_path, use_fast=True)
85
+
86
+ model = AutoGPTQForCausalLM.from_quantized(model_name_or_path,
87
+ model_basename=model_basename,
88
+ use_safetensors=True,
89
+ trust_remote_code=True,
90
+ device_map='auto',
91
+ use_triton=use_triton,
92
+ quantize_config=None)
93
+
94
+ model.seqlen = 8192
95
+
96
+ # Note: check the prompt template is correct for this model.
97
+ prompt = "Tell me about AI"
98
+ prompt_template=f'''USER: {prompt}
99
+ ASSISTANT:'''
100
+
101
+ print("\n\n*** Generate:")
102
+
103
+ input_ids = tokenizer(prompt_template, return_tensors='pt').input_ids.cuda()
104
+ output = model.generate(inputs=input_ids, temperature=0.7, max_new_tokens=512)
105
+ print(tokenizer.decode(output[0]))
106
+
107
+ # Inference can also be done using transformers' pipeline
108
+
109
+ # Prevent printing spurious transformers error when using pipeline with AutoGPTQ
110
+ logging.set_verbosity(logging.CRITICAL)
111
+
112
+ print("*** Pipeline:")
113
+ pipe = pipeline(
114
+ "text-generation",
115
+ model=model,
116
+ tokenizer=tokenizer,
117
+ max_new_tokens=512,
118
+ temperature=0.7,
119
+ top_p=0.95,
120
+ repetition_penalty=1.15
121
+ )
122
+
123
+ print(pipe(prompt_template)[0]['generated_text'])
124
+ ```
125
+
126
+ ## Using other UIs: monkey patch
127
+
128
+ Provided in the repo is `llama_rope_scaled_monkey_patch.py`, written by @kaiokendev.
129
+
130
+ It can be theoretically be added to any Python UI or custom code to enable the same result as `trust_remote_code=True`. I have not tested this, and it should be superseded by using `trust_remote_code=True`, but I include it for completeness and for interest.
131
+
132
+ ## Provided files
133
+
134
+ **wizard-vicuna-13b-superhot-8k-GPTQ-4bit-128g.no-act.order.safetensors**
135
+
136
+ This will work with AutoGPTQ, ExLlama, and CUDA versions of GPTQ-for-LLaMa. There are reports of issues with Triton mode of recent GPTQ-for-LLaMa. If you have issues, please use AutoGPTQ instead.
137
+
138
+ It was created with group_size 128 to increase inference accuracy, but without --act-order (desc_act) to increase compatibility and improve inference speed.
139
+
140
+ * `wizard-vicuna-13b-superhot-8k-GPTQ-4bit-128g.no-act.order.safetensors`
141
+ * Works for use with ExLlama with increased context (4096 or 8192)
142
+ * Works with AutoGPTQ in Python code, including with increased context, if `trust_remote_code=True` is set.
143
+ * Should work with GPTQ-for-LLaMa in CUDA mode, but unknown if increased context works - TBC. May have issues with GPTQ-for-LLaMa Triton mode.
144
+ * Works with text-generation-webui, including one-click-installers.
145
+ * Parameters: Groupsize = 128. Act Order / desc_act = False.
146
+
147
+ <!-- footer start -->
148
+ ## Discord
149
+
150
+ For further support, and discussions on these models and AI in general, join us at:
151
+
152
+ [TheBloke AI's Discord server](https://discord.gg/theblokeai)
153
+
154
+ ## Thanks, and how to contribute.
155
+
156
+ Thanks to the [chirper.ai](https://chirper.ai) team!
157
+
158
+ I've had a lot of people ask if they can contribute. I enjoy providing models and helping people, and would love to be able to spend even more time doing it, as well as expanding into new projects like fine tuning/training.
159
+
160
+ If you're able and willing to contribute it will be most gratefully received and will help me to keep providing more models, and to start work on new AI projects.
161
+
162
+ Donaters will get priority support on any and all AI/LLM/model questions and requests, access to a private Discord room, plus other benefits.
163
+
164
+ * Patreon: https://patreon.com/TheBlokeAI
165
+ * Ko-Fi: https://ko-fi.com/TheBlokeAI
166
+
167
+ **Special thanks to**: Luke from CarbonQuill, Aemon Algiz, Dmitriy Samsonov.
168
+
169
+ **Patreon special mentions**: Pyrater, WelcomeToTheClub, Kalila, Mano Prime, Trenton Dambrowitz, Spiking Neurons AB, Pierre Kircher, Fen Risland, Kevin Schuppel, Luke, Rainer Wilmers, vamX, Gabriel Puliatti, Alex , Karl Bernard, Ajan Kanaga, Talal Aujan, Space Cruiser, ya boyyy, biorpg, Johann-Peter Hartmann, Asp the Wyvern, Ai Maven, Ghost , Preetika Verma, Nikolai Manek, trip7s trip, John Detwiler, Fred von Graf, Artur Olbinski, subjectnull, John Villwock, Junyu Yang, Rod A, Lone Striker, Chris McCloskey, Iucharbius , Matthew Berman, Illia Dulskyi, Khalefa Al-Ahmad, Imad Khwaja, chris gileta, Willem Michiel, Greatston Gnanesh, Derek Yates, K, Alps Aficionado, Oscar Rangel, David Flickinger, Luke Pendergrass, Deep Realms, Eugene Pentland, Cory Kujawski, terasurfer , Jonathan Leane, senxiiz, Joseph William Delisle, Sean Connelly, webtim, zynix , Nathan LeClaire.
170
+
171
+ Thank you to all my generous patrons and donaters!
172
+
173
+ <!-- footer end -->
174
+
175
+ # Original model card: Kaio Ken's SuperHOT 8K
176
+
177
+ ### SuperHOT Prototype 2 w/ 8K Context
178
+
179
+ This is a second prototype of SuperHOT, this time 30B with 8K context and no RLHF, using the same technique described in [the github blog](https://kaiokendev.github.io/til#extending-context-to-8k).
180
+ Tests have shown that the model does indeed leverage the extended context at 8K.
181
+
182
+ You will need to **use either the monkeypatch** or, if you are already using the monkeypatch, **change the scaling factor to 0.25 and the maximum sequence length to 8192**
183
+
184
+ #### Looking for Merged & Quantized Models?
185
+ - 30B 4-bit CUDA: [tmpupload/superhot-30b-8k-4bit-safetensors](https://huggingface.co/tmpupload/superhot-30b-8k-4bit-safetensors)
186
+ - 30B 4-bit CUDA 128g: [tmpupload/superhot-30b-8k-4bit-128g-safetensors](https://huggingface.co/tmpupload/superhot-30b-8k-4bit-128g-safetensors)
187
+
188
+
189
+ #### Training Details
190
+ I trained the LoRA with the following configuration:
191
+ - 1200 samples (~400 samples over 2048 sequence length)
192
+ - learning rate of 3e-4
193
+ - 3 epochs
194
+ - The exported modules are:
195
+ - q_proj
196
+ - k_proj
197
+ - v_proj
198
+ - o_proj
199
+ - no bias
200
+ - Rank = 4
201
+ - Alpha = 8
202
+ - no dropout
203
+ - weight decay of 0.1
204
+ - AdamW beta1 of 0.9 and beta2 0.99, epsilon of 1e-5
205
+ - Trained on 4-bit base model
206
+
207
+ # Original model card: June Lee's Wizard Vicuna 13B
208
+
209
+ <!-- header start -->
210
+ <div style="width: 100%;">
211
+ <img src="https://i.imgur.com/EBdldam.jpg" alt="TheBlokeAI" style="width: 100%; min-width: 400px; display: block; margin: auto;">
212
+ </div>
213
+ <div style="display: flex; justify-content: space-between; width: 100%;">
214
+ <div style="display: flex; flex-direction: column; align-items: flex-start;">
215
+ <p><a href="https://discord.gg/Jq4vkcDakD">Chat & support: my new Discord server</a></p>
216
+ </div>
217
+ <div style="display: flex; flex-direction: column; align-items: flex-end;">
218
+ <p><a href="https://www.patreon.com/TheBlokeAI">Want to contribute? TheBloke's Patreon page</a></p>
219
+ </div>
220
+ </div>
221
+ <!-- header end -->
222
+ # Wizard-Vicuna-13B-HF
223
+
224
+ This is a float16 HF format repo for [junelee's wizard-vicuna 13B](https://huggingface.co/junelee/wizard-vicuna-13b).
225
+
226
+ June Lee's repo was also HF format. The reason I've made this is that the original repo was in float32, meaning it required 52GB disk space, VRAM and RAM.
227
+
228
+ This model was converted to float16 to make it easier to load and manage.
229
+
230
+ ## Repositories available
231
+
232
+ * [4bit GPTQ models for GPU inference](https://huggingface.co/TheBloke/wizard-vicuna-13B-GPTQ).
233
+ * [4bit and 5bit GGML models for CPU inference](https://huggingface.co/TheBloke/wizard-vicuna-13B-GGML).
234
+ * [float16 HF format model for GPU inference](https://huggingface.co/TheBloke/wizard-vicuna-13B-HF).
235
+
236
+ <!-- footer start -->
237
+ ## Discord
238
+
239
+ For further support, and discussions on these models and AI in general, join us at:
240
+
241
+ [TheBloke AI's Discord server](https://discord.gg/Jq4vkcDakD)
242
+
243
+ ## Thanks, and how to contribute.
244
+
245
+ Thanks to the [chirper.ai](https://chirper.ai) team!
246
+
247
+ I've had a lot of people ask if they can contribute. I enjoy providing models and helping people, and would love to be able to spend even more time doing it, as well as expanding into new projects like fine tuning/training.
248
+
249
+ If you're able and willing to contribute it will be most gratefully received and will help me to keep providing more models, and to start work on new AI projects.
250
+
251
+ Donaters will get priority support on any and all AI/LLM/model questions and requests, access to a private Discord room, plus other benefits.
252
+
253
+ * Patreon: https://patreon.com/TheBlokeAI
254
+ * Ko-Fi: https://ko-fi.com/TheBlokeAI
255
+
256
+ **Patreon special mentions**: Aemon Algiz, Dmitriy Samsonov, Nathan LeClaire, Trenton Dambrowitz, Mano Prime, David Flickinger, vamX, Nikolai Manek, senxiiz, Khalefa Al-Ahmad, Illia Dulskyi, Jonathan Leane, Talal Aujan, V. Lukas, Joseph William Delisle, Pyrater, Oscar Rangel, Lone Striker, Luke Pendergrass, Eugene Pentland, Sebastain Graf, Johann-Peter Hartman.
257
+
258
+ Thank you to all my generous patrons and donaters!
259
+ <!-- footer end -->
260
+
261
+ # Original WizardVicuna-13B model card
262
+
263
+ Github page: https://github.com/melodysdreamj/WizardVicunaLM
264
+
265
+ # WizardVicunaLM
266
+ ### Wizard's dataset + ChatGPT's conversation extension + Vicuna's tuning method
267
+ I am a big fan of the ideas behind WizardLM and VicunaLM. I particularly like the idea of WizardLM handling the dataset itself more deeply and broadly, as well as VicunaLM overcoming the limitations of single-turn conversations by introducing multi-round conversations. As a result, I combined these two ideas to create WizardVicunaLM. This project is highly experimental and designed for proof of concept, not for actual usage.
268
+
269
+
270
+ ## Benchmark
271
+ ### Approximately 7% performance improvement over VicunaLM
272
+ ![](https://user-images.githubusercontent.com/21379657/236088663-3fa212c9-0112-4d44-9b01-f16ea093cb67.png)
273
+
274
+
275
+ ### Detail
276
+
277
+ The questions presented here are not from rigorous tests, but rather, I asked a few questions and requested GPT-4 to score them. The models compared were ChatGPT 3.5, WizardVicunaLM, VicunaLM, and WizardLM, in that order.
278
+
279
+ | | gpt3.5 | wizard-vicuna-13b | vicuna-13b | wizard-7b | link |
280
+ |-----|--------|-------------------|------------|-----------|----------|
281
+ | Q1 | 95 | 90 | 85 | 88 | [link](https://sharegpt.com/c/YdhIlby) |
282
+ | Q2 | 95 | 97 | 90 | 89 | [link](https://sharegpt.com/c/YOqOV4g) |
283
+ | Q3 | 85 | 90 | 80 | 65 | [link](https://sharegpt.com/c/uDmrcL9) |
284
+ | Q4 | 90 | 85 | 80 | 75 | [link](https://sharegpt.com/c/XBbK5MZ) |
285
+ | Q5 | 90 | 85 | 80 | 75 | [link](https://sharegpt.com/c/AQ5tgQX) |
286
+ | Q6 | 92 | 85 | 87 | 88 | [link](https://sharegpt.com/c/eVYwfIr) |
287
+ | Q7 | 95 | 90 | 85 | 92 | [link](https://sharegpt.com/c/Kqyeub4) |
288
+ | Q8 | 90 | 85 | 75 | 70 | [link](https://sharegpt.com/c/M0gIjMF) |
289
+ | Q9 | 92 | 85 | 70 | 60 | [link](https://sharegpt.com/c/fOvMtQt) |
290
+ | Q10 | 90 | 80 | 75 | 85 | [link](https://sharegpt.com/c/YYiCaUz) |
291
+ | Q11 | 90 | 85 | 75 | 65 | [link](https://sharegpt.com/c/HMkKKGU) |
292
+ | Q12 | 85 | 90 | 80 | 88 | [link](https://sharegpt.com/c/XbW6jgB) |
293
+ | Q13 | 90 | 95 | 88 | 85 | [link](https://sharegpt.com/c/JXZb7y6) |
294
+ | Q14 | 94 | 89 | 90 | 91 | [link](https://sharegpt.com/c/cTXH4IS) |
295
+ | Q15 | 90 | 85 | 88 | 87 | [link](https://sharegpt.com/c/GZiM0Yt) |
296
+ | | 91 | 88 | 82 | 80 | |
297
+
298
+
299
+ ## Principle
300
+
301
+ We adopted the approach of WizardLM, which is to extend a single problem more in-depth. However, instead of using individual instructions, we expanded it using Vicuna's conversation format and applied Vicuna's fine-tuning techniques.
302
+
303
+ Turning a single command into a rich conversation is what we've done [here](https://sharegpt.com/c/6cmxqq0).
304
+
305
+ After creating the training data, I later trained it according to the Vicuna v1.1 [training method](https://github.com/lm-sys/FastChat/blob/main/scripts/train_vicuna_13b.sh).
306
+
307
+
308
+ ## Detailed Method
309
+
310
+ First, we explore and expand various areas in the same topic using the 7K conversations created by WizardLM. However, we made it in a continuous conversation format instead of the instruction format. That is, it starts with WizardLM's instruction, and then expands into various areas in one conversation using ChatGPT 3.5.
311
+
312
+ After that, we applied the following model using Vicuna's fine-tuning format.
313
+
314
+ ## Training Process
315
+
316
+ Trained with 8 A100 GPUs for 35 hours.
317
+
318
+ ## Weights
319
+ You can see the [dataset](https://huggingface.co/datasets/junelee/wizard_vicuna_70k) we used for training and the [13b model](https://huggingface.co/junelee/wizard-vicuna-13b) in the huggingface.
320
+
321
+ ## Conclusion
322
+ If we extend the conversation to gpt4 32K, we can expect a dramatic improvement, as we can generate 8x more, more accurate and richer conversations.
323
+
324
+ ## License
325
+ The model is licensed under the LLaMA model, and the dataset is licensed under the terms of OpenAI because it uses ChatGPT. Everything else is free.
326
+
327
+ ## Author
328
+
329
+ [JUNE LEE](https://github.com/melodysdreamj) - He is active in Songdo Artificial Intelligence Study and GDG Songdo.