?

Log in

No account? Create an account

Компьютерная лингвистика

Новостная лента www.solarix.ru

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

Ачивку привезли
kelijah
Read more...Collapse )
И рюкзачок для ноута :)

Как будет выглядеть восстание машин на самом деле
kelijah
На заметку любителям "сингулярности", поклонникам историй про скайнет и прочей "science fiction". Об этом Голливуд не снимет блокбастер, японцы не нарисуют мангу. Потому что такая правда незрелищна. И от этого будет еще обиднее, когда ЭТО начнется на самом деле.

Сегодня имел удовольствие поймать в логах работы веб-сервиса, работающего с СУБД Oracle, ошибку с текстом (текст чесслово не мой, он такой из ораклового клиента прилетел в C# код):

ORA-01460: затребовано нереализованное или неразумное преобразование

Вот именно так, скучно, по-канцелярски, и будет выглядеть восстание машин в реале. Вставляете карточку в банкомат, а он в ответ  "затребована неразумная операция".

Влияние объема негативного сэмплинга для качество модели определения релевантности вопроса
kelijah
В таблице показана зависимость метрик качества модели определения релевантности предпосылки и вопроса на базе градиентного бустинга и bag-of-shingles от количества добавляемых негативных пар.

Read more...Collapse )

Слишком хороший f1 и roc-auc score в моделях релевантности/синонимичности с triple loss
kelijah
1. Что выдает модель сама по себе

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

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

Небольшое сравнение качества двух сетевых моделей определения синонимичности фраз
kelijah
Модель №1 - нейросетка с triple loss nn_synonymy_tripleloss.py
Модель №2 - нейросетевой бинарный классификатор nn_synonymy.py
Модели обучаются на идентичном датасете, содержащем ~60 тысяч пар синонимичных предложений.
При тестировании каждая модель ранжирует предложения из тестового списка по близости к вводимой строке. Выводится 10 ближайших предложений.

Результаты для модели №1

Read more...Collapse )

Результаты для модели №2
Read more...Collapse )

Сравнение i7-4790K + NVidia GTX 980 vs i7-9700K + NVidia GTX 1080 Ti на нейросетевой задаче
kelijah
В отличие от тестов на userbenchmark.com сравнивнение сделано на реальной практической задаче nn_wordcopy3.py. Предметная область - NLP. Данные для обучения одинаковые.

Программное окружение в обоих случаях практически идентично - Ubuntu, Python 2, текущие версии tensorflow, CUDA 9.0. В обоих случаях видно, что все ядра CPU загружены, хотя и не полностью. Формально оба CPU держат 8 потоков, но у i7-9700 это 8 реальных ядер, а у i7-4790 4 ядра с гипертредингом. Но основная нагрузка лежит на GPU.

Машина №1 i7-4790K, 32 Гб памяти DDR3, NVidia GTX 980, материнская плата MSI H97 GAMING.
Детальная инфа (выдача sudo lshw и nvidia-smi):
Read more...Collapse )

Машина №2 i7-9700K, 64 Гб памяти DDR4, NVidia GTX 1080 Ti, материнская плата MSI Z390 CARBON GAMING
Выдача sudo lshw и nvidia-smi:
Read more...Collapse )



В итоге, на первой машине одна эпоха обучения занимает ~27 секунд. На второй машине ~7 секунд. То есть вторая машина почти в 4 раза быстрее.

Реализация линейной регрессии МНК с autograd - библиотекой для символического дифференцирования
kelijah
Случайно наткнулся недавно на Autograd - питоновскую либу, которая умеет для функции, заданной исходным текстом в коде, получить функцию же частной производной по указанному аргументу. Всякие tensorflow, pytorch и theano это, конечно, тоже делают под капотом. Но autograd делает это с любой питоновской функцией. Магия.
Реализации линейной регрессии...Collapse )

Императивный режим общения с чатботом
kelijah
После некоторых расширений вопросно-ответного движка появилась возможность строить диалоги в таком духе:
Read more...Collapse )

Чатбот в игре: начало диалога с первым персонажем
kelijah
У бота немного не хватает плавности диалога и проактивности. Плюс у меня есть большие претензии к реализации модели релевантности, да и к остальным моделям тоже.

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

Отладочный диалог:
Read more...Collapse )