Как стать автором
Обновить

Комментарии 32

Насколько я понял, вы тренеруете русский язык. Как с английским?
Пока для релиза подготовили только русский, с английским работаем, но ещё не готовы показывать.

Для английского, можете глянуть наши модели тут


PS
Их даже зафичерили на главной странице PyTorch и даже Сумит Чинтала лично поблагодарил

Спасибо, но я немного запутался. «наши модели» — это чьи?

В меру своих возможностей постараюсь добавить немного критики и объективности к этому посту.


Новость. Недавно мы выложили свою нейросетевую библиотеку в Open Source. Всем, кому интересно пощупать, вот Github, а вот документация.
на нашем фреймворке можно найти в документации.

То есть для решения частной задачи (ASR), вы решили написать свой DL фреймворк?
Но при этом вы не включили туда такие критические вещи как CTC и LM?
Это странно.


Я не спорю (да и я много раз говорил, что описанные выше фреймворки скорее имеют минусы и "strings attached" которые перекрывают их плюсы с головой) что доступные решения имеют большие минусы, но написание DL фреймворка это задача на порядки более сложная чем решение и тренировка доменных моделей.


Еще глупый вопрос, а почему просто не взяли PyTorch?
В открытом репозитории 9 коммитов и документация весьма куцая.
Просто не до конца понимаю какая цель такого упражнения. Написать условный PyTorch это десятки миллионов долларов + по сути ему уже в районе 5 лет активной работы с коммьюнити.


Вот к таким результатам над удалось прийти на сегодняшний день
Из тестового датасета голосовых сообщений, записанных с микрофонов различных пользовательских устройств

Описание пути и боли по работе с данными тут ± похоже на правду.


А вот с бенчмарками какая-то беда, похоже что авторы оверфитнули модель на какой-то конкретный домен.


В указанных тестах (я так понял, что на 2 доменах — звонки и записи с микрофона) — почему-то в топе всегда присутствует ЦРТ. По факту, когда мы делали подобные тесты на паре десятков доменов — модели ЦРТ очень плохо генерализовались при прочих равных. Может конечно они сильно выросли, но хз.


Почитать результаты наших тестов можно тут.


Но, такие результаты довольно сильно похожи на оверфит на одном домене. Для этого не нужно писать свой фреймворк, подойдет абсолютно любая модель. Вообще на 1700+ часов можно зафитить что угодно до сколько угодно хорошего качества. Сложно сделать модель, которая будет работать на всем и не требовать .


Таким образом у нас накопилась база в 1700+ часов.
Относительно недавно был опубликован датасет Open STT для русского языка, но перед использованием важно обратить внимание на происхождение данных в этом датасете + ограничения лицензии.

Странно, по ссылке всего 100+ часов. Это баг или фича?


1700+ часов.

Тут верно подмечено, что это нижняя грань плюс минус.
Но тут важно отметить, что это нижняя грань на один домен.


фонд РВК
Федерального проекта «Искусственный интеллект».
Нейросети Ашманова

Для объективности отмечу, что мы (silero.ai) являемся мы одними из немногих независимых вендоров STT на рынке. Является ли это плюсом или минусом при оценке непредвзятости нашего мнения — решайте сами.


Среди прочего можно упомянуть наиболее на наш взгляд интересные разработки

Позволю себе добавить еще вот эти две ссылки:


Свой DL фреймворк мы начали разрабатывать ещё до появления PyTorch и TensorFlow, и изначально он создавался не с целью решения частной задачи (ASR), а как раз потому что в то время не было достаточно удобных фреймворков. Его использование позволяет нам гибко подстраиваться под частные задачи и проводить оптимизацию с вычислительной точки зрения. Не смотрите, что в открытом репозитории всего 9 коммитов, на то это и публичный репозиторий, плюс решение выложить свои наработки было принято совсем недавно. Собственный фреймворк может быть очень мощным инструментом, в частности когда речь идёт о запуске на каком-нибудь экзотическом железе, поддержки которого у PyTorch/TF просто нет.

