Голосовые системы

Whisper small: влияние hotwords

Большой общий словарь улучшил часть терминов, но вызвал деградацию: 3 сегмента с шестью и более повторениями фразы подряд (без подсказок: 0). Такой результат нельзя считать общим улучшением качества.

  • 792.74–822.72 с: «скиллы» повторяется 53 раз.
  • 397.56–422.16 с: «1» повторяется 112 раз.
  • 233.90–234.62 с: «пейплайн код ревью» повторяется 17 раз. Один доклад, 1100.0 с. Та же модель small, CPU int8, beam=5, language=ru, VAD, condition_on_previous_text=false. Единственное изменение декодирования — hotwords (210 токенов, без обрезки). Исходный WAV тот же.

Наблюдаемый эффект

  • suspected_error: целевое написание найдено 3 → 22 из 34 проверяемых мест; появилось 19, исчезло 0.
  • control: целевое написание найдено 18 → 17 из 18 проверяемых мест; появилось 0, исчезло 1.

Это покрытие ожидаемых написаний по контексту, не точность по звуку и не WER. Некоторые термины встречаются неоднократно. Контрольные места выбраны до просмотра результата. Проверенного человеком эталона пока нет.

Распознавание: исходное 277.6 с; hotwords 321.1 с. Расхождение полных текстов 23.0%, не процент ошибок.

Словарь

вайб-кодинг pull request CI монорепозиторий Protobuf бенчмарки флеймграфы Perforator Shopify градиентный бустинг эмбеддинг KV-cache монолитизация time-to-market сериализация десериализация candidate generation инвертированные индексы фьюзить инференс LLM tools чекпоинт идемпотентность оркестратор observability трейсы дебажить end-to-end reinforcement learning reward SLA эвалы скиллы код-ревью пайплайны MatrixNet CatBoost attention keys values SilverTorch ANN GPU PyTorch Bloom filter CPU production API моки двухбашенные нейросети флапают батчинг авторесёрч retrieval GPU-native GPU-friendly переранжирование

Сравнение мест

