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

Связь: @dropout05 (рекламы нет)
Download Telegram
​​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: извиняюсь за такое количество уведомлений одновременно, не ожидал что все скриншоты пошлются как разные сообщения
Тут подъехала довольно неприятная, но ожидаемая новость — Телеграм начинает показывать рекламу в каналах с более чем 1000 человек. Авторы каналов не могут выключить показ этой рекламы или повлиять на её содержание какими-то понятными образами. Говорят что реклама будет ориентироваться на тематику каналов, но посмотрим насколько хорошей будет имплементация.

Мне очень не нравится что в этом канале будет появляться контент, который я не контролирую. Отличить эти посты от моих можно будет по маленькой плашке "sponsored" в правом нижнем углу.
DeepLearning.ai выпустили новый курс в Natural Language Processing Specialization, рассказывающий про трансформеры (да, каким-то обраозм трансформеров там до сих пор не было).

Я проглядел его по диагонали и курс выглядит довольно неплохо. Есть домашки по машинному переводу, суммаризации, QA и чатботам. На последней неделе даже проходят reformer (длинный трансформер работающий через LSH-attention). Если кто-то решит пройти, буду рад если поделитесь своими впечатленями в чате.

UPD: Галя, отмена! В чате обратили внимание, что в отзывах говорят что курс поверностный и в нём недостаточно матана, чтобы понять как работают трансформеры.
Я тут решил попробовать 🤗 Inference API для своих pet-project. Заодно узнал смысл жизни по T0.

Но всё-таки главная мысль теперь: если хочется инферить что-то большое и тебе не нужно это делать часто, то API это же идеально. Ничего разворачивать не надо, никаких GPU не надо, работает моментально.
А вот это уже угроза 😱
This media is not supported in your browser
VIEW IN TELEGRAM
🤖🐶 Boston Dynamics сделали робото-cover на клип The Rolling Stones в честь 40-летия выхода альбома Tattoo You 🔊
Fast Model Editing at Scale
Mitchell et al., [Stanford]

Представьте себе, что вы ClosedAI, большая суперкорпорация по тренировке языковых моделей. Вы скачиваете весь интернет и тренируете ваш GPT-42, тратя миллиарды долларов на электричество. После чего вы спрашиваете у модели "Who is the prime minister of the UK?" и она отвечает вам "Theresa May". Это грустный, но релеалистичный сценарий.

Менять какие-то факты в классических knowledge graphs легко — меняете ссылку с сущности UK prime minister на другого человека. Но в нейросетках это нетривиальная задача. Если вы просто зафайнтюните модель на одном примере, модель просто переобучится и например всё ещё будет отвечать "Theresa May" на вопрос "Who is the UK PM?". Ещё модель может изменить свои ответы на вопросы, которые вообще с этим не связаны.

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

Авторы решают это тем, что представляют градиент параметров через downstream gradient слоёв. Если вы помните бэкпроп, то градиент в линейном слое равен X.T @ dL/d(out). Где dL/d(out) — это downstream gradient размера hidden, что сильно меньше самого градиента размера hidden, hidden. Так как X.T мы знаем, то достаточно модифицировать dL/d(out). По-моему гениальное решение, я год назад занимался похожим проектом и не думаю, что когда-нибудь додумался бы до этого.

Этот трюк позволяет использовать подход даже для очень больших моделей, таких как T5-XXL 10B. При сравнении с альтернативными подходами, этот метод показывает себя лучше и в смысле генерализации на перефразирования вопроса и в смысле сохранения ответов на несвязанные вопросы.
Тут говорят, что Microsoft теперь тоже даёт API к GPT-3 через Azure. Называется это OpenAI Service. По факту он всё так же закрыт как и API от OpenAI, так как invintation only, но может быть будут более бодро раздавать (всё ещё жду свой GPT-3 токен, который запросил больше года назад).

Согласно официальному FAQ, разница с OpenAI такова: OpenAI Service brings together OpenAI API and Azure enterprise-level security, compliance, and regional availability (то есть для нормальных людей никакой).

За наводку спасибо @addmeto