La recherche d'informations est un défi courant pour les entreprises. Les employés peuvent être confrontés à des sources d'informations multiples, telles que les e-mails, les messageries instantanées et les référentiels divers et variés, ce qui rend la recherche fastidieuse et difficile. De plus, il est souvent difficile de trouver la bonne information dès le premier essai, ce qui peut entraîner de la frustration chez les employés. Cette situation peut également entraîner une perte de temps et de productivité pour l'entreprise. Celle-ci est estimé à près d’une heure par jour par employé. A l’échelle d’une entreprise, ce gaspillage est colossal.
Les employés se tournent souvent vers les "sachants" pour obtenir des réponses à leurs questions, ce qui peut entraîner une perte de temps et une surcharge de travail pour ces derniers. Les entreprises doivent trouver des moyens efficaces pour répondre aux questions des employés et libérer du temps pour des activités à forte valeur ajoutée.
Avec l’avènement des Large Language Model (LLM) qui n’ont pas leur pareil pour manipuler la langue et par extension du texte, Claranet s’est mis en chasse de proposer aux utilisateurs un service avec lequel ils posent une question et ils ont quasi-immédiatement une réponse des plus pertinentes.
Avant de sauter à pied joint dans l’approche que Claranet a retenu et pour ceux qui souhaiterait s’arrêter ici, sachez que nous avons pu libérer l’équivalent d’un ½ temps plein d’un collègue qui passait son temps à répondre à des questions relatives à son domaine grâce à cette solution. Et a première vue, si tout cela semble magique, la suite de cet article vise à expliquer les étapes de notre projet, les grands principes associés et les challenges rencontrés d’une telle implémentation.
La récupération d’information (Vespa)
Le point de départ de notre projet vise à retrouver l’ensemble des données nécessaire à la construction des réponses dans une base de données exploitable. Pour ce faire, nous nous sommes appuyés sur une stratégie RAG (pour Retrieval Augmented Generation) qui permet d’indexer différents types de document dans une base de données vectorielle. Cette étape permet de contrôler les données de base utilisées par un LLM lorsqu’elle formule une réponse et signifie qu’on peut limiter l’IA générative au contenu de votre entreprise.
Pourquoi une approche RAG ?
L’architecture actuelle des modèles LLM ne permettent pas d’avoir une fenêtre de contexte leur permettant de « digérer » les quantités importantes d’information que peuvent produire les entreprises.
Une autre technique consisterait à réaliser un « fine-tuning » du modèle. La complexité, le coût et le manque de flexibilité (le fine-tuning devrait avoir lieu à chaque modification de document), ne la rende pas adapté au besoin décrit ici.
Le RAG va permettre de filtrer au maximum le nombre de document et par conséquent la taille du contenu fourni au LLM à quelques milliers de Token (l’équivalent des ¾ d’un mot en taille).
L’incorporation des données (Embedding)
Un modèle d’embedding est ensuite employé pour permettre de rapprocher la question de l’utilisateur des documents permettant de répondre.
Le modèle d'embedding est une technologie qui permet de traduire numériquement les documents indexés et les questions posées en plusieurs dimensions, permettant de les relier entre eux de manière numérique. Cette technologie utilise un vocabulaire interne pour créer des vecteurs qui permettent de mettre en avant la similarité sémantique entre les mots. Plus le nombre de dimensions est important, plus la relation entre les mots est nuancée. Cependant, cela entraîne un vecteur plus large et donc plus coûteux à manipuler, stocker, rechercher et récupérer, etc.
Là ou par le passé nous recherchions des mots clés, nous pouvons en plus capturer l’intention qui est présente dans la question. Les documents retournés sont plus proches de la demande.
La rédaction de la réponse (Azure OpenAI & Danswer)
Une fois la base de connaissance établie, la construction de la relation sémantique réalisée, il ne reste qu’à exploiter cet ensemble pour rédiger une réponse, et c’est à ce moment qu’intervient le LLM , pour la synthèse et la restitution.
Les challenges rencontrés
Challenge #1 – Le multi langue
Dans notre expérimentation nous avons été confrontés à des documents sources présent à la fois en français et en anglais.
Plusieurs options s’offraient à nous, nous pouvions nous appuyer sur un modèle d’embedding multi-langue (ex : ada-002 d’OpenAI) ou exploiter d’autres modèles disponible sur la place de marché opensource Hugging Face (le pendant de GitHub pour les modèles IA).
La conclusion a été de trouver des modèles qui supportent correctement notre cas d’usage qui mixe l’anglais et français.
A noter, chaque modèle réalisant sa propre traduction sur le plan vectorielle, il est nécessaire de ré-indexer l’ensemble du contenu dès lors que l’on change de modèle d’embedding.
Challenge #2 – Le repêchage de documents
Il arrive malgré la performance du modèle d’embedding qu’un document pourtant parfaitement pertinent pour apporter une réponse ne soit pas présent dans le top 3 ou le top 5 des documents retournés.
Une technique consiste à filtrer les résultats non plus sur le top 3/top 5 mais sur le top 5 et d’appliquer une deuxième passe d’embedding entre la question et les documents du top 25 pour repêcher un document pertinent et le cas échéant le faire apparaitre dans le top 3.
On appelle cette technique le reranking.
Le LLM fera ensuite ce qu’il sait faire extrêmement bien, à savoir, la synthèse des premiers documents en réponse à la question.
Challenge #3 – La gestion des droits
Comment garantir qu’un utilisateur aura une réponse uniquement sur la base de document dont il doit légitimement pouvoir accès et restreindre le reste ?
Selon les cas de figure la réponse est soit d’indexer uniquement du contenu considéré comme interne mais ouvert à l’ensemble de l’entreprise.
Soit d’instancier la solution par domaine de l'entreprise si le contenu doit se limiter à une seule entité de l’entreprise.
Ou encore d’implémenter une gestion plus fine des droits mais plus complexe limitant aux seuls documents accessibles par l’individu qui pose la question.
Challenge #4 – La conduite du changement
Dès lors qu’on change les usages et qu’il est introduit de nouveaux outils il faut s’assurer que les utilisateurs disposent d’une expérience la plus satisfaisante possible.
Nous avons adopté une stratégie qui consistait à limiter dans un premier temps les sources de données accessibles et le nombre d’utilisateurs ayant accès au service.
En effet, n’ayant qu’une seule fois la possibilité de faire bonne impression et pour maximiser les chances de rétention des utilisateurs, nous nous devions de fournir quelque chose d’efficace et en particulier d’être exigeant sur la qualité des réponses fournies.
Challenge #5 – La mesure de la dérive
Les documents évoluent dans le temps, les utilisateurs peuvent « booster » des réponses et des documents répondant à certaines questions (Human Feedback).
Il est important de mesurer les évolutions à chaque étape du processus pour garantir la qualité des réponses proposées.
Typiquement on devra superviser la pertinence des documents récupérés dans la base vectorielle et la qualité des réponses fournies par le LLM en comparant périodiquement les résultats proposés avec une table servant de maitre étalon.
Et ensuite
La technologie de Large Language Models (LLM) avec l'approche RAG (Retrieval Augmented Generation) offre de nombreuses possibilités pour répondre aux besoins des entreprises, et permettre d’améliorer la productivité, et préserver le temps des sachants à la condition que la connaissance soit documentée. Voici par extension, trois cas d'utilisation possibles :
1. Assistant vocal pour déterminer la couverture d'une assurance ou la prise en charge par rapport à un contrat. Cela permet d’offrir l’autonomie à l’adhérent avoir des réponses personnalisées sur la couverture d'assurance ou leur contrat en se basant sur les documents de référence.
2. Mise à disposition d'une FAQ interactive : Les entreprises peuvent utiliser cette technologie pour fournir une FAQ interactive à leurs clients ou à leurs employés. Les réponses seront contextualisées à l’utilisateur et s’ajuste dynamiquement à mesure que la documentation est complétée.
3. Aide aux avant-ventes pour répondre aux appels d'offres : pour construire des réponses qui s’appuient sur les précédentes réponses réalisées. La capitalisation permet dans ce cas d’améliorer constamment la pertinence des réponses délivréer aux clients finaux.
Il reste en somme beaucoup de cas d’usage à explorer, beaucoup qui pourront se baser sur un pattern similaire à celui que nous avons expérimenter. La mise en œuvre technique requiert malgré tout un bon socle de connaissance pour obtenir un résultat pertinent.