Unsloth : un outil open source pour l'affinage et l'entraînement efficaces de grands modèles de langage
Introduction générale
Unsloth est un projet open source conçu pour fournir des outils efficaces pour l'ajustement et l'entraînement de grands modèles linguistiques (LLM). Le projet prend en charge un large éventail de modèles bien connus, dont Llama, Mistral, Phi et Gemma, etc. Les principales caractéristiques d'Unsloth sont sa capacité à réduire considérablement l'utilisation de la mémoire et à accélérer l'apprentissage, ce qui permet aux utilisateurs de terminer l'ajustement et l'apprentissage des modèles en moins de temps. En outre, Unsloth fournit une documentation complète et des tutoriels pour aider les utilisateurs à démarrer rapidement et à tirer pleinement parti de ses fonctionnalités.

Liste des fonctions
- Un réglage fin efficacePrise en charge de plusieurs modèles tels que Llama, Mistral, Phi et Gemma, avec un réglage fin 2 à 5 fois plus rapide et 50-80% moins d'utilisation de la mémoire.
- Utilisation gratuiteLes utilisateurs peuvent ainsi ajouter un ensemble de données et exécuter tout le code pour obtenir un modèle affiné.
- Formats d'exportation multiplesSupport pour l'exportation de modèles affinés vers GGUF, Ollama, vLLM ou le téléchargement vers Hugging Face.
- quantification dynamiqueLa quantification dynamique sur 4 bits permet d'améliorer la précision du modèle tout en ajoutant moins de 10% de mémoire.
- Soutien à long termeLa version française du logiciel : supporte 89K fenêtres contextuelles pour les modèles Llama 3.3 (70B) et 342K fenêtres contextuelles pour les modèles Llama 3.1 (8B).
- Aide à la modélisation visuelleSupport des modèles de vision tels que Llama 3.2 Vision (11B), Qwen 2.5 VL (7B) et Pixtral (12B).
- Optimisation du raisonnementLe système de gestion de l'inférence : Il fournit une variété d'options d'optimisation de l'inférence afin d'améliorer de manière significative la vitesse d'inférence.
Utiliser l'aide
Processus d'installation
- Installation des dépendancesPython 3.8 et plus : Assurez-vous que Python 3.8 et plus est installé, et que les dépendances suivantes sont installées :
bash
pip install torch transformers datasets - entrepôt de clonesCloner le dépôt Unsloth en utilisant Git :
bash
git clone https://github.com/unslothai/unsloth.git
cd unsloth - Installer le déballagePour installer Unsloth, exécutez la commande suivante :
bash
pip install -e .
Tutoriels
- Modèles de chargementChargement du modèle pré-entraîné dans un script Python :
from transformers import AutoModelForCausalLM, AutoTokenizer model_name = "unslothai/llama-3.3" model = AutoModelForCausalLM.from_pretrained(model_name) tokenizer = AutoTokenizer.from_pretrained(model_name)
- Affiner le modèleLes modèles d'évaluation de la qualité de l'eau et de la qualité de l'air sont des exemples de ce que l'on peut faire pour améliorer la qualité de l'eau. Voici un exemple simple :
from unsloth import Trainer, TrainingArguments training_args = TrainingArguments( output_dir="./results", num_train_epochs=3, per_device_train_batch_size=4, save_steps=10_000, save_total_limit=2, ) trainer = Trainer( model=model, args=training_args, train_dataset=train_dataset, eval_dataset=eval_dataset, ) trainer.train()
- Modèle d'exportationUne fois la mise au point terminée, le modèle peut être exporté dans différents formats :
python
model.save_pretrained("./finetuned_model")
tokenizer.save_pretrained("./finetuned_model")
Fonctionnement détaillé
- quantification dynamiqueUnsloth prend en charge la quantification dynamique sur 4 bits pendant le processus de réglage fin, ce qui peut améliorer de manière significative la précision du modèle tout en ajoutant moins de 10% de mémoire. Les utilisateurs peuvent activer cette fonction dans les paramètres de formation :
training_args = TrainingArguments( output_dir="./results", num_train_epochs=3, per_device_train_batch_size=4, save_steps=10_000, save_total_limit=2, quantization="dynamic_4bit" )
- Soutien à long termeUnsloth supporte la fenêtre contextuelle de 89K du modèle Llama 3.3 (70B) et la fenêtre contextuelle de 342K du modèle Llama 3.1 (8B). Cela permet au modèle de mieux gérer les textes longs. L'utilisateur peut spécifier la taille de la fenêtre contextuelle lors du chargement du modèle :
model = AutoModelForCausalLM.from_pretrained(model_name, context_window=89000)
- Aide à la modélisation visuelleUnsloth supporte également une variété de modèles de vision tels que Llama 3.2 Vision (11B), Qwen 2.5 VL (7B) et Pixtral (12B). Les utilisateurs peuvent utiliser ces modèles pour la génération et le traitement d'images :
python
model_name = "unslothai/llama-3.2-vision"
model = AutoModelForImageGeneration.from_pretrained(model_name)
© déclaration de droits d'auteur
L'article est protégé par le droit d'auteur et ne doit pas être reproduit sans autorisation.
Articles connexes
Pas de commentaires...