# AutoLoRA Training Config — Axolotl
# Replaces: autolora/train_modal.py (239 lines)
#
# Usage:
#   axolotl train training/axolotl.yaml          # cloud GPU
#   mlx_lm.lora --config training/mlx-lora.yaml  # Apple Silicon (see mlx-lora.yaml)
#
# Cost: A100-40GB ~$1.10/hr, training ~30-60 min = $0.55-1.10

base_model: NousResearch/Hermes-4-14B
model_type: AutoModelForCausalLM
trust_remote_code: true

# QLoRA — 4-bit quantized training
load_in_4bit: true
adapter: qlora
lora_r: 16
lora_alpha: 32
lora_dropout: 0.05
lora_target_linear: true
# Explicit targets (same as autolora train_modal.py):
# lora_target_modules:
#   - q_proj
#   - k_proj
#   - v_proj
#   - o_proj
#   - gate_proj
#   - up_proj
#   - down_proj

# Dataset — ShareGPT format (same as autolora curated data)
datasets:
  - path: data/curated_dataset.jsonl
    type: sharegpt
    conversation: chatml  # Hermes uses ChatML

val_set_size: 0.1

# Training params (matched to autolora/train_modal.py)
sequence_len: 2048
micro_batch_size: 1
gradient_accumulation_steps: 8
num_epochs: 3
learning_rate: 2e-4
lr_scheduler: cosine
warmup_ratio: 0.05
optimizer: paged_adamw_8bit
max_grad_norm: 0.3
bf16: true

# Output
output_dir: ./output/hermes4-14b-timmy
save_strategy: epoch
save_total_limit: 2
logging_steps: 5

# DPO (when ready — uncomment and point to preference data)
# rl: dpo
# datasets:
#   - path: data/preference_pairs.jsonl
#     type: chatml.default
