Avancé 14 minFine-tuning

Unsloth : fine-tuner un LLM sur une carte grand public

Réponse directe

Unsloth est une bibliothèque Python libre (Apache 2.0 pour le cœur, plus de 76 000 étoiles sur GitHub) qui réécrit les étapes lourdes du fine-tuning LoRA et QLoRA : jusqu'à deux fois plus vite avec 70 % de VRAM en moins, selon l'éditeur. Sa documentation donne un minimum de 6 Go pour un modèle de 8 milliards en QLoRA 4 bits : une carte de 12 Go suffit, puis l'export GGUF mène à Ollama.

Unsloth rend le fine-tuning d'un modèle ouvert réalisable sur une carte graphique grand public : mêmes méthodes qu'ailleurs, mais des noyaux de calcul réécrits qui réduisent le temps et la mémoire nécessaires. Un modèle de 7 ou 8 milliards de paramètres s'ajuste ainsi sur une carte de 12 Go, et le résultat s'exporte en GGUF pour tourner dans Ollama. Reste la question qui précède tout le reste : avez-vous vraiment besoin de fine-tuner ?

Par Mohamed Meguedmi·Màj 2026-09-29·Testé sur Windows, macOS, Linux

#La question à trancher avant d'installer quoi que ce soit

Oui, on peut fine-tuner un modèle de 7 ou 8 milliards de paramètres sur une carte grand public : la documentation d'Unsloth donne un minimum de 5 à 6 Go de VRAM en QLoRA 4 bits, donc une carte de 12 Go convient, avec de la marge pour le contexte et le lot. Unsloth réécrit les étapes lourdes du fine-tuning LoRA et QLoRA pour, selon l'éditeur, aller jusqu'à deux fois plus vite avec 70 % de VRAM en moins, chiffre qui vaut pour certains notebooks seulement. Le résultat s'exporte en GGUF pour tourner dans Ollama. Mais la vraie question précède l'installation : le fine-tuning change le comportement d'un modèle (ton, format, registre), pas ce qu'il sait à jour. Si vous voulez qu'il connaisse vos documents, construisez d'abord une recherche documentaire. Comptez aussi que la préparation du jeu de données prend plus de temps que l'entraînement.

Le fine-tuning change la manière dont un modèle se comporte. La recherche documentaire change ce qu'il sait au moment de répondre. Confondre les deux fait perdre des semaines.

Ce que vous voulez, et l'outil correspondant
Votre besoinLa bonne réponse
Des réponses fondées sur vos documentsUne chaîne RAG : les documents peuvent changer tous les jours
Un format de sortie constantFine-tuning, ou génération contrainte
Un ton maison, un registre métierFine-tuning
Le vocabulaire d'un domaine spécialiséFine-tuning, avec assez d'exemples
Des informations qui changent souventRAG, toujours : réentraîner pour un tarif n'a aucun sens
Des réponses plus courtes ou plus longuesLe prompt système d'abord ; ne jamais entraîner pour ça
i
Si la réponse honnête est « je veux qu'il connaisse notre documentation »
Arrêtez-vous ici et construisez d'abord une recherche documentaire. Elle se met à jour en ajoutant un fichier et elle cite ses sources, ce que le fine-tuning ne fait pas. Le guide d'Unsloth défend d'ailleurs une autre lecture : selon lui, le fine-tuning peut injecter des connaissances et reproduire tout ce que fait le RAG, l'inverse n'étant pas vrai. C'est vrai dans le principe ; l'argument pratique pour le RAG est ailleurs, dans la mise à jour, la traçabilité et le coût d'un réentraînement à chaque changement.

#Ce qu'Unsloth change concrètement

Le kit IA Locale

Ton ChatGPT privé et gratuit sur ta machine en 1 heure — LM Studio, Ollama, Open WebUI, tes documents, sans cloud.

  • Espace en ligne à vie
  • PDF + fichiers
  • Mises à jour à vie

