Канал для поиска исполнителей для разных задач и организации мини конкурсов
Last updated 3 Monate her
Новые и перспективные Web3 игры с добычей токенов.
Чат: https://t.me/Crypto_Wolf_Chat
Правила чата смотрите в описании чата.
Все свои вопросы направляйте в чат или главному модератору чата: @Exudna_118
По теме сотрудничества: @Zombini
Last updated 2 Monate, 2 Wochen her
ruaccent-turbo3.1 - улучшение модели в случаях с несколькими одинаковыми омографами
В предыдущих версиях руакцента была одна проблема - модель в случаях с двумя и более одинаковыми омографами (например "на горе стоит замок, а на его двери висит замок.") всегда ставила один и тот же (в нашем примере зам+ок). Также существовала проблема, что модель иногда путает контексты для омографа. В обновленной версии tiny2.1 и turbo3.1 над этими проблемами была проделана работа.
Метрики моделей (на усложненном датасете):
ruaccent-turbo3 -> 95.86%
ruaccent-turbo3.1 -> 95.98%
А вот на tiny качество выросло значительно:
tiny2 -> 90.18%
tiny2.1 -> 95.31%
Говоря о значительном росте и улучшениях, нельзя не отметить, что сегодня у меня особенный день - мой день рождения! Как и в работе над моделями руакцента, каждый новый год жизни приносит свои улучшения, опыт и достижения.
Бтв, я сегодня на AI Conf, так что если хотите поболтать, велком к зоне "Онтико AI Музыка". Я здесь со своим другом @varfolomeefff.
GitHub: https://github.com/Den4ikAI/ruaccent
Донат: https://pay.cloudtips.ru/p/b9d86686
RUPhon - новый открытый IPA фонемизатор для русского языка!
Совместно с @intexcp мы разработали RUPhon - библиотеку для фонемизации русского текста, использующую модели RUAccent-encoder. Модель поддерживает два языка: русский и английский.
Ключевые особенности
Метрики (F1)
charsiuG2P -> 0.9236
Omogre -> 0.9601
ru_g2p_ipa_bert_large -> 0.9868
RUPhon-small -> 0.9970
RUPhon-big -> 0.9990
А если вы хотите автоматически расставлять ударения, установите RUAccent и используйте его вместе с RUPhon!
Ссылка на библиотеку: https://github.com/Den4ikAI/ruphon
Донат: https://pay.cloudtips.ru/p/b9d86686
IOAI — import openai
RUAccent-1.5.7
В режиме tiny ruAccent потребляет всего 200 мегабайт
Метрики
ruaccent_big_poetry -> 0.93 avg
ruaccent_turbo -> 0.95 avg
ruaccent_turbo2 -> 0.97 avg
ruaccent_tiny -> 0.94 avg
Код использования:
```
from ruaccent import RUAccent
accentizer = RUAccent()
accentizer.load(omograph_model_size='tiny', use_dictionary=True, tiny_mode=True)
text = 'на двери висит замок.'
print(accentizer.process_all(text))
```
RUAccent-turbo2
Новая модель поддерживает омографы, которые поддерживала big_poetry (например глАза-глазА).
Отличие от turbo в обучающих данных (их больше) и токенизаторе (теперь токенизатор токенизирует омографы одним токеном).
Точность: 0.97 avg acc
Также были пофикшены мелкие баги с разбиением текста на предложения и работу с Windows.
Чтобы попробовать модель достаточно обновиться до последней версии.
Код использования:
```
from ruaccent import RUAccent
accentizer = RUAccent()
accentizer.load(omograph_model_size='turbo2', use_dictionary=True)
text = 'на двери висит замок.'
print(accentizer.process_all(text))
```
RUNorm v1 - открытый русскоязычный нормализатор текста перед TTS.
Примерно месяц назад был открытый бета-тест RUNorm в телеграм-боте. С этого момента было много экспериментов с тэггером и нормализатором. Отдельная модель для нормализации чисел была удалена.
Был обновлен набор моделей, теперь их 3:
- RUNorm_big (FRED-T5_LARGE 860M параметров)
- RUNorm_medium (ruT5-base 222M параметров)
- RUNorm_small (FRED-T5-95M. Дистиллят большой модели. 95M параметров)
Как и на чем обучались модели?
Изначально, датасет состоял из очень грязных данных, частично написанных руками, частично размеченных chatGPT. После, был обучен FRED-T5-1.7B. Потом взял большой текстовый датасет (pikabu) и регуляркой вытащил предложения, где предположительно должны быть сокращения и прогнал через этого фреда.
Идея пайплайна для чисел была взята отсюда, но с небольшими доработками, в виде нормализации чисел еще до подачи в модель. Таким образом, модели не обязательно знать, как число перевести в текст, остается только склонить.
Модель для английских слов училась транслитерировать небольшие последовательности из разных английских слов в русские. Датасет также полусинтетический, часть размечена руками, часть взята из датасета с соревы от гугла на каггле, часть размечена chatGPT.
За основу датасета модели-тэггер был взят тот же с соревы гугла по нормализации текста, но с небольшим обогащением сокращениями.
Модели можно потыкать тут: ссылка
GitHub: ссылка
P.S Возможна некоторая деградация качества для больших чисел, постараюсь поправить в будущих релизах.
Релиз RUAccent-turbo!
1. Была добавлена новая модель Turbo.
Данная модель была обучена на 200 гб размеченных разными пайплайнами текстов. Размер модели сопоставим с medium_poetry, но качество выше big_poetry. Размер модели 80m параметров.
Метрики:
ruaccent_big -> 0.93 avg
ruaccent_turbo -> 0.95 avg
RUNorm и char level number tokenization
Сейчас помимо RUAccent, я начал заниматься проектом RUNorm. Данная система должна нормализовывать текст перед акцентуацией и собственно синтезом речи.
Нормализацию текстов можно подразделить на следующие подзадачи:
1. Нормализация сокращений (1990 г. -> 1990 год, г. Москва -> город. Москва)
2. Нормализация аббревиатур (ПТСР -> пэ тэ эс эр)
3. Нормализация английских слов (Microsoft -> майкрософт)
4. Нормализация чисел (в 2009 -> в две тысячи девятом)
Нормализация сокращений уже работает довольно неплохо:
:> Моя зп. всего 15 тыс. руб.
Моя зарплата всего пятнадцать тысяч рублей
:> Мой адрес : г. Москва, р-н Бутово, д. 12, кв. 20
Мой адрес город Москва, район Бутово, дом двенадцать, квартира двадцать
:> Я родился в 1900 г.
Я родился в 1900 году.
Текущий пайплайн сейчас состоит из двух моделей - ruT5-base, bert на 3м параметров и некоторых правил взятых отсюда.
Эксперимент с решением задачи "в лоб" показал, что модель часто галлюцинирует и путает некоторые числа.
Пример таких галлюцинаций:
:> Конец света будет в 2045 г.
Конец света будет в тысяча сорок пятом году.
:> В 1987 г. произошло самое большое падение Промышленного индекса Доу Джонса за всю его историю, — 22,6 %
В тысяча девятьсот семьдесят седьмом году произошло самое большое падение Промышленного индекса Доу Джонса за всю его историю, — двадцать два целых и шесть десятых процента.
Возможное решение подобных проблем - правильная токенизация чисел.
Стандартный токенизатор модели ruT5-base работает примерно так:
:> tokenizer_orig.tokenize("Я родился 12.09.1923")
['▁Я', '▁родился', '▁12', '.09.', '1923']
Новый токенизатор:
:> tokenizer.tokenize("Я родился 12.09.1923")
['▁Я', '▁родился', '▁1', '2', '.', '0', '9', '.', '1', '9', '2', '3']
Доработка токенизатора очень простая, все токены являющиеся числами и длиной более 1 символа (без учета пунктуации), были заменены на "".
Подробнее можно ознакомиться в данном ноутбуке
Для теста полученной модели была выбрана задача решения арифметических задач, т.к. датасет был под рукой и было можно обучить в короткие сроки.
По результатам тестирования были получены следующие метрики:
Arith acc digit5_ft: 0.586286056492664
Arith acc rut5_ft: 0.2418904082243737
P.S. Все тесты проводились без сэмплинга
Модель с модифицированным токенизатором ушла вперед с огромным отрывом.
Канал для поиска исполнителей для разных задач и организации мини конкурсов
Last updated 3 Monate her
Новые и перспективные Web3 игры с добычей токенов.
Чат: https://t.me/Crypto_Wolf_Chat
Правила чата смотрите в описании чата.
Все свои вопросы направляйте в чат или главному модератору чата: @Exudna_118
По теме сотрудничества: @Zombini
Last updated 2 Monate, 2 Wochen her