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

Связь: @dropout05 (рекламы нет)
Download Telegram
А Jax начинает выглядеть неплохо. Всё-таки надо будет написать на нём что-то посерьёзнее полносвязной сетки, посмотреть как оно в жизни.
​​On the ability of monolingual models to learn language-agnostic representations
Souza et al, [University of Campinas]
arxiv.org/abs/2109.01942

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

Экспериментировали с английским, немецким, португальским и вьетнамским. Специально подобрали модели так, чтобы они были натренированы и зафайнюнены примерно на одинаковом количестве данных. Интересно, что качество трансфера слабо зависит от языка — то есть если вы файнюните с немецкого на португальский или с английского метрики будут довольно близки друг к другу.

Ещё одна статья в копилку тех, кто подтверждает что MLM учит довольно общие фичи, полезные для разных языков. Было бы конечно итересно увидеть тут какой-нибудь японский, жаль не завезли.
​​XLM-E: Cross-lingual Language Model Pre-training via ELECTRA
Chi et al. [Microsoft]
arxiv.org/abs/2106.16138

Помните XLM-R? BERT-like модельку, где MLM делали на парах [предложение] [SEP] [перевод] и таким образом обучали классную мультиязычную модель?

В этой статье сделали то же самое, но c задачкой ELECTRA, где модель не заменет MASK на пропущенные слова, а пытается детектировать какие слова оригинальные, а какие подменённые (просто бинарная классификация). Подменой слов занимается другая модель, которая учится как BERT.

По результатам XLM-E показывает 100-кратное уменьшение FLOPS для предобучения и заметный буст в cross-lingual zero-shot transfer. Приятно читается, жалко только что кода XLM-E по ссылки из статьи нету.
​​Multi-Sentence Resampling: A Simple Approach to Alleviate Dataset Length Bias and Beam-Search Degradation
Provilkov and Malinin [Yandex Research]
arxiv.org/abs/2109.06253

Есть известная проблема, что при больших beam size системы машинного перевода начинают генерировать более короткие и зачастую неправильные переводы. Этому можно противостоять, если нормализовать вероятности beam search на длину текста, но в чём причина такого поведения?

Ответ банальный, но зато интуитивно понятный. Авторы статьи проанализировали ошибки и увидели, что BELU перевода начинает резко падать, когда перевод длиннее среднего перевода в обучающей выборке. Прямо на графике видно, что примерно после этого числа ошибка начинает расти. Совпадение? Не думаю.

Для решения проблемы предлагают простой метод аугментации — конкатенировать тексты и переводы друг с другом, просто рандомно семплируя их (называется MSR на графике). Это повышает BLEU в общем, но в особенности сильно виден эффект на больших beam size, что подтверждает гипотезу о том, что это просто эффект длины тренировочных текстов.
Иллюстрация метода аугментации
The Importance of Deconstruction
slideslive.com/38938218/the-importance-of-deconstruction

Очень хорошее выступление на NeurIPS 2020, где обсуждают как пишутся ML статьи, чем это отличается от физики и что нужно поменьше доверять хитрым архитектурам. Много хороших примеров с тем, как сложные и интересные методы с хитрыми архитектурами сводились к условному KNN и простому препроцессингу.
​​Fine-Tuned Transformers Show Clusters of Similar Representations Across Layers
Phang et al.
arxiv.org/abs/2109.08406

Интересная находка, что после файнтюнинга RoBERTa векторы CLS разных слоёв начинают быть похожи друг на друга. Точнее, условно первые 8 слоёв очень сильно похожи друг на друга и последние 16. Таких блоков немного, обычно 2-3 штуки. Авторы предполагают что это намекает на то, что модель игнорирует много слоёв, так как их фичи неполезны для задачи. Тестировали на SuperGLUE и нескольких других датасетах. До файтнюнинга такой структуры нету. Нашли похожее поведение в ALBERT и в ELECTRA, но в ELECTRA оно проявлено совсем слабо.

После этого авторы решили просто выключить "неиспользуемые" слои и посмотреть как после этого будет работать сетка. Выяснилось, что если делать это аккуратно, качество практически не меняется.
​​Курс по NLP от Open Data Science 🦜
ods.ai/tracks/nlp-course

Очень советую этот курс, тк его ведёт Валентин Малых кто в своё время стартовал курс по NLP в iPavlov. В курсе всё начинается с самых основ, таких как что такое токенизация и зачем нейросети нужны в NLP и идёт вплоть до предобучения трансформеров и более свежих статей. По окончанию курса от студента ожидается финальный проект. Примеры проектов прошлых лет есть тут. Записи первых лекций и первые тесты уже доступны на сайте, новые лекции проходят в Zoom, время записаться ещё есть.
​​Summarizing Books with Human Feedback

#OpenAI fine-tuned #GPT3 to summarize books well enough to be human-readable. Main approach: recursively split text into parts and then meta-summarize summaries.

This is really important because once there will be a great summarization #SOTA we won't need editors to write posts for you. And researchers ultimatively will have some asisstance interpreting models' results.

BlogPost: https://openai.com/blog/summarizing-books/
ArXiV: https://arxiv.org/abs/2109.10862

#summarization #NLU #NLP
Сравнение трансформера с его модификациями at scale. Vanilla 💪

openreview.net/pdf?id=Wrtp36cbl61
Recursively Summarizing Books with Human Feedback
Wu et al. [OpenAI]
arxiv.org/abs/2109.10862
openai.com/blog/summarizing-books

