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

Связь: @dropout05 (рекламы нет)
加入频道
PyTorch 1.3 is out 🎉

- named tensor support
- quantization
- mobile
- hyperparameter support for tensorboard
- более строгая типизация

Также заговорили про TPU - можно считать, что началась альфа
Если вы не знаете, что такое Named Tensor и почему вы должны его использовать: nlp.seas.harvard.edu/NamedTensor

Гитхаб: github.com/pytorch/pytorch/releases

Блог: ai.facebook.com/blog/pytorch-13-adds-mobile-privacy-quantization-and-named-tensors/
Go 🔥

Finally managed to release this data!

Some highlights:
From CVPR 2018-2019, PyTorch has grown from 82 -> 280 papers, while TensorFlow has gone from 116 -> 125 papers.

For ACL
PyTorch: 26 -> 103
TF: 34 -> 33

The trend continues at all the major research conferences.

twitter.com/cHHillee/status/1182328989785952257
Investigating the Effectiveness of Representations Based on Word-Embeddings in Active Learning for Labelling Text Datasets
Lu et al.
arxiv.org/abs/1910.03505

Очень простая и практическая статья, сравнивающая использование различных классификаторов для active learning. Основной вывод прост: не используйте TF-IDF/fastText, используйте BERT в качестве векторизатора и active learning будет заметно эффективнее.
Несмотря на очевидный вывод, понял, что сам никогда не думал использовать BERT для active learning; и теперь видно, что был неправ.

Справочка: active learning - это когда вы итерационно размечаете свой датасет и на каждой следующей итерации выбераете примеры на разметку не случайно, а ранжируете их по “неуверенности” вашей модели (выбираете те, на которых модель максимально неуверена). Таким образом вы размечаете наиболее полезные для улучшения классификатора примеры.
Unified Language Model Pre-training for Natural Language Understanding and Generation
Dong et al. [Microsoft Research]
arxiv.org/abs/1905.03197

Новый BERT от Microsoft. На задачах NLU сопоставим с BERT, на задачах NLG - SOTA. Основная идея: использовать несколько задач для предтренировки: задачу ELMO, задачу BERT и задачу seq2seq. Seq2seq сделан довольно забавно: это всё то же восстановление MASK-токенов, как и в BERT, но токены из левого сегмента могут смотреть только на себя. С учётом teacher forcing, задача очень близка к обычному seq2seq.

Также в статье подробно описано, как именно они применяли предобученную модель к прикладным задачам. Советую почитать.
Natural Language State Representation for Reinforcement Learning
Erez Schwartz et al. Technion
arxiv.org/abs/1910.02789

RL страдает от "проклятья размемерности".
Если использовать естественный язык для семантического представления состояний, например, описывая что просиходит на экране в игре Doom, то в сравнении с vision-based агентами:
- сходимость быстрее
- perform better
- more robust
- better transfer

Информация для представления на естественном языке извлекалась из игровых фич и семантической сегментации с наложенной сеткой для понимания позиции объектов: далеко-близко, правее-левее.

Сравнивались:
▫️Агенты:
- DQN
- PPO
▫️Представления:
- Semantic segmentation representations (provided by the environment)
- Natural language representation (features from environment + semantic segmentation + Word2Vec или GloVe + TextCNN)
- Raw image (CNN)
- Feature vector (features from environment + MLP)
▫️Игровые сценарии:
- Пристрели монстра
- Не умри от яда собирая аптечки
- Уклоняйся от файерболов
- Defend the center - отстреливайся от набегающих монстров, стоя на месте
- Адище
exbert.net - A Visual Analysis Tool to Explore Learned Representations in Transformers Models

Удобная тулза для визуализации внутренних представлений BERT. Астроголи объявили удвоение статей по анализу трансформеров на следующем ACL.

twitter.com/Ben_Hoov/status/1183823783754371076
Ещё тут люди говорят, что RAdam на самом деле не делает ничего полезного и стоит продолжать использовать Adam с warmup. И даже предлагают сколько этого warmup’а нужно (спойлер: 2/(1−β2) итераций).

twitter.com/denisyarats/status/1183794108856459264
И вышел Python 3.8

