Skip to content

Blog


Vers une automatisation de haute qualité du support Dasher basée sur le LLM

17 septembre 2024

|
Zhe Jia

Zhe Jia

Shuai Wang

Shuai Wang

Aditi Bamba

Aditi Bamba

Martin Wang

Martin Wang

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é : 

  1. Il peut être difficile de trouver l'article pertinent ; 
  2. Il faut du temps pour trouver des informations utiles dans un article donné ; 
  3. 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 : 

  1. 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.
  2. 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. 
  1. 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.
  2. 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.
  3. 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. 

Figure 1 : Vue d'ensemble des trois composants du système de soutien basé sur RAG : Système RAG, garde-corps LLM et juge LLM

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é.

Figure 2 : Organigramme du processus RAG : Récupérer les informations basées sur le problème de l'utilisateur, insérer les informations dans le modèle d'invite et générer la réponse.

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.

Figure 3 : Système de garde-fou pour la réponse au chat de Dasher avec deux niveaux de contrôle de la qualité : Une comparaison de similarité sémantique et un évaluateur de secours alimenté par LLM.

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.  

Figure 4 : Utilisation des résultats de LLM Judge pour améliorer la qualité du système : Commencez par des questions ouvertes, puis convertissez les réponses en questions à choix multiples pour l'amélioration et le suivi.

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.

À propos des auteurs

  • Zhe Jia

    Zhe Jia est ingénieur en apprentissage automatique pour l'excellence opérationnelle chez DoorDash. Il se concentre sur l'automatisation du support utilisateur avec LLM.

  • Shuai Wang

    Shuai Wang est ingénieur en logiciel pour l'excellence opérationnelle chez DoorDash. Il se concentre sur les fonctionnalités de chat pour permettre des communications directes dans l'application.

  • Aditi Bamba

    Aditi Bamba est ingénieur logiciel pour l'excellence opérationnelle chez DoorDash. Elle se concentre sur l'IA conversationnelle qui permet des expériences d'assistance intelligentes.

  • Martin Wang

    Martin Wang est directeur principal de l'ingénierie ML/AI. Il se concentre sur l'ensemble de la ML/AI pour l'équipe d'excellence opérationnelle de DoorDash.

Emplois connexes

Localisation
San Francisco, CA ; Mountain View, CA ; New York, NY ; Seattle, WA
Département
Ingénierie
Localisation
San Francisco, CA ; Sunnyvale, CA
Département
Ingénierie
Localisation
San Francisco, CA ; Sunnyvale, CA ; Seattle, WA
Département
Ingénierie
Localisation
Pune, Inde
Département
Ingénierie
Localisation
San Francisco, CA ; Seattle, WA ; Sunnyvale, CA
Département
Ingénierie