Эксперименты OpenAI с суммаризацией книг. По-моему это может быть одним из лучших бенчмарков "умности" текущих методов ML, поэтому я очень хайпаю статью.

Сама статья очень необычная сразу по нескольким причинам. С одной стороны, это OpenAI и мы ожидаем от них безумных экспериментов с почти неограниченными вычислительными ресурсами. С другой стороны, к этому проекту они привлекли ещё более дорогой ресурс — людей. Модель тренируется не один раз на заготовленном датасете по суммаризации, а итеративно улучшается с фидбеком от специальных тренированных людей. Фидбэк бывает двух видов: 1) человек пишет более правильное саммари 2) человек выбирает одно из двух саммари написанных моделью. В случае 1 понятно как улучшить модель — просто зафайнтюнить на дополнительных данных. Случай 2 веселее — тут используется великий и страшный reinforcement learning.

Теперь про сам подход. Он довольно простой. Допустим у вас есть текст размера 10K токенов, а модель может читать только 2К. Разделим текст на 5 чанков по 2К и для каждого из них сгенерируем саммари допустим размера 500 токенов. Потом сконкатим их и получим текст длины 2.5K токенов. Всё ещё слишком длинно — разделим его на два куска и пусть каждый из них сгенерит саммари по 500 токенов. Сконкатим эти результаты, получим текст 1000 токенов. Теперь можно получить из него финальное саммари.

Подход очень простой и решает кучу проблем. Во-первых такую разметку просто делать. Вы не заставляете людей суммаризировать целые книги, а лишь просите из суммаризировать чанки по 2K токенов. Куча плюсов: людям проще такое делать, машинам проще такое учить, плюс с одной книги получаете кучу разметки. В качестве инициализации для модели используют GPT-3.

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

По результатам: некоторые саммари близки по качеству к человекам, но их около 5% 🍒. В среднем скор человека ~6/7, а лучшей модели ~3.5/7. Естественно размер модели важен и 175млрд параметров дают огромный буст по сравнению с 6млрд. Внезапно RL хорошо зашёл и его использование улучшает скор с 2.5 до 3.5. Думаю он эффективен потому что доставать для него данные просто — людям нужно лишь выбрать одно из двух саммари, а не писать новое.

Как всегда в статье от OpenAI много интересных технических деталей, например как они выбрали на каких узлах дерева тренировать модель. Явно стоит того, чтобы потратить час на чтение.
Саммари Ромео и Джульетты
Forwarded from Silero News (Alexander)
We Have Published a Model For Text Repunctuation and Recapitalization

The model works with SINGLE sentences (albeit long ones) and:

- Inserts capital letters and basic punctuation marks (dot, comma, hyphen, question mark, exclamation mark, dash for Russian);
- Works for 4 languages (Russian, English, German, Spanish) and can be extended;
- By design is domain agnostic and is not based on any hard-coded rules;
- Has non-trivial metrics and succeeds in the task of improving text readability;

Links:

- Model repo - https://github.com/snakers4/silero-models#text-enhancement
- Colab notebook - https://colab.research.google.com/github/snakers4/silero-models/blob/master/examples_te.ipynb
- Russian article - https://habr.com/ru/post/581946/
- English article - https://habr.com/ru/post/581960/
Scaling Laws for Neural Machine Translation
Ghorbani et al. [Google]
arxiv.org/abs/2109.07740

Всегда интересно читать про "scaling laws" — забавно видеть что stack more layers работает. Оказывается, он работает и в машинном переводе. Но есть нюанс.

Для начала сетап: Размер моделей от 40M до 1.5B параметров, несколько датасетов, En <-> De, самый большой датасет 2 миллиарда пар предложений, два вида переведённых людьми тестсетов. В одном случае люди переводили с немецкого на английский, а в другом наоборот. Зачем так сделали? Потому что у людей, так же как и у моделей, есть артефакты перевода и было интересно это учесть.

Что авторы нашли:
1. У seq2seq архитектуры скейлинг зависит не только от числа параметров, но и от соотношения размеров энкодера и декодера.
1. Скейлить декодер выгоднее чем энкодер, но по-хорошему вы хотите чтобы в декодере было ~55% параметров вашей модели
1. BLEU и BLEUBERT хорошо коррелирует с кросс-энтропией когда мы эвалюируемся на оригинальных текстах и плохо, когда мы эвалюируемся на переведённых (даже людьми) текстах.

Если вы занимаетесь машинным переводом, это must read.
Свежая подборка NLP-новостей одной строкой:

1. 🔥 8-bit optimizers: сокращает потребление памяти в 4 раза, та же производительность, никаких новых гиперпараметров. Быстрая CUDA-имплементация. pip install bitsandbytes-cuda110
1. 🤗 Infinity — инференс трансформеров за 6мс на CPU, 1мс на GPU. Можно записаться на закрытую бету.
1. Хороший туториал от Rubrix, как лейблить данные и обучать текстовые классификаторы. Их тулза добавляет красивый UI и элементы active learning.
1. Большие словари BPE сильно увеличивают эффект запоминания трансформерами
1. Бомбёж Саши Раш на книгу Artificial Intelligence, Modern Approach. Я давно всем говорил, что подобные книги очень устарели и даже базовые вещи в них больше не отражают действительности. Теперь есть на кого сослаться.
1. AI research: the unreasonably narrow path and how not to be miserable — совет для PhD-студентов