Comments 12
Пока делал картинку из заголовка (надеюсь, все оценят шутку про "кровожадность" и отсутствие "интеллекта" у модели) совсем забыл добавить, что в некоторых конкретных случаях паузы могут быть эквивалентны запятым (на примере этого предложения это очень ярко видно).
Но прокидывание пауз из речи мы тоже пока не делали.
Модель прекрасная и долгожданная, но судя по всему, в опубликованной версии есть пара мелких ошибок. Либо я что-то делаю совсем не так :(
При попытке ручного импорта или загрузки через torch.hub модель жалуется на отсутствие файла version в ней. Если этот файл воткнуть вручную, начинает жаловаться на extern_modules.
Запустить её, к сожалению, не получилось. Хотя очень хочется воткнуть в своего "домашнего" бота для распознавания голосовух в Телеграмм.
А какая у вас версия PyTorch? У вас не запускается локально или в colab?
Оказалось, что это я дурак ;) Изначально пытался запускать локально на версии 1.8.1, ничего не работало. Обновил PyTorch до 1.9.1 и все заработало! Огромное спасибо, будем тестировать))
Что-то похожее было в торче 1.8 при попытке открыть пакеты.
Пакеты появились начиная с 1.9.
В репозитории это явно написано, но наверное следует написать хотя бы тут на всякий случай:
Basic dependencies for examples:
torch, 1.9+;
pyyaml, but it's installed with torch itself
Вообще happy path тут такой, что пробуете в колабе, дальше запускаете локально, там даже отдельные примеры показывают немного внутрянку и как не тянуть утилитку из hubconf.py
при локальном запуске (она по сути просто скачивает список моделей, выбирает последнюю из запускает ее).
Удалил дубль своего комментария
На версии 1.9.1 всё работает идеально. Модель подключается буквально одной строчкой:
import torch
tmodel = torch.package.PackageImporter("/home/silero/v1_4lang_q.pt").load_pickle("te_model", "model")
И дальше улучшение текста внедряется точно так же в одну строку:
text = tmodel.enhance_text( text, "ru" )
Просто идеальная моделька для "домашнего" бота распознавания голосовых сообщений.
На винде не взлетела, пока в hubconf.py не добавил open('latest_silero_models.yml', 'r', encoding='utf8')
Может я что-тоупустил, но из статьи не понятно, какой алгоритм и архитектуру построения модели вы используете. Что значит бертоподобная? Почему, скажем, не elmo или gpt-подобная?
Что значит бертоподобная?
Значит сделана на основе пре-тренированной BERT-подобной модели.
Почему, скажем, не elmo или gpt-подобная?
ELMO насколько я помню (уже давно читал статью) это внутренние состояния больших RNN-ок (это медленное и непрактичное, если память не изменяет), и если честно когда статья вышла, я вообще не понял в чем фишка.
Чем GPT от BERT отличается навскидку не вспомню, но это уже трансформеры (сетки на основе self-attention слоев). А значит роль играет не столько как они работают, а как и на чем они были пре-тренированы (и на каких языках и токенах). Если еще раз память не изменяет, то фишка берто-подобных сеток была именно в относительной "скорости" их тренировки и отсутствии рекуррентности.
Мы выбирали по сути из доступных пре-тренированных моделей, адекватных по количеству языков, задаче на которой их тренировали и размеру.
Я не большой фанат того, что на что сейчас тратят гигантские бюджеты NLP, но если вынести за скобки мое личное мнение про построение капитализации на "перебивании as-is" чужих моделей к себе в хаб, то если поискать по доступным моделям у хагов, там и адекватных вариантов базовой модели буквально пара.
Повторюсь, что мы смогли ужать все без потери качества до <100 мегабайт, но предполагаю, что уровень 25-50 мегабайт тоже вполне достижим.
Мы опубликовали модель, расставляющую знаки препинания и заглавные буквы в тексте на четырех языках