← Retourner à la liste des articles
Image blog
Auteur

Par Maxime Jumelle

CTO & Co-Founder

Publié le 2 févr. 2024

Catégorie IA Générative

Fine-tuning de LLM : tout savoir

Un des plus gros atouts des LLM concerne indéniablement leur grande connaissance sur de nombreux sujets, ainsi que leur forte capacité de généralisation. Pour de nombreuses entreprises, une des applications les plus importantes concerne la documentation interne, afin qu'un LLM puisse apporter des réponses claires et efficaces en se basant sur toute la documentation d'une entreprise.

En revanche, certains secteurs ou domaines comme l'assurance, le médical ou le juridique utilisent un jargon et un vocabulaire qui leur sont propres. Un LLM peut alors avoir des difficultés à modéliser des relations entre des documents lorsqu'il n'a pas eu l'occasion de voir le vocabulaire utilisé auparavant. C'est ainsi que différentes méthodes comme le RAG ou le fine-tuning sont apparues afin de spécialiser des LLM sur des situations bien précises qu'il n'a jamais rencontré.

Nous allons justement voir dans cet article un tour d'horizon des principales méthodes de fine-tuning, en quoi il diffère du RAG, et lister les principaux avantages et inconvénients de ces méthodes.

Qu'est-ce que le fine-tuning de LLM ?

Le fine-tuning de LLM consiste à ajuster les paramètre du modèle afin que celui-ci soit spécialisé sur une tâche précise, ou pour un domaine particulier. Même si la plupart des LLM modernes comme ChatGPT, Mistral ou encore Llama se veulent le plus génériques possibles, ils manquent tout de même d'une certaine spécialisation sur des sujets spécifiques.

L'intérêt du fine-tuning est donc de profiter des performances importantes de ces LLM pour les appliquer sur un domaine précis, combinant ainsi efficacité et personnalisation. Le LLM aura alors une bien meilleure connaissance d'un domaine spécifique, ce qui évite de voir créer son propre LLM dans un secteur particulier (assurance, pharmaceutique ou juridique par exemple).

Fine-tuning de modèles

En pratique, le fine-tuning est une solution adaptée lorsque l'on souhaite donner à un LLM générique une capacité de raisonnement spécialisée sur un domaine spécifique ou en adoptant un vocabulaire qui lui est propre.

Méthodes de fine-tuning de LLM

Il existe de nombreuses méthodes de fine-tuning pour les LLM, où chacune va dépendre des ressource à disposition, du temps que l'on peut y consacrer mais également de l'objectif final vers lequel on souhaite tendre.

Globalement, nous pouvons regrouper toutes les méthodes de fine-tuning de LLM en deux catégories : le fine-tuning supervisé (supervised fine-tuning) et le RLHF (reinforcement learning from human feedback).

Fine-tuning supervisé

Ces méthodes se rapprochent le plus de celle dont on a l'habitude de faire dans un contexte de Machine Learning avec des modèles plus classiques comme des arbres de décision ou des méthodes d'ensemble (XGBoost, Random Forest).

Transfer Learning

On y retrouve premièrement le transfer learning : une méthode déjà bien connue depuis plusieurs années et pratiquée sur la plupart des réseaux de neurones profonds. L'idée principale est de partir d'un LLM déjà entraîné sur un gros corpus, comme la plupart des LLM à plusieurs dizaines de milliards de paramètres.

Ensuite, le LLM est adapté afin qu'il puisse voir de nombreux exemples

Few-Shot Learning

Enfin, la méthode de few-shot learning utilise une technique de prompting qui porte le même nom, dont le but est de fournir directement de nombreux exemples de questions/demandes posés par un utilisateur, et de réponse associée par le LLM que l'on souhaiterait voir apparaître.

La particularité de cette méthode est qu'elle n'a pas besoin d'être effectuée en amont de la phase d'inférence (génération de la réponse) : elle se fait directement à ce moment. Ainsi, il sera possible, avant chaque requête au LLM, de lui fournir de nombreux exemple comme illustré ci-dessous, afin de permettre au LLM d'avoir une connaissance supplémentaire avec un contexte spécifique lorsqu'il va fournir une réponse.

