Home
Login

Un outil open source pour le post-entraînement de modèles d'IA, prenant en charge diverses méthodes d'entraînement telles que le fine-tuning, LoRA, QLoRA, etc.

Apache-2.0Python 9.7kaxolotl-ai-cloud Last Updated: 2025-06-19

Axolotl - Outil puissant de post-entraînement pour modèles d'IA

Aperçu du projet

Axolotl est un outil open source spécialement conçu pour simplifier divers processus de post-entraînement de modèles d'IA. Le post-entraînement fait référence à toute modification ou entraînement supplémentaire effectué sur un modèle pré-entraîné, y compris le fine-tuning complet du modèle, le réglage efficace des paramètres (comme LoRA et QLoRA), le fine-tuning supervisé (SFT), le réglage des instructions et les techniques d'alignement. Cet outil prend en charge diverses architectures de modèles et configurations d'entraînement, permettant aux utilisateurs de commencer facilement à utiliser ces techniques d'entraînement avancées.

Caractéristiques principales

Support des modèles

  • Architecture de modèles diversifiée: Prend en charge l'entraînement de divers modèles Hugging Face, y compris les principaux grands modèles de langage tels que LLaMA, Pythia, Falcon, MPT, Mistral, Mixtral, etc.
  • Méthodes d'entraînement flexibles: Prend en charge diverses méthodes d'entraînement telles que le fine-tuning complet (Full Fine-tuning), LoRA, QLoRA, ReLoRA, GPTQ, etc.

Gestion de la configuration

  • Fichiers de configuration YAML: Utilise des fichiers YAML simples contenant toutes les configurations nécessaires telles que le prétraitement des ensembles de données, l'entraînement/fine-tuning du modèle, l'inférence ou l'évaluation du modèle.
  • Remplacement CLI: Prend en charge le remplacement des paramètres dans les fichiers de configuration via des arguments de ligne de commande.
  • Configuration flexible: Permet de personnaliser divers paramètres d'entraînement et paramètres de modèle.

Capacité de traitement des données

  • Ensembles de données multi-formats: Prend en charge le chargement d'ensembles de données locaux, HuggingFace et cloud (S3, Azure, GCP, OCI).
  • Formats personnalisés: Peut utiliser des formats personnalisés ou importer directement des ensembles de données déjà tokenisés.
  • Prétraitement des ensembles de données: Intègre de puissantes fonctionnalités de prétraitement des données.

Optimisation des performances

  • Techniques d'optimisation avancées: Intègre xformers, Flash Attention, Liger Kernel, Rope Scaling et des techniques de multi-packaging.
  • Support multi-GPU: Prend en charge l'entraînement sur un seul GPU ou plusieurs GPU via FSDP ou DeepSpeed.
  • Entraînement efficace: Optimisé pour les GPU NVIDIA (Ampere ou version ultérieure, prenant en charge bf16 et Flash Attention) et les GPU AMD.

Déploiement et surveillance

  • Prêt pour le cloud: Fournit des images Docker et des packages PyPI, utilisables sur les plateformes cloud et le matériel local.
  • Enregistrement des résultats: Prend en charge l'enregistrement des résultats et des points de contrôle dans WandB, MLflow ou Comet.
  • Support de la surveillance: Intègre divers outils de suivi et de surveillance des expériences.

Exigences techniques

Exigences matérielles

  • GPU NVIDIA (Ampere ou version ultérieure, pour bf16 et Flash Attention) ou GPU AMD
  • Suffisamment de mémoire GPU pour l'entraînement du modèle

Exigences logicielles

  • Python 3.11
  • PyTorch ≥2.4.1
  • Packages de dépendances associés

Méthodes d'installation

Installation rapide

pip3 install -U packaging==23.2 setuptools==75.8.0 wheel ninja
pip3 install --no-build-isolation axolotl[flash-attn,deepspeed]

# Télécharger les exemples de fichiers de configuration
axolotl fetch examples
axolotl fetch deepspeed_configs  # Optionnel

Installation à partir des sources

git clone https://github.com/axolotl-ai-cloud/axolotl.git
cd axolotl
pip3 install -U packaging setuptools wheel ninja
pip3 install --no-build-isolation -e '.[flash-attn,deepspeed]'

Méthode Docker

docker run --gpus '"all"' --rm -it axolotlai/axolotl:main-latest

Utilisation

Flux d'utilisation de base

  1. Obtenir des exemples de configuration:

    axolotl fetch examples
    
  2. Entraîner le modèle:

    axolotl train examples/llama-3/lora-1b.yml
    
  3. Configuration personnalisée: Modifier les paramètres dans le fichier de configuration YAML selon les besoins

Structure du fichier de configuration

Axolotl utilise des fichiers de configuration YAML pour contrôler l'ensemble du processus d'entraînement, notamment :

  • Sélection et paramètres du modèle
  • Configuration et prétraitement de l'ensemble de données
  • Hyperparamètres d'entraînement
  • Paramètres de l'optimiseur
  • Surveillance et enregistrement des journaux

Matrice de compatibilité des modèles pris en charge

Modèle fp16/fp32 LoRA QLoRA GPTQ Flash Attn xformers
LLaMA
Mistral
Mixtral-MoE
Pythia
Falcon
Qwen
Gemma

✅: Pris en charge ❌: Non pris en charge ❓: Non testé

Scénarios d'application

Domaine de la recherche

  • Recherche sur le fine-tuning des grands modèles de langage
  • Expérimentation de méthodes d'entraînement efficaces en termes de paramètres
  • Recherche sur l'alignement et la sécurité des modèles

Applications industrielles

  • Personnalisation de modèles d'entreprise
  • Entraînement de modèles spécifiques à un domaine
  • Optimisation des modèles de fonctionnalités de produits

Éducation et formation

  • Enseignement des cours d'IA/ML
  • Développement de projets pratiques
  • Amélioration des compétences techniques

Avantages du projet

  1. Facilité d'utilisation: Contrôle des processus d'entraînement complexes via de simples fichiers de configuration YAML
  2. Flexibilité: Prend en charge diverses architectures de modèles et méthodes d'entraînement
  3. Performance: Intègre les dernières technologies d'optimisation, offrant une expérience d'entraînement efficace
  4. Extensibilité: Prend en charge diverses échelles d'entraînement, d'un seul GPU à plusieurs nœuds
  5. Open source: Licence Apache 2.0, entièrement open source et gratuit