peft pytorch mixtral generated_from_trainer base_model:Lambent/cosmoem-4x1b license:cc region:us
---
license: cc
library_name: peft
tags:
- generated_from_trainer
base_model: Lambent/cosmoem-4x1b
model-index:
- name: lora-out-2
  results: []
---

Tried to keep similar to smaller model training still, but made some adjustments based on prior results with the MoE.

Adjustments from previous, learning-broken model:
1. Started smaller. This model is 4x1b, with the positive and negative prompts from the original 8x1b doubled up.
Layer 1 is the only layer underutilized in this setup. I did not try to give it a random mask because I am unsure if my method was functional.

2. Decreased learning rate. The loss on the previous CosMoE had sharp spikes, suggesting overshooting appropriate solutions.
Here I started with a learning rate of 1/4 the rate used on the smaller model.

3. Increased batch size. Thought this also might be helpful in smoothing out learning.

4. Avoided loading in 8-bit since I am having issues with that currently.

Preliminary results:
- Training and validation loss is a bit higher than on the small model; not quite as fit.
- Train/loss is much less spiky than prior attempt. There's one modest spike to 2.225 at around 25% through the epoch, and otherwise it's not very spiky at all.
- GPU memory utilization was at about 30% of an 80GB GPU. Hardware was probably overkill.

Capabilities comparisons:

Untrained small model:
|                          Model                          |AGIEval|GPT4All|TruthfulQA|Bigbench|Average|
|---------------------------------------------------------|------:|------:|---------:|-------:|------:|
|[cosmo-1b](https://huggingface.co/HuggingFaceTB/cosmo-1b)|  22.97|  52.01|     38.02|   28.73|  35.43|

Trained small model, same dataset and similar training (at higher learning rate and smaller batch size):
|                                  Model                                  |AGIEval|GPT4All|TruthfulQA|Bigbench|Average|
|-------------------------------------------------------------------------|------:|------:|---------:|-------:|------:|
|[CosmoAlpacaLight-1b](https://huggingface.co/Lambent/CosmoAlpacaLight-1b)|  24.28|  51.31|     40.33|   29.47|  36.35|

Broken model:
|                                     Model                                     |AGIEval|         GPT4All          |        TruthfulQA        |Bigbench|
|-------------------------------------------------------------------------------|------:|--------------------------|--------------------------|-------:|
|[CosMoEAlpacaLight-8x1b](https://huggingface.co/Lambent/CosMoEAlpacaLight-8x1b)|  24.13|Error: File does not exist|Error: File does not exist|   28.95|

This model:
|                                      Model                                      |AGIEval|GPT4All|TruthfulQA|Bigbench|Average|
|---------------------------------------------------------------------------------|------:|------:|---------:|-------:|------:|
|[CosMoE-AlpacaLight-v0.2](https://huggingface.co/Lambent/CosMoE-AlpacaLight-v0.2)|  23.09|  51.98|      39.1|   28.42|  35.65|
Observations: Capabilities updates were directionally similar to the smaller/deeper model except on Bigbench; but less was learned.
(Probably has something to do with the lower learning rate.)
Lack of errors on GPT4All and TruthfulQA is hopefully a sign that it did not break in training this time.

Thoughts for further testing: One or two additional epochs on the dataset might be interesting to test both the small model and the MoE on.

[<img src="https://raw.githubusercontent.com/OpenAccess-AI-Collective/axolotl/main/image/axolotl-badge-web.png" alt="Built with Axolotl" width="200" height="32"/>](https://github.com/OpenAccess-AI-Collective/axolotl)
<details><summary>See axolotl config</summary>

axolotl version: `0.4.0`
```yaml
base_model: Lambent/cosmoem-4x1b
model_type: AutoModelForCausalLM
tokenizer_type: LlamaTokenizer
trust_remote_code: true

load_in_8bit: false
load_in_4bit: false
strict: false

datasets:
  - path: vicgalle/alpaca-gpt4
    type: alpaca
dataset_prepared_path:
val_set_size: 0.05
output_dir: ./lora-out-2

sequence_len: 2048
sample_packing: true
eval_sample_packing: false
pad_to_sequence_len: true

adapter: lora
lora_model_dir:
lora_r: 64
lora_alpha: 16
lora_dropout: 0.1
lora_target_linear: true
lora_fan_in_fan_out:

wandb_project: CosMoE-AlpacaLight-v0.2
wandb_entity:
wandb_watch:
wandb_name:
wandb_log_model:

gradient_accumulation_steps: 4
micro_batch_size: 8
num_epochs: 1
optimizer: adamw_bnb_8bit
lr_scheduler: cosine
learning_rate: 0.00005

train_on_inputs: false
group_by_length: false
bf16: auto
fp16:
tf32: false

gradient_checkpointing: true
early_stopping_patience:
resume_from_checkpoint:
local_rank:
logging_steps: 1
xformers_attention:
flash_attention: true

warmup_steps: 10
evals_per_epoch: 4
saves_per_epoch: 1
debug:
deepspeed:
weight_decay: 0.0
fsdp:
fsdp_config:
special_tokens:

```

</details><br>

# lora-out-2

This model is a fine-tuned version of [Lambent/cosmoem-4x1b](https://huggingface.co/Lambent/cosmoem-4x1b) on the alpaca-gpt4 dataset.
It achieves the following results on the evaluation set:
- Loss: 1.0984

## Model description

More information needed

## Intended uses & limitations

More information needed

## Training and evaluation data

More information needed

## Training procedure

### Training hyperparameters

The following hyperparameters were used during training:
- learning_rate: 5e-05
- train_batch_size: 8
- eval_batch_size: 8
- seed: 42
- gradient_accumulation_steps: 4
- total_train_batch_size: 32
- optimizer: Adam with betas=(0.9,0.999) and epsilon=1e-08
- lr_scheduler_type: cosine
- lr_scheduler_warmup_steps: 10
- num_epochs: 1

### Training results

| Training Loss | Epoch | Step | Validation Loss |
|:-------------:|:-----:|:----:|:---------------:|
| 1.2267        | 0.01  | 1    | 1.2979          |
| 1.148         | 0.25  | 41   | 1.1314          |
| 1.0815        | 0.51  | 82   | 1.1038          |
| 1.0768        | 0.76  | 123  | 1.0984          |


### Framework versions

- PEFT 0.9.0
- Transformers 4.39.0.dev0
- Pytorch 2.1.2+cu118
- Datasets 2.18.0
- Tokenizers 0.15.0