DL in NLP
12.5K subscribers
547 photos
13 videos
27 files
1.1K links
Новости и обзоры статей на тему обработки естественного языка, нейросетей и всего такого.

Связь: @dropout05 (рекламы нет)
加入频道
Вчера было 1 апреля, а это означает конференцию SIGBOVIK в CMU. Приметившиеся статьи:

1. Новый алгоритм сортировки - turk sort - "uses human intelligence to compare the elements of a (possibily) heterogeneous list"
1. Artificial General Relativity - "In this paper I (switching to ’I’ to avoid sounding pretentious with ’we’) introduce Artificial General Relativity (AGR) which, when achieved, will allow us to control gravity and spacetime."
1. Image-to-image neural network for addition and subtraction of a pair of not very large numbers

Proceedings: тык
Аудиозапись конференции: тык
Deep Learning Reproducibility with TensorFlow
youtu.be/Ys8ofBeR2kA

Хороший обзор проблемы воспроизводимости в DL и как её решать.
Рекомендуется для просмотров всем - воспроизводимость важна и в исследованиях (ваши метрики в статье) и в проде (в regression testing, например).
Не только релевантно для TF, но и легко адаптируется под PyTorch.

Из моих наблюдений:
1. разный random seed может менять вашу метрику вплоть до 5-10 пунктов - см один из постов выше
1. если вы забыли поставить какой-то один seed (python, numpy, cuda) - то же самое (даже если все остальные сиды стоят)
1. смена GPU на CPU: ~0.5 пункта
1. недетерминированность GPU: - ~0.1 пункт

Я не удивлюсь, если на самом деле эти цифры могут быть заметно больше.

По воспроиизводимости в PyTorch рекомендую мой небольшой гайд

спасибо @Vanshi87 из чата за ссылку на видео
Emerging Cross-lingual Structure in Pretrained Language Models
Wu, Conneau, et al. [FAIR]
arxiv.org/abs/1911.01464

Статья для тех, кто не любит SOTA-driven approach. Авторы задают конкретные вопросы про мультиязычные модели и пытаются на них ответить:

Q: Важны ли anchor points (одинаковые по написанию и смыслу токены, которые автоматически мапятся в один эмбеддинг ещё на стадии предобработки) для предтренировки mBERT?
A: Слабо важны, дают 1-2 пункта на downstream-задачах

Q: Насколько важен model parameter sharing между языками?
A: Критически важен, для далёких языков (En-Ru, En-Zh) качество downstream задач падает почти до уровня случайного выбора, если шарить только половину параметров

Q: Хорошо ли мапятся векторные представления слова и его перевода (контекстуальные и неконтекстуальные) если использовать представления mBERT?
A: Примерно на уровне fastText

Q: Насколько похожи обученные нейросети? Похож ли одноязычный английский BERT на одноязычный русский BERT? А на мультиязычный En-Ru BERT?
A: Похожи, для близких языков схожесть больше, чем для далёких
Советую, если интересуетесь zero-shot multilingual transfer. Версия статьи с выделенными интересными моментами.
1911.01464_highlighted.pdf
1.1 MB
Интересные штуки одной строкой:

Для новичков (и не только):
1. d2l.ai - очень большая книга по диплёрнингу с кучей numpy-имплементаций. И все эти имплементации вы можете запускать прямо в браузере.
1. How to read research papers by Andwer Ng

чуть более advanced:
1. Jigsaw Multilingual Toxic Comment Classification - Kaggle + Jigsaw + Multilingual + TPU. Идеальное сочетание.
1. XGLUE - GLUE для мультиязычных моделей
1. Aligned Cross Entropy for Non-Autoregressive Machine Translation - новая SOTA от FAIR по неавторегрессионному NMT
1. Why There is No ImageNet Moment in Speech to Text Yet
1. Optuna - оптимизатор гиперпараметров для PyTorch + Lightning. Интерфейс ужасный до жути (распределение на гиперпараметры задаётся внутри класса модели), но фичи интересные. Я больше советую wandb sweeps, но интересно если кто-нибудь сравнит их.
Modern (не совсем) Deep Learning Techiniques Applied to NLP - похоже на то, что кто-то не из NLP попытался собрать все техники предбертовой эры в одном месте. И в общем получилось неплохо, хотя местами и устаревшие/неработающие пока/воообще вещи (рекурсивные сети/память/RL).
The Transformer Family
Lilian Weng

Хороший обзор различных вариаций трансформера, которых уже стало на удивление много. Кажется даже больше, чем вариантов LSTM.
В посте автор разбирает следующие:
1. Transformer-XL
1. Adaptive Attention Span
1. Image Transformer (Localized Attention Span)
1. Sparse Transformer
1. Reformer
1. Universal Transformer
1. GTrXL

