Size: a a a

2020 January 30
DL in NLP
Подъехало новое соревнование!

В этом году впервые будет проходить соревнование #SMM4H по автоматическому извлечению упоминаний о побочных эффектах лекарств из твитов на русском языке. SMM4H воркшоп будет проходить совместно с конференцией COLING 2020 в Барселоне, 13 сентября. Подробная информация:

healthlanguageprocessing.org/smm4h-sharedtask-2020
источник
2020 January 31
DL in NLP
Релиз пандас 1.0
Лично мне интересны даже не новые фичи, а сам факт. Сколько лет пандас уже де-факто стандарт?

twitter.com/pandas_dev/status/1222856129774018560
источник
DL in NLP
Сегодня официально стартовало соревнование RuREBus на конференции "Диалог 2020".

Контест включает в себя 3 задачи:
1. NER
2. Relation extraction с уже размеченными сущностями
3. End-to-end relation extraction на plain тексте.

Репозиторий

Официальная страница

Чат
источник
2020 February 02
DL in NLP
Очередной выпуск NLP Newsletter
https://twitter.com/omarsar0/status/1223945187388424192?s=19
источник
DL in NLP
На днях стартовало ещё одно соревнование от конференции "Диалог 2020" - GramEval2020.
Это соревнование по полной грамматической разметке русского языка, а именно:
- морфология
- синтаксис
- лемматизация

Страница соревнования

Github

Телеграм канал
источник
2020 February 03
DL in NLP
Мы снова запускаем курс "Глубокое обучение в обработке естественного языка" (он же Deep Learning in NLP), на этот раз его прочтут сотрудники лаборатории нейронных систем и глубокого обучения МФТИ Алексей Сорокин и Василий Коновалов. Занятия будут проходить по вторникам в 19:00 в учебном центре 1С (Дмитровское шоссе 9), аудитория 9235. Первая лекция 11 февраля.

Канал курса: https://t.me/dlinnlp2020spring
Чат курса: https://t.me/dlinnlp_discuss
Форум для вопросов: https://forum.deeppavlov.ai/t/about-the-deep-learning-in-nlp-2020-spring-category/319
Запись на курс: https://forms.gle/1mz9rzoFdf2Von9L7

Как и раньше, курс будет проходить в формате "обратных лекций", то есть дома вы смотрите видеолекции (прежде всего из курса cs224n Стэнфорда) и читаете материалы, после чего решаете тест по их содержанию. На самом занятии мы разбираем квиз и ваши вопросы, проговариваем ещё раз основные моменты из лекций, возможно, делаем что-то ещё, чтобы максимально хорошо понять их содержание. Оценка за курс будет формироваться из еженедельных квизов, практических заданий по программированию нейросетей для задач компьютерной лингвистики, а также курсового проекта.

Первый квиз появится 4 февраля.
источник
DL in NLP
Мы строили, строили, и наконец построили! Новый запуск DL in NLP!
источник
2020 February 04
DL in NLP
How to do machine learning efficiently
medium.com/hackernoon/doing-machine-learning-efficiently-8ba9d9bc679d

Классный пост, который покрывает многие типичные ошибки дата-сатанистов. И в общем, он близок к моим представлениям о хороших практиках.

1. The 10 second rule - во время весь ваш скрипт (включая обучение и валидацию) должен выполняться ~5-10 секунд и не больше, чтобы вы могли чаще итерироваться и улучать вашу модель / исправлять баги
1. Be a time spammer - используйте эффективные операции, не делайте 🚲
1. Test yourself - пишите тесты на всё, в особенности на предобработку данных; это займёт куда меньше времени, чем поиск странных багов в будущем
1. Rush to success - начните с простых/тупых/линейных моделей, код к которым вы можете написать за 15 минут и натренировать которые вы можете за 15 секунд.
1. Don’t tune the parameters, tune the architecture - не тратье время на подбор гиперпараметров в начале проекта, выбирайте архитектуру, гиперпараметры потюните уже в конце проекта. Тут не могу полностью согласиться, но разумное зерно есть.
1. Free the mice - подучите комбинации клавиш в вашем текстовом редакторе / IDE
1. Пост заканчивается ссылкой на другой пост, о том, как правильно сделать валидационный сет

И, раз уж тема близкая, ещё раз рекомендую прочитать/перечитать A Recipe for Training Neural Networks от Andrej Karpathy. После каждого прочтения, я узнаю что-то новое.
источник
DL in NLP
Гитхаб с примерами решения типовых задачек NLP с помощью типовых нейросеток на типовом PyTorch.
github.com/lyeoni/nlp-tutorial