La méthode n'est pas nouvelle : on gèle les poids du modèle et on n'entraîne que de fines matrices ajoutées à chaque poids, soit environ 1 % des paramètres selon le guide d'Unsloth. LoRA garde le modèle d'origine en 16 bits, QLoRA le quantifie en 4 bits, ce qui économise 75 % de mémoire. C'est l'approche standard, elle n'appartient pas à Unsloth.

Ce qu'apporte la bibliothèque, c'est l'implémentation, avec des noyaux de calcul réécrits pour les étapes lourdes. Le projet existe sous trois formes : Unsloth Desktop, une application native, Unsloth Studio, une interface web, et Unsloth Core, la version pilotée par code dont parle cet article. Il est publié sous double licence : Apache 2.0 pour le cœur, AGPL-3.0 pour certains composants optionnels comme l'interface Studio. Il revendique entraîner des modèles de langage, de diffusion, de synthèse vocale et d'embeddings deux fois plus vite avec 70 % de VRAM en moins, sans perte de précision. Sur les architectures à mélange d'experts (MoE), le gain publié grimpe encore : jusqu'à 12 fois plus rapide avec plus de 35 % de VRAM économisée sur certains modèles récents. Comme tous les chiffres d'éditeur, ils décrivent le meilleur cas : le README lui-même montre que le « deux fois, 70 % » ne vaut que pour certains notebooks.

