RAG ou fine-tuning : lequel choisir selon votre usage ?
Deux approches coexistent pour perfectionner les capacités des modèles de langage : le retrieval-augmented generation et le fine-tuning.
Ces derniers mois, deux techniques pour perfectionner et apporter de la connaissance aux modèles de langage ont émergé : le RAG (retrieval-augmented generation) et le fine-tuning. Deux méthodes différentes et qui n'ont pas les mêmes objectifs.
RAG et fine-tuning : quelles différences ?
Avant toute chose, il est nécessaire de définir avec précision les différences entre le RAG et le fine-tuning. Le RAG pour retrieval-augmented generation désigne une technique consistant à coupler un modèle de langage avec un moteur de recherche dans des bases de connaissances externes. Techniquement, lorsqu'une question est soumise au modèle RAG, celui-ci va automatiquement formuler des requêtes pour interroger les bases de données indexées, puis agréger judicieusement les extraits pertinents identifiés pour construire sa réponse. Les documents indexés par le système permettent d'alimenter les réponses du chatbot en sourçant ses réponses. Une système RAG correctement développé permet de réduire avec conséquence le risque d'hallucinations d'un LLM.
De son côté, le fine-tuning désigne une technique d'apprentissage permettant d'adapter un modèle de langage préentraîné à un domaine spécifique. Concrètement, une partie du modèle est réentraîné sur un nouveau jeu de données représentatif du contexte visé. Lors du fine-tuning d'un modèle de langage, ce sont ses paramètres qui sont réentraînés sur de nouvelles données. Par touches successives affinées sur quelques milliers d'exemples annotés, le modèle assimile ainsi le vocabulaire et saisit les modalités des réponses attendues. Seul un sous-ensemble des poids va être ajusté, pour mieux adapter progressivement la logique interne du modèle au nouveau contexte visé.
Comment choisir entre les deux méthodes ?
Le RAG et le fine-tuning n'ont pas les mêmes objectifs. Dans un système RAG, le LLM va s'appuyer sur la documentation indexée pour fournir ses réponses. Avec un modèle fine-tuné, le modèle a "appris" de véritables connaissances et les restitue naturellement. Toutefois, à l'heure actuelle, "dans 95% des cas, l'architecture RAG convient parfaitement aux cas d'usage", estime Xavier Perret, directeur Azure chez Microsoft France. Pour évaluer la pertinence d'une approche sur une autre, le spécialiste recommande d'itérer progressivement en suivant les performances du modèle. Une position qu'abonde Nicolas Gaudemet, chief AI officer chez Onepoint : "En pratique, le choix entre RAG et fine-tuning requiert en effet de tester empiriquement le modèle de base."
De manière générale, le RAG est recommandé "lorsqu'on souhaite que le modèle étaye ses réponses en s'appuyant sur des sources documentaires identifiées. A contrario du fine-tuning le RAG conserve la vision globale du modèle, tout en y ajoutant de larges volumes d'informations extérieures. Ces connaissances additionnelles restent situées dans des sources identifiées. Le modèle sait donc précisément d'où proviennent les données qu'il réutilise."
La qualité des données en question
Le cas d'usage typique consiste à fournir au retrieval-augmented generation une base de connaissances composée des documentation de l'entreprise pour que le système comprenne le langage et les acronymes utilisés en interne. Le RAG est la solution y compris pour les secteurs les plus techniques. "On constate que même pour de la sémantique de domaines spécifiques, comme le juridique, l'architecture RAG est adaptée. Je peux citer l'exemple de Dalloz, entreprise avec laquelle nous collaborons. Lors d'un hackathon, nous nous sommes aperçus que le RAG convenait parfaitement pour traiter leur important corpus juridique. Plus généralement, le RAG s'avère pertinent dans des entreprises utilisant une terminologie interne complexe ou des acronymes abscons", assure Xavier Perret.
Le RAG offre également une plus grande souplesse lors de la constitution du dataset. "Dans la plupart des cas, commencer par un RAG permet déjà bien souvent d'enrichir les réponses", note Nicolas Gaudemet. A contrario, fine-tuner un modèle "implique de disposer d'un dataset de milliers d'exemples annotés sur le domaine cible." Les données doivent être de haute qualité. "L'approche par RAG, plus robuste, offre de meilleures performances même en présence de données conflictuelles ou ambiguës. En effet, le RAG dispose de mécanismes intrinsèques permettant de pallier ces difficultés et de fournir des résultats cohérents", note Xavier Perret.
Quels cas d'usage pour le fine-tuning ?
Le fine-tuning, plus exigeant, a également ses avantages pour certains cas d'usage. "Premièrement, dans des domaines très spécifiques, notamment biomédicaux, où l'impact est important. Et où une évaluation poussée de certains éléments-clés est nécessaire. Deuxièmement, cela peut concerner des entreprises disposant d'une documentation technique considérable, que ce soit B2B ou B2C. Je pense par exemple à de grands retailers avec des volumes de documents très importants", conseille le spécialiste de Microsoft. Le fine-tuning, qui permet d'apporter de nouvelles connaissances au modèle en modifiant certains de ses poids, peut s'illustrer comme l'apprentissage d'un nouveau champs sémantique et/ou une nouvelle manière de raisonner.
Onepoint a ainsi pu avoir recours à cette technique dans le cadre de la migration de systèmes SAS (solution d'analyse de données) vers Dataiku. "Ce sont deux technologies avec leurs dialectes et concepts bien particuliers. Les modèles génériques ne les maîtrisent pas instinctivement. Via le fine-tuning sur des exemples ciblés, nous parvenons à injecter ces connaissances pointues sur les deux outils pour générer du code de migration de l'un vers l'autre", détaille Nicolas Gaudemet.
Toutefois, deux limites peuvent rapidement venir s'opposer, la première étant le coût du réentraînement du modèle, qui nécessite des ressources de calcul non négligeables. Deuxième limite : dans certains cas de fine-tuning, lors de la mise à jour des poids, le modèle peut être victime de "catastrophic forgetting" : le gain sur un aspect se fait au détriment de régressions ailleurs. Cette situation crée un dilemme où l'amélioration de la performance dans une tâche spécifique peut entraîner une perte de généralisation, rendant le modèle moins efficace pour des tâches ou des données antérieures. Il est possible de limiter ce biais en utilisant diverses méthodes notamment en incluant un échantillon des anciennes données. Faut-il encore les avoir.