Проблема латентности
Voice AI имеет жорсткий latency-бюджет. Усе понад 500мс отчувается как задержка. Понад 1 секунду, как зламано. Наш v1 pipeline был в середньому 600мс, нормально для продукта, не круто для планки, которую мы хотилы взяти.
Latency в voice-pipeline-ах визначается ланцюгом сервисов: ASR → LLM → TTS, плюс мережеви round trips. Каждый этап чекает на завершення попереднього. С 200мс ASR + 250мс LLM + 200мс TTS вы уже на 650мс.
Streaming partials между каждым этапом
Найбильший виграш, никогда не чекати, пока этап завершиться. ASR стримить partial-транскрипты, пока користувач говорит. LLM получает partials и начинает генерувати. TTS стримить аудио-chunks ещё до того, как LLM закинчить.
В этого есть компромисы. ASR partials шумни, они ревизуются по мири надходження аудио. LLM имеет обрабатывать это коректно. Мы додали тонкий слой, что буферизуе последние 150 мс partials перед передачею в LLM, что поглинает бильшисть ревизей.
Вибир правильнои модели на каждый хид
Не каждый turn потребуе 400B-param модель. Бильшисть, ни. Мы класификуем входящие turns в 4 buckets, small-talk, factual lookup, reasoning, complex multi-step, и маршрутизуем до модели размера под каждый.
Small-talk идёт на 7B модель с 80мс inference. Reasoning, на 70B. Complex multi-step, на большое. Наш класификатор сам, 200M params и работает меньше чем за 10мс.
Кинцевий результат
Медианна задержка первого токена: 180мс. P95: 280мс. P99: 420мс. Найповильниший тир разговоров все ещё ниже перцептивного порогу для бильшости користувачов.
Стоимость тоже впала, мы використовуем малу модель 70% времени, середню 25%, велику только 5%.