Gains annoncés par Unsloth selon le notebook (chiffres de l'éditeur)
NotebookVitesse annoncéeVRAM annoncée
Llama 3.1 (8B) Alpaca2 fois plus rapide70 % en moins
gpt-oss (20B)2 fois plus rapide70 % en moins
Qwen3.5 (4B), vision1,5 fois plus rapide60 % en moins
Gemma 4 (E2B), vision1,5 fois plus rapide50 % en moins
Orpheus-TTS (3B)1,5 fois plus rapide50 % en moins
embeddinggemma (300M)2 fois plus rapide20 % en moins

#Quelle carte pour quel modèle

Minima publiés par Unsloth pour un fine-tuning (Go de VRAM)
Taille du modèleQLoRA (4 bits)LoRA (16 bits)Lecture pour une carte grand public
3 milliards3,58Confortable sur n'importe quelle carte récente en QLoRA
7 milliards519QLoRA sur 8 Go ; LoRA 16 bits demande une carte de 24 Go
8 milliards622QLoRA sur 8 Go ou plus ; 12 Go laissent de la marge
14 milliards8,533QLoRA sur 12 Go ; LoRA 16 bits hors de portée d'une carte de 24 Go
27 milliards2264QLoRA sur 24 Go, sans marge ; LoRA 16 bits impossible sur une seule carte
32 milliards2676Au-delà de 24 Go, même en QLoRA
70 milliards41164Hors de portée d'une carte grand public

La documentation précise que ces chiffres sont des minima absolus : selon le modèle, il peut falloir davantage. Elle désigne la taille de lot trop élevée comme cause fréquente de mémoire saturée, à ramener à 1, 2 ou 3, et recommande une longueur de contexte de 2048 pour les premiers essais.

Matériel pris en charge selon la documentation d'Unsloth
PlateformeCe que dit la documentation
NVIDIA, avec Unsloth CoreLinux et Windows ; capacité de calcul 7.0 au minimum (V100, T4, RTX 20 et suivantes, A100, H100), Blackwell et DGX Spark inclus. Les GTX 1070 et 1080 fonctionnent, lentement.
AMD et IntelGuides dédiés ; l'entraînement fonctionne sur ces GPU, avec Core comme avec Studio.
MacUnsloth Studio prend en charge l'entraînement, MLX et l'inférence GGUF (macOS 12 ou plus). Pour Core, le support Apple Silicon (MLX) est indiqué comme « en préparation ».
Sans GPUStudio fonctionne pour le chat avec des modèles GGUF et pour la préparation de données, pas pour l'entraînement.
Plusieurs GPUPris en charge par Accelerate et DeepSpeed (FSDP, DDP), avec une mise en place manuelle ; l'option device_map="balanced" répartit un modèle trop gros sur plusieurs cartes.
i
Vérifiez la page du jour
Ce paysage change vite : le README annonce désormais l'entraînement sur GPU AMD sous Windows, WSL et Linux, et une application Desktop. Vérifiez la documentation du jour avant d'acheter du matériel.
!
Studio exposé sur le réseau : outils serveur activés
Le README d'Unsloth avertit que les outils côté serveur de Studio sont activés par défaut. Exposer l'interface (--secure, hôte non local, accès LAN) demande un mot de passe administrateur, et --disable-tools désactive ces outils. Gardez-la sur 127.0.0.1 tant que vous n'avez pas besoin de l'ouvrir.

#Le jeu de données est le vrai travail

Un fine-tuning ne rate jamais à cause de la bibliothèque. Il rate à cause des données.

Format
Un jeu à deux colonnes, question et réponse, le plus souvent, dans la structure de conversation attendue par le modèle. Le guide recommande de partir d'un modèle Instruct : il accepte directement les gabarits de conversation (ChatML, ShareGPT) et demande moins de données qu'un modèle de base. La régularité compte plus que le volume.
Volume
Le guide d'Unsloth recommande au strict minimum 100 lignes, et plus de 1 000 lignes pour de meilleurs résultats. Le ton et le format se déplacent avec peu d'exemples ; un vrai comportement métier en demande davantage, cohérents entre eux.
Qualité
Le modèle imite ce qu'on lui montre, y compris les erreurs. Un défaut systématique dans les données devient un défaut systématique du modèle.
Jeu de contrôle
Des exemples que le modèle ne voit jamais à l'entraînement. Sans eux, impossible de distinguer l'apprentissage du simple par cœur.
Sans code
Unsloth Studio propose des Data Recipes, qui transforment des PDF, CSV ou DOCX en jeux de données par un flux visuel, avec un aperçu avant de lancer la construction complète.
!
Le surapprentissage ressemble à une réussite
Le guide d'Unsloth le dit en une phrase : si la perte tombe à 0, c'est peut-être du surapprentissage, et il faut regarder la validation. Une perte entre 0,5 et 1,0 est, selon lui, un bon signe dans beaucoup de cas, mais cela dépend du jeu et de la tâche. Le modèle mémorisé répond parfaitement à vos questions de test et moins bien qu'avant à tout le reste. Gardez 20 % des données pour le test, visez 1 à 3 époques pour limiter le surapprentissage, et surveillez le jeu de contrôle plutôt que la courbe d'entraînement.

#De l'adaptateur au modèle utilisable

Le parcours tient en trois temps : charger un modèle en 4 bits, l'entraîner avec l'un des notebooks officiels, puis l'exporter. Le premier bloc de code charge le modèle et ajoute les adaptateurs LoRA ; l'entraînement proprement dit est assuré par l'un des notebooks d'Unsloth, que le guide conseille de copier dans votre environnement local.

Charger un modèle en 4 bits avec Unsloth Core
from unsloth import FastLanguageModel

model, tokenizer = FastLanguageModel.from_pretrained(
    model_name="unsloth/Qwen3-8B-unsloth-bnb-4bit",  # quantification dynamique 4 bits d'Unsloth
    max_seq_length=2048,
    load_in_4bit=True,
)
model = FastLanguageModel.get_peft_model(model, r=16, lora_alpha=16)

Le suffixe du nom compte. Selon le guide, un modèle qui se termine par unsloth-bnb-4bit est une quantification dynamique 4 bits d'Unsloth : elle consomme un peu plus de VRAM qu'une quantification BitsAndBytes standard, mais offre une précision nettement supérieure. Un nom qui se termine seulement par bnb-4bit désigne la version standard. Le guide ajoute que l'entraînement et le service gagnent à utiliser la même précision : servir en 4 bits, c'est entraîner en 4 bits.

Réglages par défaut du guide officiel
ParamètreValeur du guideÀ savoir
per_device_train_batch_size2Plus grand : meilleur usage du GPU, mais entraînement ralenti par le remplissage ; préférer gradient_accumulation_steps
gradient_accumulation_steps4Simule un lot plus grand sans mémoire supplémentaire
max_steps60Valeur d'essai rapide ; pour un vrai entraînement, remplacer par num_train_epochs entre 1 et 3
learning_rate2e-4Plus bas pour un réglage plus lent et précis : essayer 1e-4, 5e-5 ou 2e-5
max_seq_length2048Longueur recommandée pour les tests. La fixer plus haut « pour être large » réserve de la mémoire pour des séquences absentes de vos données : mesurez d'abord la longueur réelle de vos exemples
  1. 01
    Entraîner
    Le résultat est un adaptateur LoRA, d'environ 100 Mo dans l'exemple d'Unsloth, pas un modèle complet.
  2. 02
    Évaluer
    Contre le jeu de contrôle et contre le modèle d'origine. « Meilleur » se démontre, ne se suppose pas. Le guide note que les outils d'évaluation automatique peuvent mal refléter vos critères.
  3. 03
    Fusionner ou garder à part
    L'adaptateur peut rester séparé et s'échanger, ou être fusionné dans les poids : model.save_pretrained_merged avec save_method="merged_16bit".
  4. 04
    Exporter en GGUF et quantifier
    model.save_pretrained_gguf produit le fichier, avec q4_k_m, q8_0 ou f16 au choix. C'est ce qui rend le résultat exécutable par Ollama ou llama.cpp sur du matériel ordinaire.
Exporter un modèle entraîné en GGUF (dans la même session)
model.save_pretrained_gguf(
    "mon-modele-q4", tokenizer, quantization_method="q4_k_m"
)
# puis, avec le Modelfile fourni : ollama create mon-modele -f Modelfile
!
Le modèle exporté répond n'importe quoi dans Ollama
Cas fréquent, décrit par la documentation d'Unsloth : le modèle fonctionne bien dans Unsloth, puis donne du charabia, des générations sans fin ou des répétitions une fois exporté. La cause la plus courante est un gabarit de conversation différent de celui de l'entraînement. Il faut utiliser le même gabarit à l'entraînement et à l'inférence, le bon jeton de fin de séquence, et vérifier que le moteur n'ajoute pas un jeton de début en trop. La documentation précise qu'Unsloth crée automatiquement le Modelfile d'Ollama avec le gabarit utilisé pendant le fine-tuning.

#Les pièges classiques

Partir d'un modèle de base sans le savoir
Le guide recommande les modèles Instruct : ils acceptent les gabarits de conversation et demandent moins de données. Un modèle de base réclame un format différent (Alpaca, Vicuna) et davantage d'exemples.
Oublier le gabarit de conversation
Des exemples formatés autrement que ce qu'attend le modèle produisent un entraînement techniquement réussi et pratiquement inutile.
Mesurer sur les exemples d'entraînement
C'est l'erreur qui fait annoncer des résultats spectaculaires et livrer des modèles décevants.
Croire que ça remplacera la recherche documentaire
Ce qu'on apprend au modèle vieillit le jour où vos informations changent, et le modèle ne cite pas ses sources. Pour des faits qui évoluent, la recherche documentaire reste plus sûre.
Sous-estimer le nettoyage des exemples
Des doublons quasi identiques dans le jeu de données biaisent l'entraînement vers ces cas précis sans que rien ne l'indique dans les métriques suivies.
Changer plusieurs réglages à la fois
Modifier le taux d'apprentissage, le rang de l'adaptateur et la longueur de séquence dans le même essai empêche de savoir lequel a produit le changement observé.

#Cas d'usage concrets

Support client au ton constant
Un modèle ajusté sur des échanges réels répond avec la voix de la marque, sans consignes de style répétées dans chaque prompt.
Extraction dans un format strict
Fine-tuner sur des exemples entrée-sortie fixe le format de sortie plus fiablement qu'un prompt seul, utile avant d'envoyer le résultat à un système en aval.

Un point commun à ces cas : chacun se mesure. Avant de lancer un entraînement, formulez le critère de succès en une phrase vérifiable — « le format JSON est respecté dans au moins 95 % des sorties du jeu de contrôle », par exemple — plutôt qu'une impression générale de mieux. C'est ce critère, pas l'intuition, qui dira si le résultat justifie le temps investi.

#Le coût réel, au-delà du prix de la carte

La carte graphique n'est qu'un poste parmi d'autres. Collecter et nettoyer des exemples cohérents, écrire un jeu de contrôle que le modèle ne verra jamais, puis comparer chaque version au modèle d'origine pèse souvent davantage que l'entraînement lui-même, que le guide d'Unsloth illustre avec un essai de 60 pas.

C'est pourquoi Unsloth, aussi rapide soit-il sur l'entraînement, ne raccourcit pas un projet autant qu'on l'espère : il élimine le goulot technique, pas le travail sur les données.

→
Chronométrer le premier essai
Le guide d'Unsloth propose max_steps = 60 pour aller vite. Sur un jeu réduit, quelques centaines d'exemples, un premier essai complet, entraînement et évaluation compris, donne une estimation du temps total avant de s'engager sur le jeu complet.

#FAQ

Unsloth est-il gratuit ?+
La bibliothèque cœur est sous licence Apache 2.0 et couvre le fine-tuning LoRA et QLoRA sans coût ; le dépôt compte plus de 76 000 étoiles sur GitHub. Certains composants optionnels, comme l'interface Studio, sont sous licence AGPL-3.0 : la documentation décrit cette double licence comme un moyen de financer le projet en le gardant ouvert. Les notebooks tournent gratuitement dans Colab et Kaggle.
Quelle carte pour ajuster un modèle de 7 milliards de paramètres ?+
Le tableau d'Unsloth donne 5 Go minimum pour un modèle de 7 milliards en QLoRA 4 bits, et 19 Go en LoRA 16 bits. Une carte de 12 Go convient donc en QLoRA. La documentation précise que ce sont des minima absolus, et que la taille de lot ou des exemples longs peuvent demander davantage de mémoire.
Combien d'exemples faut-il ?+
Le guide d'Unsloth recommande au strict minimum 100 lignes et plus de 1 000 lignes pour de meilleurs résultats ; si le jeu est trop petit, on peut ajouter des données synthétiques ou un jeu de Hugging Face. La régularité prime sur le nombre : de mauvais exemples enseignent de mauvaises habitudes, aussi sûrement que de bons exemples en enseignent de bonnes.
Le modèle obtenu tourne-t-il dans Ollama ?+
Oui : on exporte en GGUF avec model.save_pretrained_gguf, on choisit la quantification (q4_k_m est recommandée par la documentation), puis on crée le modèle dans Ollama avec un Modelfile. Unsloth génère ce Modelfile avec le gabarit de conversation de l'entraînement. Si les réponses deviennent incohérentes, vérifiez d'abord que le gabarit et le jeton de fin de séquence sont les mêmes.
Ça marche sur AMD, sur Mac ou sans GPU ?+
Oui pour AMD et Intel, avec des guides dédiés. Sur Mac, Unsloth Studio prend en charge l'entraînement et l'inférence GGUF ; Core n'y est pas encore disponible pour Apple Silicon. Sans GPU, Studio sert au chat et à la préparation des données, pas à l'entraînement. Core demande une carte NVIDIA de capacité de calcul 7.0 ou plus.
Fine-tuner rendra-t-il le modèle expert de mes données ?+
Pas de façon durable. Le guide d'Unsloth soutient que le fine-tuning peut injecter des connaissances, mais elles vieillissent dès que vos données changent, alors qu'un document se remplace en une minute et se cite. Faits et documents relèvent de la recherche documentaire ; ton, format et registre relèvent du fine-tuning. Combiner les deux est courant.

Matériel recommandé : RTX 5070 Ti 16 Go — carte NVIDIA 16 Go, suffisante pour affiner un modèle 7-8B en QLoRA. Tout le matériel IA →

Ce guide vous a aidé ?

Un retour, une erreur, une précision ? Faites-nous signe, ça améliore le guide pour tout le monde.