Les entrepreneurs indépendants qui effectuent des livraisons par l'intermédiaire de DoorDash - les "Dashers" - récupèrent les commandes des commerçants et les livrent aux clients. Ce processus est toutefois beaucoup plus complexe qu'il n'y paraît à première vue. Les Dashers, en particulier ceux qui débutent dans le processus, ont parfois besoin d'aide pour résoudre les problèmes qu'ils rencontrent dans le processus de livraison. Ce billet décrit comment nous avons travaillé à l'amélioration du système d'aide aux Dashers existant en utilisant de grands modèles de langage, ou LLM, et un système de génération augmentée par récupération, ou RAG. Nous décrivons également comment nous gérons le système amélioré avec LLM Judge, LLM Guardrail et l'évaluation de la qualité.
Lorsque les Dashers rencontrent des difficultés lors de la livraison, ils peuvent contacter l'assistance DoorDash. Nous fournissons des solutions automatisées et pouvons connecter les Dashers à des agents d'assistance humaine si nécessaire. Le système d'assistance automatisé résout généralement les problèmes plus rapidement que les agents humains, car les Dashers sont connectés instantanément à un système qui fournit des réponses à la vitesse numérique. Cependant, notre système d'assistance automatisé existant fournit des résolutions basées sur le flux, en s'appuyant fortement sur des chemins de résolution préétablis. Cela signifie que seul un petit sous-ensemble des problèmes des Dashers peut être résolu rapidement. Bien que nous offrions aux Dashers une bonne collection d'articles dans notre base de connaissances, trois problèmes en limitent l'utilité :
- Il peut être difficile de trouver l'article pertinent ;
- Il faut du temps pour trouver des informations utiles dans un article donné ;
- Les articles sont tous rédigés en anglais, mais de nombreux Dashers préfèrent une autre langue.
Ces problèmes constituent un cas d'utilisation parfait pour un système RAG qui récupère les informations des articles de la base de connaissances pour générer une réponse qui résout efficacement les problèmes de Dasher.
Défis liés à l'adoption des RAG
Grâce aux récents développements de la technologie des chatbots, les grands modèles de langage, ou LLM, tels que GPT-4 et Claude-3 peuvent désormais produire des réponses qui imitent la qualité et la fluidité humaines. Mais comme tout système sophistiqué, ils produisent parfois des erreurs. Si elles ne sont pas corrigées, ces erreurs peuvent entraîner des problèmes importants.
Nous avons identifié plusieurs défis à relever dans le cadre de notre travail avec les gestionnaires de l'éducation et de la formation tout au long de la vie :
- Ancrage et pertinence des réponses dans le système RAG
Notre chatbot LLM RAG a, dans certains cas, généré des réponses qui s'écartaient du contexte prévu. Bien que ces réponses semblent naturelles et légitimes, les utilisateurs peuvent ne pas se rendre compte qu'elles sont inexactes. Ces divergences proviennent souvent d'informations obsolètes ou incorrectes liées au DoorDash et incluses dans la phase de formation du LLM. Comme les LLM s'appuient généralement sur des textes accessibles au public, y compris des discussions sur des plateformes telles que Quora, Reddit et Twitter, le risque de propagation d'informations erronées est plus élevé. Par conséquent, les utilisateurs peuvent ne pas obtenir ce dont ils ont besoin de la part de notre chatbot. - Précision du résumé du contexte
Nous devons d'abord comprendre le problème du Dasher avant de pouvoir extraire les informations les plus pertinentes. De plus, s'il y a eu une conversation à plusieurs tours entre un Dasher et notre système de chatbot, nous devons résumer le problème à partir de ce dialogue. Le problème change au fur et à mesure que la conversation progresse ; la présentation du résumé affecte le résultat produit par le système de recherche. Le système de résumé doit être très précis pour que les autres parties du système RAG fournissent la bonne résolution.
- Cohérence linguistique dans les réponses
La cohérence linguistique est primordiale, en particulier lorsque les utilisateurs interagissent avec le chatbot dans des langues autres que l'anglais. Étant donné que les LLM s'entraînent principalement sur des données en anglais, ils peuvent occasionnellement oublier des instructions pour répondre dans une autre langue, en particulier lorsque l'invite elle-même est en anglais. Ce problème est peu fréquent et son occurrence diminue au fur et à mesure que le LLM évolue. - Cohérence entre l'action et la réponse
En plus de répondre à l'utilisateur, le LLM peut également effectuer des actions en appelant des API, mais les appels de fonction doivent être cohérents avec le texte de la réponse. - Latence
En fonction du modèle utilisé et de la taille de l'invite, la latence peut varier de quelques secondes à plusieurs dizaines de secondes. D'une manière générale, les invites de grande taille entraînent des réponses plus lentes.
Comme détaillé ci-dessous, nous avons développé trois systèmes pour résoudre les défis du RAG : LLM Guardrail, LLM Judge et un pipeline d'amélioration de la qualité, comme le montre la figure 1.
Mise en œuvre d'un système RAG
Comme indiqué précédemment, le système RAG utilise des articles de la base de connaissances pour améliorer le chatbot d'assistance Dasher. Le processus, tel qu'il est décrit dans la figure 2, commence lorsqu'un Dasher présente un problème au chatbot. Le problème étant susceptible d'être réparti sur plusieurs messages et questions de suivi, le système commence par condenser l'ensemble de la conversation afin d'identifier le problème principal. À partir de ce résumé, il recherche ensuite dans les données historiques les N premiers cas similaires résolus précédemment à l'aide d'informations tirées d'articles de la base de données. Chaque problème identifié correspond à un article spécifique qui est intégré dans le modèle d'invite. Ce modèle enrichi permet au chatbot de générer une réponse sur mesure, en s'appuyant sur le contexte de la conversation, le résumé du problème et tous les articles pertinents de la base de données, afin de s'assurer que les Dashers reçoivent un soutien précis et informé.
Garde-corps de réponse avec LLM
Le système LLM Guardrail est un outil de contrôle en ligne qui évalue chaque sortie du LLM afin d'en garantir l'exactitude et la conformité. Il vérifie l'ancrage des informations RAG pour éviter les hallucinations, maintient la cohérence des réponses avec les conversations précédentes et filtre les réponses qui enfreignent les politiques de l'entreprise.
L'objectif principal du système guardrail est de détecter les hallucinations, lorsque les réponses générées par le LLM ne sont pas liées ou seulement partiellement liées aux articles de la base de données. Au départ, nous avons testé un modèle de garde-fou plus sophistiqué, mais l'augmentation des temps de réponse et l'utilisation intensive des jetons de modèle ont rendu son coût prohibitif. Au lieu de cela, nous avons adopté une approche à deux niveaux : une vérification superficielle rentable développée en interne, suivie d'un évaluateur basé sur le LLM, comme le montre la figure 3.
La première couche de contrôle de qualité est une comparaison de similarité sémantique entre la réponse et les segments de l'article KB. Si ce premier contrôle échoue, une deuxième couche alimentée par LLM examinera plus en détail la réponse sous de multiples aspects, notamment l'ancrage, la cohérence et la conformité. Une réponse doit passer tous les tests de garde-fou pour être présentée à l'utilisateur final.
La vérification superficielle utilise une technique de fenêtre coulissante pour mesurer les similitudes entre les réponses LLM et les segments d'articles pertinents. Si une réponse correspond étroitement à un article, il est moins probable qu'il s'agisse d'une hallucination.
Si la vérification superficielle signale une réponse, nous construisons une invite qui comprend la réponse initiale, les articles pertinents de la base de données et l'historique de la conversation. Elle est ensuite transmise à un modèle d'évaluation qui détermine si la réponse est fondée sur les informations fournies et, le cas échéant, propose une justification pour un débogage plus approfondi.
La latence de LLM Guardrail est un inconvénient notable causé par un processus de bout en bout qui comprend la génération d'une réponse, l'application du garde-fou, et éventuellement une nouvelle tentative avec une nouvelle vérification du garde-fou. Étant donné le nombre relativement faible de réponses problématiques, le recours par défaut à des agents humains peut être un moyen efficace de garantir une expérience utilisateur de qualité tout en maintenant un niveau élevé d'automatisation. Ce système de garde-fou a permis de réduire de 90 % le nombre d'hallucinations et de 99 % les problèmes de conformité potentiellement graves.
Contrôle de la qualité des juges de l'éducation et de la formation tout au long de la vie
Nous pouvons évaluer la qualité du LLM de plusieurs points de vue, y compris les commentaires de Dasher, le taux d'engagement humain et la vitesse de livraison. Cependant, aucune de ces perspectives ne fournit un retour d'information exploitable qui nous permettrait d'améliorer notre système de chatbot. Nous avons donc examiné manuellement des milliers de transcriptions de chat entre le LLM et les Dashers afin de développer un pipeline d'itération pour contrôler la qualité du LLM. Notre examen nous a permis de classer les aspects de la qualité du chatbot LLM en cinq catégories :
- Correction de l'extraction
- Précision de la réponse
- Grammaire et précision linguistique
- Cohérence avec le contexte
- Pertinence par rapport à la demande du Dasher
Pour chaque aspect, nous avons construit des moniteurs en invitant un LLM plus sophistiqué ou en créant des métriques d'expression régulière basées sur des règles. La qualité globale de chaque aspect est déterminée en posant des questions ouvertes à LLM Judge, comme le montre la figure 4. Les réponses à ces questions sont traitées et résumées en problèmes communs. Les problèmes les plus fréquents sont ensuite intégrés dans des messages-guides ou des règles pour un contrôle plus approfondi.
Outre le système d'évaluation automatisé, nous disposons également d'une équipe humaine spécialisée qui examine des sous-ensembles aléatoires d'échantillons de transcriptions. Un étalonnage continu entre cet examen humain et le système automatisé garantit une couverture efficace.
Amélioration de la qualité du LLM
Notre système est confronté à plusieurs problèmes de qualité, notamment une base de connaissances insuffisante, une récupération imprécise, une hallucination du modèle et des messages-guides sous-optimaux. Les agents d'assistance humaine jouent un rôle crucial dans la résolution de ces problèmes, en agissant en tant qu'experts en la matière, en examinant méticuleusement les réponses du LLM et en guidant les améliorations du processus automatisé. Cet effort de collaboration entre l'expertise humaine et l'apprentissage automatique est fondamental pour affiner la précision et la fiabilité de notre système d'assistance.
Amélioration de la base de connaissances
La base de connaissances sert de vérité fondamentale pour les réponses LLM, il est donc important de proposer des articles complets et correctement formulés. L'évaluation de la qualité de LLM Judge nous a permis de procéder à des révisions approfondies et à des mises à jour de la base de connaissances afin d'éliminer la terminologie trompeuse. En outre, nous sommes en train de développer un portail de gestion de la base de données convivial pour les développeurs afin de rationaliser le processus de mise à jour et d'extension des articles.
Amélioration de la récupération
Une récupération efficace implique deux processus clés :
- Contextualisation des requêtes : Simplifier les requêtes en une seule demande concise tout en fournissant un contexte grâce à un historique complet des conversations.
- Recherche d'articles : Sélection d'un modèle d'intégration optimal à partir de quelques choix dans notre magasin de vecteurs afin d'améliorer la précision de la recherche.
Améliorations rapides
Nous devons affiner les messages-guides pour guider le LLM avec précision. Ce processus d'affinement peut être simple ou pénible, en fonction du modèle de base du LLM. Nous suivons quelques principes :
- Décomposer les messages complexes en parties plus petites et plus faciles à gérer et utiliser le traitement parallèle lorsque c'est possible.
- Éviter le langage négatif dans les messages-guides, car les modèles ont généralement du mal à l'utiliser. Au lieu de cela, nous décrivons clairement les actions souhaitées et fournissons des exemples illustratifs.
- Mise en œuvre d'une chaîne de pensée pour encourager le modèle à traiter et à afficher son raisonnement, ce qui permet d'identifier et de corriger les erreurs logiques et les hallucinations.
Prévention de la régression
Pour maintenir la qualité des messages et la performance des modèles, nous utilisons un outil d'évaluation open-source qui s'apparente aux tests unitaires dans le développement de logiciels. Cet outil nous permet d'affiner rapidement les messages-guides et d'évaluer les réponses du modèle. Une série de tests prédéfinis est déclenchée par toute modification de l'invite, bloquant toute invite défaillante. Les problèmes nouvellement identifiés sont systématiquement ajoutés aux suites de tests Promptfoo, ce qui permet d'assurer une amélioration continue et d'éviter une régression des performances du modèle.
Notre succès
Nous révolutionnons l'assistance aux Dashers en utilisant notre nouveau chatbot basé sur le LLM pour déployer notre vaste base de connaissances. Chaque jour, ce système assiste de manière autonome des milliers de Dashers, rationalisant les demandes d'assistance de base tout en maximisant la valeur des contributions humaines. Ce système collaboratif permet aux représentants de l'assistance humaine de concentrer leur énergie sur la résolution de problèmes plus complexes pour les Dashers. Notre suivi de la qualité et notre processus d'amélioration itératif ont transformé un prototype initial en une solution de chatbot robuste, créant ainsi une pierre angulaire pour les progrès futurs de nos capacités d'automatisation.
Regarder vers l'avenir
Notre chatbot LLM représente un changement par rapport aux systèmes traditionnels basés sur le flux, introduisant un degré d'incertitude inhérent à ses grands modèles de langage sous-jacents. Garantir des réponses de haute qualité est primordial pour le succès de toute application LLM à grand volume. La poursuite du développement de méthodes précises d'évaluation de la qualité nous permettra d'identifier et de réduire tout écart de performance entre l'expérience idéale et les systèmes automatisés. Alors que le système de chatbot traite efficacement les demandes de routine, les scénarios d'assistance complexes nécessiteront toujours l'expertise d'agents en chair et en os. Comme les modèles fondamentaux, l'ontologie et les systèmes RAG sont améliorés au fil du temps, l'efficacité des solutions basées sur le LLM s'améliorera également. La collecte et l'analyse continues des données sont essentielles pour guider ces améliorations et garantir que nos systèmes restent agiles et efficaces. Au fur et à mesure que nous avançons, nous visons à étendre les capacités des solutions automatisées pour faire face à une complexité croissante avec l'aide d'experts humains de l'assistance à la clientèle.
Restez informé grâce aux mises à jour hebdomadaires
Abonnez-vous à notre blog d'ingénierie pour recevoir régulièrement des informations sur les projets les plus intéressants sur lesquels notre équipe travaille.