waldie's picture
Update README.md with license information (#1)
6eb33d6 verified
---
datasets:
- adamo1139/AEZAKMI_v2
- adamo1139/rawrr_v1
license: apache-2.0
---
## Model Description
EXPERIMENTAL MODEL, NOT FINAL, IT HAS SOME ISSUES, I DIDN'T TEST IT TOO MUCH YET
Yi-34B 200K base model fine-tuned on RAWrr v1 dataset via DPO and then fine-tuned on AEZAKMI v2 dataset via SFT. DPO training took around 6 hours, SFT took around 25 hours.
I used `unsloth` for both stages.
It's like airoboros but with less gptslop, no refusals and less typical language used by RLHFed OpenAI models.
Say goodbye to "It's important to remember"! \
Prompt format is standard chatml. Don't expect it to be good at math, riddles or be crazy smart. My end goal with AEZAKMI is to create a cozy free chatbot.
Base model used for fine-tuning was 200k context Yi-34B-Llama model shared by larryvrh.
Training was done with max_position_embeddings set at 4096. Then it was reverted back to 200K after applying LoRA.
## Prompt Format
I recommend using ChatML format, as this was used during fine-tune. \
Here's a prompt format you should use, you can set a different system message, model seems to respect that fine, so it wasn't overfitted.
Both `A chat.` and `A chat with uncensored assistant.` system prompt work fine and are pretty refusal-free.
```
<|im_start|>system
A chat with uncensored assistant.<|im_end|>
<|im_start|>user
{prompt}<|im_end|>
<|im_start|>assistant
```
## Intended uses & limitations
It's a chat model, not a base completion-only one.
Use is limited by Yi license. Since no-robots dataset was used for making rawrr_v1, I guess you maybe shouldn't use it for commercial activities.
## Known Issues
I recommend to set repetition penalty to something around 1.05 to avoid repetition. So far I had somewhat good experience running this model with temperature 1.0-1.2.
It seems like the strongest anti-refusal bias is at 0 ctx - the first prompt. But it's also present, albeit a little bit less, further down. I plan to expand rawrr dataset and include more samples without system prompt, this should help here.
[<img src="https://raw.githubusercontent.com/unslothai/unsloth/main/images/unsloth%20made%20with%20love.png" alt="made with Unsloth" width="400" height="64"/>](https://github.com/unslothai/unsloth)
## Unsloth training parameters DPO Stage
- lora_r: 16
- lora_alpha: 32
- max_length: 500
- learning_rate: 0.00005
- lr_scheduler_type: "linear"
- target_modules: ["q_proj", "k_proj", "v_proj", "o_proj",
"gate_proj", "up_proj", "down_proj",]
- gradient_accumulation_steps: 16
- per_device_batch_size: 1
- num_train_epochs: 1
Script used for DPO training can be found here:
https://huggingface.co/adamo1139/Yi-34B-200K-rawrr1-LORA-DPO-experimental-r3/blob/main/yi-34b-dpo-unsloth-1.py
## Unsloth training parameters SFT Stage
- lora_r: 16
- lora_alpha: 32
- max_length: 2400
- learning_rate: 0.000095
- lr_scheduler_type: "cosine"
- lr_scheduler_kwargs: {
"num_cycles" : 0.25,
}
- target_modules: ["q_proj", "k_proj", "v_proj", "o_proj",
"gate_proj", "up_proj", "down_proj",]
- gradient_accumulation_steps: 1
- per_device_batch_size: 1
- num_train_epochs: 2
Script used for SFT training can be found here (older run, different hyperparameters):
https://huggingface.co/adamo1139/Yi-34B-200K-AEZAKMI-RAW-2301-LoRA/blob/main/yi-34b-aezakmi-sft-1-hf.py
### Credits
Thanks to mlabonne, Daniel Han and Michael Han for providing open source code that was used for fine-tuning.