Exploiter les LLM sur votre base de connaissances spécifiques à un domaine

Les contributeurs
Michiel De Koninck
Ingénieur en apprentissage automatique et spécialiste du LLM
Aucun élément trouvé.
S'abonner à la newsletter
Partager cet article

Dans le monde d'aujourd'hui, qui évolue rapidement, il est essentiel de se tenir au courant des dernières avancées et tendances dans son domaine. C'est pourquoi les systèmes de gestion des connaissances sont devenus de plus en plus populaires, offrant aux organisations un lieu centralisé pour stocker et accéder à leurs connaissances. Cependant, tous les systèmes de gestion des connaissances ne se valent pas. Dans cet article de blog, nous allons explorer comment l'utilisation de modèles de langage, tels que le LLM récemment publié, peut améliorer l'efficacité de votre base de connaissances spécifique à un domaine. Nous aborderons les bases des modèles de langage et la façon dont ils peuvent être formés sur les données de votre organisation pour améliorer la précision de la recherche, automatiser le marquage et même générer du nouveau contenu. Plongeons dans l'aventure !

LLM, atteignez vos limites ... et dépassez-les

Un LLM est un grand modèle de langage. Le GPT-4 d'OpenAI en est un exemple, le LLamA de Meta en est un autre. Nous avons délibérément choisi ici de nous en tenir au terme général LLM pour désigner ces modèles. N'oubliez pas que chacun de ces modèles a été entraîné sur un gigantesque ensemble de données (accessibles au public).

Il a été clairement démontré que ces LLM ont une compréhension significative du langage général et qu'ils sont capables de (re)produire des informations pertinentes pour les informations présentes dans leurs données de formation. C'est pourquoi les outils génératifs tels que ChatGPT répondent étonnamment bien aux questions portant sur des sujets que le LLM a rencontrés au cours de sa formation.

Mais ce qui échappe à l'emprise directe de ces énormes LLM, ce sont les données qui sont si précieuses au sein de chaque organisation : la base de connaissances interne. La question qui se pose donc massivement est la suivante :

Comment pouvons-nous exploiter la puissance de ces LLM pour débloquer des informations stockées dans une base de connaissances spécifique sur laquelle ils n'ont pas été formés à l'origine ?

Pour ce faire, ne pouvons-nous pas simplement introduire notre base de connaissances interne en tant que données supplémentaires sur lesquelles le LLM doit être formé ? Ou, si vous voulez, pouvons-nous affiner le LLM sur notre base de connaissances spécifique.

Oui, vous pouvez très probablement le faire. Mais pour répondre à des questions fiables, ce n'est peut-être pas la meilleure solution.

Pourquoi la mise au point n'est pas toujours suffisante

Voici Billy le rat de bibliothèque. Billy est un grand modèle linguistique et il a dévoré une quantité gigantesque d'informations en ligne, ce qui lui a permis d'acquérir des connaissances considérables. Cependant, Billy, aussi intelligent qu'il soit, n'a pas lu tous les livres de votre bibliothèque personnelle très spécifique.

Le réglage fin consiste à présenter à Billy le rat de bibliothèque tous les livres de votre base de connaissances très spécifique et à le laisser ingurgiter toutes ces informations supplémentaires savoureuses. De cette manière, le rat de bibliothèque Billy ne connaît pas seulement toutes les informations générales, il en sait également beaucoup sur le contenu de votre base de connaissances spécifique.

Approche classique de la mise au point sur des données spécifiques à un domaine (toutes les icônes proviennent de flaticon)

Félicitations, grâce à ce processus de mise au point, vous avez transformé Billy en un Billy très spécifique qui en sait beaucoup sur votre domaine spécifique ! Nous vous montrons ci-dessous comment vous pouvez commencer à mettre Billy au travail. En posant des questions à votre rat de bibliothèque amélioré, vous pouvez vous attendre à des réponses qui utilisent à la fois les informations de son gigantesque ensemble d'apprentissage général et les informations stockées dans votre base de connaissances spécifique.

Exploiter le LLM affiné pour poser des questions sur votre base de connaissances interne.

