FredVoyage

Usages de l'IA

Tout le monde parle de l'IA, alors je reprend un peu mes articles précédents pour voir de quoi on parle, à quoi ça sert, et surtout à quoi je l'utilise aujourd'hui.

D'abord, quand on parle d'IA, on peut parler de beaucoup de choses :

  • à la base, l'IA, c'était des algorithmes, que l'on retrouve dans les algorithmes des réseaux sociaux par exemple, mais aussi de manière plus spécifiques dans des applications comme Waze pour calculer des itinéraires, ou des outils de manipulation de données ou d'images.
  • on parle aussi d'IA pour ce qui est d'outil basés sur des données et utilisant des neurones artificiels, que cela s'applique à des données numériques (calculs de position ou de probabilité de fraude par les banques par exemple), de l'analyse d'images (pour la détection de cancer par exemple) ou encore pour les LLM, comme ChatGPT. Dans ces cas-là, on parle aussi de deep learning, et l'idée est de faire traiter par des ordinateurs, de grandes quantités de données pour en déduire des patterns, tout cela avec des neurones artificiels.

Les usages

Côté usage, et ici, on parle principalement des modèles de langage, donc des LLM, je fera la distinction entre plusieurs usages :

  • les usages directes en mode chat, comme ChatGPT, Claude ou autre, où l'utilisateur va directement poser une question et obtenir une réponse
  • les intégrations dans le workflow de l'entreprise, où à un moment donné, le LLM va intervenir pour traiter des données
  • les utilisations en mode agent, où un utilisateur va confier une tâche à une IA composé de plusieurs LLM pour obtenir un résultat.

Concrètement, dans une entreprise, on voit différents usages quotidiens se mettre en place. Le plus commun de ses usages, c'est de dialoguer avec un LLM en mode chat, pour faire des recherches, obtenir des réponses, des synthèses de documents ou des traductions. C'est le mode direct, le plus utilisé et c'est pour cela que les LLM sont faites par les entreprises américaines, pour dialoguer avec les utilisateurs, c'est avec ce type d'usage que l'IA se démocratise.

Ensuite, dans certains métiers, on voit des utilisations soit dans le workflow, soit en mode agent, pour utiliser l'IA dans le fonctionnement de l'entreprise. Le plus souvent, ce sont des entreprises qui génèrent du code, ou les salariés qui génèrent du code, dans ces entreprises, qui font appel à des IA, sous forme d'agents, pour avancer dans le développement d'un outil, effectuer des tests ou faire des simulations. Pour la génération de code, on peut utiliser Cursor, c'est ce que j'utilise, qui permet de demander à une IA, un agent, qui va utiliser un LLM pour répondre à une demande et mettre à jour le code voire le tester pour obtenir le résultat attendu.

Un autre usage moins répandu, c'est l'intégration dans le workflow de l'entreprise, là où l'entreprise délègue à l'IA/un LLM, une tâche qui pourrait être faite par l'utilisateur ou par le client, et qui sera mieux gérée ou qui sera gérée de la même manière par une IA.

Traitement des demandes client

Dans mon entreprise, HaiSoft, j'ai commencé à mettre cela en place il y a quelques mois. La première utilisation d'un LLM a été de remplir certains champs des demandes client de manière automatique.

Lorsqu'un client crée un ticket, il pouvait remplir 3 champs : la catégorie, à partir d'une liste déroulante, le sujet, en texte libre, puis le texte du message qu'il nous envoie. La catégorie demande parfois de réfléchir un peu, et le sujet est encore plus difficile à rédiger par le client pour qu'il soit réellement utile à nos techniciens.

J'ai donc mis en place une solution basée sur un LLM, qui va lire la demande et en déduire à quelle catégorie cela correspond à partir d'un prompt qui contient la liste des catégories et une explication, parfois courte, parfois détaillée, pour lui permettre de choisir la bonne catégorie par rapport à la demande du client.

C'est le LLM qui doit choisir à partir de mes descriptions et de la demande du client, à quelle catégorie la demande appartient. Ce n'est pas chose facile, mais les erreurs sont les mêmes que celles observées lorsque c'est le client qui choisit la catégorie. A partir d'un texte simple, celui-ci peut parfois avoir plusieurs sens, et le contexte, plus large, peut être nécessaire et pas toujours facile à définir.

Exemples d'erreur