Вся область альтернативных трансформеров пока что кажется диким западом, но вдруг найдёте что-то полезное для своей задачи.
Я только что проделал грандиозную работу - закрыл все вкладки в браузере (последние из них были открыты где-то с сентября). Результатом стал список статей, которые я хотел прочитать, но этого не сделал. Отобрал из него те, которые всё ещё выглядят интересно, вдруг кому-то будет полезно.

Список
Когда-нибудь я их все прочитаю (нет).
Отличный тред в твиттере на тему языковых моделей и воспроизводимости

TL;DR воспроизводить сложно, можно сильно понизить перплексию модели (c 90 до 66 wikitext-2) случайно дропая целые эмбеддинги, да и в обычный дропаут в эмбеддинги хорошо помогает. Цена за перплексию - адски возрастающий compute (с 15 минут до 7 часов).

Вообще я тоже заметил, что у языковых моделей после какого-то момента сходимость резко замедляется. Может быть power normalization может помочь или какой-нибудь аггресивный lr scheduler? Если кто-то решал похожие проблемы - заходите в чат.
Подборка интересных штук

попроще:
1. Автоград и тренировка нейросетки в 50 строк numpy-кода от Карпатогго: MicoGrad
1. Наброс на то, что DS - это не так классно, как вам описывают на курсах (оказывается там не только fitpredict надо делать)

не попроще:
1. Тред от Рудера про то, что сопоставлять векторные представления далёких языков сложно не столько потому что языки очень различные, а потому что эмбеддинги для неевропейских языков натренированы криво (статья)
1. Свежая статья по Multiagent RL + NLP
1. Translation Artifacts in Cross-lingual Transfer Learning
Прочитал подробнее Translation Artifacts in Cross-lingual Transfer Learning и это выглядит как очень интересный подвид даталика. Даже скорее даталик наоборот.

В чём проблема: мультиязычные датасеты в часто создаются с помощью машинного перевода (XNLI, XQUAD, ...). Train остаётся в английском а в test куча примеров, переведённых с английского на какой-нибудь другой язык. Сейчас будет звучать очевидно, но раньше никто до этого не догадывался - такой перевод делает test отличным от train не только по языку, но и по некоторым артефактам системы машинного перевода. С помощью пары экспериментов на XNLI и нового тестового сета (созданного людьми), авторы статьи приходят к выводу, что: the loss of performance when generalizing from original data to machine translated data is substantially larger than the loss of performance when generalizing from one language to another.

Кроме этого авторы предлагают пересмотреть наши взгляды на аугментацию машинным переводом, так как получается что это не только парафразинг, но и по сути трансформация более значимая, чем использование другого языка.

Подробнее в статье.
На фоне вчерашней статьи, XTREME: A Massively Multilingual Multi-task Benchmark for Evaluating Cross-lingual Generalization выглядит уже не так впечатляюще, но всё-таки.

По сути это GLUE с тестом для 40 языков из 12 различных семейств. Некоторые из тестсетов переведены автоматически, некоторые - людьми. XLM-R перфомит лучше всех моделей, ему в спину дышит BERT-Large с переведённым (обратно) на английский тестсетом (что как-то не очень честно, тк современные NMT системы используют backtranslation для тренировки). Но в любом случае во всех задачах модели ещё очень далеки от людей. В общем приятно, что теперь есть единая система тестирования новых мультиязычных моделей, которая имеет большие шансы стать стандартом.
Forwarded from Valentin Malykh
коллеги, всем привет, мы совместно с коллегами из Mail.Ru запускаем соревнование по машинному переводу с китайского на русский; все, кому интересно поучаствовать в улучшении качества перевода между двумя крупнейшими языками мира, присоединяйтесь! https://mlbootcamp.ru/round/26/tasks/
в поддержку соревнования я написал пост об истории машинного перевода: https://habr.com/ru/company/huawei/blog/492702/
Недавно видел курс, в котором NLP начинают с трансфомеров и хотел его сюда запостить. Но потерял 😶

Вместо него подборка твитов (а где ещё новости находить)
1. Тред по unsupervised MT от человека, фамилию которого я почти понял как произносить
1. В AI Dungeon теперь есть мультиплеер и более тонкая настройка генерации вашей истории
1. Статья о том, что BERT на удивление хорошо генерализует на out-of-distribution примеры
1. Я бы назвал это тизер-трейлером статьи - картинка безумной нейросети от команды Ричарда Сохера, которая делает conversational machine reading