Unsloth et Llama 3 : comment apprendre à un modèle à appeler une API de façon fiable via JSON
Machine Learning Mastery a publié un guide sur le fine-tuning de Llama 3 pour un tool calling sur mesure, avec la bibliothèque Unsloth. Le problème : un modèle généraliste tient mal un JSON strict imposé par une API donnée. Il ajoute du texte superflu, confond les types et invente des champs. La solution proposée est un fine-tuning QLoRA sur des exemples issus de votre propre schéma. Selon le projet, Unsloth accélère l'entraînement jusqu'à 2 fois et réduit la consommation de mémoire jusqu'à 70%. Un modèle de 8B paramètres peut ainsi être affiné sur un seul GPU de classe T4. • Objectif : un JSON valide et des arguments de fonctions corrects • Méthode : QLoRA, poids de base en 4 bits et petits adaptateurs • Matériel : une seule carte graphique de 16 Go
Traité par IA depuis Machine Learning Mastery ; édité par Hamidun News
Machine Learning Mastery a publié un guide sur le fine-tuning de Llama 3 pour un tool calling sur mesure, avec la bibliothèque Python Unsloth. Le problème de départ tient dans la première phrase : Llama 3 se débrouille bien sur un large éventail de tâches, mais cette polyvalence ne suffit pas à un agent censé renvoyer de manière fiable un JSON structuré pour une API précise. Il suffit d'un argument manquant ou d'une phrase superflue avant l'accolade, et l'appel de fonction échoue. Le fragment disponible ne contient que l'énoncé du problème. Nous décrivons donc ci-dessous l'approche standard pour le résoudre, sans résumer l'article ligne par ligne.
Pourquoi un modèle généraliste casse les appels
Lorsqu'un agent travaille avec une API, une erreur de format coûte cher. Le validateur de schéma rejette toute la réponse, et relancer une requête coûte de l'argent et du temps. Un modèle non entraîné échoue généralement toujours de la même façon : du texte avant et après le JSON, des champs inventés, une chaîne de caractères à la place d'un nombre, un nom de fonction inexistant. Un prompt avec des exemples réduit la part de ces erreurs sans les supprimer, surtout quand le schéma compte des dizaines de fonctions aux paramètres imbriqués.
Le fine-tuning aborde le problème autrement. Le modèle reçoit des centaines ou des milliers de paires « requête utilisateur → appel correct », tirées précisément de votre schéma, et cesse de deviner le format. Ce format devient pour lui la manière habituelle de répondre.
Ce qu'apporte Unsloth
Unsloth est une bibliothèque open source qui accélère le fine-tuning des LLM. Ses auteurs revendiquent une accélération jusqu'à 2 fois et une baisse de la consommation de mémoire vidéo jusqu'à 70% par rapport à la pile standard. Ces chiffres viennent du projet et non de mesures indépendantes ; ils peuvent différer sur votre matériel. L'intérêt pratique est ailleurs : associé à QLoRA, Unsloth permet de conserver les poids de base au format 4 bits et de n'entraîner que de petits adaptateurs LoRA. Dans ce mode, un modèle de 8 milliards de paramètres tient sur une seule carte graphique de 16 Go, par exemple un T4 du Colab gratuit.
Le kit type pour cette tâche :
- Base : Llama 3 8B Instruct
- Méthode : LoRA ou QLoRA avec quantification 4 bits des poids de base
- Données : paires « requête → appel de fonction » en JSON, strictement conformes au schéma de votre API
- Pile logicielle : Python, Unsloth, Hugging Face Datasets, TRL (SFTTrainer)
- Matériel : un GPU avec au moins 16 Go de mémoire
- Sortie : un adaptateur qui ne pèse qu'une faible fraction du modèle complet ; si nécessaire, on le fusionne avec la base et on l'exporte en GGUF pour llama.cpp ou Ollama
Où se cachent les pièges
Le principal risque concerne les données. Si les exemples d'entraînement sont bâclés, le modèle apprend ce laisser-aller avec la même assurance. Le template de chat utilisé à l'entraînement doit correspondre à celui de l'inférence, tokens spéciaux de Llama 3 compris. Un écart à ce niveau est la cause la plus fréquente du fameux « ça marchait dans le notebook, pas en prod ».
Second piège : l'absence d'exemples négatifs. Un agent doit savoir ne pas appeler une fonction quand la question n'a aucun rapport avec elle, ou demander une précision lorsqu'un argument manque. Sans ces cas, le modèle affiné se met à appeler des outils à tout propos.
Troisième problème : l'évaluation. La loss d'entraînement dit peu de choses sur la qualité de l'agent. Il faut un jeu de données de validation mis de côté et trois métriques : la part de JSON syntaxiquement valide, la précision du choix de fonction et la précision des valeurs d'arguments.
En pratique
Commencez petit. Rassemblez 300–500 exemples de qualité issus de vrais logs, annotez-les selon le schéma et gardez impérativement 10–20% pour la vérification. Lancez QLoRA sur le modèle 8B et comparez le résultat à celui de Llama 3 de base, dont le prompt contient les mêmes schémas de fonctions. Si le gain en validité du JSON et en précision des arguments est net, élargissez le jeu de données. Sinon, vérifiez le template de chat et la qualité de l'annotation.
Le fine-tuning ne remplace pas le constrained decoding. La génération guidée par une grammaire ou un schéma JSON garantit la syntaxe, tandis que le fine-tuning s'occupe du sens : quelle fonction choisir et quoi mettre dans les arguments. Combinées, ces deux approches donnent le résultat le plus prévisible. Par ailleurs, Llama 3 n'est plus une nouveauté en 2026, mais la recette se transpose à d'autres modèles pris en charge par Unsloth.
Access Frontier LLMs & Multimodal AI in One Workspace
Discover NomadNet AI (nomadnet.ai) — unified access to frontier language models, research synthesis, and multimodal workflows.
L'essentiel de l'IA — une fois par semaine
Sept actus qui ont vraiment compté, choisies à la main. Sans bruit ni communiqués.
C'est fait ! Vérifiez votre boîte mail pour la confirmation.