Home
Login
unslothai/unsloth

Unsloth : outil de fine-tuning et d'apprentissage par renforcement efficace pour les grands modèles de langage - Vitesse d'entraînement multipliée par 2, utilisation de la mémoire réduite de 70 %

Apache-2.0Python 40.5kunslothai Last Updated: 2025-06-12
https://github.com/unslothai/unsloth

Présentation détaillée du projet Unsloth

Aperçu du projet

Unsloth est un outil open source axé sur le fine-tuning et l'apprentissage par renforcement des grands modèles de langage (LLM), capable d'améliorer la vitesse d'entraînement des modèles tels que Qwen3, Llama 4, DeepSeek-R1, Gemma 3, TTS, etc., par un facteur de 2, tout en réduisant l'utilisation de la mémoire GPU de 70 %. Ce projet vise à rendre la technologie de l'IA plus accessible et facile à utiliser, en fournissant aux chercheurs et aux développeurs des solutions d'entraînement de modèles efficaces.

Principales caractéristiques

  • Optimisation haute performance : Vitesse d'entraînement multipliée par 2, utilisation de la mémoire GPU réduite de 70 %
  • Aucune perte de précision : N'utilise pas de méthodes d'approximation, garantissant la précision de l'entraînement
  • Compatibilité étendue : Prend en charge de nombreux modèles LLM courants et méthodes d'entraînement
  • Convivial : Fournit des notebooks adaptés aux débutants et une documentation détaillée

Fonctionnalités et caractéristiques principales

1. Prise en charge des modèles

Unsloth prend en charge de nombreux grands modèles de langage courants, notamment :

  • Série Llama : Llama 4, Llama 3.3 (70B), Llama 3.2, Llama 3.1
  • Série Qwen : Qwen 3 (14B), Qwen 2.5 (y compris les modèles Coder)
  • Série Gemma : Gemma 3, Gemma 2 (9B/27B)
  • Autres modèles : Phi-4 (14B), Mistral Small (22B), DeepSeek-R1, etc.

2. Méthodes d'entraînement

Fine-tuning :

  • Prend en charge le fine-tuning complet des paramètres, le pré-entraînement
  • Entraînement quantifié 4 bits, 8 bits, 16 bits
  • Fine-tuning QLoRA et LoRA
  • Technologie de quantification dynamique 4 bits

Apprentissage par renforcement :

  • DPO (Direct Preference Optimization)
  • GRPO (raisonnement contextuel long)
  • PPO (Proximal Policy Optimization)
  • Entraînement du modèle de récompense
  • DPO en ligne

3. Avantages techniques

Optimisation des performances :

  • Tous les noyaux sont écrits en langage Triton d'OpenAI, moteur de rétropropagation manuelle
  • 0 % de perte de précision - Aucune méthode d'approximation - Tous les calculs sont précis
  • Prend en charge l'entraînement contextuel long (prise en charge maximale du contexte 342K)

Optimisation de la mémoire :

  • Technologie de quantification dynamique 4 bits, amélioration de la précision tout en augmentant l'utilisation de la mémoire GPU de <10 %
  • Optimisation du point de contrôle du gradient, réduisant davantage l'utilisation de la mémoire de 30 %
  • Prend en charge des fenêtres de contexte 4 fois plus longues

4. Compatibilité matérielle

  • Exigences GPU : Prend en charge les GPU NVIDIA depuis 2018, capacité CUDA minimale de 7.0
  • Modèles pris en charge : V100, T4, Titan V, séries RTX 20/30/40, A100, H100, L40, etc.
  • Systèmes d'exploitation : Linux et Windows
  • Prise en charge spéciale : GTX 1070, 1080 peuvent fonctionner mais plus lentement

5. Intégration et écosystème

Intégration du framework :

  • Prise en charge officielle de la bibliothèque 🤗 Hugging Face TRL
  • Prend en charge Trainer, Seq2SeqTrainer
  • Compatible avec le code natif PyTorch

