5 типов сбоев голосовых агентов на первой неделе — Венки Би, Plivo

Transcript

00:00:00Давайте зададим пару быстрых вопросов, а затем сразу перейдем к делу. Сколько из присутствующих
00:00:19здесь создавали голосовых ИИ-агентов? Отлично, аудитория довольно опытная. А сколько из вас
00:00:28создавали ИИ-агентов, которые уже развернуты в продакшене? Неплохо. Хорошо. Давайте поговорим
00:00:38о том, что обычно происходит, верно? Все говорят о голосовых ИИ-агентах. Знаете,
00:00:47универсальным решением почти от всех проблем сегодня считаются именно голосовые ИИ-агенты. Так что каждый
00:00:51пытается создать такого агента и развернуть его. Они звучат великолепно, когда вы разрабатываете их
00:00:57в своей среде для разработчиков. А затем, в момент перехода от концепта к продакшну,
00:01:03все начинает давать сбой. Поэтому мы рассмотрим пять различных аспектов того, с чем
00:01:09мы столкнулись в PLEVO в отношении голосовых ИИ-агентов. Но перед этим — краткое вступление от меня. Я Венки,
00:01:19основатель и CAO. Она использует должность руководителя отдела разработки агентов. Я же называю себя главным директором по агентам
00:01:28с точки зрения титула. Итак, почему же мы имеем право вести
00:01:35это обсуждение и что мы видим такого, чего не видят многие компании? Я немного
00:01:42расскажу о нашем пути и о том, как мы сюда пришли, а затем сразу перейдем к делу.
00:01:48Мы существуем уже около 14 лет. Наш путь начинался как платформа для разработчиков API,
00:01:54а теперь мы превратились в бизнес ИИ-агентов. Мы начинали с голосовых и SMS API еще в 2011 году.
00:02:01А сейчас мы в основном сосредоточены на полноценном стеке наших предложений в области ИИ-агентов.
00:02:08Наш полный стек работает на нашей платформе. Мы обрабатываем более миллиарда голосовых звонков каждый месяц по всему миру,
00:02:16и именно благодаря этому мы заметили множество закономерностей в том,
00:02:20как работают голосовые ИИ-агенты наших клиентов в продакшене.
00:02:25В нашей команде 90 человек, а на счетах имеется 50 миллионов финансирования. Забавный факт:
00:02:33это средства не от внешних венчурных инвесторов. Все получено за счет прибыльности компании
00:02:38и накопления капитала за все эти годы.
00:02:42Среди наших клиентов — компании по всему миру. Здесь мы указали лишь некоторые логотипы,
00:02:49но с точки зрения продуктовой линейки я бы разделил все на три основные категории.
00:02:54Первое — это программируемое решение в виде ИИ-агента. Мы называем это речевым
00:03:00конвейером, а не полноценным продуктом речь-в-речь, но это программируемый продукт.
00:03:05У нас также есть студия ИИ-агентов — визуальный конструктор без кода. И, как я уже говорил,
00:03:11мы начинали с голосовых API, поэтому за последние 14 лет мы, разумеется, создали
00:03:16транкинг SIP и уровень потоковой передачи аудио. Мы не зависим от сторонних провайдеров в плане телефонии
00:03:22или операторской связи. Это наш основной бизнес, который мы строили все эти годы,
00:03:26и поверх него располагается наша платформа ИИ-агентов.
00:03:32Итак, давайте перейдем к основной теме. Я уверен, что поскольку вы все создавали
00:03:39ИИ-агентов, вы уже сталкивались с этим в том или ином виде. Мы уделим больше времени тому,
00:03:44как выглядит весь этот конвейер. То, что мы наблюдаем у клиентов,
00:03:51и я уверен, вам это знакомо: любой, кто задумывается об ИИ-агентах,
00:03:56берет набор таких фреймворков оркестрации и справляется с этим
00:04:01весьма неплохо — будь то LiveKit или Pipecat — и строит на их основе своего ИИ-агента. Они думают,
00:04:06что могут просто связать эти четыре слоя: распознавание речи, языковую модель и синтез речи
00:04:13с определением моментов реплик посредине, и дело в шляпе. Мой ИИ-агент работает в рамках пилотного проекта,
00:04:19значит, он будет работать и в продакшене. Обычно именно так все и происходит. Они замеряют
00:04:24свои задержки (некоторые ориентировочные значения показаны на этом слайде для каждого слоя) и думают:
00:04:30да, это мне подходит под мои задачи, давайте выкатывать в продакшн. А затем
00:04:36продакшн начинает давать о себе знать, и вы сталкиваетесь со всевозможными сбоями,
00:04:41которым мы и посвятим большую часть этого доклада. Я оставил немного времени
00:04:48в конце для вопросов и ответов, если они у вас возникнут, а сейчас мы сразу перейдем
00:04:53к различным типам сбоев, с которыми мы сталкиваемся. Начнем с первого, о котором говорят все.
00:05:01Это наиболее часто обсуждаемый тип сбоев, а именно — задержка. Думаю,
00:05:07сегодня у нас будет несколько докладов об ИИ-агентах или голосовых ИИ-агентах. И я уверен, что каждый
00:05:12из выступающих затронет именно эту проблему, поэтому я поднимаю её сразу,
00:05:17говоря о том, как весь этот опыт воспринимается пользователями. Обычно
00:05:26большинство людей измеряют это временем до первого звука: промежутком с момента, когда пользователь перестает говорить,
00:05:34до начала речи агента. И я думаю, вы наверняка замечали, если разрабатывали голосовых агентов,
00:05:39что ощущается как хорошее или естественное, что кажется немного раздражающим
00:05:46или заметным, а что воспринимается как откровенно раздражающее — это разные градации.
00:05:52Мы замечаем, что большинство людей хотят уложиться в 550 мс, потому что именно это обещают
00:06:00платформы, решения или уровни. Но на практике у большинства показатель оказывается между 750
00:06:07и 1200 мс. Именно там оказываются показатели большинства пользователей. У худших по производительности
00:06:13задержка превышает 1,2 секунды, и тогда вы начинаете замечать, что пользователи просто вешают трубку.
00:06:19Теперь я поделюсь с вами тем, что мы видели на практике в продакшене у клиентов,
00:06:26использующих это на разных уровнях, а также решениями некоторых из этих проблем. Рассуждая
00:06:33об этом слое, следует искать баланс между тремя вещами: стоимостью, интеллектуальностью и задержкой,
00:06:42верно? И почему я упоминаю эти три фактора? Потому что они взаимосвязаны.
00:06:48Общаясь с парой коллег на улице, я обсуждал одну вещь.
00:06:51За последний год мы увидели множество инноваций и резкий скачок интеллектуальных возможностей языковых моделей,
00:06:58верно? И большая часть этих улучшений пришлась на процессы рассуждения,
00:07:05обучение с подкреплением и так далее. Ирония голосовых агентов заключается в том, что практически всегда
00:07:11у языковой модели или говорящего агента режим размышлений должен быть отключен, верно? Так что все
00:07:19достижения в области языковых моделей за последний год здесь вообще не применяются, понимаете?
00:07:25У вас, конечно, есть лучшие модели, которые лучше следуют инструкциям или вызывают функции,
00:07:29но практически весь интеллект, заложенный на уровне рассуждений, по умолчанию отключен,
00:07:34если вы хотите добиться достаточной скорости. Это одна из ироний, с которыми мы сталкиваемся.
00:07:39Так как же сбалансировать интеллект, стоимость и задержку? Давайте рассмотрим некоторые из этих
00:07:44вариантов, которые представлены на рынке,
00:07:48и я специально выбираю языковые модели, потому что, судя по предыдущему графику, языковая модель —
00:07:55это компонент с наибольшей задержкой, который вносит свой вклад в общую картину, верно? И если вы посмотрите на
00:08:02передовые модели, с которых, я думаю, большинство начинает по умолчанию — OpenAI, Anthropic,
00:08:09Gemini — медианное время до первого токена в удачный день составляет около 450–500 мс, но оно может
00:08:17резко возрастать, верно? 90-й и 95-й перцентили могут легко превышать 1,2–1,3 секунды,
00:08:25и это плохо сказывается на общем восприятии агента. Так что это передовая
00:08:31модель. Есть и другой вариант — Cerebras или Groq, которые известны
00:08:38и популярны тем, что генерируют множество токенов или выдают токены очень быстро, верно? Это работает, но чтобы получить
00:08:45выделенную производительность или время до первого токена здесь, вам нужны выделенные мощности, а это действительно дорого.
00:08:51Именно об этом я и говорил, упоминая стоимость как один из факторов баланса. Это действительно
00:08:56дорого. И если вы поговорите с кем-нибудь из команды Groq или Cerebras, вам скажут,
00:09:01что бронировать выделенные мощности нужно за 12 месяцев вперед. Все расписано на год вперед.
00:09:05Так что это довольно дорогой вариант. Кроме того, вам нужно быть абсолютно уверенным, что модель,
00:09:11которую вы развертываете на этих инфраструктурных уровнях, будет существовать и через 12 месяцев. Это
00:09:17большая инвестиция и большая неизвестность. Что же тогда является реалистичным вариантом для продакшн-уровня
00:09:27агентов высокого качества, которые сбалансируют все эти три параметра? Вот что
00:09:34сработало для нас — это модели с открытым исходным кодом. Существует множество вариантов
00:09:41по разнообразию и модификациям. Я говорю конкретно о тех двух, с которыми работаем мы:
00:09:47Qwen 3.5 и Gemma 4. Это передовые модели с открытым исходным кодом,
00:09:56представленных сейчас на рынке. И мы провели много бенчмаркинга по поводу того, как они работают.
00:10:02Может быть страшно думать: «Ладно, у меня есть модели, теперь мне нужно их хостить, запускать
00:10:10на собственных GPU и всё такое прочее». Но если вы стабильно ориентируетесь менее чем на 300 мс, то,
00:10:17мы убедились, что это отличный вариант для баланса между задержкой, стоимостью и интеллектом.
00:10:23Перейдем к более детальному разбору. Если вы работаете только с английским, Qwen 3.5 или Gemma подойдут отлично.
00:10:29Но если вы ориентируетесь на многоязычность, международную аудиторию и разные языки, Gemma 4
00:10:35гораздо лучше подходит для этого. Мы проводили оценку «плодородия» токенов. По сути,
00:10:44если перевести это на простой язык, это значит: сколько токенов требуется для генерации одного слова
00:10:48на этом языке? Так вот, Gemma намного лучше — по крайней мере в 2,5–3 раза лучше Qwen 3.5 с этой
00:10:56точки зрения. Так что время до произнесения слов у Gemma 4 значительно меньше при прочих равных условиях на многоязычной основе.
00:11:04многоязычной основе. Теперь, какие размеры выбрать на уровне LLM? Смесевые экспертные модели обычно
00:11:12работают нормально. Модели на 3 или 4 миллиарда параметров обычно работают отлично. Проблема с
00:11:17моделями смесевых экспертов заключается в том, что если кто-то захочет заняться тонкой настройкой, это может стать
00:11:22проблемой, потому что тонкая настройка таких моделей — задача не из легких. Вы можете в итоге сломать
00:11:28модель много раз. Так что это одна из проблем, с которыми мы сталкиваемся, но обычно из коробки
00:11:35она приближает вас на 90% к тому результату, который вам нужен, даже без тонкой настройки или какой-то
00:11:42специальной работы с моделью. В этом и заключается преимущество моделей смесевых экспертов. Теперь, если вы хотите настроить
00:11:48модель и пойти дальше, сказав: «Смотрите, я работаю в определенной сфере, например, в здравоохранении,
00:11:53и мне нужно убедиться, что я могу настроить модель под себя», вам стоит начать как минимум
00:11:58с моделей на 8 или 12 миллиардов параметров на текущий момент. Может быть, через шесть месяцев
00:12:04модель на 4 миллиарда будет запросто превосходить 8-миллиардную, но на сегодня, судя по тому, что
00:12:11мы видели, вам как минимум нужна модель на 8 или 12 миллиардов, потому что от этих моделей вы ждете
00:12:16двух вещей. Во-первых, очевидно, быстрых токенов, но еще и хорошего следования инструкциям, ясно? А
00:12:23второе — это очень высокий процент успешных вызовов функций (tool calling), ведь если вы можете хорошо делать эти две вещи,
00:12:29то вы уже на 70–80% у цели и вам даже не придется настраивать какую-либо модель,
00:12:35модели будут работать прямо из коробки, верно? Так что в этом и заключается наш подход. Мы на самом деле
00:12:42используем два варианта: один — это дообученная модель для конкретных отраслей, а для большинства
00:12:50стандартных сценариев модель MOE просто работает из коробки. Мы расскажем еще о нескольких
00:12:56советах и рекомендациях в следующих слайдах, где мы покажем, где модели дают сбои, но вот в чем
00:13:00наша позиция с точки зрения задержки и LLM. Так, у меня
00:13:07мало времени, поэтому я ускорюсь. В этом подходе есть еще пара вариантов. Иногда
00:13:12люди создают агентов, используя смесь моделей. Что они делают: для разговорной
00:13:19части они используют гораздо более скромную, меньшую модель, возможно, даже трехмиллиардную,
00:13:24а для вызова функций берут модель намного крупнее,
00:13:27чтобы повысить процент успешных вызовов инструментов.
00:13:35Извините. Второе правило: исходите из того, что ваши расшифровки речи будут ненадежными. Это то,
00:13:42чем стоит руководствоваться при создании ИИ-агентов, даже если у вас самый лучший
00:13:49модуль распознавания речи на рынке, и сейчас я покажу почему. Передовые
00:13:55системы распознавания речи на рынке обеспечивают примерно от четырех до шести процентов
00:14:02ошибок в словах (WER), верно? И это на известных тестовых наборах. В реальных же шумных звонках с
00:14:10различными акцентами у людей, специфической предметной лексикой
00:14:15и так далее, этот показатель часто вырастает до двузначных цифр с точки зрения частоты ошибок в словах,
00:14:21разумеется. Конечно, вы можете выполнить тонкую настройку, взяв открытую модель,
00:14:25но мы видим, что обычно дает сбои здесь, и в этом есть определенные закономерности.
00:14:31Это имена собственные, терминология, телефонные номера — например, случайная пропажа цифр в номерах,
00:14:38неверные подстановки. Я пройдусь по примерам того, как с этим справляться.
00:14:43Адреса: когда вы пытаетесь записать длинный адрес, система распознавания речи
00:14:48может просто пропустить некоторые его части. Переключение кодов (коррекция языков). Я приведу пример
00:14:55языка, на котором говорю, так как его было проще добавить на слайд: допустим,
00:15:01если вы берете английский, но записанный другим алфавитом, именно так пишут на хинди,
00:15:06верно? То есть это английский, записанный таким алфавитом. В то время как настоящий английский вариант
00:15:11этой фразы звучит как: «Hello, how are you?». И если я обращаюсь к аудитории в другой стране,
00:15:16где происходит смешение языков, и мой английский начинает записываться в каком-то другом
00:15:21алфавите, всё начинает ломаться: от движка распознавания речи до слоя LLM и далее,
00:15:26потому что ваша LLM начинает выдавать ответ в таком же алфавите, а затем модуль синтеза речи (TTS)
00:15:32все путает. Так что с этим нужно быть очень осторожным, и если вы хотите создать агента,
00:15:38независимого от движка транскрипции, вам нужно построить слой, который все это нормализует,
00:15:44верно? О решениях мы поговорим через минуту. И есть другой случай — хинди,
00:15:48но записанный латиницей (романизмом), когда это хинди, но читается как английский,
00:15:54что снова приводит к сбоям всего последующего ПО. Это лишь примеры. То же самое касается
00:15:59арабского, мандарина, японского и практически любого другого языка. Итак,
00:16:04что же действительно помогает на уровне транскрипции? Для имен собственных
00:16:11мы рекомендуем использовать не просто усиление ключевых слов (keyword boosting). Полагаю, многие движки распознавания
00:16:16предоставляют функцию усиления ключевых слов, позволяя добавлять конкретные слова в их движок,
00:16:21а применять динамическое усиление ключевых слов. Это значит: не держите ключевое слово активным на протяжении всего
00:16:26разговора, а добавляйте его динамически, когда оно необходимо для ответа, чтобы добиться
00:16:32максимальной точности. То есть на разных этапах звонка у движка транскрипции будут усиливаться
00:16:38разные ключевые слова в зависимости от текущей фазы, верно? И мы видим, что это работает лучше всего, потому что если
00:16:43просто перегрузить контекст движка транскрипции кучей ключевых слов, он снова начнет галлюцинировать,
00:16:49верно? Так что это работает лучше всего. Да, выполняйте пост-обработку
00:16:55транскрипций с помощью LLM, поскольку у LLM есть предметный контекст, а у вашего движка транскрипции — нет.
00:17:02Поэтому многие слова, которые он выдает (я приведу несколько примеров), могут не иметь смысла. Вот
00:17:07транскрипция телефонного номера от движка распознавания, например. Что, по-вашему, означает эта буква E?
00:17:13Верно? Если передать это LLM, она поймет, что это тройка. Точно так же единица — это цифра
00:17:18один. Так что ваш движок распознавания часто может это испортить, но при пост-обработке
00:17:24на уровне LLM это мгновенно исправится с точки зрения сбора данных. И, как я уже сказал,
00:17:30транслитерация вашего вывода STT, который также является многоязычным, нормализуется
00:17:37либо с помощью предварительной транслитерации через LLM, либо с использованием какого-нибудь нейросетевого
00:17:46движка транслитерации. Есть множество открытых решений, можно просто выбрать одно из них,
00:17:49и оно сделает всю эту работу за вас. Передавайте очищенные транскрипции стабильно,
00:17:55независимо от движка распознавания, в свою LLM.
00:18:00Хорошо. Третья проблема, с которой мы обычно сталкиваемся — это сбор данных. Здесь, я думаю, 50–60
00:18:05процентов ИИ-агентов совершают серьезные ошибки. Мы склонны рассматривать это как проблему пользовательского интерфейса (UX),
00:18:14но только для голоса. Поэтому думайте о моделях данных, а не о попытках отправить поступающий транскрипт в LLM
00:18:21и гадать, что же там было сказано. Давайте воспользуемся вдохновением — я полагаю, большинство из нас здесь разработчики —
00:18:27вдохновимся дата-классами Python, Pydantic,
00:18:32Zod из TypeScript или полями форм в UI, верно? Если подойти к этой проблеме с такой точки зрения,
00:18:39мы заметим, как точность сбора данных вырастает с 30% примерно до 95%,
00:18:46когда вы начинаете мыслить подобным образом. То есть определите форму данных до того, как запрашивать их, верно? Вместо
00:18:52того чтобы оставлять все открытым, можете ли вы ввести ограничения? Может ли номер телефона быть
00:18:58полем специального типа? Как только вы это сделаете, вы будете знать, сколько цифр в нем должно быть.
00:19:03Вы сможете поверх этого настроить валидацию, а также определить допустимые значения.
00:19:10Таким образом, в предыдущем примере, если посередине телефонного номера появляется буква E и вы знаете,
00:19:15что это номер телефона, вы мгновенно либо догадываетесь, что это тройка, и подтверждаете это с пользователем,
00:19:20либо понимаете, что это ошибка, фиксируете ее и просите пользователя повторить снова,
00:19:26верно? Это один из самых распространенных шаблонов, которые мы здесь наблюдаем
00:19:31в схемах сбора. Имена, на мой взгляд, — это самое интересное. Я взял труднопроизносимое
00:19:36имя. Человек ни за что не произнесет его правильно с первого раза. И
00:19:43наша система распознавания ни за что не распознает его правильно, сколько бы раз вы ни пробовали. Поэтому
00:19:47как только вы начнете рассматривать это как поля со сводом правил и механизмом подтверждения
00:19:53путем по буквам, только тогда вы сможете добиться правильного результата. В противном случае
00:19:58все будет работать из рук вон плохо при сборе данных во время голосового вызова. И это лишь
00:20:03пример того, о чем я говорю применительно к этапу сбора данных.
00:20:11Еще одна область, где все идет наперекосяк — это относительные значения, например, даты.
00:20:18Если кто-то говорит: «на следующей неделе, в среду в восемь», это может означать как 8:00 утра, так и 8:00 вечера, а понять,
00:20:25что это за дата на самом деле — снова очень ограниченная задача. Если вы знаете, что это
00:20:30поле даты и времени, и вам нужно собрать его, вы берете текущую дату и на ее основе
00:20:35вычисляете точное значение, верно? Именно так вы должны убедиться,
00:20:39что делаете это с помощью комбинации LLM и вызова функций (tool calling), причем вызовы функций
00:20:44выполняют львиную долю работы на уровне полей.
00:20:50Да. И после этого вы запускаете тесты с точки зрения модульного тестирования. Все ваши
00:20:58тесты должны начать воспринимать эти поля как единицы модульного тестирования. И пока ваши юнит-тесты
00:21:06знаете, ваш агент будет в общем-то надежным
00:21:10и предсказуемым. Вам не придется запускать сотни
00:21:15сквозных тестов агента только для того, чтобы обнаружить сбой в сборе какого-то одного поля.
00:21:24И да, как я уже говорил, такой подход делает всё более структурированным,
00:21:30а не сводится к надежде: «Я добавлю кучу промптов и буду каждый раз менять промпт
00:21:36на пару символов, и каким-то образом моя работа с промптами заставит LLM лучше понимать
00:21:41инструкции и волшебным образом выполнять их». На самом деле, как я уже говорил,
00:21:47мы видели, как удавалось достичь 95-97% точности без дообучения модели.
00:21:53И весь секрет заключается в том, чтобы просто разбить контекст
00:21:57действий агента в данный момент на конкретные состояния, через которые он проходит.
00:22:04Хорошо. Я сейчас быстренько пропущу это с точки зрения
00:22:10времени. Вижу, у меня осталось три минуты. Надеюсь, это баг, но мы оставим это как есть.
00:22:16Итак, это четвертая область, где возникают проблемы. Большинство людей берут вывод LLM и отправляют его в синтез речи.
00:22:24Конечно, на рынке есть много хороших систем синтеза речи, которые берут на себя львиную долю работы,
00:22:30но часто они выдают ошибки. Что мы рекомендуем и в чем убедились на практике:
00:22:37обычно между LLM и системой синтеза речи необходимо иметь слой нормализации.
00:22:43Нельзя отправлять вывод LLM напрямую в синтезатор речи, верно? И мы разберем несколько примеров.
00:22:50Базовые вещи — это удаление эмодзи и разметки маркdown перед любым синтезом речи.
00:22:58Большинство оркестраторов, таких как LiveCAD или PipeCAD, делают это автоматически,
00:23:02если вы просто установите несколько флагов. Но убедитесь, что если вы их не используете
00:23:08или создаете систему с нуля, вы прописали это явно, потому что вам не нужно, чтобы эмодзи
00:23:12попадали в озвучку или чтобы там отображался маркdown.
00:23:17Пожалуй, к более распространенным вещам относятся пользовательские словари. Большинство движков синтеза речи
00:23:23предоставляют эту возможность — задавать произношение пользовательских слов, будь то собственные имена, бренды,
00:23:30акронимы и так далее. Настраивайте их при переходе от LLM к синтезу речи,
00:23:36потому что в противном случае всё испортится. И я покажу вам пример того, как мы это тестируем.
00:23:40Другой момент заключается в том, что большинство движков также позволяют управлять скоростью. Если вы знаете, что произносите
00:23:47какой-то объект, замедлите темп, заставьте агента говорить медленнее — скажем, на скорости 0.8x или 0.7x, чтобы он смог
00:23:54четко артикулировать этот конкретный объект и не искажал произношение электронной почты, телефона
00:24:00или имени по буквам. И да, просто нормализуйте всё сложное: адреса электронной почты, валюту, даты.
00:24:09Не перекладывайте это на синтезатор речи. Большинство из них справляются, но не стоит полагаться в этом на синтезатор.
00:24:15Создайте свой собственный слой нормализации на своей стороне, чтобы завтра, если вы решите сменить движок синтеза
00:24:21или по какой-то причине первый отключится и вам захочется использовать другой,
00:24:25вы могли не зависеть напрямую от движка синтеза речи, а управляли этим самостоятельно внутри компании.
00:24:32И да, думаю, здесь у меня нет моего бейджа, но... у меня тут нет моей фамилии.
00:24:39Поэтому мой первый тест: если система не может произнести мою фамилию или название моей компании,
00:24:44значит, она уже падает в грязь лицом. Моя фамилия — Баласубраманьян,
00:24:50и если голосовой ИИ-агент не может произнести ее правильно — это для меня проверка. Я знаю,
00:24:56что агент будет портить множество слов, которые нужно произносить по буквам снова и снова.
00:25:04Второй пример — наша компания Pliwo. Многие движки произносят ее как «Пливо» или «Плайво» и так далее.
00:25:09Но я считаю, что возможность контролировать это в вашем пайплайне крайне важна.
00:25:16И если вы создаете продукт, ориентированный на клиента, предоставьте эту опцию вашим клиентам.
00:25:21Ладно, я просто бегло просмотрю последние два слайда. Я ужасно выбиваюсь из графика.
00:25:26Обнаружение конца реплики — это отдельная тема, но я просто быстро выведу все пункты,
00:25:32чтобы вы могли с ними ознакомиться. И если вам захочется пообщаться
00:25:36после этого, мы сможем это обсудить.
00:25:41после мы сможем, сможем это обсудить. Так, э-э, я просто оставлю это примерно на пять
00:25:49Я уже сильно затянул время. И последнее — это перебивания и бэкчеленнинг.
00:25:53Думается, сейчас много говорят о речевых моделях (speech-to-speech), которые умеют делать что-то подобное,
00:25:58но мы убедились, что всё это можно реализовать и в обычных речевых конвейерах.
00:26:03Вам вовсе не обязательно нужна модель speech-to-speech для решения этих задач.
00:26:07Опять же, я просто выведу это на слайд и на этом закончу.
00:26:15Ладно, я думаю, у нас нет времени на вопросы. Можем обсудить их офлайн, если у кого-то есть время.
00:26:19Надеюсь, это было полезно и дало вам некоторое представление о том, с чем мы сталкиваемся в продакшене
00:26:24при миллиардах вызовов в масштабе. Что ж, спасибо.
00:26:29До скорой встречи.

Description

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

Community Posts

No posts yet. Be the first to write about this video!

Write about this video