YAML configs without YAML — finally
If you've been living under a rock, Axolotl is the framework half the indie LLM scene uses to fine-tune everything from Llama to Qwen. The catch was always the YAML — 400 lines of cargo-cult settings nobody fully understood. Behold: there's now a UI.
The Setup
It's a small Gradio-style app that lives next to your install. Point it at a base model, pick LoRA or full fine-tune, plug in a dataset, hit go. It writes the YAML for you and runs the trainer in a subprocess.
{`pip install axolotl[flash-attn,deepspeed]
axolotl ui
# opens at http://localhost:7860
# pick base model, dataset, lora rank — done`}
The Money Pattern
The UI is fine. The real win is that it exports the exact YAML it ran, so you graduate from clicker to config person without retyping anything. Save the file, version it, kick it off from CLI on a beefier box.
{`base_model: meta-llama/Llama-3.1-8B
load_in_4bit: true
adapter: lora
lora_r: 16
lora_alpha: 32
lora_target_modules: [q_proj, k_proj, v_proj, o_proj]
datasets:
- path: ./data/aidxn-support.jsonl
type: chat_template
sequence_len: 4096
micro_batch_size: 2
gradient_accumulation_steps: 8
num_epochs: 3
optimizer: adamw_bnb_8bit
learning_rate: 0.0002
bf16: auto
flash_attention: true
output_dir: ./out`}
Then on the GPU box: axolotl train config.yml. Done.
The Catch
You still need a GPU. The UI won't summon VRAM out of thin air. Renting an H100 by the hour adds up fast if you forget to shut it down — I've burned $40 in a sleep cycle. Set spend alerts on your cloud provider before you push the button.
The Verdict
If you've been avoiding Axolotl because the YAML scared you, the excuse just evaporated. Click through the UI, export the config, version it in git, run it on rented metal. It's the fastest path from "I have a dataset" to "I have an adapter" right now.