Category: образование

Category was added automatically. Read all entries about "образование".

К вопросу о точности UDPipe, обученном на датасете Синтагрус

PS: В ходе перепроверки выяснилось, что сделанный ранее вывод о проблемах синтагруса неверен. Шаблоны вида:

NP,Acc#значит#NP,Nom,Sing#

соответствуют в том числе предложениям типа:

что значит эта фраза ?

В них аккузатив для "что" определен правильно.

Collapse )

Реализация модели детектора перефразировок с BERT в pytorch transformers

Продолжение темы изучения питорча: сделал модель бинарного классификатора для определения синонимичности двух фраз с использованием multilinual BERT: гист
Collapse )

Забавные моменты с русскоязычным GPT-2

Смотрю на текущие результаты сэмплирования из обучающейся языковой модели GPT-2 в варианте с  117M параметрами. Иногда проскакивают забавные словечки, получающиеся из-за склейки bpe-токенов. С некоторыми натяжками выглядят так, будто модель уже знает общие правила русского словообразования и словоизменения, но ошибается с правильным выбором морфем:
Collapse )

Обучающий датасет для русскоязычного POS Tagger'а (880 тысяч предложений)

В репозитории rupostagger выложен архив samples.gz

Этот архив содержит мой полный текущий датасет для обучения модели частеречной разметки для русского языка.

Объем датасета - примерно 880 тысяч предложений.

Морфологическая разметка в основном следует рекомендациям Universal Dependencies, за исключением некоторых второстепенных деталей. В частности, не используется класс DET, вместо него указывается ADJ.

Неудачная попытка использования XGBRanker и LGBMRanker для задачи определения перефразировки

Под катом - особенности определения синонимичности фраз в языке, использование BERT, метрики для оценки моделей и проблема с задачей ранжирования.
Collapse )

Тренировка BERT на русском корпусе: непривычно видеть такую кривую обучения

В порядке эксперимента обучаю упрощенную модель BERT (урезал число heads и т.д.) на свое русском корпусе.
То, что обучается медленно - факт. Но дело не в этом. Вот как выглядят кривые loss (на обучающей выборке) и val_loss (на валидационной):
Collapse )
PS: На 134-й эпохе сработал early stopping после 5 неулучшений. Понятно, что если поставить patience=10, то наверняка обучение протянется еще. Сейчас кривая обучения приняла такой вид:
Collapse )

Слишком хороший f1 и roc-auc score в моделях релевантности/синонимичности с triple loss

1. Что выдает модель сама по себе

Как работают эти модели? В качестве обучающих данных используются триады, содержащие опорное предложение, нерелевантное предложение и релевантное предложение. Для модели синонимичности эта тройка может выглядеть так:

(anchor) кошка ловит мышку
(positive) на мышку охотится кошка
(negative) дети играют в кошки-мышки
Collapse )

неудачная попытка использовать либу NNSharp для запуска Keras-модели в C#

Репозиторий проекта: https://github.com/adamtiger/NNSharp

Файлы со скриптом тренировки простейшей рекуррентной модели на Keras и использование в C#: https://gist.github.com/Koziev/ce781f1acd9df0bb34a7e5d89411bb1e

Сразу надо сказать, что входящий в NNSharp скрипт KerasModeltoJSON.py может работать только с так называемыми sequential моделями Keras. Более удобные и функционально более гибкие functional модели вызывают ошибку в строке 29, когда делается попытка получить размеры данных на первом слое. У functional моделей может быть несколько входов, поэтому этот подход не работает.

Тем не менее, я сделал простейшую sequential модель, которая вычисляет сумму 10 случайных чисел от 0 до 10.

И в C# мне не удалось получить адекватные результаты. В частности, сумма десяти нулей дает результат, существенно отличающийся от выдачи самой Keras модели после обучения.

Тем не менее не исключаю собственный косяк. И пока остаюсь сторонником прямого подхода - создание микросервисов с flask+keras, чтобы не заниматься в бою отладкой глюков преобразования моделей.

Неудачные эксперименты с triple и contrastive loss архитектурами для определения перефразировок

1. Постановка задачи

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

Collapse )