Speculative Listening: предварительное декодирование полнодуплексной речевой модели до прихода аудио
Речевая модель с чередованием секундных аудиоблоков часть времени ждёт вход, а затем последовательно выдаёт токены. Speculative Listening использует это ожидание: заранее рассчитывает ответ при предположении тишины и проверяет его, когда приходит настоящий блок. Идея интересна не только ускорением коротких реплик: накопленные предположения особенно сильно сокращают выдачу длинных вызовов инструментов.
Метод. На четырёх моделях авторы сначала проверяют оракульную гипотезу: при замене следующего блока тишиной выход полностью совпадает в 95,3% блоков, а 88% расхождений начинается с первого токена. Поэтому модель готовит основной вариант и ветвь со вторым по вероятности первым токеном. Варианты сохраняются между блоками в общем для сеанса пуле. После прихода аудио проверка принимает совпавший префикс, отклоняет остальное и продолжает обычное декодирование; ошибочный предварительный текст не должен попадать пользователю.
Результаты. TickTock-Bench содержит 760 сеансов и 15 883 блока, восемь задач. При жадном декодировании, пакете 1 и секундных блоках обработка говорящих блоков ускоряется в среднем в 2,6–2,8 раза, вызовов инструментов до 23,41 раза. Измеренная добавка Thinker до начала ответа уменьшается с 417–1089 до 74–241 мс. Это время от прихода аудио первого говорящего блока до завершения его текстового выхода, а не полный интервал от конца пользовательской речи до слышимого ответа: Talker в сравнение не включён.
Ограничения. Экономится задержка после входа, не обязательно общее число вычислений или энергия. Нужны свободные вычислительные интервалы; при нескольких сеансах на A100 преимущество уменьшается. Для параллельных потоков вроде Moshi с шагом 80 мс требуется другая постановка. Точная эквивалентность аргументируется в точной арифметике; даже в float32 совпадают почти все, а не буквально все сеансы, в bfloat16 округление может менять ответ. При температуре 1 ускорение говорящих блоков снижается примерно до 1,4 раза. Память пула и сквозной расход памяти не нормированы.
Фишка из статьи. В таблице 4 видно, что длинные вызовы ускоряет главным образом перенос гипотез между блоками, а не дополнительная ветвь первого токена. Ниже Streaming SLM; говорящие блоки измерены на LlamaQuestions, инструменты на FDB v3.
| Добавленные компоненты | Ускорение говорящих блоков | Ускорение вызовов инструментов |
|---|---|---|
| Только предварительный вариант с тишиной | 2,88× | 1,42× |
| Также межблочный пул | 2,87× | 22,04× |
| Также ветвь второго первого токена | 2,87× | 23,41× |
Как это читать: почти неизменное ускорение речи и скачок для инструментов показывают разные режимы работы. Длинный вызов уже подготовлен за несколько прошлых интервалов, поэтому его можно проверить почти сразу. Эти множители относятся к послевходной задержке соответствующего типа блока; превращать 23,41× в ускорение всего голосового агента нельзя.
Источник. Оригинальное название: Decode Before You Hear: Speculative Listening for Chunk-Interleaved Full-Duplex Speech Language Models. arXiv:2611.06982; полный текст PDF.