# Configuration for Training

Before we begin establishing the training run for a model, we provide below the range of configuration options for the Axolotl training platform.

### <mark style="color:blue;">Below are the primary categories for the</mark> <mark style="color:yellow;">YAML Training Configuration File</mark>

| <mark style="color:green;">Category</mark> |
| :----------------------------------------: |
|             Model Configuration            |
|         Data Loading and Processing        |
|           Sequence Configuration           |
|            Adapter Configuration           |
|           Logging and Monitoring           |
|           Training Configuration           |
|              Training Options              |
|            Attention Mechanisms            |
|      Training Schedules and Evaluation     |
|         Debugging and Optimization         |
|               Special Tokens               |

The expandable below provides an example YAML configuration scripts for using LoRA parameter efficient fine tuning for Meta's Llama2 model.

<details>

<summary>Reference: <mark style="color:green;">The full training script for Llama2</mark></summary>

```yaml
base_model: NousResearch/Llama-2-7b-hf
model_type: LlamaForCausalLM
tokenizer_type: LlamaTokenizer
is_llama_derived_model: true

load_in_8bit: true
load_in_4bit: false
strict: false

datasets:
  - path: mhenrichsen/alpaca_2k_test
    type: alpaca
dataset_prepared_path:
val_set_size: 0.05
output_dir: ./lora-out

sequence_len: 4096
sample_packing: true
pad_to_sequence_len: true

adapter: lora
lora_model_dir:
lora_r: 32
lora_alpha: 16
lora_dropout: 0.05
lora_target_linear: true
lora_fan_in_fan_out:

wandb_project:
wandb_entity:
wandb_watch:
wandb_name:
wandb_log_model:

gradient_accumulation_steps: 4
micro_batch_size: 2
num_epochs: 4
optimizer: adamw_bnb_8bit
lr_scheduler: cosine
learning_rate: 0.0002

train_on_inputs: false
group_by_length: false
bf16: true
fp16: false
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
eval_table_size:
eval_table_max_new_tokens: 128
saves_per_epoch: 1
debug:
deepspeed:
weight_decay: 0.0
fsdp:
fsdp_config:
special_tokens:
  bos_token: "<s>"
  eos_token: "</s>"
  unk_token: "<unk>"
```

</details>

We will walk through establishing the configuration file for Phi 2.0.
