5 types d'échecs d'agents vocaux que vous rencontrerez dès la première semaine — Venky B, Plivo
Transcript
00:00:00Faisons juste quelques questions rapides avant de passer directement aux choses sérieuses. Combien d'entre nous ici
00:00:19ont déjà créé des agents vocaux IA ? Bien, c'est un assez bon public. Et combien d'entre vous
00:00:28ont développé des agents IA déployés en production ? Pas mal. OK, super. Nous allons donc parler
00:00:38de ce qui se passe généralement, n'est-ce pas ? Tout le monde parle des agents vocaux IA. La, vous savez,
00:00:47la solution miracle à peu près universelle aujourd'hui, ce sont les agents vocaux IA. Tout le monde
00:00:51en construit un et essaie de le déployer. Ça a l'air génial quand on développe ça dans notre
00:00:57environnement de développement. Et puis dès qu'on passe d'une preuve de concept à la production,
00:01:03les choses commencent à coincer. Nous allons donc passer en revue ces cinq aspects différents de ce que
00:01:09nous avons observé chez PLEVO avec les agents vocaux IA. Mais juste avant cela, une brève introduction de ma part. Je suis Venki,
00:01:19le fondateur et directeur général. Elle a pris le titre de responsable de l'ingénierie des agents. Moi, je m'appelle directeur des agents
00:01:28en termes de titre. Bon, alors, pourquoi sommes-nous qualifiés pour mener
00:01:35cette discussion et qu'est-ce qu'on observe que beaucoup d'entreprises n'ont pas l'occasion de voir ? Je vais donc,
00:01:42je vais parler un peu de notre parcours pour vous montrer où nous en sommes arrivés et ensuite entrer dans le vif du sujet.
00:01:48Vous savez, nous existons depuis environ 14 ans. Notre parcours a commencé par une plateforme d'API pour développeurs.
00:01:54Et maintenant, nous sommes une entreprise d'agents IA. Nous avons commencé avec des API vocales et SMS à l'époque, en 2011.
00:02:01Et puis maintenant, nous nous concentrons principalement sur notre offre d'agents IA en pile complète.
00:02:08La pile complète sur notre plateforme. Nous gérons plus d'un milliard d'appels vocaux par mois à travers le monde.
00:02:16Et c'est là que nous avons vu émerger bon nombre de ces schémas concernant la façon dont,
00:02:20lorsque nous travaillons avec nos clients, ce qui se passe sur leurs agents vocaux IA en production.
00:02:25Nous sommes une équipe de 90 personnes et nous avons levé 50 millions de dollars. Fait amusant,
00:02:33cela ne vient pas d'investisseurs en capital-risque externes. Tout cela provient du fait que nous sommes une entreprise rentable,
00:02:38qui a accumulé cet argent au fil des ans.
00:02:42Voici quelques clients que nous propulsons à travers le monde. Nous avons juste laissé quelques logos,
00:02:49mais principalement du point de vue de l'offre, je classerais cela en trois catégories différentes.
00:02:54L'une est une offre d'agent IA programmable. Nous l'appelons, c'est un pipeline
00:03:00vocal, pas encore un vrai produit de parole à parole, mais c'est une offre programmable.
00:03:05Nous avons aussi un studio d'agents IA, un constructeur visuel sans code. Et puis, comme je le disais,
00:03:11nous avons commencé avec les API vocales. Nous avons donc évidemment développé au cours des 14 dernières années
00:03:16le trunking SIP et la couche de streaming audio. Nous ne dépendons pas d'autres acteurs pour la téléphonie
00:03:22ou la couche opérateur. C'est notre activité principale que nous avons bâtie au fil des ans.
00:03:26Et c'est sur cette base que repose notre plateforme d'agents IA.
00:03:32Bien. Sur ce, entrons dans le vif du sujet, n'est-ce pas ? Je suis sûr que puisque vous avez tous construit
00:03:39des agents IA, vous avez tous vu cela ou l'avez conçu d'une manière ou d'une autre. Et nous allons passer
00:03:44plus de temps à examiner à quoi ressemble l'ensemble du pipeline. Ce que nous constatons avec
00:03:51les clients, et je suis sûr que vous pouvez vous y identifier, c'est que toute personne qui réfléchit
00:03:56aux agents IA commence par choisir un ensemble de frameworks d'orchestration et fait un
00:04:01assez bon travail avec LiveKit ou Pipecat pour construire leur agent IA par-dessus. Ils pensent
00:04:06qu'ils peuvent simplement orchestrer ces quatre couches différentes : reconnaissance vocale, LLM et synthèse vocale
00:04:13avec détection des tours de parole au milieu, et c'est parti. Mon agent IA fonctionne en
00:04:19POC, donc il va fonctionner en production. C'est généralement ce qui se passe. Ils mesurent leurs
00:04:24latences, et vous pouvez voir quelques latences indicatives sur cette diapositive à chaque niveau, et ils se disent :
00:04:30“Oui, cela me semble bon pour mes besoins, allons en production.” Et puis
00:04:36la production commence à se manifester, et l'on voit apparaître toutes sortes de modes de défaillance sur lesquels
00:04:41nous allons passer le plus clair de notre temps dans cet exposé. J'ai gardé un peu de temps
00:04:48à la fin pour une foire aux questions si vous en avez, mais nous allons passer directement de cela
00:04:53aux différents modes de défaillance que nous observons. Commençons par le premier, dont tout le monde parle.
00:05:01C'est le mode de défaillance le plus évoqué, à savoir la latence. Je crois que nous avons
00:05:07plusieurs conférences sur les agents IA ou les agents vocaux IA aujourd'hui, et je suis persuadé que tout le monde
00:05:12va aborder ce problème spécifique, c'est pourquoi je l'évoque d'emblée
00:05:17en ce qui concerne l'expérience globale pour les utilisateurs. En général,
00:05:26la plupart des gens mesurent cela par le temps écoulé avant le premier audio, c'est-à-dire le moment où vos utilisateurs arrêtent de parler
00:05:34jusqu'à ce que votre agent commence à parler. Je pense que vous l'avez probablement remarqué si vous avez
00:05:39développé des agents vocaux, en voyant ce qui semble naturel, ce qui semble
00:05:46un peu agaçant ou perceptible, et puis ce qui est franchement agaçant, ce qui correspond à différentes étapes.
00:05:52Nous remarquons que la plupart des gens visent moins de 550 millisecondes, car c'est ce qui est annoncé par
00:06:00les plateformes ou les solutions, mais la plupart finissent entre 750
00:06:07et 1,2 seconde. C'est là que se situe la majorité des gens. Les performances vraiment mauvaises dépassent
00:06:13les 1,2 seconde, et c'est là que les utilisateurs commencent à raccrocher. Je vais maintenant partager
00:06:19avec vous ce que nous avons vu concrètement en production avec des clients utilisant cela à différents niveaux,
00:06:26ainsi que des solutions pour y remédier. La façon dont nous voulons concevoir
00:06:33cette couche est un équilibre entre ces trois éléments : le coût, l'intelligence et la latence,
00:06:42n'est-ce pas ? Et pourquoi est-ce que je soulève ces trois points ? Parce qu'ils sont liés entre eux. L'une des choses
00:06:48dont je discutais justement avec quelques personnes à l'extérieur, c'est que
00:06:51au cours de la dernière année, nous avons vu beaucoup d'innovations et une forte augmentation de l'intelligence du côté des LLM,
00:06:58n'est-ce pas ? Et la plus grande partie de cette intelligence est venue sous forme de capacités de réflexion,
00:07:05d'apprentissage par renforcement, et ainsi de suite. L'ironie avec les agents vocaux, c'est que presque toujours,
00:07:11le LLM ou l'agent qui parle doit avoir la fonction de réflexion désactivée, n'est-ce pas ? Donc tous les
00:07:19progrès que nous avons faits au niveau des LLM cette dernière année, aucun ne s'applique ici,
00:07:25n'est-ce pas ? Vous avez évidemment de meilleurs modèles capables de mieux suivre les instructions
00:07:29ou d'appeler des outils, mais pratiquement toute l'intelligence intégrée dans la couche de réflexion
00:07:34est désactivée par défaut si l'on veut que ce soit assez rapide. C'est donc l'une des
00:07:39ironies auxquelles nous sommes confrontés. Alors, comment concilier intelligence, coût et latence ?
00:07:44Examinons quelques-unes de ces options disponibles sur le marché,
00:07:48n'est-ce pas ? Et je choisis spécifiquement les LLM car, si vous regardez le graphique précédent, le LLM
00:07:55constitue la catégorie où la latence est la plus élevée, n'est-ce pas ? Et si vous considérez
00:08:02les modèles pionniers vers lesquels la plupart des gens se tournent par défaut, comme OpenAI, Anthropic,
00:08:09Gemini, le temps de réponse au premier jet de tokens se situe autour de 450 à 500 ms les bons jours,
00:08:17mais cela peut fluctuer. Les percentiles 90 et 95 peuvent facilement grimper au-delà de 1,2 ou 1,3 seconde,
00:08:25ce qui nuit à l'expérience globale de l'agent. Voilà donc pour les modèles de pointe.
00:08:31Ensuite, il y a une autre option, celle de Cerebras ou Groq, qui sont connus
00:08:38et populaires pour générer beaucoup de tokens très rapidement. Cela fonctionne, mais pour obtenir
00:08:45cette latence ou ce temps au premier token, il vous faut une capacité dédiée, et c'est vraiment très cher.
00:08:51C'est là que je parlais du coût comme l'un des facteurs à équilibrer. C'est vraiment
00:08:56onéreux. De plus, si vous discutez avec l'équipe de Groq ou de Cerebras, ils vous diront
00:09:01qu'il faut réserver 12 mois à l'avance pour une capacité dédiée. Ils ont complet pour les 12 prochains mois.
00:09:05C'est donc une option assez coûteuse. Et il faut vraiment être sûr que le modèle
00:09:11que vous déployez sur certaines de ces infrastructures sera toujours là dans 12 mois, ce qui représente
00:09:17un investissement risqué et plein d'inconnues. Alors, quelle est l'option réaliste pour des agents
00:09:27de qualité professionnelle qui parviennent à équilibrer ces trois aspects ? C'est ce qui
00:09:34a fonctionné pour nous, à savoir les modèles open source. Il y en a évidemment beaucoup
00:09:41en termes de variété et de variantes possibles. Je parle spécifiquement des deux avec lesquels nous travaillons,
00:09:47Qwen 3.5 et Gemma 4. Ce sont des modèles open source de pointe actuellement sur le marché,
00:09:56et nous avons fait beaucoup de benchmarks à leur sujet pour voir comment ils fonctionnent.
00:10:02Cela peut faire peur de se dire : “Bon, j'ai les modèles, maintenant je dois les héberger, les faire tourner
00:10:10sur mes propres GPU”, etc. Mais si vous visez systématiquement moins de 300 millisecondes,
00:10:17nous avons constaté que c'était une excellente option pour équilibrer la latence, le coût et l'intelligence.
00:10:23Allons un peu plus en profondeur. Si vous ne faites que de l'anglais, Qwen 3.5 et Gemma conviennent tous les deux.
00:10:29Mais si vous faites du multilingue, pour des audiences internationales ou différentes langues, Gemma 4 est
00:10:35bien meilleur pour cela. Nous avons réalisé des évaluations sur la fertilité des tokens. En gros, pour
00:10:44traduire ça en langage simple, cela correspond au nombre de tokens nécessaires pour générer un mot
00:10:48dans cette langue. Gemma est donc bien, bien meilleur, au moins 2,5 à 3 fois supérieur à Qwen 3.5 de ce point
00:10:56de vue. Votre temps d'accès aux mots est donc beaucoup plus rapide sur Gemma 4, toutes choses égales par ailleurs, sur une base multilingue.
00:11:04fondement multilingue. Maintenant, quelles tailles choisissez-vous, euh, au niveau du LLM ? Euh, le mélange d'experts
00:11:12fonctionne généralement bien. Euh, le mélange d'experts à trois ou quatre milliards fonctionne généralement bien. Le, le problème avec
00:11:17le mélange d'experts, c'est que si quelqu'un souhaite se lancer dans le réglage fin, cela peut être un
00:11:22défi, euh, parce que le réglage fin des modèles de mélange d'experts n'est pas facile. Euh, vous risquez de casser le
00:11:28modèle, euh, à plusieurs reprises. Donc c'est un défi que nous constatons avec le mélange d'experts, mais généralement dès la sortie,
00:11:35cela vous rapproche à 90 % de votre objectif, même sans aucun réglage fin ou travail personnalisé
00:11:42effectué sur le modèle. Euh, c'est donc l'avantage du mélange d'experts. Euh, maintenant, si vous voulez faire du réglage fin,
00:11:48et, et que vous voulez aller plus loin en disant, regardez, je travaille pour un domaine spécifique, la santé,
00:11:53par exemple, n'est-ce pas, et je veux m'assurer de pouvoir affiner mon modèle, vous voulez commencer au moins
00:11:58avec, euh, 8 milliards, 12 milliards, du moins, euh, par rapport à aujourd'hui, peut-être, peut-être que dans six mois,
00:12:04un modèle de 4 milliards, euh, de 4 milliards surpassera le modèle de 8 milliards, euh, haut la main, mais pour aujourd'hui, euh, ce que nous avons
00:12:11constaté, c'est que, euh, vous avez besoin au minimum d'un modèle de 8 ou 12 milliards, euh, parce que vous recherchez deux
00:12:16choses dans ces modèles. Premièrement, évidemment, des jetons rapides, mais, euh, un bon suivi des instructions, d'accord ? Et la
00:12:23deuxième chose, c'est un taux de réussite très élevé, euh, dans l'appel d'outils, car si vous réussissez bien ces deux choses,
00:12:29alors vous êtes déjà à 70 ou 80 % de l'objectif sans même avoir à affiner un modèle, à affiner aucun modèle,
00:12:35les modèles fonctionneront directement, n'est-ce pas ? Euh, c'est donc, euh, notre recette. Nous avons en fait,
00:12:42euh, nous utilisons deux versions : l'une affinée pour des industries spécifiques, et puis pour, euh, vous savez,
00:12:50la plupart des cas d'utilisation génériques, euh, un modèle de mélange d'experts fonctionne tout de suite. Euh, il y a quelques
00:12:56conseils et astuces supplémentaires dont nous parlerons dans les diapositives à venir, où nous voyons des échecs de modèles, mais, mais c'est là
00:13:00que nous nous situons, du point de vue de la latence et du LLM. Euh, très bien, je suis
00:13:07pressé par le temps, donc je vais accélérer. Euh, il y a maintenant quelques autres variantes à cela. Euh,
00:13:12les gens construisent des agents avec, euh, un mélange de modèles. Ce qu'ils font, c'est que, pour, euh, la partie
00:13:19conversationnelle, ils ont un modèle de conversation qui est un modèle beaucoup plus petit, et puis,
00:13:24vous savez, peut-être même un modèle de trois milliards, et ensuite, pour l'appel d'outils, ils ont un modèle beaucoup plus grand,
00:13:27afin d'améliorer le taux de réussite des appels d'outils. Euh,
00:13:35désolé. Le deuxième point est, euh, partez du principe que vos transcriptions vont être fragiles. C'est,
00:13:42c'est, euh, quelque chose selon lequel vous devez, en quelque sorte, vivre lorsque vous construisez des agents IA, même si vous avez
00:13:49le meilleur moteur de transcription du marché, et je vais, je vais vous montrer pourquoi, n'est-ce pas ? Les moteurs de transcription de pointe
00:13:55sur le marché, euh, vous permettent d'atteindre, euh, quatre à six pour cent
00:14:02de taux d'erreur sur les mots, n'est-ce pas ? Et cela sur des ensembles d'évaluation connus. Sur des appels réels et bruyants avec,
00:14:10vous savez, en quelque sorte, euh, des accents, comme des gens ayant différents types d'accents, euh, du vocabulaire spécialisé,
00:14:15et ainsi de suite. Ceux-ci finissent généralement par atteindre les deux chiffres du point de vue du taux d'erreur sur les mots,
00:14:21n'est-ce pas ? Euh, maintenant, vous pouvez évidemment affiner, vous savez, prendre un modèle open source et l'affiner,
00:14:25euh, mais nous constatons généralement que ce qui pose problème ici, et il y a des schémas quant à ce qui
00:14:31casse. Les noms propres, le jargon, euh, les numéros de téléphone, comme des chiffres manquants aléatoires dans les numéros de téléphone,
00:14:38euh, les mauvaises substitutions. Je vais, je vais passer en revue quelques exemples sur la façon de résoudre ces
00:14:43adresses. Lorsque vous essayez de recueillir une adresse longue, euh, vous savez, le moteur de transcription
00:14:48pourrait tout simplement omettre certaines parties. L'alternance codique. Je vais, je vais prendre l'exemple d'une
00:14:55langue que je parle, parce que c'était facile pour moi de le mettre sur la diapositive, euh, où, vous savez, si vous
00:15:01prenez de l'anglais, mais écrit dans un alphabet différent, euh, c'est ce qu'on utilise pour l'hindi,
00:15:06n'est-ce pas ? C'est de l'anglais écrit dans cet alphabet, n'est-ce pas ? Alors que, par exemple, la version anglaise réelle
00:15:11de ceci est : hello, how are you ? Donc, si je m'adresse à un public dans un autre pays,
00:15:16où j'utilise l'alternance codique, et que je commence à recevoir mon anglais dans un, euh, autre type
00:15:21d'alphabet, tout commence à se dégrader, du moteur de transcription jusqu'au niveau du LLM et au-delà,
00:15:26parce que votre LLM commence alors à produire des résultats dans ce type d'alphabet à de nombreuses reprises, et ensuite votre synthèse vocale
00:15:32dysfonctionne. C'est donc, euh, très important d'y prêter attention, et si vous voulez construire votre
00:15:38agent indépendamment du moteur de transcription, vous devez construire une couche qui normalise tout cela,
00:15:44n'est-ce pas ? Nous parlerons des solutions dans un instant. Et il y a l'autre cas, qui est, euh, l'hindi,
00:15:48en caractères latins ou romains, n'est-ce pas ? C'est-à-dire que c'est de l'hindi, mais cela se lit
00:15:54en anglais, ce qui perturbe à nouveau tout, euh, en aval. Ce ne sont que des exemples. Cela s'applique à,
00:15:59vous savez, l'arabe, le mandarin, euh, le japonais, ou autre, à peu près n'importe quelle langue. Donc,
00:16:04qu'est-ce qui fait vraiment bouger les choses, euh, au niveau de la transcription ? Pour les noms propres,
00:16:11nous vous recommandons, euh, de ne pas vous contenter d'une simple pondération de mots-clés. Je pense que de nombreux moteurs de transcription
00:16:16vous fournissent une pondération de mots-clés, où vous pouvez intégrer des mots spécifiques dans leur moteur,
00:16:21mais de faire une pondération dynamique des mots-clés. Ce qui signifie qu'il ne faut pas garder le mot-clé pour toute la durée de l'
00:16:26appel. Ajoutez-le simplement de manière dynamique lorsque vous pensez en avoir besoin comme réponse, afin d'obtenir la plus haute
00:16:32précision, c'est-à-dire qu'à différentes étapes de l'appel, le moteur de transcription aura différents, euh,
00:16:38mots-clés renforcés pendant différentes phases, n'est-ce pas ? Et c'est ce qui, selon nous, fonctionne le mieux, car si vous
00:16:43vous contentez de polluer le contexte du moteur de transcription avec des tonnes de mots-clés, il se mettra à nouveau à halluciner,
00:16:49n'est-ce pas ? C'est donc ce qui fonctionne généralement le mieux. Oui, post-traitez, post-traitez vos
00:16:55transcriptions avec un LLM, n'est-ce pas ? Parce que votre LLM possède un contexte métier, ce que votre moteur de transcription n'a pas.
00:17:02Donc beaucoup de mots qu'il dirait, euh, je vais vous donner quelques exemples, peuvent n'avoir aucun sens. Voici
00:17:07la transcription, par exemple, d'un numéro de téléphone provenant d'un moteur de transcription, n'est-ce pas ? À votre avis, qu'est-ce que ce E ?
00:17:13N'est-ce pas ? Si vous le donnez à un LLM, il sait qu'il s'agit d'un trois. De même, ce que représente ce un, c'est le chiffre
00:17:18un. Votre moteur de transcription peut donc souvent se tromper, mais lorsque vous le post-traitez
00:17:24avec une couche LLM, cela corrige instantanément l'erreur du point de vue de la collecte. Je veux dire, euh, et, et la dernière,
00:17:30comme je le disais, euh, la translittération permet de faire en sorte que la sortie STT, qui est également, euh, multilingue, soit normalisée
00:17:37en utilisant soit un LLM auquel vous faites d'abord subir une translittération, soit, vous savez, un certain type de moteur de translittération
00:17:46neuronale. Il y en a beaucoup en open source. Vous pouvez simplement en choisir un,
00:17:49n'est-ce pas ? Qui fera tout ce travail pour vous. Envoyez des transcriptions nettoyées de manière cohérente,
00:17:55indépendamment du moteur de transcription, à votre LLM.
00:18:00Très bien. Le troisième point que nous constatons généralement est la collecte de données. C'est là que, selon moi, 50 à 60
00:18:05pour cent des agents IA commettent de grossières erreurs. Euh, et nous aimons voir cela comme un problème d'expérience utilisateur,
00:18:14mais adapté à la voix. Pensez donc en termes de modèles de données, euh, et non pas d'une transcription arrivant dans un LLM qui essaie
00:18:21de comprendre ce que disait la transcription. Inspirons-nous donc de, je suppose que la plupart d'entre nous ici sont
00:18:27des développeurs. Euh, vous savez, inspirez-vous des classes de données Python, de Pydantic,
00:18:32de Zod pour TypeScript ou des champs de formulaire dans l'interface utilisateur, n'est-ce pas ? Si vous commencez à aborder le problème sous cet angle,
00:18:39nous avons constaté que la précision passe de 30 % à environ 95 % du point de vue de la collecte de données
00:18:46lorsque vous commencez à réfléchir de cette manière. Définissez donc la structure avant de poser la question, n'est-ce pas ? Au lieu
00:18:52de laisser les choses ouvertes, pouvez-vous les restreindre ? Un numéro de téléphone peut-il donc être
00:18:58un champ de type numéro de téléphone ? Dès que vous faites cela, n'est-ce pas, vous savez combien de chiffres il doit
00:19:03contenir. Vous pouvez effectuer une validation par-dessus, n'est-ce pas, et déterminer quelles valeurs autorisées peuvent même
00:19:10y figurer. Ainsi, dans l'exemple précédent que nous avons vu, si un E apparaît au milieu d'un numéro de téléphone et que vous savez
00:19:15c'est un numéro de téléphone, vous savez immédiatement si vous devez deviner intelligemment qu'il s'agit d'un 3 et le confirmer auprès
00:19:20soit que c'est une erreur, auquel cas vous validez et demandez à l'utilisateur de répéter,
00:19:26n'est-ce pas ? C'est donc, je crois, l'un des schémas courants que nous avons observés ici concernant
00:19:31le schéma de collecte. Le nom, je pense, est le cas le plus intéressant. J'ai simplement choisi, vous savez,
00:19:36un nom difficile à prononcer. Il n'y a aucun moyen qu'un humain réussisse cela du premier coup. Et aucun moyen
00:19:43que notre moteur de transcription n'y arrive, peu importe le nombre de tentatives, n'est-ce pas ? Donc dès
00:19:47que vous commencez à considérer cela comme des champs dotés de règles et de mécanismes de confirmation pour
00:19:53épeler cela, vous savez, lettre par lettre, ce n'est qu'ainsi que vous y parvenez. Sinon,
00:19:58vous risquez de commettre de graves erreurs lors de la collecte de ces informations au cours d'un appel vocal. Et c'est simplement
00:20:03un exemple de ce dont je parle en ce qui concerne la partie relative à la collecte de données.
00:20:11Un autre domaine où les choses se détériorent considérablement concerne les valeurs relatives, la date étant l'un de ces exemples.
00:20:18Si quelqu'un dit la semaine prochaine, euh, mercredi à huit heures, cela peut signifier 8h00 ou 20h00, et déterminer
00:20:25quelle est réellement cette date devient alors un problème très contraignant. Si vous saviez qu'il s'agissait d'un
00:20:30champ de date et d'heure et que je recueille un tel champ, vous prenez la date actuelle et déduisez
00:20:35quelle serait cette valeur en fonction de celle-ci, n'est-ce pas ? C'est donc ainsi que vous voulez vous assurer
00:20:39que, euh, vous faites cela grâce à une combinaison du LLM et de l'appel d'outils, ce dernier effectuant
00:20:44une grande partie de ce travail fastidieux du point de vue des champs.
00:20:50Oui. Et ensuite, vous faites, vous procédez ainsi du point de vue des tests unitaires. Toutes vos évaluations doivent donc
00:20:58commencer à traiter ces champs comme des tests unitaires. Et tant que vos tests unitaires se valident et réussissent,
00:21:06tu agent sera, en quelque sorte, fiable et répétable. Tu ne vas pas,
00:21:10tu sais, lancer des centaines de cas de test d'agents de bout en bout juste pour découvrir
00:21:15qu'une collecte de champ est cassée. Tu fais tes évals au niveau des champs et des tests unitaires.
00:21:24Et puis, oui, comme je le disais, je pense que cet état d'esprit rend tout plus structuré
00:21:30au lieu d'espérer mettre une tonne de prompts, en modifiant sans cesse le prompt de quelques
00:21:36caractères à chaque fois. Et qu'en quelque sorte mon ingénierie de prompt va rendre le LLM bien plus
00:21:41sensible aux instructions et commencer à suivre magiquement certaines de ces choses. En fait,
00:21:47comme je le disais, nous nous sommes vus atteindre 95, 97 % de précision sans avoir à affiner un modèle.
00:21:53Très bien. Et l'astuce consiste essentiellement à décomposer le contexte de
00:21:57ce que fait l'agent à ce moment-là avec des états spécifiques de ce que traverse l'agent.
00:22:04Très bien. Je vais juste passer rapidement là-dessus d'un point de vue
00:22:10temporel. Je vois qu'il me reste trois minutes. Euh, j'espère que c'est un bug, mais on va
00:22:16laisser ça comme ça. OK. Donc c'est le quatrième domaine où l'on constate des problèmes. La plupart des gens prennent
00:22:24la sortie du LLM et l'envoient à un système de synthèse vocale (TTS). Évidemment, je pense qu'il y a de très bons TTS sur le marché
00:22:30qui font un gros travail de fond, mais de nombreuses fois, cela pose problème. Ce que nous recommandons et
00:22:37ce que nous avons constaté, c'est qu'il est généralement préférable d'avoir une couche de normalisation entre votre LLM et ce qui
00:22:43est transmis à un TTS. Vous n'envoyez pas la sortie de votre LLM directement à un TTS, n'est-ce pas ? Et nous allons passer
00:22:50en revue quelques exemples. Les bases, qui consistent à supprimer les emojis et le Markdown avant toute synthèse
00:22:58par le TTS. La plupart des pipelines d'orchestration font cela, comme LiveKit ou PipeKit le feraient
00:23:02pour vous si vous activez simplement quelques options. Assurez-vous donc, si vous ne les utilisez pas ou
00:23:08si vous construisez à partir de zéro, d'avoir configuré cela explicitement, car vous ne voulez pas qu'un emoji apparaisse
00:23:12dans un texte lu à voix haute, ou que du Markdown y figure.
00:23:17Bien. D'autres éléments plus courants : les dictionnaires personnalisés. La plupart des moteurs TTS fournissent
00:23:23cela, pour savoir comment prononcer des mots personnalisés, qu'il s'agisse de noms propres, de marques,
00:23:30d'acronymes, etc. Configurez-les donc lors du passage de votre LLM à la sortie du TTS,
00:23:36car sinon, cela va rater. Et je vais vous montrer un exemple de la façon dont nous testons
00:23:40cela. L'autre point est que la plupart des moteurs vous permettent aussi de gérer la vitesse. Donc, si vous savez que vous prononcez
00:23:47une entité, ralentissez, faites ralentir votre agent. Par exemple à 0,8x ou 0,7x, pour qu'il soit capable
00:23:54d'articuler cette entité spécifique et de ne pas se tromper dans la prononciation d'un e-mail, d'un numéro
00:24:00de téléphone ou d'un nom lettre par lettre. Et normalisez tout ce qui est complexe, n'est-ce pas ? Les e-mails,
00:24:09la monnaie, les dates. Ne laissez pas le TTS s'en charger. La plupart le font, mais ne vous en remettez pas
00:24:15au TTS pour cela. Créez plutôt votre propre couche de normalisation pour qu'un jour, si vous pensez
00:24:21devoir changer de TTS ou si, pour une raison quelconque, le premier est en panne et que vous souhaitez utiliser
00:24:25un autre TTS, vous ne dépendiez pas nativement du moteur du TTS, mais que vous l'ayez développé
00:24:32en interne pour le gérer. Et puis, je n'ai pas mon badge ici, mais je n'ai pas mon nom de famille dessus.
00:24:39Donc mon premier test, c'est que s'il ne peut pas prononcer mon nom de famille ou le nom de mon entreprise,
00:24:44c'est qu'il passe déjà à côté. Mon nom de famille est Balasubramanian,
00:24:50et si vous ne pouvez pas prononcer cela en utilisant un agent vocal IA, c'est un test pour moi. Je sais
00:24:56que l'agent va écorcher de nombreux mots qui doivent être épelés
00:25:04régulièrement. Le deuxième est le nom de notre entreprise, Pliwo. De nombreux moteurs le prononcent
00:25:09Pliwo ou autre chose. Mais je pense que pouvoir contrôler cela spécifiquement
00:25:16dans votre pipeline est absolument crucial. Et si vous construisez un produit destiné aux clients,
00:25:21alors offrez cette option à vos clients. Bon,
00:25:26je vais survoler rapidement les deux dernières diapositives. Je suis largement en retard.
00:25:32La détection de fin de tour, c'est un sujet distinct, mais je vais
00:25:36rapidement afficher tous les points pour que vous puissiez les parcourir. Et si vous souhaitez discuter
00:25:41après cela, nous pourrons en parler. Bien, je vais laisser ça affiché pendant cinq
00:25:49secondes, puis nous pourrons en discuter hors ligne. Je suis vraiment en retard. Et la
00:25:53dernière, c'est l'interruption et le soutien conversationnel (backchanneling). Je pense qu'on parle beaucoup
00:25:58des modèles de parole à parole qui font une partie de cela, mais nous avons pu voir comment réaliser tout cela
00:26:03dans des pipelines de parole à parole. Pas besoin d'un modèle de parole à parole pour faire tout ça.
00:26:07Encore une fois, je vais juste afficher ceci sur la diapositive et conclure là-dessus. Euh,
00:26:15très bien. Je ne pense pas que nous ayons le temps pour des questions. Nous pourrons les prendre hors ligne si vous avez du temps, mais
00:26:19j'espère que cela a été utile et vous a donné des aperçus sur ce que nous voyons en production
00:26:24avec des milliards d'appels à grande échelle. Très bien, merci.
00:26:29À la prochaine.
Community Posts
No posts yet. Be the first to write about this video!
Write about this video