Fine-tuning universel Axolotl

Fine-tuning de LLM piloté par YAML avec Axolotl sur Clore.ai — LoRA, QLoRA, DPO, multi-GPU

Axolotl regroupe HuggingFace Transformers, PEFT, TRL et DeepSpeed dans une interface unique pilotée par YAML. Vous définissez votre modèle, jeu de données, méthode d'entraînement et hyperparamètres dans un seul fichier de configuration — puis lancez avec une seule commande. Aucun script Python requis pour les flux de travail standard.

circle-check

Principales caractéristiques

  • Configuration uniquement YAML — définissez tout dans un seul fichier, pas de Python nécessaire

  • Toutes les méthodes d'entraînement — LoRA, QLoRA, entraînement complet, DPO, ORPO, KTO, RLHF

  • Multi-GPU prêt à l'emploi — DeepSpeed ZeRO 1/2/3 et FSDP avec un seul indicateur

  • Regroupement d'exemples — concaténer de courts exemples pour remplir la longueur de séquence, gain de débit 3–5×

  • Flash Attention 2 — économies de VRAM automatiques sur le matériel pris en charge

  • Large compatibilité de modèles — Llama 3.x, Mistral, Qwen 2.5, Gemma 2, Phi-4, DeepSeek, Falcon

  • Formats de jeux de données intégrés — alpaca, sharegpt, chat_template, completion et personnalisé

Exigences

Composant
Minimum
Recommandé

GPU

RTX 3060 12 Go

RTX 4090 24 Go (×2+)

VRAM

12 Go

24+ Go

RAM

16 Go

64 Go

Disque

50 Go

100 Go

CUDA

11.8

12.1+

Python

3.10

3.11

Tarifs Clore.ai : RTX 4090 ≈ 0,5–2 $/jour · RTX 3090 ≈ 0,3–1 $/jour · RTX 3060 ≈ 0,15–0,3 $/jour

Démarrage rapide

1. Installer Axolotl

Ou utilisez l'image Docker (recommandé pour la reproductibilité) :

2. Créez un fichier de configuration

Enregistrez ceci sous config.yml:

3. Lancer l'entraînement

Journaux de progression de l'entraînement vers stdout et éventuellement vers Weights & Biases.

Approfondissement de la configuration

Formats de jeux de données

Axolotl prend en charge plusieurs formats d'entrée nativement :

Multi-GPU avec DeepSpeed

Créer deepspeed_zero2.json:

Ajoutez à votre configuration :

Puis lancez :

Alignement DPO / ORPO

Entraînement complet (sans LoRA)

Exemples d'utilisation

Inférence après entraînement

Fusionner LoRA dans le modèle de base

Prétraiter le jeu de données (valider avant l'entraînement)

Cela tokenise et valide le jeu de données. Utile pour détecter les erreurs de format avant une longue session d'entraînement.

Référence d'utilisation de la VRAM

Modèle
Méthode
GPUs
VRAM/GPU
Configuration

Llama 3.1 8B

QLoRA 4bits

1

≈12 Go

r=32, seq_len=2048

Llama 3.1 8B

LoRA 16bits

1

≈20 Go

r=16, seq_len=2048

Llama 3.1 8B

Complet

2

≈22 Go

DeepSpeed ZeRO-3

Qwen 2.5 14B

QLoRA 4bits

1

~16 Go

r=16, seq_len=2048

Llama 3.3 70B

QLoRA 4bits

2

≈22 Go

r=16, seq_len=2048

Llama 3.3 70B

Complet

4

≈40 Go

DeepSpeed ZeRO-3+offload

Conseils

  • Toujours activer sample_packing: true — plus grande amélioration unique du débit (3–5× sur les jeux de données courts)

  • Utilisez flash_attention: true sur GPU Ampere+ pour 20–40 % d'économies de VRAM

  • Commencez par QLoRA pour les expériences, passez à l'entraînement complet seulement lorsque la qualité LoRA atteint un plateau

  • Définir val_set_size: 0.02 pour surveiller le surapprentissage pendant l'entraînement

  • Prétraitez d'abord — exécutez axolotl.cli.preprocess pour valider le format des données avant de s'engager dans une longue exécution

  • Utilisez l'image Docker pour des environnements reproductibles — évite les conflits de dépendances

  • lora_target_linear: true applique LoRA à toutes les couches linéaires, généralement mieux que de ne cibler que l'attention

Dépannage

Problème
Solution

OutOfMemoryError

Plus bas micro_batch_size à 1, activez gradient_checkpointing

Erreurs de format de jeu de données

Exécutez python -m axolotl.cli.preprocess config.yml pour déboguer

sample_packing lent sur la première époque

Normal — le calcul initial du regroupement est une opération ponctuelle

L'entraînement Multi-GPU bloque

Vérifiez NCCL : export NCCL_DEBUG=INFO, assurez-vous que tous les GPU sont visibles

flash_attention erreur d'importation

Installer : pip install flash-attn --no-build-isolation

La perte n'augmente pas (ne diminue pas)

Baissez le LR à 1e-4, augmentez le warmup, vérifiez la qualité du jeu de données

Erreur de connexion WandB

Exécutez wandb login ou définissez wandb_project: sur une chaîne vide

Ressources

Mis à jour

Ce contenu vous a-t-il été utile ?