Skip to content

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
07_gpu_training.ipynb GPU training with single-node and Ray distributed examples
08_data_preparation.ipynb Dataset preparation -- dedup, filtering, conversion, synthetic generation
09_callbacks.ipynb Training callbacks -- loss tracking, timing, early stopping
10_model_merging.ipynb Model merging with Linear, SLERP, TIES, and DARE algorithms
11_agent_finetuning.ipynb Agent fine-tuning -- data formats, loss masking, rewards, evaluation, multi-agent

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

xaytune train --config configs/examples/pretrain.yaml

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,
)

Agent Fine-Tuning

import xaytune

# Fine-tune on tool-use conversations with loss masking
state = xaytune.finetune(
    model="meta-llama/Llama-3.1-8B",
    dataset="data/agent_traces.jsonl",
    method="lora",
    format="function_calling",  # or "react", "trajectory", "multi_agent"
    num_epochs=3,
)

Agent Evaluation

from xaytune.eval.agent_metrics import evaluate_agent

results = evaluate_agent(
    responses=[{"prompt": "...", "response": "..."}],
    expected_tools=["search"],
    success_markers=["Done"],
)

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")