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.

Unsloth:高效微调和训练大语言模型的开源工具

 

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

  1. 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
  2. entrepôt de clonesCloner le dépôt Unsloth en utilisant Git : bash
    git clone https://github.com/unslothai/unsloth.git
    cd unsloth
  3. Installer le déballagePour installer Unsloth, exécutez la commande suivante : bash
    pip install -e .

Tutoriels

  1. 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)
    
  2. 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()
    
  3. 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
AiPPT

Articles connexes

Pas de commentaires

Vous devez être connecté pour participer aux commentaires !
S'inscrire maintenant
aucun
Pas de commentaires...