По поводу бенчмарков — мы готовили специально данные из источников, никоим образом не имеющих ничего общего с данными, на которых обучались (помимо того, что это тоже были «записи с пользовательских устройств» и из «колл-центра», при этом колл-центр имел свою узкую тематику, к которой мы не готовились). Если под «доменом» имеются в виду как раз условные «звонки» и «записи с микрофона», то да, мы затачивали модели на эти два домена, как наиболее интересные для нас в коммерческом плане.

Я согласен с утверждением по поводу того, что сложно создать универсальную качественную модель на все домены, поэтому мы пошли по пути подготовки отдельных моделей для разных доменов. Тем более что пока к нам никто не обращался с просьбой распознавать кучу доменов сразу одной моделью.

Будем рады сравнить со всеми и ваше решение для русского языка, если предоставите доступ или выложите модели!
Будем рады сравнить со всеми и ваше решение для русского языка, если предоставите доступ или выложите модели!

мы можем независимо проверить / повторить ваши результаты для публичных систем если вы опубликуете ваши вал. датасеты и методологию подсчета (нормализация, всякие мелочи типа замены ё на е или наоборот итд итп)


мы пошли по пути подготовки отдельных моделей для разных доменов

как интересно

Добрый день, Александр

То есть для решения частной задачи (ASR), вы решили написать свой DL фреймворк?
Но при этом вы не включили туда такие критические вещи как CTC и LM?
Это странно.

Свой фреймворк у нас с 2015 года, используем его для разных проектов, не только по аудио. Если интересно, можете тут прочитать про один из проектов: habr.com/ru/company/ashmanov_net/blog/469033

В указанных тестах (я так понял, что на 2 доменах — звонки и записи с микрофона) — почему-то в топе всегда присутствует ЦРТ. По факту, когда мы делали подобные тесты на паре десятков доменов — модели ЦРТ очень плохо генерализовались при прочих равных. Может конечно они сильно выросли, но хз.

Вы тестировали VoiceNavigator или VoiceKey? Все основные вендоры за последние полгода показали очень хороший рост.

Еще глупый вопрос, а почему просто не взяли PyTorch?

PyTorch и TF мы используем. Свой фреймворк тоже используем. Что нам удобнее, то и используем. Если интересно, попробуйте запустить PyTorch на Эльбрусе, например. Или попробуйте отучить TF отжирать неадекватное количество памяти.

Странно, по ссылке всего 100+ часов. Это баг или фича?

Пока что мы выложили только 100 часов. Мы как коммерческая компания обязаны обеспечить лицензионную чистоту данных. Поэтому мы не можем выкладывать произвольные данные.
Вы тестировали VoiceNavigator или VoiceKey? Все основные вендоры за последние полгода показали очень хороший рост

мы тестировали облачные решения
по вендорам прыгнул яндекс, тиньк, но ЦРТ я бы не сказал что прямо отличался
опять же, в истории публикаций все эти тренды есть


https://www.silero.ai/russian-stt-benchmarks/
https://www.silero.ai/russian-stt-benchmarks-update1/
https://www.silero.ai/russian-stt-benchmarks-update2/

Как сотрудник компании ЦРТ считаю некорректным брать наши модели для телефонного канала и сравнивать со своими моделями для микрофонного. Возьмите лучше нашу микрофонную модель и сравнитесь с ней, как это сделали авторы поста.

Мы взяли все модели, которые на тот момент были доступны в облаке и опубликовали лучшие результаты из всех моделей, чтобы не быть предвзятыми.


со своими моделями для микрофонного

Наш основной дизайн-принцип — у нас на язык всегда 1 модель. Понятно есть ее версии, отличающиеся по размеру и скорости, но у нас нет разницы между моделями для звонков, не звонков, итд итп


Пост-процессинг тоже везде одинаковый. Нет накрутки на словарях, кастомных LM итд итп.