К каждой задаче приложен длинный README с объяснением архитектуры, что приятно. Некоторые примеры на мой вкус очень многословные, и многие best practices игнорируются, но всё равно выглядит полезным для того, чтобы понять, как работает X и можно использовать в качестве стартового кода, чтобы поиграться/написать небольшой проектик.

Трансформер описан хорошо - базовые модули имплементированны прямо в тексте README (правда главная штука: self-attention почему-то отсутствует, хотя её можно написать в 2 строчки).

UPD: Спасибо @dePuff за ссылку на аналогичный репозиторий от Microsoft, в котором примеров ещё больше.
источник
DL in NLP
источник
DL in NLP
Раз уж начинается новая итерация курса, возникает закономерный вопрос
Анонимный опрос
53%
Больше простых туториалов в канал
31%
Больше новостей, разборов новых статей, вот этого всего
16%
Оставляем как есть
Проголосовало: 468
источник
2020 February 07
DL in NLP
​​Machine Unlearning
Bourtoule et al.
arxiv.org/abs/1912.03817

Два забавных факта:
В эпоху ML ваши данные собирают все. GDPR и его аналоги пытаются  контролировать эти процессы и дают вам право удалить данные. Что звучит как здравая и полезная идея.
С другой стороны, современные модели очень хорошо запоминают датасеты, что позволяет потенциально достать из этих самых моделей данные, на которых они были натренированы.

Следовательно, если юзер X запрашивает у компании G удаление его данных, в идеальном мире компания должна не только удалить его из своих БД/текстовых документов/post-it notes/умов своих сотрудников, но и перетренировать все модели, в которых эти данные участвовали. Но когда ваши модели тренируются по несколько дней на десятках GPU, это вообще себе такая идея.

А теперь о статье:
Авторы формализуют задачу разучивания данных и приводят метод SISA (Sharded, Isolated, Sliced, and Aggregated training), который позволяет убирать определённые данные из моделей без их полной перетренировки. Суть метода - шардинг данных и ансаблирование моделей.

Конкретно это решение мне кажется сложным для поддержки, некрасивым и ещё больше усложняющим жизнь разработчкам. Но направление исследований определённо интересное.
источник
DL in NLP
Критика байесовских нейросетей набирает обороты.

twitter.com/ilyasut/status/1225812704725630977

https://arxiv.org/abs/2002.02405 — careful and expensive MCMC Bayesian inference over NN parameters is worse than point estimates or low temperature posteriors.  

Supports @carlesgelada and @jacobmbuckman’s view that Bayesian NNs are not meaningful probably because the prior is wrong.
источник
2020 February 08
DL in NLP
Новый мультиязычный QA датасет от google.
200к примеров, 11 языков (включая русский!), большинство - не основанные на латинском алфавите.

блог

статья

Твиттер пост
источник
2020 February 09
DL in NLP
В colab теперь есть платная подписка
colab.research.google.com/signup

$10/мес
Priority access to T4 GPUs
Longer runtimes (up to 24 hours)
(2x) More memory
US only
источник
DL in NLP
Подвезли ещё один курс, разбирайте

Курс MIT больше идёт по верхам дипленинга, но зато покрывает и CV и NLP и чуть-чуть deep RL.

twitter.com/MITDeepLearning/status/1226155253004849152
источник
2020 February 10
DL in NLP
How Contextual are Contextualized Word Representations? Comparing the Geometry of BERT, ELMo, and GPT-2 Embeddings
Kawin Ethayarajh [Stanford]
arxiv.org/abs/1909.00512

блогпост от автора: тык

TL;DR
1. Upper layers produce more context-specific representations than lower layers
1. ELMo, BERT and GPT representations contextualize words very differently from one another
1. In all layers of BERT, ELMo, and GPT-2, the representations of all words are anisotropic

Анизотропия лично для меня оказалась неожиданностью. Более того, это означает, что теории, разработанные для word2vec [Aurora et. al] не будут работать с контекстуалиизрованными эмбеддингами.
источник
DL in NLP
источник
DL in NLP
BERT-of-Theseus: Compressing BERT by Progressive Module Replacing
Xi et al.
arxiv.org/abs/2002.02925

TL;DR
Для сжатия Берта будем заменять некоторые его слои на новые (поменьше) случайным образом во время дистилляции.  Вероятность замены модуля будем повышать со временем, в результате в конце у нас будет маленькая модель.

Интересный (и немного безумный) подход. Судя по табличкам из статьи, они обходят конкурентов (DistillBERT на 5 GLUE пунктов).

twitter.com/XuCanwen/status/1226682713983160324
источник
DL in NLP
​​Моделька уже доступна в Transformers 🔥🔥🔥
источник