Fine-Tuning de LLM : comment adapter vos 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. Ce processus 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, c’est une voie pour créer un modèle personnalisé pour le cas d’usage d’une entreprise. 

Pourquoi optimiser ses modèles de langage avec le fine-tuning de LLM ?

Les avantages du fine-tuning de 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 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 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 de LLM : les avancées technologiques

Les avancées récentes dans les techniques de fine-tuning, 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. 

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 ?

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

Le fine-tuning 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 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 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

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

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

L’efficacité de l’instruct tuning 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 

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, 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 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

Gérer son projet de migration cloud : 6 conseils pour éviter les dérives

Entre les risques à anticiper, les délais serrés et la maîtrise financière d’une migration cloud, généralement stratégique pour l’entreprise, chaque...

Migration tenant à tenant Microsoft 365 : stratégies et bonnes pratiques

Avec la croissance des fusions, acquisitions et réorganisations internes, la migration de tenant à tenant dans Microsoft 365 est un...

Comment réaliser sa migration vers Microsoft 365 ?

Pourquoi migrer vers Microsoft 365 ? Face à l’évolution constante des technologies numériques, les entreprises sont confrontées à un choix...