Но ведь в вашем последнем сравнении результаты ЦРТ не представлены.
Но ведь в вашем последнем сравнении результаты ЦРТ не представлены.

Это довольно трудоемкий процесс, и как правило присутствует некая инерция, поэтому действовали по следующему принципу:


  • Мы не говорили разработчикам систем, (i) что планируем снимать метрики (ii) в каких доменах будем это делать, чтобы метрики были "честными", т.к. в спиче все прекрасно "накручивается" =);


  • Сначала сняли метрики в меру возможности по доступным нам системам (иногда приходилось это делать немного по-партизанки, но как правило мы просто покупали квоты) в соответствии с общей методологией (https://www.silero.ai/stt-quality-metrics/). Там где не указано название конкретной модели, мы показывали лучшие метрики, которые выдавали системы (для систем где много моделей). Там было некоторое мясо по датам тестов, но это можно дисконтировать т.к. не все системы меняли свои метрики потом;


  • Потом выбрали системы, которые генерализуются — то есть более менее сносно работают "из коробки" без дополнительных настроек;


  • Эти генерализующиеся системы мы оставили в финальном списке, который обновили тут — https://www.silero.ai/russian-stt-benchmarks-update2/ — рекурсивно можно пройти по более старым статьям;


  • Все могло конечно поменяться, я свечку не держал. Я бы предположил что в методологии может быть небольшой bias из-за нормализации и некоего упрощения (lower, замена буквы ё на е), но мы тестили без таких штук, разница была всегда 1-2 пп WER;



Если подходить к таким тестам долгосрочно, то конечно надо открыть код и датасеты и выложить скрипты опроса, но вал. датасеты маленькие, и вся независимость теста может тогда потеряться. Мы думали про вывод таких тестов на новый уровень, но в итоге пришли к выводу, что долгосрочно — мы проиграем, как и в случае с OpenSTT.


Sad but true.

Мы не говорили разработчикам систем, (i) что планируем снимать метрики (ii) в каких доменах будем это делать, чтобы метрики были «честными», т.к. в спиче все прекрасно «накручивается» =);


Стоп-стоп-стоп. Это неправда. Разработчик одной из систем знал в точности, каким будет тест. Результат этого разработчика надо выбросить, так как «в спиче всё прекрастно накручивается».

Этот разработчик — ты сам:)
Остались ли ещё ребята, которые верят собственным тестам разработчика?

Я открыто говорю про наши аффилиации и открыто описываю методологию тестирования. Верить или нет — ваше дело. Нормальной практикой на рынке считаются маркетинговые материалы в духе "все классно". Валидно критиковать или оставлять комментарии в духе ad hominem — тоже выбор каждого.

Методология тестирования — да, открыто описана. Но данные для тестирования скрыты, и поэтому может возникать недоверие. Писать о том, как все классно у Вас лично — нормальная практика, но если при этом Вы пишете, как все плохо у других, то это уже своего рода антиреклама и подрыв деловой репутации конкурента, что может быть чревато и судебными разбирательствами. Особенно, если в сравнении Вы используете неактуальные данные (старые модели, движки...). Это все равно, что сравнивать свою новенькую Ладу с Мерседесом 1980 года выпуска… Конечно, она и выглядит посимпатичнее, и не стучит в ней ничего, и лошадиных сил побольше, и на российских дорогах она себя лучше чувствует, только в сравнении с новым Мерседесом окажется, что гордиться-то особо нечем… Особенно на немецком автобане.

ну собственно вы своим комментарием подтвердили две вещи:


  • вы ответили в стиле ad hominem
  • вы невнимательно прочитали наши статьи. мы там явно указываем на недостатки наших моделей и прогресс чужих моеделей

И, простите мне мою необразованность, что такое «ad hominem»?

https://en.lmgtfy.app/#gsc.tab=1&gsc.q=ad%20hominem

Валидно критиковать или оставлять комментарии в духе ad hominem — тоже выбор каждого


