273 lines
13 KiB
Markdown
273 lines
13 KiB
Markdown
|
|
---
|
||
|
|
inference: false
|
||
|
|
license: other
|
||
|
|
---
|
||
|
|
|
||
|
|
<!-- header start -->
|
||
|
|
<div style="width: 100%;">
|
||
|
|
<img src="https://i.imgur.com/EBdldam.jpg" alt="TheBlokeAI" style="width: 100%; min-width: 400px; display: block; margin: auto;">
|
||
|
|
</div>
|
||
|
|
<div style="display: flex; justify-content: space-between; width: 100%;">
|
||
|
|
<div style="display: flex; flex-direction: column; align-items: flex-start;">
|
||
|
|
<p><a href="https://discord.gg/theblokeai">Chat & support: my new Discord server</a></p>
|
||
|
|
</div>
|
||
|
|
<div style="display: flex; flex-direction: column; align-items: flex-end;">
|
||
|
|
<p><a href="https://www.patreon.com/TheBlokeAI">Want to contribute? TheBloke's Patreon page</a></p>
|
||
|
|
</div>
|
||
|
|
</div>
|
||
|
|
<!-- header end -->
|
||
|
|
|
||
|
|
# Koala 7B fp16
|
||
|
|
|
||
|
|
These are fp16 pytorch format model files for [Koala 7B](https://huggingface.co/TheBloke/koala-7B-HF) merged with [Kaio Ken's SuperHOT 8K](https://huggingface.co/kaiokendev/superhot-7b-8k-no-rlhf-test).
|
||
|
|
|
||
|
|
[Kaio Ken's SuperHOT 7b LoRA](https://huggingface.co/kaiokendev/superhot-7b-8k-no-rlhf-test) is merged on to the base model, and then 8K context can be achieved during inference by using `trust_remote_code=True`.
|
||
|
|
|
||
|
|
Note that `config.json` has been set to a sequence length of 8192. This can be modified to 4096 if you want to try with a smaller sequence length.
|
||
|
|
|
||
|
|
## Repositories available
|
||
|
|
|
||
|
|
* [4-bit GPTQ models for GPU inference](https://huggingface.co/TheBloke/Koala-7B-SuperHOT-8K-GPTQ)
|
||
|
|
* [2, 3, 4, 5, 6 and 8-bit GGML models for CPU inference](https://huggingface.co/TheBloke/Koala-7B-SuperHOT-8K-GGML)
|
||
|
|
* [Unquantised SuperHOT fp16 model in pytorch format, for GPU inference and for further conversions](https://huggingface.co/TheBloke/Koala-7B-SuperHOT-8K-fp16)
|
||
|
|
* [Unquantised base fp16 model in pytorch format, for GPU inference and for further conversions](https://huggingface.co/young-geng/koala)
|
||
|
|
|
||
|
|
## How to use this model from Python code
|
||
|
|
|
||
|
|
First make sure you have Einops installed:
|
||
|
|
|
||
|
|
```
|
||
|
|
pip3 install auto-gptq
|
||
|
|
```
|
||
|
|
|
||
|
|
Then run the following code. `config.json` has been default to a sequence length of 8192, but you can also configure this in your Python code.
|
||
|
|
|
||
|
|
The provided modelling code, activated with `trust_remote_code=True` will automatically set the `scale` parameter from the configured `max_position_embeddings`. Eg for 8192, `scale` is set to `4`.
|
||
|
|
|
||
|
|
```python
|
||
|
|
from transformers import AutoConfig, AutoTokenizer, AutoModelForCausalLM, pipeline
|
||
|
|
import argparse
|
||
|
|
|
||
|
|
model_name_or_path = "TheBloke/Koala-7B-SuperHOT-8K-fp16"
|
||
|
|
|
||
|
|
use_triton = False
|
||
|
|
|
||
|
|
tokenizer = AutoTokenizer.from_pretrained(model_name_or_path, use_fast=True)
|
||
|
|
|
||
|
|
config = AutoConfig.from_pretrained(model_name_or_path, trust_remote_code=True)
|
||
|
|
# Change this to the sequence length you want
|
||
|
|
config.max_position_embeddings = 8192
|
||
|
|
|
||
|
|
model = AutoModelForCausalLM.from_pretrained(model_name_or_path,
|
||
|
|
config=config,
|
||
|
|
trust_remote_code=True,
|
||
|
|
device_map='auto')
|
||
|
|
|
||
|
|
# Note: check to confirm if this is correct prompt template is correct for this model!
|
||
|
|
prompt = "Tell me about AI"
|
||
|
|
prompt_template=f'''USER: {prompt}
|
||
|
|
ASSISTANT:'''
|
||
|
|
|
||
|
|
print("\n\n*** Generate:")
|
||
|
|
|
||
|
|
input_ids = tokenizer(prompt_template, return_tensors='pt').input_ids.cuda()
|
||
|
|
output = model.generate(inputs=input_ids, temperature=0.7, max_new_tokens=512)
|
||
|
|
print(tokenizer.decode(output[0]))
|
||
|
|
|
||
|
|
# Inference can also be done using transformers' pipeline
|
||
|
|
|
||
|
|
print("*** Pipeline:")
|
||
|
|
pipe = pipeline(
|
||
|
|
"text-generation",
|
||
|
|
model=model,
|
||
|
|
tokenizer=tokenizer,
|
||
|
|
max_new_tokens=512,
|
||
|
|
temperature=0.7,
|
||
|
|
top_p=0.95,
|
||
|
|
repetition_penalty=1.15
|
||
|
|
)
|
||
|
|
|
||
|
|
print(pipe(prompt_template)[0]['generated_text'])
|
||
|
|
```
|
||
|
|
|
||
|
|
## Using other UIs: monkey patch
|
||
|
|
|
||
|
|
Provided in the repo is `llama_rope_scaled_monkey_patch.py`, written by @kaiokendev.
|
||
|
|
|
||
|
|
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.
|
||
|
|
|
||
|
|
<!-- footer start -->
|
||
|
|
## Discord
|
||
|
|
|
||
|
|
For further support, and discussions on these models and AI in general, join us at:
|
||
|
|
|
||
|
|
[TheBloke AI's Discord server](https://discord.gg/theblokeai)
|
||
|
|
|
||
|
|
## Thanks, and how to contribute.
|
||
|
|
|
||
|
|
Thanks to the [chirper.ai](https://chirper.ai) team!
|
||
|
|
|
||
|
|
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.
|
||
|
|
|
||
|
|
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.
|
||
|
|
|
||
|
|
Donaters will get priority support on any and all AI/LLM/model questions and requests, access to a private Discord room, plus other benefits.
|
||
|
|
|
||
|
|
* Patreon: https://patreon.com/TheBlokeAI
|
||
|
|
* Ko-Fi: https://ko-fi.com/TheBlokeAI
|
||
|
|
|
||
|
|
**Special thanks to**: Luke from CarbonQuill, Aemon Algiz, Dmitriy Samsonov.
|
||
|
|
|
||
|
|
**Patreon special mentions**: zynix, ya boyyy, Trenton Dambrowitz, Imad Khwaja, Alps Aficionado, chris gileta, John Detwiler, Willem Michiel, RoA, Mano Prime, Rainer Wilmers, Fred von Graf, Matthew Berman, Ghost , Nathan LeClaire, Iucharbius , Ai Maven, Illia Dulskyi, Joseph William Delisle, Space Cruiser, Lone Striker, Karl Bernard, Eugene Pentland, Greatston Gnanesh, Jonathan Leane, Randy H, Pierre Kircher, Willian Hasse, Stephen Murray, Alex , terasurfer , Edmond Seymore, Oscar Rangel, Luke Pendergrass, Asp the Wyvern, Junyu Yang, David Flickinger, Luke, Spiking Neurons AB, subjectnull, Pyrater, Nikolai Manek, senxiiz, Ajan Kanaga, Johann-Peter Hartmann, Artur Olbinski, Kevin Schuppel, Derek Yates, Kalila, K, Talal Aujan, Khalefa Al-Ahmad, Gabriel Puliatti, John Villwock, WelcomeToTheClub, Daniel P. Andersen, Preetika Verma, Deep Realms, Fen Risland, trip7s trip, webtim, Sean Connelly, Michael Levine, Chris McCloskey, biorpg, vamX, Viktor Bowallius, Cory Kujawski.
|
||
|
|
|
||
|
|
Thank you to all my generous patrons and donaters!
|
||
|
|
|
||
|
|
<!-- footer end -->
|
||
|
|
|
||
|
|
# Original model card: Kaio Ken's SuperHOT 8K
|
||
|
|
|
||
|
|
|
||
|
|
### SuperHOT Prototype 2 w/ 8K Context
|
||
|
|
|
||
|
|
This is a second prototype of SuperHOT, a NSFW focused LoRA, this time 7B with 8K context and no RLHF, using the same technique described in [the github blog](https://kaiokendev.github.io/til#extending-context-to-8k).
|
||
|
|
|
||
|
|
#### Looking for Merged & Quantized Models?
|
||
|
|
Make some please :)
|
||
|
|
|
||
|
|
#### Using the monkey-patch?
|
||
|
|
You will **NEED** to **apply the monkeypatch** or, if you are already using the monkeypatch, **change the scaling factor to 0.25 and the maximum sequence length to 8192**
|
||
|
|
|
||
|
|
The monkeypatch is only necessary if you are using a front-end/back-end that does not already support scaling and said front-end/back-end is Python-based (i.e. Huggingface Transformers). To apply the patch, you will need to copy the `llama_rope_scaled_monkey_patch.py` into your working directory and call the exported function `replace_llama_rope_with_scaled_rope` at the very start of your Python program. It will modify the Transformers library's implementation of RoPE to properly apply the scaling factor.
|
||
|
|
|
||
|
|
#### Using Oobabooga with Exllama?
|
||
|
|
Switch your loader to `exllama` or `exllama_hf` Add the arguments `max_seq_len 8192` and `compress_pos_emb 4`. **While the model may work well with `compress_pos_emb 2`, it was trained on 4, so that is what I advocate for you to use**
|
||
|
|
|
||
|
|
Example in the command-line:
|
||
|
|
- `python server.py --max_seq_len 8192 --compress_pos_emb 4 --loader exllama_hf`
|
||
|
|
|
||
|
|
In the UI, you will see the loader option in the `Models` tab. Once you select either `exllama` or `exllama_hf`, the `max_seq_len` and `compress_pos_emb` settings will appear.
|
||
|
|
|
||
|
|
#### Training Details
|
||
|
|
I trained the LoRA with the following configuration:
|
||
|
|
- 1200 samples (~400 samples over 2048 sequence length)
|
||
|
|
- learning rate of 3e-4
|
||
|
|
- 3 epochs
|
||
|
|
- The exported modules are:
|
||
|
|
- q_proj
|
||
|
|
- k_proj
|
||
|
|
- v_proj
|
||
|
|
- o_proj
|
||
|
|
- no bias
|
||
|
|
- Rank = 4
|
||
|
|
- Alpha = 8
|
||
|
|
- no dropout
|
||
|
|
- weight decay of 0.1
|
||
|
|
- AdamW beta1 of 0.9 and beta2 0.99, epsilon of 1e-5
|
||
|
|
- Trained on 4-bit base model
|
||
|
|
- Cutoff length: 4096
|
||
|
|
|
||
|
|
# Original model card: Koala 7B
|
||
|
|
|
||
|
|
<!-- header start -->
|
||
|
|
<div style="width: 100%;">
|
||
|
|
<img src="https://i.imgur.com/EBdldam.jpg" alt="TheBlokeAI" style="width: 100%; min-width: 400px; display: block; margin: auto;">
|
||
|
|
</div>
|
||
|
|
<div style="display: flex; justify-content: space-between; width: 100%;">
|
||
|
|
<div style="display: flex; flex-direction: column; align-items: flex-start;">
|
||
|
|
<p><a href="https://discord.gg/Jq4vkcDakD">Chat & support: my new Discord server</a></p>
|
||
|
|
</div>
|
||
|
|
<div style="display: flex; flex-direction: column; align-items: flex-end;">
|
||
|
|
<p><a href="https://www.patreon.com/TheBlokeAI">Want to contribute? TheBloke's Patreon page</a></p>
|
||
|
|
</div>
|
||
|
|
</div>
|
||
|
|
<!-- header end -->
|
||
|
|
|
||
|
|
# Koala: A Dialogue Model for Academic Research
|
||
|
|
This repo contains the weights of the Koala 7B model produced at Berkeley. It is the result of combining the diffs from https://huggingface.co/young-geng/koala with the original Llama 7B model.
|
||
|
|
|
||
|
|
This version has then been converted to HF format.
|
||
|
|
|
||
|
|
## My Koala repos
|
||
|
|
I have the following Koala model repositories available:
|
||
|
|
|
||
|
|
**13B models:**
|
||
|
|
* [Unquantized 13B model in HF format](https://huggingface.co/TheBloke/koala-13B-HF)
|
||
|
|
* [GPTQ quantized 4bit 13B model in `pt` and `safetensors` formats](https://huggingface.co/TheBloke/koala-13B-GPTQ-4bit-128g)
|
||
|
|
* [GPTQ quantized 4bit 13B model in GGML format for `llama.cpp`](https://huggingface.co/TheBloke/koala-13B-GPTQ-4bit-128g-GGML)
|
||
|
|
|
||
|
|
**7B models:**
|
||
|
|
* [Unquantized 7B model in HF format](https://huggingface.co/TheBloke/koala-7B-HF)
|
||
|
|
* [Unquantized 7B model in GGML format for llama.cpp](https://huggingface.co/TheBloke/koala-7b-ggml-unquantized)
|
||
|
|
* [GPTQ quantized 4bit 7B model in `pt` and `safetensors` formats](https://huggingface.co/TheBloke/koala-7B-GPTQ-4bit-128g)
|
||
|
|
* [GPTQ quantized 4bit 7B model in GGML format for `llama.cpp`](https://huggingface.co/TheBloke/koala-7B-GPTQ-4bit-128g-GGML)
|
||
|
|
|
||
|
|
## How the Koala delta weights were merged
|
||
|
|
|
||
|
|
The Koala delta weights were merged using the following commands:
|
||
|
|
```
|
||
|
|
git clone https://github.com/young-geng/EasyLM
|
||
|
|
|
||
|
|
git clone https://huggingface.co/nyanko7/LLaMA-7B
|
||
|
|
|
||
|
|
git clone https://huggingface.co/young-geng/koala koala_diffs
|
||
|
|
|
||
|
|
cd EasyLM
|
||
|
|
|
||
|
|
PYTHON_PATH="${PWD}:$PYTHONPATH" python \
|
||
|
|
-m EasyLM.models.llama.convert_torch_to_easylm \
|
||
|
|
--checkpoint_dir=/content/LLaMA-7B \
|
||
|
|
--output_file=/content/llama-7B-LM \
|
||
|
|
--streaming=True
|
||
|
|
|
||
|
|
PYTHON_PATH="${PWD}:$PYTHONPATH" python \
|
||
|
|
-m EasyLM.scripts.diff_checkpoint --recover_diff=True \
|
||
|
|
--load_base_checkpoint='params::/content/llama-7B-LM' \
|
||
|
|
--load_target_checkpoint='params::/content/koala_diffs/koala_7b_diff_v2' \
|
||
|
|
--output_file=/content/koala_7b.diff.weights \
|
||
|
|
--streaming=True
|
||
|
|
|
||
|
|
PYTHON_PATH="${PWD}:$PYTHONPATH" python \
|
||
|
|
-m EasyLM.models.llama.convert_easylm_to_hf --model_size=7b \
|
||
|
|
--output_dir=/content/koala-7B-HF \
|
||
|
|
--load_checkpoint='params::/content/koala_7b.diff.weights' \
|
||
|
|
--tokenizer_path=/content/LLaMA-7B/tokenizer.model
|
||
|
|
```
|
||
|
|
|
||
|
|
<!-- footer start -->
|
||
|
|
## Discord
|
||
|
|
|
||
|
|
For further support, and discussions on these models and AI in general, join us at:
|
||
|
|
|
||
|
|
[TheBloke AI's Discord server](https://discord.gg/Jq4vkcDakD)
|
||
|
|
|
||
|
|
## Thanks, and how to contribute.
|
||
|
|
|
||
|
|
Thanks to the [chirper.ai](https://chirper.ai) team!
|
||
|
|
|
||
|
|
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.
|
||
|
|
|
||
|
|
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.
|
||
|
|
|
||
|
|
Donaters will get priority support on any and all AI/LLM/model questions and requests, access to a private Discord room, plus other benefits.
|
||
|
|
|
||
|
|
* Patreon: https://patreon.com/TheBlokeAI
|
||
|
|
* Ko-Fi: https://ko-fi.com/TheBlokeAI
|
||
|
|
|
||
|
|
**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.
|
||
|
|
|
||
|
|
Thank you to all my generous patrons and donaters!
|
||
|
|
<!-- footer end -->
|
||
|
|
## Further info
|
||
|
|
Check out the following links to learn more about the Berkeley Koala model.
|
||
|
|
* [Blog post](https://bair.berkeley.edu/blog/2023/04/03/koala/)
|
||
|
|
* [Online demo](https://koala.lmsys.org/)
|
||
|
|
* [EasyLM: training and serving framework on GitHub](https://github.com/young-geng/EasyLM)
|
||
|
|
* [Documentation for running Koala locally](https://github.com/young-geng/EasyLM/blob/main/docs/koala.md)
|
||
|
|
|
||
|
|
## License
|
||
|
|
The model weights are intended for academic research only, subject to the
|
||
|
|
[model License of LLaMA](https://github.com/facebookresearch/llama/blob/main/MODEL_CARD.md),
|
||
|
|
[Terms of Use of the data generated by OpenAI](https://openai.com/policies/terms-of-use),
|
||
|
|
and [Privacy Practices of ShareGPT](https://chrome.google.com/webstore/detail/sharegpt-share-your-chatg/daiacboceoaocpibfodeljbdfacokfjb).
|
||
|
|
Any other usage of the model weights, including but not limited to commercial usage, is strictly prohibited.
|