Основные фичи:
1. Walrus operator, позволяющий одновременно присвоить значение и возвратить его
1. Positional-only arguments
1. Много всего нового в модуле typing (посмотрите на протоколы!)
1. Новый синтаксис в f-string f"{my_variable=}", который эквивалентен f"my_variable={my_variable}"
1. Новый модуль importlib.metadata, позволяющий узнавать информацию о dependency и об установленных пакетах на уровне кода
1. Новые фичи в math и statistics: math.prod, math.isqrt, statistics.geometric_mean, statistics.multimode, statistics.NormalDist
1. Warnings about dangerous syntax. Вот этот лично мне будет полезен: SyntaxWarning: 'tuple' object is not callable; you missed a comma?
1. Всякие ускорения (namedtuple работает в 2 раза быстрее)

realpython.com/python38-new-features
Massively Multilingual Neural Machine Translation in the Wild: Findings and Challenges
Arivazhagan et al. [Google Brain]
arxiv.org/abs/1907.05019

We also studied other properties of very deep networks, including the depth-width trade-off, trainability challenges and design choices for scaling Transformers to over 1500 layers with 84 billion parameters.

А теперь немного серьёзнее. Как они до такого дошли?
Идея: многоязычные системы машинного перевода существуют уже давно, но обычно их обучают на нескольких high-resource языках (гигабайты текста); но почему бы не попробовать обучить их на 103 языках (25 млн. пар предложений) и посмотреть на BLEU en⟼any и any⟼ en?
При модели Transformer-Big, стандартной для машинного перевода, у высокоресурсных языков (немецкий, французский, …) качество падает относительно двуязычного бейзлайна (максимум -5 BLEU). Однако, BLEU низкоресурсных языков (йоруба, синдхи, савайский, …) растёт вплоть до +10 BLEU (в среднем +5). И это очень заметное улучшение.
Но как сохранить высокочастотные языки? Возможно, модель просто недостаточно ёмкая, чтобы выучить их одновременно с низкочастотными (попробуйте сами выучить сотню языков). Как проверить эту гипотезу? Увеличить модель до безумных размеров!

Способа увеличить модельку два: в ширину и в глубину.
1. Wide transformer (24 слоя, 32 головы, 2048 attention hidden, 16384 fc-hidden, 1.3B total)
2. Deep transformer (48 слоёв, 16 голов, 1024 attention hidden, 4096 fc-hidden, 1.3B total)
Результат: ещё больший прирост в низкоресурсных, появился прирост в среднересурсных, потерь в высокоресурсных почти нет.

статья в блоге: ai.googleblog.com/2019/10/exploring-massively-multilingual.html
за ссылку спасибо @twlvth

P.S. Заявленная в блоге модель на 84B параметров в тексте статьи так и не появилась =(
Гугл, не надо так.
P.P.S Также очень советую посмотреть статью. В ней много подробностей о тренировке, e.g. как правильно семплить языки и больше интересных резульатов. В один пост не уместить.
Забавный способ применения GPT-2. Для шифрованных сообщений. С фиксированным сидом можно подобрать такой префиксный текст, который генерит ваше секретное послание.

twitter.com/altsoph/status/1184426687683055617
Deep learning отнимает работу там, где никто не ожидал. DeepMind применил нейросетки для восстановления текстов на древнегреческом. Error rate их системы: 30%. С одной стороны - это много, а с другой стороны, error rate профессионального эпиграфиста (да, есть целая профессия, которая посвящена таким задачам) - 57%.

Restoring ancient text using deep learning: a case study on Greek epigraphy
Assael et al. DeepMind
arxiv.org/abs/1910.06262

блог: deepmind.com/research/publications/Restoring-ancient-text-using-deep-learning-a-case-study-on-Greek-epigraphy
Ещё тут facebook показывает свои свежие результаты по низкоресурсному машинному переводу.

We’ve developed a novel approach that combines several methods, including iterative back-translation and self-training with noisy channel decoding, to build the best-performing English-Burmese MT system (+8 BLEU points over the second-best team).

We’ve also developed a state-of-the-art approach for better filtering of noisy parallel data from public websites with our LASER toolkit. … first place for the shared task on corpus filtering for low-resource languages of Sinhala and Nepali at WMT 2019.

В общем на удивление LASER не забыли и нашли ему интересное применение. Кстати ещё в блоге есть неплохие анимации, показывающие их подход. Советую посмотреть.

ai.facebook.com/blog/recent-advances-in-low-resource-machine-translation
Быстрый T-SNE - это то, чего сильно не хватало, когда мы игрались с визуализацией эмбеддингов. Обходит реализацию sklearn на порядки.

https://twitter.com/altsoph/status/1184771151916126208