^ ложный выбор.

Описание аффиляции и методики в данном случае не повышает валидность тестов.

Тесты на закрытых базах, с участием своей системы, лично мат.заинтересованным разработчиком ==> доверие к результатам = 0 по определению. Согласен?
  • этот комментарий показывает, что опять же вы не читали то, что критикуете) вот зачем мне например показывать сильных конкурентов в сильном свете и явно писать некие домыслы о том, как и почему их системная позиция является очень сильной и не совсем ясно что ей противопоставить?
  • опыт публикации OpenSTT показал нам, что есть причины почему никто ничего не выкладывает. ой да камон, миллион примеров, в само-движущихся авто стали выкладывать когда поняли что не могут добежать соло =) а мы выкладываем
  • пару раз мы вели беседы по поводу некого публичного тестирования, но почему-то всегда оставался неправильный осадок, что это будет соревнованием чеков и расходов на пиар команду и до технических деталей дело не доходило никогда
  • если наша независимость и качество нашей работы не является для вас гарантом наших ценностей и нашей непредвзятости — то мне кажется что вы пытаетесь сказать что-то другое — не стесняйтесь — скажите

будет также не лишним, если вы представитесь и опишите свои аффилиации

Представляться не буду, а в плане аффиляций я раньше работал в ЦРТ, лет восемь; но уже давно не работаю. Сейчас же, никаких финансовых дел с участниками и твоих тестов, и тестов ашмановцев, я не имею. Такскать, финансово не аффилирован; эмоционально аффилирован с ЦРТ по старой памяти:)

если наша независимость и качество нашей работы не является для вас гарантом наших ценностей и нашей непредвзятости — то мне кажется что вы пытаетесь сказать что-то другое — не стесняйтесь — скажите


Вот здесь, как мне кажется, ядро непонимания. Я написал, что доверять тестам разработчика нельзя, это по определению маркетинговый материал. Вы ответили на мой комментарий, что это «аргумент ad hominem», что я перевёл с латыни как «аргумент сам дурак»:) А я это писал без наезда, абсолютно нейтрально.

Сперва написал длинный ответ, но сейчас решил сократить, просто ещё раз вывод: ничего личного, и ничего конкретно про вас.

Такскать, правило для читателя тестов: 1) не вникай в тесты производителей 2) смотри на авторитетные нейтральные организации (NIST, etc), чтобы составить шорт-лист 3) шорт-лист измеряй на своих данных.
С одной моделькой на все бросаться — какой-то странный фетиш. Все эти системы нацелены на решения каких-то конкретных бизнесовых задач — иногда в колл-центрах, иногда в смартфонах, иногда еще где-то. Цель — сделать решение, которое работает. Как показывает практика, есть порог WER, начиная с которого кейсы начинают решаться. Это и от домена зависит, и от сценария использования, и от много чего еще.

Что же касается ЦРТ и наших решений, то мы серьезно выросли за последние годы. Статья — достаточно наглядно это подсвечивает, спасибо авторам за приятные сердцу результаты. У нас есть прекрасная универсальная дженерал модель для всего. При этом кастомизация и тюнинг системы под конкретную задачу все еще бывают очень уместны. Уметь это делать нам тоже кажется важным.

Отмечу, что есть еще интересные способы сравниться с коллегами по цеху. Мы вот в очередной раз поучаствовали в CHiME 6 в этом году: https://chimechallenge.github.io/chime6/results.html (STC-innovations Ltd, ITMO University — наша команда).

Насчет закрытых академических соревнований наверное бессмысленно ломать копья, пару лет назад довольно раскрученный товарищ из ОДС под ником ternaus довольно неплохо на эту тему срывал покровы — но tldr см GoodHarts Law. Тут я тоже довольно подробно про это писал, не вижу смысла повторяться.