Options de déploiement :

  • Exportation au format GGUF
  • Prend en charge le déploiement Ollama, vLLM
  • Intégration du Hub de modèles Hugging Face

Installation et utilisation

Installation rapide

Il est recommandé d'utiliser pip pour installer sur les appareils Linux :

pip install unsloth

Exemple d'utilisation de base

from unsloth import FastLanguageModel
import torch
from trl import SFTTrainer, SFTConfig

# Charger le modèle
model, tokenizer = FastLanguageModel.from_pretrained(
    model_name = "unsloth/gemma-3-4B-it",
    max_seq_length = 2048,
    load_in_4bit = True,
)

# Ajouter un adaptateur LoRA
model = FastLanguageModel.get_peft_model(
    model,
    r = 16,
    target_modules = ["q_proj", "k_proj", "v_proj", "o_proj"],
    lora_alpha = 16,
    use_gradient_checkpointing = "unsloth",
)

# Démarrer l'entraînement
trainer = SFTTrainer(
    model = model,
    train_dataset = dataset,
    tokenizer = tokenizer,
    # Autres paramètres d'entraînement
)
trainer.train()

Tests de performance

Comparaison de l'efficacité de l'entraînement

Modèle Mémoire GPU Vitesse Unsloth Réduction de la mémoire GPU Longueur du contexte Hugging Face + FA2
Llama 3.3 (70B) 80GB 2x >75% 13x plus long 1x
Llama 3.1 (8B) 80GB 2x >70% 12x plus long 1x

Prise en charge du contexte long

Dans les mêmes conditions matérielles, la longueur du contexte prise en charge par Unsloth dépasse de loin les méthodes traditionnelles :

  • GPU 8GB : Unsloth prend en charge 2 972 tokens, la méthode traditionnelle OOM
  • GPU 24GB : Unsloth prend en charge 78 475 tokens, la méthode traditionnelle seulement 5 789 tokens
  • GPU 80GB : Unsloth prend en charge 342 733 tokens, la méthode traditionnelle seulement 28 454 tokens

Dernières mises à jour des fonctionnalités

Mises à jour importantes récentes

  1. Prise en charge de Llama 4 : Les derniers modèles Scout et Maverick de Meta
  2. Prise en charge complète : FFT, tous les modèles (Mixtral, MOE, Cohere, Mamba) et tous les algorithmes d'entraînement
  3. Modèles visuels : Prend en charge Llama 3.2 Vision, Qwen 2.5 VL, Pixtral, etc.
  4. Optimisation de l'inférence : Vitesse d'inférence 2 fois plus rapide

Fonctionnalités spéciales

  • Interface de chat : Fournit une interface de chat interactive
  • Correction de l'accumulation de gradients : Découverte et correction d'un bug d'accumulation de gradients
  • Cut Cross Entropy : Technologie d'optimisation ajoutée en collaboration avec Apple
  • Pré-entraînement continu multilingue : Prend en charge le coréen et d'autres langues

Communauté et écosystème

Documentation et support

  • Documentation officielle : docs.unsloth.ai
  • Dépôt GitHub : Communauté open source active
  • Médias sociaux : Compte officiel Twitter/X
  • Forum communautaire : Page Reddit pour les échanges

Ressources d'apprentissage

  • Notebooks Colab adaptés aux débutants
  • Guides d'installation et d'utilisation détaillés
  • Notebooks dédiés aux compétitions Kaggle
  • Documentation API complète

Conclusion

Unsloth est l'un des meilleurs outils open source de fine-tuning LLM actuellement disponibles, qui permet d'améliorer considérablement la vitesse d'entraînement et l'efficacité de la mémoire grâce à des techniques d'optimisation innovantes. Les chercheurs comme les développeurs industriels peuvent bénéficier des capacités d'entraînement efficaces d'Unsloth. Les mises à jour continues du projet et le soutien actif de la communauté en font un choix important dans le domaine du fine-tuning LLM.