Optimisation des modèles de langage de grande échelle (LLM) pour l’appel d’outils : guide complet à l’aide de XYZ-Aquila-SFT et Qwen3

Le domaine de l’IA connaît encore aujourd’hui une évolution intéressante.

Optimisation des modèles de langage de grande échelle (LLM) pour l’appel d’outils : guide complet à l’aide de XYZ-Aquila-SFT et Qwen3

Dans ce tutoriel, nous mettons en œuvre un pipeline complet de fin-ajustement supervisé pour le jeu de informations XYZ-Aquila-SFT, à l’aide de Hugging Face Transformers, PyTorch et PEFT. Nous traitons et inspectons le jeu de informations en continu, analysons les trajectoires d’utilisation d’outils à divers étapes, extrayons les appels d’outils structurés, analysons les caractéristiques du corpus et préservons les schémas de raisonnement et d’observation sous-jacents. Nous convertissons ensuite les schémas d’outils entre les formats intégrés aux messages et structurés, générons du ChatML compatible avec Qwen en masquant les pertes liées uniquement à l’assistant, préparons un ensemble de éléments et un collateur PyTorch personnalisés, puis affinons le modèle Qwen3-0.6B à l’aide de LoRA. Enfin, nous évaluons la prédiction des appels d’outils avant et après l’entraînement, puis exportons à la fois le jeu de données transformé et les statistiques du corpus en vue d’expérimentations ultérieures.

Nous configurons l’ensemble de données, le modèle, les paramètres d’entraînement, le répertoire de sortie et les paramètres de reproductibilité pour l’ensemble du workflow. Nous installons les dépendances requises liées à Hugging Face, PEFT, Accelerate et PyTorch, et vérifions si un GPU CUDA et la prise en charge de BF16 sont disponibles. Nous diffusons ensuite en continu un nombre limité d’exemples XYZ-Aquila-SFT, inspectons le schéma du jeu de données et examinons la structure de la première trajectoire d’utilisation d’outils.

Nous terminons le workflow en enregistrant les artefacts de jeux de informations réutilisables, les performances analytiques et les fichiers de modèles dans le répertoire de sortie configuré.

Par ailleurs, nous définissons des utilitaires « nesting-safe » permettant d’extraire de chaque conversation les appels d’outils JSON, les blocs de raisonnement, les observations et les schémas d’outils intégrés. Nous convertissons chaque ligne du jeu de informations brut en un objet de trajectoire structuré et vérifions que les nombres d’appels d’outils analysés correspondent aux valeurs déclarées par le jeu de données. Nous calculons ensuite des statistiques au niveau du corpus et visualisons les distributions des appels d’outils, de la profondeur des messages, de la taille des trajectoires et de la fréquence d’utilisation des outils.

Nous extrayons les définitions d’outils intégrées dans un format structuré et les reconstituons afin de vérifier si la conversion préserve le message d’origine du système. Nous convertissons manuellement chaque trajectoire au format ChatML afin de conserver l’intégralité du contenu de raisonnement et n’appliquons la perte qu’aux tokens générés par l’assistant. Nous tokenisons également les exemples, appliquons la politique de longueur de séquence sélectionnée, créons la division entre données d’entraînement et d’évaluation, et préparons un DataLoader PyTorch complété par des données de remplissage.

En complément, nous construisons des sondes d’évaluation « teacher-forced » en découpant les trajectoires situées immédiatement avant les tours de l’assistant qui contiennent des appels d’outils. Nous chargeons Qwen3-0.6B, mesurons ses performances de base en matière d’appels d’outils, y ajoutons des adaptateurs LoRA, puis affinons le modèle d’IA à l’aide de l’accumulation de gradients, de la précision mixte, de la création de points de contrôle, de l’écrêtage et de la planification du taux d’apprentissage par cosinus. Nous évaluons ensuite le modèle adapté, comparons ses indicateurs à ceux du modèle de référence, puis enregistrons l’adaptateur LoRA et le tokeniseur entraînés.

Par ailleurs, nous exportons chaque trajectoire analysée sous la forme d’un enregistrement JSONL structuré contenant des messages, des schémas d’outils, des questions et des réponses. Nous enregistrons également un rapport JSON indiquant la taille du corpus, la fréquence d’utilisation des outils, les statistiques relatives aux trajectoires, les ratios de tokens supervisés, de ce fait que les résultats d’évaluation disponibles. Nous terminons le workflow en enregistrant les artefacts de jeux de informations réutilisables, les performances analytiques et les fichiers de modèles dans le répertoire de sortie configuré.

En conclusion, nous avons mis au point un pipeline pratique permettant d’analyser, de transformer, d’affiner et d’évaluer des trajectoires complexes d’utilisation d’outils issues du jeu de données XYZ-Aquila-SFT. Nous avons conservé la structure conversationnelle d’origine, appliqué une supervision au niveau des tokens uniquement aux réponses de l’assistant et utilisé LoRA pour adapter efficacement Qwen3-0.6B sur un GPU compatible avec Colab. Nous avons également comparé les résultats de l’assistant en matière d’appel d’outils avant et après l’entraînement grâce à une évaluation « teacher-forced », et exporté des enregistrements structurés réutilisables, des adaptateurs de modèles et des statistiques analytiques. Ce workflow nous offre une base solide pour étendre le réglage fin supervisé tenant compte des outils, tester différentes stratégies en matière de longueur de séquence et entraîner des modèles linguistiques agentiques plus performants.

À noter également, vous souhaitez collaborer avec nous pour promouvoir votre dépôt GitHub, votre page Hugging Face, le lancement d’un produit, un webinaire, etc. ? Contactez-nous.

Les retombées concrètes se feront sentir dans les mois qui viennent.

À lire également :


Source originale : MarkTechPost : MarkTechPost