Время Термин Было С hotwords Целевое написание
37–46 с вайб-кодинг Уверен, что большинство из вас код уже руками не пишет и отличает наверняка вайп -кодинку от агентной разработки. Как раз про некоторые интересные и сложные тренды агентной False → False
78–90 с pull request Вообще -то тоже нужна некоторая приемка, да, нужны какие -то выборки типичных полуреквестов. На этих полуреквестах нужно запустить предыдущую версию, новую версию. как -то и сравнить. Вообще вообще то тоже нужна некоторая приёмка да нужна какие -то выборки типичных pull requests на этих pull request False → True
189–200 с монорепозиторий вроде бы более простых тестов, но я имею в виду юниты, какие -то функциональные, потому что в модной репозитории все сервисы быстро обрастают с лишними зависимостьями и по этим зависимости он притягивается сильно вроде бы более простых тестов но я имею в виду юниты какие -то функциональные потому что в монорепозитории все сервисы быстро обрастают лишними зависимостьями и по этим зависимостьям протягивается False → True
206–214 с Protobuf есть действительно файлы, у которых слишком много зависимости, например, какие -то базовые протобов схемы, и в этом случае нужно уметь умно понимать, какие есть действительно файлы у которых слишком много зависимости например какие -то базовые протобов схемы и в этом случае нужно уметь умно понимать какие False → False
239–249 с бенчмарк целевую, которую нужно ему оптимизировать, давать ему бейнчмарк, и чтобы он дальше погибел какие -то гипотезы, на бейнчмарке попроверял, насколько они выстреляли, целевую, которую нужно ему оптимизировать, давать ему бенчмарк, и чтобы он дальше погибел какие -то гипотезы, на бенчмарке попроверял, насколько они выстрели, и False → True
262–269 с Shopify популяризовали тоже разные компании. Например, Shippify, как раз в контексте оптимизации сяи -пайплайнов, про авторы все еще рассказывал. Мы у себя популяризовали тоже разные компании, например, Shippify, как раз в контексте оптимизации CI -пайплайнов про авторесёрч рассказывал мы у себя False → False
262–269 с CI популяризовали тоже разные компании. Например, Shippify, как раз в контексте оптимизации сяи -пайплайнов, про авторы все еще рассказывал. Мы у себя популяризовали тоже разные компании, например, Shippify, как раз в контексте оптимизации CI -пайплайнов про авторесёрч рассказывал мы у себя False → True
261–271 с авторесёрч подхватили и популяризовали тоже разные компании. Например, Shippify, как раз в контексте оптимизации сяи -пайплайнов, про авторы все еще рассказывал. Мы у себя тоже его применяем и подхватили и популяризовали тоже разные компании, например, Shippify, как раз в контексте оптимизации CI -пайплайнов про авторесёрч рассказывал мы у себя тоже его применяем и False → True
279–286 с Perforator флеймграфах по всей компании. Вот мы рассказываем про перфоратор периодически. перфоратами помогает понять по всей компании, какие функции чаще его используются. Такие флеймграфах по всей компании. Вот мы рассказываем про перфоратор, периодически перфораторам помогает понять по всей компании, какие функции чаще его используются. True → True
340–349 с градиентный бустинг Самые простые рекомендательные модели, которые наверняка вы в своих системах использовали, это грязненный boosting. Наверняка слышали про MatrixNet или CatBoost. И эти простые рекомендательные модели которые наверняка вы в своих системах использовали это градиентный бустинг наверняка MatrixNet CatBoost и эти False → True
399–408 с эмбеддинг факторы пользователя и вычисляет некоторый вектор имбендинг пользователя. Другая часть вычисляет имбендинг документа. Они друг другом никак не связаны. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. False → False
443–453 с батчинг не слишком большой размер, и перемножить. Это уже операция, которая легко оптимизируется, бочуется и так далее. Ну вот, видите, бакендером здесь пришлось это учитывать. Ну ладно, это как бы уже пять не слишком большой размер и перемножить это уже операция которая легко оптимизируется бочуется и так далее ну вот ведь бакондером здесь пришлось это учитывать ну ладно это как бы уже пять False → False
507–520 с KV-cache attention для этой самой истории вычисляет keys и values, k av, и соответственно, если вы хотите что -то закрешировать, то именно k av вам нужно закрешировать, поэтому есть термин k v к шип, про который вы тоже возможно слышали, и в контексте искрых attention для этой и самая история вычисляет keys и values KV и соответственно если вы хотите что -то закрешировать то именно KV вам нужно закрешировать поэтому есть термин KV -cache про который вы тоже возможно слышали и в контексте изкрылых False → True
537–545 с монолитизация модели. Еще один тренд в рекомендациях неожиданно связан с моделитизацией. Кто из вас хоть модели еще один тренд в рекомендациях неожиданно связан с монолитизацией кто из вас хоть False → True
556–574 с time-to-market У вас сервисы становятся меньше, энтерапия уменьшается, Realism уже катать чаще, Tiny to Market Fish улучшается, с одной стороны, с другой стороны, контекст, который надо понимать в контексте каждой фичи, контекст каждого сервиса тоже уменьшается, соответственно, разработчику прочую новому погружаться, и агенту у вас сервисы становятся меньше энтерапии уменьшается ризы можно катать чаще time -to -market фич улучшается с одной стороны с другой стороны контекст с которые надо понимать в контексте каждой фичи контекста каждого сервиса тоже уменьшается соответственно разработчику прочую новому погружаться и агенту False → True
577–588 с сериализация у меня год назад был проект доклад на этой конференции, если вы не слишком много CPU потеряете на передаче данных между микросервисами, на силизацию запросов, десилизацию ответов, тогда вы можете еще и CPU сэкономить меня год назад был проект доклад на этой конференции если вы не слишком много CPU потеряете на передачу данных между микросервисами на силизацию запросов десериализацию ответов тогда вы можете еще и CPU сэкономить False → False
577–588 с десериализация у меня год назад был проект доклад на этой конференции, если вы не слишком много CPU потеряете на передаче данных между микросервисами, на силизацию запросов, десилизацию ответов, тогда вы можете еще и CPU сэкономить меня год назад был проект доклад на этой конференции если вы не слишком много CPU потеряете на передачу данных между микросервисами на силизацию запросов десериализацию ответов тогда вы можете еще и CPU сэкономить False → True
598–606 с candidate generation Но в контексте рекомендательных систем, а конкретно в контексте кандидата генерации, это стадия, после которой выплевываются Но в контексте рекомендательных систем, а конкретно в контексте кандидата генерации, это стадия, после которой поплевываются True → True
622–630 с эмбеддинги поиск ближайших соседей в том самом пространстве векторов имбендингов с предыдущего слайда, фильтрацию этих кандидатов переранжирования поиск ближайших соседей в том самом пространстве векторов эмбендингов с предыдущего слайда фильтрацию эти кандидатов переранжирование False → False
651–663 с инвертированные индексы -Pytorch -модулем. Фильтрация теперь стала делаться не инвертирными индексами, как все привыкли делать, а Bloom -индексом, GPU -friendly, буквально набором Bloom -фильтров. В итоге PyTorch модулем фильтрация теперь стала делаться не инвертирными индексами, как все привыкли делать, а Bloom индексом GPU -friendly, буквально набором Bloom фильтров. В итоге False → False
667–676 с фьюзить инженен может оптимизировать как цельный граф между стадиями. И, во -вторых, GPU -компилятор может вьюзить некоторая операция и уменьшать перекладывание промежурочных тензоров. может оптимизировать как цельный граф между стадиями, и, во -вторых, GPU -компилятор может фьюзить некоторая операция и уменьшать перекладывание промежурочных тензеров. False → True
691–700 с PyTorch и он же вот произойдет между несколькими статями, конечно, имеет смысл от все побандлить и объединить в один пайторч -граф, например. и он же вот произойдет между несколькими статями конечно имеет смысл все побандлить и объединить в один PyTorch Graph например так, True → True
723–732 с инференс и ассистенты так и выглядели. Там сложность была только в том, чтобы эффективный интервью с этой большой нейросети выполнить, но там KVK -ши может какие -то сохранить. Тем не менее, буквально, и ассистенты так и выглядели там сложность была только в том, чтобы эффективный инференс этой большой нейросети выполнить но там KV -cache может какие -то сохранить тем не менее, False → True
726–733 с KV-cache эффективный интервью с этой большой нейросети выполнить, но там KVK -ши может какие -то сохранить. Тем не менее, пока вроде бы легко, эффективный инференс этой большой нейросети выполнить но там KV -cache может какие -то сохранить тем не менее, пока вроде бы легко False → True
758–768 с LLM быть роутер в этой схеме, может его не быть, может быть ЛНК будет сама решать, что ей надо сейчас вызвать какие -то тулы, а потом еще какие -то тулы вызвать, а потом вызвать другую ЛНК, которая хорошо обрабатывает другой сценарий. Получается, какой -то граф, быть роутер в этой схее может его не быть может быть ллмка будет сама решать что ей надо сейчас вызвать какие -то тулы а потом еще какие -то тулы вызвать а потом вызвать другую ллмку которая хорошо обрабатывает другой сценарий получается какой -то граф False → True
809–819 с идемпотентность этом, если у вас есть побочные эффекты какие -то в процессе, нужно их не повторить. то есть надо подумать про идем -пантентность. Конечно, если мы говорим про выполнение коды, надо уметь поднимать скиллы False → False
842–851 с оркестратор одной стороны, с другой стороны, когда есть некоторый архистратор, который понимает, что надо вызвать такой -то тул с такими -то аргументами, то же, чем раньше он про это узнал, из ответа не одной стороны с другой стороны когда есть некоторый оркестратор который понимаешь ясно надо надо вызвать такой титул с такими аргументами тоже чем раньше он про это узнал из ответа False → True
856–865 с observability Ну и понятно, надо следить за эффективностью всей этой системы, как -то умно балансировать, нужно какой -то обзеврабилить слой, чтобы смотреть на тресы и дебазжить, что там и понятно надо следить за эффективностью все это системы как -то умно балансировать нужно какой -то обзевробилить слой чтобы смотреть на трейсы и дебажить что там False → False
861–869 с трейсы какой -то обзеврабилить слой, чтобы смотреть на тресы и дебазжить, что там происходило. Короче, да вы не фоткайте там сейчас это какой -то обзевробилить слой чтобы смотреть на трейсы и дебажить что там происходило короче вы не фоткаете там сейчас доклад про это False → True
861–869 с дебажить какой -то обзеврабилить слой, чтобы смотреть на тресы и дебазжить, что там происходило. Короче, да вы не фоткайте там сейчас это какой -то обзевробилить слой чтобы смотреть на трейсы и дебажить что там происходило короче вы не фоткаете там сейчас доклад про это False → True
887–894 с API в продакшене, другое дело, когда изоляция, ну и вот все эти внешние интеграции, какие -то дерганье опишек, когда они в продакшене другой делал когда изоляция ну и вот все эти внешние интеграции какие -то дёрганье опишек когда они False → False
891–901 с end-to-end интеграции, какие -то дерганье опишек, когда они возникают в тестах. Никто не любит делать эндогрессонные тесты, Но если кто -то любит, поднимите руку, и интересно станет познакомиться. интеграции какие -то дёрганье опишек когда они возникают в тестах никто не любит делать эндогрессионные тесты но если кто -то любит поднимите руку интересно с вами познакомиться False → False
912–920 с reinforcement learning обучается сложная модель с агентным поведением, там есть очень важная стадия обучения с подкреплением, Resports with learning. И в процессе такого обучения нужно обучается сложная модель с агентным поведением там есть очень важная стадия обучения с подкреплением reinforcement learning и в процессе такого обучения нужно False → True
978–984 с SLA Кто бы мне 5 лет назад сказал, что нужно уже бы с таким салейом поднимать изолированный контейнер, я бы не поверил, я сказал, зачем тут нужно вообще. кто бы мне 5 лет назад сказал, что нужно с таким SLA поднимать изолированный контейнер я бы не поверил, я бы не поверил, зачем это нужно вообще False → True
94–101 с эвалы Короче, вообще -то нетривельная бэкэнтерская задача, но это подход обычно называется эвалы, вот из ML мира термин, не тривельно бек -энтерская задача подход называется эвалы из MLMirror Termin True → True
63–69 с код-ревью помощью агентов. Да, и вы собираете такой пайплайн агентного код -ревью. У вас там есть некоторые базовые модель, какие -то скилы, какие помощью агентов да и вы собираете такой пайплайн агентного код -ревью у вас там есть некоторые базовая модель какие -то скилы какие True → True
138–145 с флапают тесты полагаются в значительной степени, соответственно, если тесты флапают, то агент примет какое -то совершенно неприсказуемое решения. Поэтому тесты полагается в значительной степени соответственно если тест флапают то агент примет какое -то совершенно неприсказуемые решения поэтому True → True
276–282 с флеймграфы -то существующую библиотечную функцию, которая светится на флеймграфах по всей компании. Вот мы рассказываем про перфоратор периодически. -то существующую библиотечную функцию, которая светится на флеймграфах по всей компании. Вот мы рассказываем про перфоратор, периодически True → True
342–349 с MatrixNet вы в своих системах использовали, это грязненный boosting. Наверняка слышали про MatrixNet или CatBoost. И эти вы в своих системах использовали это градиентный бустинг наверняка MatrixNet CatBoost и эти True → True
342–349 с CatBoost вы в своих системах использовали, это грязненный boosting. Наверняка слышали про MatrixNet или CatBoost. И эти вы в своих системах использовали это градиентный бустинг наверняка MatrixNet CatBoost и эти True → True
371–378 с двухбашенные нейросети нейросети и в частности очень популярные в рекомендательных моделях двухбашенные нейросети. История такая, вот нейросети и в частности очень популярные в рекомендательных моделях двухбашенные нейросети история такая вот True → True
498–511 с attention там с этой историей происходит. Один из ключевых элементов трансформера это attention, внимание, еще сегодня про это поговорим, и attention для этой самой истории вычисляет keys и values, k av, с этой историей происходит один из ключевых элементов трансформера это attention внимание еще сегодня предпоговорим и attention для этой и самая история вычисляет keys и values KV True → True
507–516 с keys attention для этой самой истории вычисляет keys и values, k av, и соответственно, если вы хотите что -то закрешировать, то именно k av вам нужно закрешировать, attention для этой и самая история вычисляет keys и values KV и соответственно если вы хотите что -то закрешировать то именно KV вам нужно закрешировать True → True
507–516 с values attention для этой самой истории вычисляет keys и values, k av, и соответственно, если вы хотите что -то закрешировать, то именно k av вам нужно закрешировать, attention для этой и самая история вычисляет keys и values KV и соответственно если вы хотите что -то закрешировать то именно KV вам нужно закрешировать True → True
610–617 с SilverTorch тренд, а именно инженеры из одного экстренистского объектеХ, в своей статье SilverTorch, описали, как они тренд, а именно инженеры из одного экстренистского объектеха в своей статье SilverTorch описали, как они True → True
645–655 с ANN все переписали на GPU. ANN -поиск стал буквально GPU -native -Pytorch -модулем. Фильтрация теперь стала делаться не инвертирными все переписали на GPU ANN поиск стал буквально GPU -native PyTorch модулем фильтрация теперь стала делаться не инвертирными True → True
645–655 с GPU-native все переписали на GPU. ANN -поиск стал буквально GPU -native -Pytorch -модулем. Фильтрация теперь стала делаться не инвертирными все переписали на GPU ANN поиск стал буквально GPU -native PyTorch модулем фильтрация теперь стала делаться не инвертирными True → True
653–662 с GPU-friendly теперь стала делаться не инвертирными индексами, как все привыкли делать, а Bloom -индексом, GPU -friendly, буквально набором Bloom -фильтров. теперь стала делаться не инвертирными индексами, как все привыкли делать, а Bloom индексом GPU -friendly, буквально набором Bloom фильтров. True → True
656–666 с Bloom filter как все привыкли делать, а Bloom -индексом, GPU -friendly, буквально набором Bloom -фильтров. В итоге получился PyTorch -граф, как все привыкли делать, а Bloom индексом GPU -friendly, буквально набором Bloom фильтров. В итоге получился PyTorch Graph, который, True → True
803–810 с чекпоинт откатиться назад, попробовать снова. Вам нужно мне засавиться, подняться с чекпоинта, снова продолжить выполнение. И при этом, если у вас есть побочные True → False
903–909 с моки правду. Потому что моки нужны какие -то, какие -то тестовые стенды. В общем, неприятно. правду и потому что моки нужны какие -то какие -то тестовые стенды ну в общем неприятно True → True
931–939 с reward И по итогу вычитается некоторый реворд, как бы модель выдается наград или не выдается, и он обратно подается в процесс и по итогу вычитается некоторый реворд как бы модель выдаются награды или не выдаётся и он обратно подаётся в процесс True → True

Ограничения

  • Targets inferred from baseline and slides; audio not verified by human. Lexical presence is not term recognition accuracy.
  • Glossary constructed from this very talk: targeted adaptation demonstration, not evaluation on unseen data.
  • Broad hotwords can change unrelated text, punctuation and insertions. Entire transcripts and differences are preserved.
  • Baseline and hotwords ran at different times; speed is not an isolated benchmark.

Исходник

Скачать Markdown · К материалам исследования