5 types d'échecs d'agents vocaux que vous rencontrerez dès la première semaine — Venky B, Plivo

스크립트

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.

설명

Nearly every intelligence gain in language models over the past year has come from letting them think longer. Voice agents have to turn thinking off, because the budget between a user finishing a sentence and the agent starting to speak is measured in hundreds of milliseconds. Venky B is founder and CEO of Plivo, which carries over a billion voice calls a month and has been building telephony infrastructure since 2011, and this talk is a tour of what breaks when a voice agent leaves the demo and meets production. On latency his numbers are blunt. Teams aim for under 550 milliseconds and most land between 750 and 1,200, and past that users simply hang up. His team's answer is smaller open source models hosted themselves, targeting under 300 milliseconds, chosen partly on how many tokens a language needs per word. The failure he says wrecks half of all deployments is data collection, and his fix is to stop treating it as transcription at all. Decide the shape before you ask. A phone number is a typed field with a length and a validator, so a stray letter in the middle is either corrected with confidence or sent back to the caller, and evaluation happens per field as a unit test rather than end to end. That reframing took his accuracy from roughly 30 percent to the mid nineties with no fine tuning. He is equally specific about transcription being brittle by default, especially with proper nouns and code switched languages, and about never feeding model output straight into speech synthesis. His own benchmark for a vendor is whether it can pronounce his surname and his company's name. Speaker info: - https://x.com/bevenky - https://www.linkedin.com/in/bevenky/ Timestamps: 0:00 - Where voice agents break between demo and production 2:20 - A billion calls a month 4:28 - The pipeline everyone builds first 5:34 - Failure one: latency and time to first audio 6:42 - Balancing cost, intelligence, and latency 7:48 - Why thinking models do not fit 9:56 - Choosing and sizing open source models 13:06 - Failure two: assume transcription is brittle 15:14 - Code switched languages break everything downstream 16:17 - Dynamic keyword boosting and LLM post processing 18:24 - Failure three: collect data as typed fields 20:31 - Relative dates and other traps 21:37 - Field level evals instead of end to end 22:47 - Failure four: normalize before synthesis 25:00 - Failure five: turn detection and barge in

커뮤니티 글

아직 글이 없습니다. 이 영상에 대한 첫 번째 글을 작성해 보세요!

이 영상에 대해 글쓰기