Новостей за выходные как-то не было, поэтому держите мою небольшую заметочку по тому почему fairseq (seq2seq-фрейворк на основе pytorch от FAIR) классный и как его использовать.
Evernote
Notes on fairseq
Fairseq pros: More than just translation and seq2seq masked_lm sentence_ranking multilingual_translation language_modeling audio_pretraining ... Handles everything - you only write the model Preproces...
Forwarded from Deleted Account
Twitter
Mikhail Burtsev
New #DeepPavlov 🎅 0.9.0 release. * Speech recognition and synthesis with #NVIDIA #NeMo 🗣 * New NER for English and Vietnamese * New model for Sentence Boundary Detection 🙋 don't forget to give 🌟 on Github 😉 #nlp #chatbot #deeplearning #AIAssistants https…
Итак, вот вам большая подборка интересного чтива. Сначала просто всякие интересности:
1. NLP Newsletter #10
1. Тулза для красивой визуализации архитектуры сети - тык
1. Отличная презентация от Huggingface с обзором последних наработок в Open-Domain QA.
Теперь перейдем к статьям:
1. Are Natural Language Inference Models impressive? Learning Implicature and Presupposition - статья по задаче NLI. Из важного - авторы релизят новый датасет и делают много интересных экспериментов, советую глянуть.
1. Should All Cross-Lingual Embeddings Speak English? (blogpost). Есть большое количество статей, в которых пытаются мапить пространство эмбеддингов одного языка в другое. В чем заключается проблема, которую видят авторы - при валидации модели почти всегда языком, в который мапят, является английский, и в общем случае такой подход может давать неверную оценку качества.
1. Weight Poisoning Attacks on Pre-trained Models - статья, предлагающая способ "атаки" на предобученную языковую модель, чтобы управлять её предиктами. Авторы допускают, что у атакующего есть доступ к модели и известны данные, на которых её учили и на которых будут файнтюнить(или хотя бы задача, под которую будет тюнинг). Суть атаки - хитрое предобучение и создание слов-триггеров (каких-то слабочастотных токенов из словаря), эмбеддинги которых заменяются на взвешенную сумму эмбеддингов токенов, специфичных для конкретного класса.
1. ToD-BERT: Pre-trained Natural Language Understanding for Task-Oriented Dialogues - новый брат берта, на этот раз заточенный под диалоговые системы. Авторы добавляют два новых токена - [SYS] и [USR] для ответа системы и запроса юзера соответственно. Помимо этого они файнтюнят модель на нескольких даунстрим тасках - Intent classification, Dialogue state tracking, Dialogue act prediction, Response selection. Ожидаемо, модель аутперфомит берта на классификации интентов и нескольких (около)диалоговых задачах.
1. Cross-lingual Contextualized Topic Models with Zero-shot Learning - мультиязычное тематическое моделирование на нейросетях. Авторы тренеруют модель на английском, и она способна выделять выученные топики в документах на других языках без предварительного файнтюнинга под них (поэтому собственно cross-lingual и zero-shot).
Статей накопилось много, детально вчитываться в каждую не успевал. Если где-то напортачил, или вы просто хотите пообсуждать статьи - добро пожаловать в чат)
1. NLP Newsletter #10
1. Тулза для красивой визуализации архитектуры сети - тык
1. Отличная презентация от Huggingface с обзором последних наработок в Open-Domain QA.
Теперь перейдем к статьям:
1. Are Natural Language Inference Models impressive? Learning Implicature and Presupposition - статья по задаче NLI. Из важного - авторы релизят новый датасет и делают много интересных экспериментов, советую глянуть.
1. Should All Cross-Lingual Embeddings Speak English? (blogpost). Есть большое количество статей, в которых пытаются мапить пространство эмбеддингов одного языка в другое. В чем заключается проблема, которую видят авторы - при валидации модели почти всегда языком, в который мапят, является английский, и в общем случае такой подход может давать неверную оценку качества.
1. Weight Poisoning Attacks on Pre-trained Models - статья, предлагающая способ "атаки" на предобученную языковую модель, чтобы управлять её предиктами. Авторы допускают, что у атакующего есть доступ к модели и известны данные, на которых её учили и на которых будут файнтюнить(или хотя бы задача, под которую будет тюнинг). Суть атаки - хитрое предобучение и создание слов-триггеров (каких-то слабочастотных токенов из словаря), эмбеддинги которых заменяются на взвешенную сумму эмбеддингов токенов, специфичных для конкретного класса.
1. ToD-BERT: Pre-trained Natural Language Understanding for Task-Oriented Dialogues - новый брат берта, на этот раз заточенный под диалоговые системы. Авторы добавляют два новых токена - [SYS] и [USR] для ответа системы и запроса юзера соответственно. Помимо этого они файнтюнят модель на нескольких даунстрим тасках - Intent classification, Dialogue state tracking, Dialogue act prediction, Response selection. Ожидаемо, модель аутперфомит берта на классификации интентов и нескольких (около)диалоговых задачах.
1. Cross-lingual Contextualized Topic Models with Zero-shot Learning - мультиязычное тематическое моделирование на нейросетях. Авторы тренеруют модель на английском, и она способна выделять выученные топики в документах на других языках без предварительного файнтюнинга под них (поэтому собственно cross-lingual и zero-shot).
Статей накопилось много, детально вчитываться в каждую не успевал. Если где-то напортачил, или вы просто хотите пообсуждать статьи - добро пожаловать в чат)
Хорошая презентация на тему ниизкоресурсных языков и штук (в основном multilingual-штук), которые должны помогать в таком сеттинге. По моему опыту русский язык зачастую можно считать низкоресурсным (не на все задачи есть большие датасеты), так что советую смотреть в эту сторону.
Thomas Wolf из 🤗, как и вам, скучно сидеть дома и он решил записать видео о Future of NLP. А ещё у него забавный акцент, так что всем смотреть. Рассказывает о размере моделек, out-of-domain генерализации, о низкой робастности текущих моделек и других интересных вещах. Если у вас нету времени смотреть, то вот слайды.
YouTube
The Future of Natural Language Processing
Transfer Learning in Natural Language Processing (NLP): Open questions, current trends, limits, and future directions. Slides: https://tinyurl.com/FutureOfNLP
A walk through interesting papers and research directions in late 2019/early-2020 on:
- model size…
A walk through interesting papers and research directions in late 2019/early-2020 on:
- model size…
FAIR только что опубликовал пост в своём блоге по Training with Quantization Noise for Extreme Model Compression.
Идея топовая - чтобы модели лучше квантизовались, давайте эмулировать квантизацию во время тренировки. Тогда обученные веса будут более робастны к ней. Но чтобы не было серьёзных ошибок во время обучения будем квантизовать случайные веса, а не всю сетку. А-ля dropout. Ещё их блог славится милыми анимациями.
Статья и код тоже доступны.
Идея топовая - чтобы модели лучше квантизовались, давайте эмулировать квантизацию во время тренировки. Тогда обученные веса будут более робастны к ней. Но чтобы не было серьёзных ошибок во время обучения будем квантизовать случайные веса, а не всю сетку. А-ля dropout. Ещё их блог славится милыми анимациями.
Статья и код тоже доступны.
Facebook
Training with quantization noise for extreme model compression
Quant-Noise is a new technique to enable extreme compression of state-of-the-art NLP and CV models without significantly affecting performance.
Спасибо @someotherusername за то, что помог с выковыриванием анимашки
Я решил по фану посмотреть на MindSpore - DL фреймворк от Huawei и оказалось что
1. это смесь практик TF и PyTorch, причём не самая плохая
1. документация на первый взгляд лучше, чем у TF 😂
1. есть поддержка "TPU" от Huawei
Выглядит это чудо на удивление готово, я думал что увижу какую-то выполненную на коленке поделку. Единственно, что раздражает - уж очень многословные и страшные туториалы. Непонятно, какие у него перспективы вне Китая, но будет интересно посмотреть, если он составит конкуренцию торчу и tf.
1. это смесь практик TF и PyTorch, причём не самая плохая
1. документация на первый взгляд лучше, чем у TF 😂
1. есть поддержка "TPU" от Huawei
Выглядит это чудо на удивление готово, я думал что увижу какую-то выполненную на коленке поделку. Единственно, что раздражает - уж очень многословные и страшные туториалы. Непонятно, какие у него перспективы вне Китая, но будет интересно посмотреть, если он составит конкуренцию торчу и tf.
Attention Module is Not Only a Weight: Analyzing Transformers with Vector Norms
Kobayashi et al. [Tohoku University]
arxiv.org/abs/2004.10102
Мы с вами уже видели десятки статей, которые пытаются понять, куда смотрит attention. Для этого анализа типично использовать нормализованные attention-скоры i.e.
Новый метод даёт более интерпретируемые результаты - например теперь BERT не смотрит на SEP и CLS. Это очень хорошо укладывается в гипотезу о том, что BERT учится смотреть на SEP и CLS тогда, когда голова хочет "отключиться". Также в эксперименте по машинному переводу показали, что ||att(x)|| гораздо сильнее коррелирует с алайнментом перевода, чем
Что нашли нового?
1. корреляция спирмена величин \alpha и ||att(x)|| заметно отрицательная на SEP (-0.7), CLS (-0.3) и точках с зяпятыми (-0.25) по сравнению с обычными токенами (-0.06). Получается что сетка учит эти эмбеддинги так, чтобы в них не было полезной инфы XOR чтобы на них мало смотрели.
1. BERT учит ||att(x)|| так, что у более редких токенов более высокие значения (спирмен 0.75), в некотором смысле он делает себе TF-IDF.
Kobayashi et al. [Tohoku University]
arxiv.org/abs/2004.10102
Мы с вами уже видели десятки статей, которые пытаются понять, куда смотрит attention. Для этого анализа типично использовать нормализованные attention-скоры i.e.
α = softmax(QK)
. Авторы этой статьи предлагают альтернативный подход - посмотреть на норму взвешенного value = ||att(x)|| = || V softmax(QK) ||, что в принцпе логично, потому что если attention имеет большой вес для элемента, значение которого равно нулю это всё равно что он никуда не смотрит.Новый метод даёт более интерпретируемые результаты - например теперь BERT не смотрит на SEP и CLS. Это очень хорошо укладывается в гипотезу о том, что BERT учится смотреть на SEP и CLS тогда, когда голова хочет "отключиться". Также в эксперименте по машинному переводу показали, что ||att(x)|| гораздо сильнее коррелирует с алайнментом перевода, чем
α
.Что нашли нового?
1. корреляция спирмена величин \alpha и ||att(x)|| заметно отрицательная на SEP (-0.7), CLS (-0.3) и точках с зяпятыми (-0.25) по сравнению с обычными токенами (-0.06). Получается что сетка учит эти эмбеддинги так, чтобы в них не было полезной инфы XOR чтобы на них мало смотрели.
1. BERT учит ||att(x)|| так, что у более редких токенов более высокие значения (спирмен 0.75), в некотором смысле он делает себе TF-IDF.
Experience Grounds Language
Bisk et al.
arxiv.org/abs/2004.10151
автоматическое саммари
Философская работа на тему NLP. И довольно интересная. Мы сейчас все свыклись с парадигмой pre-train/fune-tune да и вообще с самой идеей тренировки моделей для решения задач NLP. Но так было не всегда. Авторы предлагают разделить решение задачи NLP на несколько шагов (World Scopes) и одновременно спекулируют о будущем области.
Пост показался слишком длинным, поэтому вот telegraph
Bisk et al.
arxiv.org/abs/2004.10151
автоматическое саммари
Философская работа на тему NLP. И довольно интересная. Мы сейчас все свыклись с парадигмой pre-train/fune-tune да и вообще с самой идеей тренировки моделей для решения задач NLP. Но так было не всегда. Авторы предлагают разделить решение задачи NLP на несколько шагов (World Scopes) и одновременно спекулируют о будущем области.
Пост показался слишком длинным, поэтому вот telegraph
IBM Science Summarizer
Experience Grounds Language
Successful linguistic communication relies on a shared experience of the world, and it is this shared experience that makes utterances meaningful. Despite the incredible effectiveness of language processing models trained on text alone, today's best systems…
Scheduled DropHead: A Regularization Method for Transformer Models
Zhou et al. [Misrosoft Research and Beihang University]
arxiv.org/abs/2004.13342
Регуляризация трансформеров через дропаут голов. Дропайте головы во время тренировки и получайте бесплатный пункт на тесте. Если и rate менять во время тренировки à la inverse one-cycle, то ещё лучше. В общем вот и вся статья. Давно не было чего-то полезного, что можно описать в одну строчку, а закодить - в 5.
Zhou et al. [Misrosoft Research and Beihang University]
arxiv.org/abs/2004.13342
Регуляризация трансформеров через дропаут голов. Дропайте головы во время тренировки и получайте бесплатный пункт на тесте. Если и rate менять во время тренировки à la inverse one-cycle, то ещё лучше. В общем вот и вся статья. Давно не было чего-то полезного, что можно описать в одну строчку, а закодить - в 5.
Мне тут напомнили про einops. Такой NamedTensor, но работающий уже сейчас. Помогает меньше путаться в размерностях и уменьшает количество
.transpose
и .view
в вашем коде. На первый взгляд удобно, попробуем. Кстати автор либы - @arogozhnikov есть в чате, можете задать ему свои вопросы.Немножко контекста: "Every time I fire a linguist, the performance of the speech recognizer goes up" (Jelinek, IBM)
On Identifiability in Transformers
Brunner et al. [ETH Zurich]
arxiv.org/abs/1908.04211
Вторая волна анализа attentiion пошла! :parrot:
В этой статье авторы тоже говорят, что использовать attention weights для интерпретации - это плохая идея и даже дают формальное описание почему (но как по мне их определениие "идентифицируемости" слишком строгое и поэтому далеко от реальности). Из интересного тут то, что они предлагают ещё один метод анализа attention, который, аналогично Attention Module is Not Only a Weight показывает, что CLS и SEP токены не так важны.
Дальше интереснее: их эксперименты показывают две на первый взгляд противоречащих штуки.
1. Токен достаточно хорошо сопоставляется его эмбеддингу в том числе в последних слоях трансформера
2. Эмбеддинги различных слов сильно смешиваются внутри трансформера
То есть с одной стороны мы можем сказать, что 4 токен действительно соответствует 4 слову, но с другой - в нём очень много информации про другие слова. В принципе это ровно то, что мы имеем в виду под контекстуализированными эмбеддингами, но зато теперь мы имеем экспериментальное подтверждение этого.
Brunner et al. [ETH Zurich]
arxiv.org/abs/1908.04211
Вторая волна анализа attentiion пошла! :parrot:
В этой статье авторы тоже говорят, что использовать attention weights для интерпретации - это плохая идея и даже дают формальное описание почему (но как по мне их определениие "идентифицируемости" слишком строгое и поэтому далеко от реальности). Из интересного тут то, что они предлагают ещё один метод анализа attention, который, аналогично Attention Module is Not Only a Weight показывает, что CLS и SEP токены не так важны.
Дальше интереснее: их эксперименты показывают две на первый взгляд противоречащих штуки.
1. Токен достаточно хорошо сопоставляется его эмбеддингу в том числе в последних слоях трансформера
2. Эмбеддинги различных слов сильно смешиваются внутри трансформера
То есть с одной стороны мы можем сказать, что 4 токен действительно соответствует 4 слову, но с другой - в нём очень много информации про другие слова. В принципе это ровно то, что мы имеем в виду под контекстуализированными эмбеддингами, но зато теперь мы имеем экспериментальное подтверждение этого.