Voici une phrase simple : "Est-ce que tout est réglé pour le site monsite.com ?"
Cette phrase utilise le mot régler. Ce mot peut avoir 2 sens, dans le cas présent :

  • s'il y a eu un problème avant, est-ce que ce problème est réglé ?
    Dans ce cas, c'est une demande plutôt technique qui sous-entend qu'il aurait pu y avoir eu un problème technique sur le site ou sur les serveurs, donc soit lié au site du client, soit lié au serveur qui l'héberge, ou même au nom de domaine, et que nous aurions pu résoudre.
  • si un paiement était attendu, celui-ci a-t-il été fait ?
    un autre sens du mot réglé, est pour parler d'un règlement, d'un paiement. Le règlement a-t-il bien été reçu ? Ou plus simplement, la facture a-t-elle été réglée ? Dans ce cas, on parle d'un problème qui est lié à la comptabilité client, l'administration des ventes doit se charger de répondre à cette question. Cela n'a rien de technique, et c'est donc une question comptable.

Cet exemple est réellement arrivé, et des critiques sont remontées pour dire que c'était une erreur du LLM qui n'a pas mis la bonne catégorie. Or, il n'avait pas toutes les informations pour comprendre que c'était une question de comptabilité, et c'est pas facile de trouver quel périmètre lui donner pour qu'il comprenne dans quel cas il faut relier le mot régler à l'une ou l'autre des situations. Pour que ça fonctionne bien, il faut alors modifier le prompt pour donner une définition du mot réglé et indiquer dans quel cas il a quel sens, et alors ça fonctionne mieux si on fournit en parallèle la liste des dernières transactions ou paiements.

On peut difficilement donner l'ensemble du contexte à chaque requête, car certains clients ont des milliers de noms de domaine ou de sites, et donner tout ça au LLM a plutôt tendance à le perdre dans des détails qu'à l'aider à prendre la bonne décision.

J'ai aussi voulu demander au LLM de détecter un nom de domaine, car le 4ème champs, c'est le nom de domaine. Quand le client fait cela, il choisit dans la liste, et parfois, comme le nom qu'il veut indiquer n'est pas dans la liste, il en choisit un autre au hasard, qui n'a pas de rapport, ce qui peut gêner les techniciens. Cette détection se passe bien, mais parfois le client fait une faute d'orthographe sur un nom ou se trompe d'extension, et c'est difficile pour le LLM de corriger. Il faut alors lui fournir les (milliers) de noms de domaine et lui demander de vérifier si ça pourrait correspondre à l'un des existants, sauf si le client veut justement en acheter un nouveau. Ce n'est pas simple.

Clara, l'IA qui répond aux clients

La dernière innovation que j'essaie de mettre en place, c'est une IA que j'ai nommé Clara (car avec Clara, tout est clair !). Comme elle ne fait que commencer, et moi aussi, son premier travail est de répondre aux tickets de clients qui demandent de ne pas renouveler un service. Déjà, au niveau vocabulaire, il faut intégrer plusieurs mots : ne pas renouveler, résilier, supprimer, arrêter. Tous ces mots veulent dire la même chose, il faut le confirmer au LLM.

Avec un outil, qui est une fonction permettant simplement de mettre sur 1 ou 0 une colonne dans une table, l'IA doit identifier le bon service à résilier, effectuer la demande de non-renouvellement, et le confirmer poliment au client.

Dans les statistiques, sur les 13 demandes reçues à ce jour, seules 4 ont eu une bonne réponse. Il faut dire que certaines demandes sont inhabituelles et ne correspondent pas à la procédure que j'ai décrite dans le prompt, donc Clara est perdue et répond à côté. Heureusement, chaque réponse m'est envoyée et je peux ensuite la modifier ou rattraper l'erreur, quand les mauvais services sont modifiés. Malheureusement, un taux de réussite de cette opération assez simple, de 30%, reste un peu trop faible pour en faire réellement un outil fiable.

J'attends donc que le nombre de réponses soit plus élevé (mais les demandes sont assez rares) pour pouvoir revoir le prompt et le tester à nouveau sur les demandes des clients.

En général, les clients nous contactent quand ils ne peuvent pas gérer eux-même, donc pour des demandes inhabituelles, or l'IA est là pour traiter les demandes simples et décharger les salariés des demandes plus compliquées qu'ils peuvent alors faire en ayant plus de temps.

Partage d'expérience

J'aimerai beaucoup échanger avec des entreprises ou des personnes qui utilisent l'IA non pas dans un chat, mais dans leur workflow, pour mieux comprendre comment ils mettent cela en place, quels prompts ils utilisent et comment ils traitent les réponses, et s'ils demandent à des IA de prendre des décisions. Quand on dit que l'IA va dominer le monde, il faudrait déjà qu'elle soit capable de comprendre les demandes et l'environnement dans lequel ces demandes sont faites, et je vois assez régulièrement que ce n'est pas le cas. A moi aussi d'améliorer les process pour que la latitude laissée au LLM soit plus faible afin que les réponses correspondent mieux à ce qui est attendu.