Examples¶
xaytune includes Jupyter notebooks and YAML config files to help you get started quickly.
Jupyter Notebooks¶
The examples/ directory contains step-by-step notebooks:
| Notebook | Description |
|---|---|
| 01_quickstart.ipynb | Your first training run -- LoRA fine-tuning in a few lines |
| 02_finetuning.ipynb | Full, LoRA, and QLoRA fine-tuning compared |
| 03_pretraining.ipynb | Pre-training on a text corpus |
| 04_alignment.ipynb | Alignment with DPO, GRPO, and other methods |
| 05_evaluation.ipynb | Evaluating models with metrics and benchmarks |
| 06_advanced.ipynb | Custom formats, metrics, rewards, callbacks, and distributed training |
Example Configs¶
The configs/examples/ directory contains ready-to-use YAML config files for every recipe and method:
Fine-tuning¶
# Full fine-tuning
xaytune train --config configs/examples/full_finetune.yaml
# LoRA fine-tuning
xaytune train --config configs/examples/lora_finetune.yaml
# QLoRA fine-tuning
xaytune train --config configs/examples/qlora_finetune.yaml
Pre-training¶
Alignment¶
# DPO
xaytune train --config configs/examples/dpo_align.yaml
# GRPO
xaytune train --config configs/examples/grpo_align.yaml
# ORPO
xaytune train --config configs/examples/orpo_align.yaml
# SimPO
xaytune train --config configs/examples/simpo_align.yaml
# PPO
xaytune train --config configs/examples/ppo_align.yaml
# REINFORCE
xaytune train --config configs/examples/reinforce_align.yaml
Quick Recipes¶
Fine-tune Llama 3.1 with LoRA¶
import xaytune
state = xaytune.finetune(
model="meta-llama/Llama-3.1-8B",
dataset="data/train.jsonl",
method="lora",
format="alpaca",
num_epochs=3,
learning_rate=2e-4,
)
Align with DPO¶
import xaytune
state = xaytune.align(
model="meta-llama/Llama-3.1-8B-Instruct",
dataset="data/preferences.jsonl",
method="dpo",
format="preference",
)
Evaluate and Compare¶
from xaytune.eval.benchmarks import benchmark_evaluate
results = benchmark_evaluate(
model="output/my-model",
benchmarks=["mmlu", "gsm8k"],
num_fewshot=5,
)
Export Pipeline¶
from xaytune.export.merge import merge
from xaytune.export.hub import push_to_hub
from xaytune.export.gguf import to_gguf
# Merge LoRA adapters
merge("output/lora-finetune", save_to="output/merged")
# Push to Hub
push_to_hub("output/merged", repo="username/my-model")
# Convert to GGUF
to_gguf("output/merged", output="model.gguf", quantization="Q4_K_M")