Prompt :
> La plateforme ELearning Blent propose une formation Data Scientist qui aborde le traitement de données, la visualisation de données, l'apprentissage supervisé ainsi que l'interprétabilité de modèles statistiques et le déploiement de modèles.
> La plateforme ELearning Blent propose une formation Data Engineer qui aborde le SQL, les frameworks Big Data comme Hadoop et Spark, la diffusion de données en temps réel avec Apache Kafka, l'automatisation avec Apache Airflow et la conteneurisation avec Docker et Kubernetes.
> La plateforme ELearning Blent propose une formation MLOps qui traite de l'automatisation et le déploiement de modèles de Machine Learning pour de la mise en production, de l'industrialisation de ces modèles et de leur exposition via le Cloud.
> La plateforme ELearning Blent propose une formation Cloud et DevOps qui aborde tous les sujets liés au DevOps, notamment la virtualisation, la conteneurisation, l'infrastructure en tant que code et le monitoring d'infrastructure, mais également des principaux services du Cloud.

Si je souhaite apprendre à faire du calcul distribué sur des données structurées, quelle serait la formation la plus adaptée pour moi ?

---

Réponse :
> Si vous souhaitez apprendre à faire du calcul distribué sur des données structurées, la formation la plus adaptée pour vous serait probablement la formation Data Engineer proposée par la plateforme ELearning Blent. Cette formation couvre des sujets tels que le SQL, les frameworks Big Data comme Hadoop et Spark, ainsi que la conteneurisation avec Docker et Kubernetes.

L'avantage de cette méthode est qu'elle donne une grande flexibilité sur la mise en place de LLM spécialisés, car il n'est pas nécessaire de devoir effectuer un apprentissage avant l'inférence.

Néanmoins, cette méthode peut s'avérer limitée lorsqu'il y a de nombreux exemples (plusieurs milliers) à fournir au LLM, notamment en raison de la limitation de la fenêtre contextuelle, c'est-à-dire du nombre de mots maximum que l'on peut soumettre à chaque demande.

Reinforcement Learning from Human Feedback (RLHF)

Au cours des différentes expérimentations, de nouvelles méthodes ont été développées avec un point commun concernant une nouvelle approche : utiliser le feedback humain pour guider les réponses du modèle.

Historiquement, l'humain pouvait intervenir dans la construction d'une base d'apprentissage mais de manière assez superficielle. Ces bases étaient souvent déjà construites et utilisés comme source de vérité.

Avec l'utilisation des LLM, malgré l'existence de métriques permettant de mesurer leurs performances, le feedback humain est souvent un des meilleurs indicateurs pour déterminer si les réponses générées par le modèle sont pertinentes ou non.

Comparaison entre le RAG et le fine-tuning

Le RAG est une technique qui permet également de spécialiser un modèle sur un domaine précis. Même si les deux approches peuvent sembler plus ou moins similaires, les finalités ne sont pas tout à fait les mêmes.

En effet, avec un RAG, on apporte des documents ou des informations supplémentaires au LLM sans avoir besoin de ré-entraîné à nouveau le modèle : cela permet donc d'ajouter dynamiquement et en quasi temps réel de nouvelles informations. Avec le fine-tuning en revanche, cela n'est pas facilement faisable car il faudrait à chaque fois ré-entraîner un modèle, ce qui est long à mettre en place.

Le fine-tuning est ainsi plutôt utilisé pour affiner un LLM dans des tâches de traduction automatique, de résumés ou pour apporter une manière de répondre spécifique, comme un raisonnement particulier qu'un modèle générique n'aurait pas.

À l'inverse, le RAG est plutôt utilisé pour permettre au LLM d'avoir accès à des informations externes, notamment pour apporter des réponses à des questions qui sont basées sur des documents ou à l'aide de connaissances spécifiques.

RAG

Fine-tuning

Données dynamiques

Informations en temps réel

Changement de comportement du modèle

Adaptation de la capacité de raisonnement

Rapide à mettre en place

Avantages du fine-tuning

