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

Связь: @dropout05 (рекламы нет)
Download Telegram
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-студентов
Внезапно сегодня увидел BERT в Top Hype на arxiv-sanity. Оказывается сегодня BERT исполняется 3 года. Удивительно насколько сильно NLP изменился за это время – и в смысле общего подхода, и (в особенности) в тех тулзах, что мы используем.

Нашёл нашу самую первую лекцию по BERT из Декабря 2018. Стало интересно насколько она отражает текущую действительность. Оказалось, что не очень, так как финальным советом было "используйте ULMfit для классификации, ELMo для остальных задач и ждите пока появится что-то что тренируется быстрее BERT и потребляет меньше памяти" 😂 .

Рекомендовать лекцию к просмотру не могу, так как качество записи весьма отвратительное, но вдруг кому-то будет интересно в историческом контексте.

https://youtu.be/Ha3flDwGj8s?t=477

А что я рекомендую уже получается около 3 лет, это почитать Illustrated Transformer и Illustrated BERT от Jay Allamar. Вспомнить детали того, как работает архитектура бывает полезно.
Scale Efficiently: Insights from Pre-training and Fine-tuning Transformers
Tay et al. [Google]
arxiv.org/abs/2109.10686

Scaling Laws не работают на downstream-задачах 😑

Авторы решили проверить заявление Scaling Laws о том, что качество модели растёт от чила параметров и слабо зависит от того как именно мы его увеличили (в разумных пределах). В результате авторы натренировали кучу моделей Т5 и увидели, что a) перплексия и правда слабо зависит от этого (странно в контексте статьи про Scaling Laws for Neural Machine Translation, которую мы обозревали недавно); b) downstream-задачи не следуют power law от числа параметров и там всё хитрее.

В результате предлагают более эффективные трансформеры. Под эффективностью понимают число FLOPS для их тренировки. В результате приходят к довольно популярному выводу, что скейлить глубину выгоднее, чем скейлить ширину, но до определённого предела (~36 слоёв). Вместо Base(12L, 768H, 3072FF) предлагают Small(22L, 512H, 2048FF), который требует 9.3TFlops для тренировки против 11 и даёт то же качество. Проблема глубоких моделей в том, что инферить их обычно чуть-чуть дольше, тк слои нелья параллелить.

Эти новые шейпы моделей выглядят интересно, но не кажется что буст достаточно заметный, чтобы все начали ими пользоваться. Было бы интересно получить такие новые шейпы для огромных моделей (~100B параметров), но авторы говорят что их правила неуниверсальны и могут не работать для маленьких/больших моделей.
Увидел, что в Google Slides теперь используют языковую модель в комментариях, аналогично такой же фиче в Gmail. Очень забавно, что мы во-первых начинаем использовать LM даже в таких мелких вещах как комментарии, а во-вторых, что мы верим им достаточно, чтобы генерировать сразу по несколько слов.
DeepMind купил Mujoco и теперь он бесплатный. Раньше вроде бы стоил $500/год за каждый компьютер на который его устанавливаешь и после установки твоя лицензия привязывалась к компьютеру намертво. В общем я очень рад этой новости, аж захотелось поиграться с RL.
👍1
​​PMI-Masking Principled Masking of Correlated Spans
Livine et al, [AI21]
arxiv.org/abs/2010.01825

Обычно в MLM мы маскируем все токены с одинаковой вероятностью. Это, вместе с BPE-токенизацией может приводить к очень простым примерам, которые модель быстро выучивает. Нарпимер в тексте "To approximate the matrix, we use the eigenvector corresponding to its largest e-mask-val-ue" одного слова "e-mask-val-ue" достаточно чтобы предсказать "gen". Маскирование целых слов (WWM) помогает случаям длинных слов, но принципиально похожие кейсы могут быть и с целыми словами.

Авторы статьи предлагают маскировать токены основываясь на их взаимной информации — PMI = p(ab) / (p(a) p(b)). Такое маскирование позволяет тренировать MLM гораздо быстрее (в смысле downstream performance) и даже иногда получать чуть-чуть лучшие результаты после сходимости. Интересно, что вроде бы на больших датасетах ускорение от PMI-masking проявлено сильнее. Выглядит полезно, в особенности в ситуациях, когда у вас ограничены вычислительные мощности (т.е. когда вы не OpenAI).
arXiv DOOM - это то, как я чувствую себя так каждое утро. Кстати если вы не читали бомбёжку ЛеКуна насчет реджекта статей - рекомендую, там есть разумное зерно.
👾 arXiv DOOM: BFG1000 Rejected

Шел 2021 год. На arXiv каждый день появлялись новые статьи! Скоро их станет слишком много! Экспоненциально много!

Вы боец спецподразделения ДСР: Двойного Слепого Рецензирования!

Вам позволено бороться с сотней самых последних статей в категории cs. CV!

Главное зареджектить новый пейпер Яна ЛеКуна!

👹arXiv DOOM Играй в браузере!
Multitask Prompted Training Enables Zero-Shot Task Generalization
Sanh et al [BigScience]
arxiv.org/abs/2110.08207

Новая итерация на promt engineering и тренировку с промтами. Авторы предлагают взять большую версию Т5 (11B параметров) и зафайнтюнить её на большом числе supervised датасетов с промтами, описывающими задачу.

Например, для задачи QA это может выглядить так: I know that the answer to [вопрос] is in [контекст]. Can you tell me what it is?

Всего использовали 12 различных задач, 62 датасета. На каждый датасет было порядка 8 промтов. Часть задач отложили на валидацию (например NLI задачи и coreference). При файнтюнинге учили модель генерировать ответы авторегрессионно, аналогично тому, как делали в Т5. Таким образом получается что мы всегда используем кросс-энтропию по словарю и нам не нужно несколько голов, как в классическом multitask-сетапе.

Результаты:
1. модель заметно превосходит GPT-3 на 9 из 11 датасетов в zero-shot режиме.
1. использование одного промта очень сильно увеличивает zero-shot качество по сравнению с тренировкой без промтов
1. использование нескольких промтов в среднем работает лучше чем использование одного (чуть-чуть противоречит предыдущим результатам)
1. использование большего числа датасетов для обучения улучшает среднее zero-shot качество, но не уменьшает дисперсию результатов внутри одного датасета

Модель доступна в 🤗 под именем bigscience/T0pp и у неё очень хорошая model card. Посмотреть на датасеты с промтами (~2000 различных промтов) можно тут. Вы также можете помочь проекту законтрибьютив свои промты.
Пример хотдог-детектора на Т0. 28 секунд на инференс на 6-ядерном Core i7.
Нужно больше T0. Сегодня обсуждали эту статью на reading group в лабе, думаю слайды могут быть полезны.

Также можно поиграться с моделью по этой ссылке: https://huggingface.co/spaces/akhaliq/T0pp
И несколько примеров работы модели. Я был скептичен, но T0pp показала себя на удивление хорошо.

UPD: извиняюсь за такое количество уведомлений одновременно, не ожидал что все скриншоты пошлются как разные сообщения