Bien que puissant, le problème crucial de cette approche est que vous n'avez que peu d'informations sur la manière dont votre rat de bibliothèque a trouvé ses réponses. En outre, l'affinement d'un LLM a des conséquences (coûteuses).

Nous énumérons les principales raisons pour lesquelles le réglage fin de Billy n'est pas à la hauteur :

  • Pas de clarté des sources. Il est difficile d'éviter les hallucinations et votre LLM ne fait pas de distinction claire entre les connaissances "générales" et "spécifiques".
  • Pas de restriction d'accès. Imaginez un cas où certains utilisateurs devraient être en mesure d'interroger les informations contenues dans des documents stratégiques, alors que d'autres ne le devraient pas. Comment aborder ce problème ? Votre Billy perfectionné sait tout, il ne peut pas choisir d'exclure des connaissances au moment de l'inférence.
  • L'hébergement d'un LLM est coûteux. Une fois que vous avez un LLM bien réglé, vous devez le faire tourner. Un grand modèle linguistique est en effet... grand. Les coûts pour le maintenir en état de marche s'accumulent. Les avantages l'emportent-ils sur les coûts ?
  • Affiner les répétitions. Le recyclage du modèle est nécessaire lorsque vous souhaitez que le modèle reflète les modifications apportées à la base de connaissances.

Heureusement, tous ces problèmes peuvent être résolus. Si vous cherchez à répondre à des questions de manière vérifiable et à éviter les hallucinations, vous n'avez peut-être pas besoin du rat de bibliothèque hyper-moderne, demandons simplement au bon vieux bibliothécaire où trouver les réponses à vos questions.

Avec RAG to Riches

L'idée qui sous-tend la génération améliorée par récupération (RAG) est assez simple. Rappelez-vous que l'objectif est de débloquer les informations contenues dans notre base de connaissances. Au lieu de libérer (c'est-à-dire d'affiner) notre ver de bibliothèque, nous indexons de manière exhaustive les informations de notre base de connaissances.

En indexant les éléments de votre base de connaissances interne, vous débloquez des capacités de recherche intelligente.

Dans le schéma ci-dessus, nous illustrons comment le Smart Retriever fonctionne comme un bibliothécaire. Idéalement, le bibliothécaire connaît parfaitement le contenu de sa bibliothèque. Pour un visiteur posant une certaine question, il saurait exactement quel chapitre de quel livre recommander.

D'un point de vue plus technique, il s'agit d'un moteur de recherche sémantique. Dans ce cas, les embeddings sont des représentations vectorielles de sections de documents et permettent une description mathématique du sens réel stocké dans chaque section. En comparant les embeddings, nous pouvons déterminer quelles sections de texte sont similaires en termes de signification à d'autres sections de texte. Cet aspect est crucial pour le processus de recherche présenté ci-dessous.

Grâce à notre Smart Retriever, nous pouvons forcer notre générateur à s'en tenir au contenu de notre base de connaissances qui est le plus pertinent pour répondre à la question. Et voilà : La génération améliorée par la recherche.

