Fine-Tuning et Instruct Tuning LLM : adapter ses modèles de langage

Temps de lecture : 12 mins
Fine Tuning Llm
Diego Akel Ingénieur DevOps / Cloud
27 novembre 2024

Le fine-tuning est une technique incontournable dans le domaine des grands modèles de langage (LLM) qui permet d’adapter des modèles pré-entraînés à des tâches ou domaines spécifiques. Le processus de fine-tuning LLM implique un entraînement supplémentaire d’un modèle pré-entraîné sur un ensemble de données plus petit et spécifique à une tâche pour affiner ses capacités et améliorer ses performances pour des applications particulières.

D’une certaine manière, le fine-tuning LLM est une voie pour créer un modèle personnalisé pour le cas d’usage d’une entreprise. 

Fine-tuning LLM : pourquoi optimiser ses modèles de langage ?

Les avantages du fine-tuning LLM

L’utilité du fine-tuning provient de sa capacité à combler l’écart entre les LLM à usage général et les cas d’utilisation spécialisés. Bien que les modèles pré-entraînés comme Claude 3.5 ou GPT4o possèdent une large compréhension du langage, ils peuvent manquer de connaissances nuancées nécessaires pour des tâches spécifiques.

Le fine-tuning de LLM répond à cette limitation en permettant au modèle d’apprendre des motifs et des connaissances spécifiques à la tâche sans avoir besoin d’un entraînement à partir de zéro (ce qui est impossible financièrement pour une petite ou moyenne entreprise). 

Le fine-tuning de LLM offre plusieurs avantages clés : 

Le processus de fine-tuning LLM implique généralement des techniques comme l’apprentissage par transfert, où les poids du modèle pré-entraîné sont mis à jour en utilisant un taux d’apprentissage plus faible. Cette approche permet au modèle de conserver sa compréhension générale du langage tout en s’adaptant à de nouvelles tâches.

Fine-tuning LLM : les avancées technologiques

Les avancées récentes dans les techniques de fine-tuning LLM, comme les méthodes de Fine-Tuning Efficace en Paramètres (PEFT) telles que LoRA (Low-Rank Adaptation), ont encore amélioré l’efficacité du processus. Ces méthodes permettent l’ajustement d’un petit sous-ensemble des paramètres du modèle, réduisant les besoins en calcul tout en maintenant les gains de performance. 

Une façon simple d’en tirer parti est d’utiliser la bibliothèque Unsloth, qui est essentiellement une suite d’optimisations autour de l’utilisation de la mémoire et du calcul, rendant l’entraînement beaucoup plus simple et moins coûteux sans perdre en performance. La capacité d’Unsloth à accélérer le processus de fine-tuning jusqu’à 30 fois et à réduire l’utilisation de la mémoire de 60% permet d’affiner des modèles plus grands sur du matériel plus modeste, démocratisant ainsi l’accès à la personnalisation avancée des LLM. 

Fine-tuning LLM : comment Unsloth facilite-t-il le processus ? 

Unsloth emploie plusieurs techniques innovantes pour optimiser le fine-tuning de LLM : 

Compromis RAG vs Fine-Tuning 

Nous avons déjà publié plusieurs articles sur le RAG (sur AWS et Azure) vous pouvez les consulter au cas où vous ne connaîtriez pas RAG. 

Pour choisir entre fine-tuning et RAG pour améliorer les performances des LLM, plusieurs facteurs doivent être considérés : 

Intégration des connaissances : 

Adaptabilité : 

Vitesse d’inférence : 

Empreinte mémoire : 

Spécialisation vs. généralisation : 

Exigences en données : 

Ressources computationnelles : 

Explicabilité : 

Cohérence : 

Approches hybrides : 

Le Retrieval-Augmented Fine-Tuning (RAFT) combine les deux méthodes, offrant potentiellement le meilleur des deux mondes. 

Qu’est-ce que l’instruct tuning LLM ?

Instruct tuning LLM : adaptation de modèles basés sur les instructions

Le fine-tuning LLM par instructions, également connu sous le nom d’instruct tuning, est une forme spécialisée de fine-tuning qui vise à améliorer la capacité d’un grand modèle de langage à suivre des instructions en langage naturel et à effectuer des tâches spécifiques. Cette technique implique l’entraînement du modèle sur un ensemble de données de paires instruction-sortie, où chaque entrée consiste en une description de tâche ou une instruction, et la sortie correspondante démontre la réponse souhaitée. 

La principale distinction entre l’instruct tuning et le fine-tuning LLM traditionnel réside dans la structure des données d’entraînement. Alors que le fine-tuning standard peut utiliser des paires entrée-sortie spécifiques à une tâche, l’instruct tuning LLM incorpore explicitement des instructions dans l’entrée, apprenant au modèle à interpréter et exécuter une grande variété de tâches basées sur des prompts en langage naturel. 

Les étapes du processus d’instruct tuning LLM

Les avantages de l’instruct tuning LLM par rapport au fine-tuning traditionnel

Les avancées récentes dans l’instruct tuning LLM

L’efficacité de l’instruct tuning LLM est évidente dans les modèles d’usage quotidien. Chaque modèle avec lequel nous interagissons habituellement est un instruct finetuning ! Tous les grands modèles comme Claude 3.5, GPT4o, o1-preview etc sont entraînés par instructions. Leur contrepartie est le modèle « base », qui est le modèle initial entraîné uniquement pour compléter des phrases, et non pour répondre aux requêtes des utilisateurs. Ce modèle n’est généralement pas très utile pour les applications quotidiennes, mais ils sont le commencement de tous les LLM. 

Carrière ingénieur architecte cloud devops modern workplace IT

Démo d’instruct tuning LLM

Pour voir cela en action, utilisons un modèle assez petit mais puissant sorti récemment, Llama3.2 1B. Comme nous allons faire de l’instruct training LLM, nous devons utiliser le modèle de base. Heureusement, nous pouvons facilement le trouver sur la page Hugging Face de Meta, et pour un exemple simple, nous allons apprendre au modèle à répondre aux requêtes de l’utilisateur pour fournir du code Python pour une tâche donnée. La plupart des « connaissances Python » sont déjà présentes dans les poids du modèle, nous apprenons simplement au modèle à répondre effectivement avec du code Python, donc nous pouvons obtenir de bons résultats avec seulement 18k paires de questions -> réponses (que nous pouvons heureusement trouver dans ce jeu de données open-source avec des exemples Python). 

Pour toutes les étapes du fine-tuning LLM et le modèle final créé, vous pouvez utiliser ce notebook Colab qui vous permet de réaliser l’entraînement complet en quelques minutes sans dépenser un centime ! 

Articles similaires

GitHub Copilot devient gratuit : un changement majeur dans l’assistance à la programmation

Qu’est-ce que GitHub Copilot et pourquoi cet engouement ? GitHub Copilot, lancé en 2021, est un assistant de programmation basé sur...

Applications conteneurisées : comment ça fonctionne ?

La conteneurisation est devenue une pierre angulaire de la modernisation des applications dans le monde de l’informatique. Cette technologie permet...

Conteneurs sur AWS : ECS vs EKS vs Lambda

Avec plusieurs options disponibles, telles qu’Amazon ECS, EKS et Lambda, il est crucial pour les entreprises de sélectionner une solution...