Le fine-tuning de LLM offre de nombreux avantages pour développer des modèles spécifiques à un domaine particulier.

  • L'efficacité du modèle obtenu est sans doute l'un des plus gros avantages. Comme nous l'avons mentionné précédemment, tout l'intérêt de réaliser du fine-tuning de LLM sur un domaine particulier est de le rendre plus efficace dans ses réponses, notamment parce qu'il a pu voir des situations avec du vocabulaire spécifique, ou en proposant des réponses différentes d'un modèle plus général.
  • Un autre avantage lié au fine-tuning concerne sa capacité à généraliser pour des nouvelle situations analogues à ce qu'il a pu rencontrer. Cela est particulièrement utile lorsque la base d'apprentissage est limitée en nombre d'exemples, évitant ainsi d'avoir un LLM trop sujet à la répétition au même au sur-apprentissage.
  • Enfin, de nombreuses librairies logicielles aujourd'hui comme HuggingFace couplé avec LangChain offrent au développeur une facilité de réaliser du fine-tuning.

Néanmoins, il existe tout de même quelques difficultés dans la mise en place de fine-tuning de LLM. La principale difficulté est la forte demande en ressources de calculs qui peut être nécessaire. En effet, contrairement au RAG qui ne va pas modifier les paramètres du modèle, le fine-tuning nécessite à l'inverse de modifier ces paramètres situés dans les couches denses et profondes d'un LLM. Ainsi, des GPU avec plusieurs dizaines de gigaoctets de mémoire vive peuvent être nécessaire : le coût d'entraînement peut alors se chiffrer à plusieurs centaines voir milliers d'euros.

L'autre problématique qui peut survenir reste tout de même la possibilité d'un sur-apprentissage : même si les LLM ont démonté leur capacité à généraliser efficacement, il y a toujours un compromis à déterminer entre nombre d'exemple annotés minimum et généralisation suffisante. Cette situation implique dont qu'il doit exister une base d'apprentissage annotée suffisante en taille, ce qui n'est pas toujours le cas dans certains cas d'applications spécifiques.

Enfin, la mise en place de fine-tuning est techniquement plus difficile que l'intégration d'un RAG par exemple. Les équipes Data qui sont chargées de réaliser du fine-tuning doivent donc disposer des compétences opérationnelles spécifiques aux méthodes de fine-tuning.

Conclusion

Tout au long de l'article, nous avons pu voir que le principal intérêt du fine-tuning de LLM est de spécialiser un modèle de langage sur un domaine particulier ou pour apporter des réponses précises. Alternative aux méthodes de RAG, le fine-tuning est une des possibilités permettant de conserver un fort pouvoir de généralisation des LLM avec des objectifs métiers sur un secteur (banque, assurance, médical) précis.

Il faut tout de même garder à l'esprit que le fine-tuning nécessite des compétences techniques en Data, ainsi que de la puissance de calcul et des GPU à disposition afin de pouvoir obtenir des résultats cohérents. Pour les entreprises, le fine-tuning sera ainsi l'étape suivante après le RAG pour permettre un maximum de personnalisation de LLM, notamment pour des cas d'usage en interne.

Articles similaires

Blog

13 févr. 2024

IA Générative

Avec l'explosion de l'IA Générative appliquée à la génération de texte ces dernières années, de nombreuses entreprises ont souhaité pouvoir déployer en interne leur propres LLM. Elles disposent ainsi de deux possibilités : utiliser directement des modèles disponibles en version SaaS comme ChatGPT ou Cohere, ou déployer dans leur propre SI un LLM open source adaptés à leurs propres besoins.
Maxime Jumelle

Maxime Jumelle

CTO & Co-Founder

Lire l'article

Blog

30 janv. 2024

IA Générative

Le prompting est une discipline qui a vu le jour avec l'explosion des LLM. En effet, il y a de nombreuses manières de poser des questions à un modèle, et puisqu'ils sont aujourd'hui très généralistes, il est important d'être précis dans ses propositions.
Maxime Jumelle

Maxime Jumelle

CTO & Co-Founder

Lire l'article

Blog

19 janv. 2024

IA Générative

Avec les développements récents sur les LLM, et plus particulièrement sur les derniers modèles proposés en open source ou propriétaires, de plus en plus d'entreprises ont désormais la capacité de pouvoir les intégrer dans leurs propres projets.
Maxime Jumelle

Maxime Jumelle

CTO & Co-Founder

Lire l'article

© 2024 Blent.ai | Tous droits réservés