Deux éléments essentiels sont en jeu :

  1. Le chercheur intelligent (c'est-à-dire le bibliothécaire)
  2. Le générateur (c'est-à-dire le rat de bibliothèque)

La raison pour laquelle cette approche est appelée " Génération améliorée par extraction" devrait maintenant être claire. En fonction de la question posée, vous récupérez d'abord les informations les plus pertinentes dans votre base de connaissances interne ; vous augmentez ensuite la phase de génération typique en transmettant ces informations pertinentes de manière explicite au composant de génération.

Principales caractéristiques de ce système basé sur le RAG

  1. Indication claire de la source sur laquelle la réponse est basée. Permettre la validation de la réponse renvoyée par le générateur.
  2. Très peu susceptible d'halluciner, en limitant notre composant générateur au corpus de notre base de connaissances, il admettra qu'il ne peut formuler une réponse lorsqu'aucune source pertinente n'a été trouvée par le récupérateur.
  3. Index de recherche maintenable. Une base de connaissances est une chose vivante, lorsqu'elle change, nous pouvons adapter notre index de recherche pour refléter ces changements.

En dehors de ces points forts, l'aspect multilingue des LLM est de toute beauté. Vous pouvez disposer d'une base de connaissances composée de recettes purement italiennes avec lesquelles votre ami français amateur de pâtes peut dialoguer en français.

Le réglage fin revisité

Il est à noter que dans la section ci-dessus, nous avons rejeté le réglage fin comme une option valable parce que nous avions peu de contrôle sur la clarté de la source, ce qui augmentait le risque d'hallucination.

Il convient de noter que l'approche RAG, alimentée par un LLM général, ne fonctionne bien que si la base de connaissances spécifique ne contient pas de jargon super spécifique que le LLM ne peut pas comprendre à partir de sa formation générale.

Imaginez que vous ayez besoin que les réponses de votre solution suivent "le ton et le jargon" présents dans votre base de connaissances. Dans ce cas, la mise au point de votre LLM semble moins évitable.

Il pourrait s'agir d'une approche valable permettant de traiter un jargon spécifique et d'incorporer ensuite votre LLM affiné dans l'architecture RAG afin d'en récolter les avantages combinés. Au lieu de travailler avec un rat de bibliothèque, vous utiliseriez alors votre Billy spécialement formé pour alimenter le générateur et/ou les composants du Smart Retriever.

Pourquoi maintenant ? Qu'y a-t-il de nouveau ?

Excellente question.
La recherche sémantique (recherche intelligente) existe depuis un certain temps, tout comme l'IA générative (certaines formes primitives existent depuis des décennies).
Cependant, nous avons assisté à des avancées décisives au cours des derniers mois.

Sur le plan technologique , nous avons récemment assisté à des progrès considérables dans les performances des LLM. Ces progrès ont un impact positif sur la solution RAG à deux niveaux :

  • Embeddings (par exemple, Embedding API d'OpenAI ou PaLM de Google)
  • Capacités de génération (par exemple, la solution ChatGPT d'OpenAI)

Cette amélioration de la qualité générative s'accompagne d'une augmentation de la traction. Auparavant, les entreprises ne pouvaient pas facilement imaginer les possibilités d'un système reposant sur l'IA générative. Aujourd'hui, grâce à la large couverture médiatique et à l'adoption d'outils tels que ChatGPT, l'intérêt général s'est accru de manière exponentielle.

Ainsi, bien que des versions médiocres de RAG aient été possibles pendant un certain temps, les améliorations technologiques et l'augmentation de la traction se traduisent par une opportunité de marché fructueuse.

Les défis sur le chemin de la réussite

Dans cette section, nous vous présentons quelques-uns des principaux défis liés à la mise en place d'une solution RAG réussie.

  • Forte dépendance de la performance du Smart Retriever.
    La qualité des réponses données par votre Generative Component dépendra directement de la pertinence des informations qui lui sont transmises par le Smart Retriever. Comme mentionné plus haut, nous pouvons remercier les progrès du LLM de nous avoir fourni des incorporations de texte riches et puissantes. Mais l'obtention de ces incorporations uniquement par le biais d'API n'est peut-être pas la meilleure option. Vous devez être très attentif lors de la conception de votre composant de recherche sémantique, car votre base de connaissances contient peut-être un jargon spécifique et vous pourriez avoir besoin d'un composant personnalisé (c'est-à-dire ajusté avec précision) pour le gérer. Un guide pratique plus approfondi sur la recherche sémantique est disponible dans ce article de blog [1] .
  • Compromis à faire dans la restriction pour s'en tenir à l'information dans la base de connaissances.
    Comme expliqué dans l'architecture RAG, nous pouvons forcer notre composant génératif LLM à se limiter à l'information trouvée dans les documents pertinents. Bien que cela garantisse que les hallucinations (c'est-à-dire les réponses non sensées) ont peu de chance, cela signifie également que vous n'exploitez que très peu les informations que votre LLM possède. Vous pourriez vouloir que votre solution utilise également ces connaissances, mais peut-être seulement lorsque l'utilisateur le demande.
  • Conception conversationnelle pour permettre un dialogue complexe.
    Bien que nos descriptions ci-dessus aient représenté le comportement de l'utilisateur comme une simple "question ponctuelle", il arrive souvent que l'utilisateur veuille zoomer sur la réponse fournie par votre solution (dans une conversation de type ChatGPT). Heureusement, des outils existent pour vous aider dans cette bataille. Le cadre langchain offre un coup de main pour y parvenir.
  • L'ingénierie rapide comme moyen d'orienter la génération vers le succès.
    Pour que la réponse de votre composant génératif soit juste, vous devez lui indiquer exactement le type de résultat que vous attendez. Dans l'ensemble, il ne s'agit pas d'une science exacte. Mais la mise en place d'un prompt adapté à votre cas d'utilisation prend du temps et mérite une attention particulière. Il peut être intéressant d'envisager des systèmes de gestion des invites pour s'assurer que vous pouvez garder une trace des invites qui fonctionnent le mieux dans chaque situation.
  • Choisir le bon LLM : quel est le coût et où vont mes données ?
    Tout au long de ce texte, nous n'avons pas fait de choix explicite concernant le(s) LLM à utiliser dans votre solution. Lorsque vous choisissez le LLM (API) à utiliser, veillez à prendre en considération les restrictions en matière de confidentialité et de coût. Il existe déjà quelques options décentes. Nous avons le GPT d'OpenAI, le LLaMA de Meta, le PaLM de Google et avec Elon Musk qui prétend rejoindre la scène LLM, qui sait où les choses vont aller. La bonne nouvelle, c'est qu'il y aura de plus en plus d'options et que la concurrence devrait faire augmenter les performances et baisser les prix des LLM.
  • Obtenir et maintenir votre solution LLM en production (LLMOps).
    Comme pour toutes les solutions d'IA matures : les construire est une chose, les mettre et les maintenir en production en est une autre. Le domaine des LLMOps se concentre sur l'opérationnalisation des LLM. Contrôler les performances de votre solution basée sur les LLM, maintenir votre base de connaissances et votre index de recherche à jour, traiter l'historique conversationnel...
    Avant de lancer votre solution LLM en production, réfléchissez bien à la manière de la maintenir et de la faire fructifier à long terme.

Charmés par le potentiel de RAG et intrigués par les défis qui y sont liés, nous allons maintenant examiner une solution réelle basée sur RAG.

Se salir les mains avec un RAG

Si le concept de génération assistée par récupération suscite votre intérêt, vous vous posez peut-être la question :

Ai-je ce qu'il faut pour tester une solution basée sur les RAG ?

Eh bien, si c'est le cas :

  • connaissances spécifiques : une base de données modérée (de préférence organisée) d'"articles de connaissance" contenant des informations utiles qui ne sont pas facilement trouvables sur le web (par exemple, des documents techniques, des directives d'intégration, des tickets d'assistance gérés...).
  • valeur commerciale: une définition claire de la valeur commerciale si cette information peut être mise à la disposition des utilisateurs prévus

Dans ce cas, oui, le RAG pourrait être la solution pour vous.

À titre expérimental, nous avons récemment réalisé une petite démonstration pour montrer comment cette technologie peut être utilisée pour aider le personnel gouvernemental à répondre plus facilement aux questions parlementaires.
Dans ce cas, les connaissances spécifiques sont les suivantes :

  • un ensemble de documents législatifs flamands
  • une série de questions parlementaires du passé

La valeur commerciale, quant à elle, est présente :

  • améliorer l'efficacité en suggérant automatiquement des réponses aux questions parlementaires sur la base de la base de connaissances flamande
  • améliorer la transparence et l'adoption par les utilisateurs grâce à des citations explicites
Capture d'écran de la solution de démonstration construite autour du cas d'une "application pour aider à répondre aux questions parlementaires".

Si vous cherchez des indications sur la manière de mettre en œuvre techniquement une solution similaire, restez à l'écoute pour un article de blog ultérieur dans lequel nous nous pencherons sur les détails techniques de la mise en place de RAG.


Références

Postes connexes

Voir tout le contenu
Aucun résultat n'a été trouvé.
Il n'y a pas de résultats correspondant à ces critères. Essayez de modifier votre recherche.
Grand modèle linguistique
Modèles de fondation
Entreprise
Personnes
Données Structurées
Chat GPT
Durabilité
Voix et son
Développement frontal
Protection des données et sécurité
IA responsable/éthique
Infrastructure
Hardware et capteurs
MLOps
IA générative
Natural Language Processing
Vision par ordinateur