А насчет фетиша — это скорее показатель зрелости технологии и экономии ресурсов на каждый такой тюнинг. Ведь в конечном итоге это делается за счет заказчика, который не понимает, будет ли за его счет делаться собственно разработка или просто подкручивание минимальным ресурсом.

Мы начали делать свой ASR зимой 2019 года
недавно был опубликован датасет Open STT для русского языка

Зимой как раз мы опубликовали версию 1.0 Open STT.
Но если не изменяет память, к нам эта компания за лицензией на датасет к нам не обращалась.
Интересно.


Вообще мы уже не раз видели "коммерческие" компании, кто пытается продавать "свои" (на самом деле конечно академические оверфитнутые чекппойнты) решения. Начинаешь общаться — оказывается, что "они просто показывают их", а в продакшене "будут тренировать на данных заказчика".


По факту это просто означает отсутствие качества / генерализации и по сути просто перекладывание времени и ресурсов, которые должен был потратить разработчик заранее, на заказчика с его молчаливого и непонимающего согласия.

Мы не обращались за лицензией и не использовали ваш датасет, мы собирали свой с помощью компаний партнёров из колл-центров и бота Voicy.

Мы предоставляем доступ к нашему решению всем потенциальным партнёрам, чтобы они могли опробовать как REST API решение, так и потоковое с gRPC или на веб сокетах, в зависимости от потребностей клиента. Мы открыты к совершенствованию моделей и кастомизации под заказчиков, это в любом случае повышает качество распознавания. Наши текущие акустические модели вполне хорошо себя показывают «из коробки», языковые же периодически расширяем новой лексикой. Любые доработки, естественно, согласовываются с заказчиком.
Давайте обменяемся API, потестируем качество? Нам это интересно.

К слову, по поводу сотрудничества с Silero по части Open Source я общался недавно с Юрием, но, как я понял, сейчас Open STT только вы занимаетесь. Можно вместе двигать Open Source, если нащупаем направления. Нам вообще интересно увеличить доступность ASR для SMB и исследователей.
по части Open Source я общался недавно с Юрием

Юрий, к сожалению, за некоторые "заслуги" был исключен из авторов
Но это не первый раз, когда он общался насчет совместной наработки не ставя в известность других авторов, но к сожалению прошлого не вернуть)


насчет остального — пишите в личку в телегу

Абсолютно непригодна для сбора качественнго датасета Яндекс.Толока: добиться качественной работы с разметчиками Толоки не получится, нужна плотная работа с разметчиками.

меня лично в работе с ней останавливало другое — слово на букву "Я" и дарение результатов своей работы им же
плюс слухи, что мол пока не спустишь там 500к-1000к не научишься обходить местный хайв-майнд


а вы ее запускали? у меня руки не дошли

Запускали, нас тоже беспокоит передача наших данных и данных наших клиентов швейцарской компании Яндекс.Толока.

Мы там собираем примеры для активационной фразы, так как это простая задача для толокеров. И их там ооочень много, поэтому можно быстро и дёшево собрать данные.
Ну и когда пытаешься тренировать толокеров, то бывают казусы: мы предложили одному толокеру пообщаться в вотсапе, чтобы нормально объяснить, как надо размечать. Нас забанили в тот же день – полностью заблокировали аккаунт без возможности восстановления.
Мы не собирались переманивать толокера к себе в обход Толоки, просто хотели нормально объяснить задачу.

А там есть виджеты для аудио? Ну, медиа плейер с кнопками какими-то, например?
Просто адопшен таковых на всех платформах довольно низкий как показывает практика

Да, есть, но Толока их как-то криво отображает. Толокеры в итоге записывают аудио не в нашем задании, а где-то внутри Толоки, и загружают в наше задание записанные аудио как файлики.
Недавно в «Я» проходил семинар «Crowdsourcing с механической поддержкой». Там на слайдах промелькнул пайплайн, как они размечают данные для задачи ASR. Возможно вам он будет интересен)image
Зарегистрируйтесь на Хабре, чтобы оставить комментарий