DL in NLP
#rl На этой неделе встречаемся обсудить лекции и домашки по следующим темам: 1. DQN 1. Exploration vs exploitation (в тч байесовские методы) 1. Policy gradients Домашки жёсткие, но интересные. Приходите. Четверг, 19:00, 522 Цифра
#rl
Всем привет! Напоминаю, что сегодня собираемся в 19 часов в 522 Цифра
Всем привет! Напоминаю, что сегодня собираемся в 19 часов в 522 Цифра
Давно тут ничего не было NLP-шного
RoBERTa: A Robustly Optimized BERT Pretraining Approach
Liu et al. [FAIR]
arxiv.org/abs/1907.11692
Абстракт абстракта:
We find that BERT was significantly undertrained, and can match or exceed the performance of every model published after it.
Авторы поигрались с бертом (а заодно переписали его на 🔥), сделали маскирование не статическое (только на этапе предобработки данных), а динамическое (генерировать новую маску каждый раз, когда видишь пример), посмотрели на NSP и сказали, что без него на самом деле лучше, а также подкрутили гиперпараметры. Вроде бы это всё, что я заметил, прочитав статью по диагонали, если что-то упустил - пишите в чат.
Ссылку нашёл в прекрасном канале @j_links
RoBERTa: A Robustly Optimized BERT Pretraining Approach
Liu et al. [FAIR]
arxiv.org/abs/1907.11692
Абстракт абстракта:
We find that BERT was significantly undertrained, and can match or exceed the performance of every model published after it.
Авторы поигрались с бертом (а заодно переписали его на 🔥), сделали маскирование не статическое (только на этапе предобработки данных), а динамическое (генерировать новую маску каждый раз, когда видишь пример), посмотрели на NSP и сказали, что без него на самом деле лучше, а также подкрутили гиперпараметры. Вроде бы это всё, что я заметил, прочитав статью по диагонали, если что-то упустил - пишите в чат.
Ссылку нашёл в прекрасном канале @j_links
arXiv.org
RoBERTa: A Robustly Optimized BERT Pretraining Approach
Language model pretraining has led to significant performance gains but careful comparison between different approaches is challenging. Training is computationally expensive, often done on private...
Спасибо @Cookie_theif за ссылку на WikiMatrix
Что это такое. Это параллельные корпуса текстов на 85 языках из распаршенной википедии. 132 млн предложений (это очень много) из которых всего 34 млн параллельные с английским (то есть он действительно многоязычный). Корпусов, как известно, много не бывает. Больших корпусов тем более.
Подход:
We use LASER's bitext mining approach and encoder for 93 languages. We do not use the inter-language links provided by Wikipedia, but search over all Wikipedia artickes of each language. We approach the computational challenge to mine in almost 600 million sentences by using fast indexing and similarity search with FAISS. Prior to mining parallel sentences, we perform sentence segmentation, deduplication and language identification.
Для того, чтобы скачать требуемую вам пару языков, достаточно wget’нуть ссылку вида
где xx-yy – это интересующая вас пара (например, ru-en).
Что это такое. Это параллельные корпуса текстов на 85 языках из распаршенной википедии. 132 млн предложений (это очень много) из которых всего 34 млн параллельные с английским (то есть он действительно многоязычный). Корпусов, как известно, много не бывает. Больших корпусов тем более.
Подход:
We use LASER's bitext mining approach and encoder for 93 languages. We do not use the inter-language links provided by Wikipedia, but search over all Wikipedia artickes of each language. We approach the computational challenge to mine in almost 600 million sentences by using fast indexing and similarity search with FAISS. Prior to mining parallel sentences, we perform sentence segmentation, deduplication and language identification.
Для того, чтобы скачать требуемую вам пару языков, достаточно wget’нуть ссылку вида
https://dl.fbaipublicfiles.com/laser/WikiMatrix/v1/WikiMatrix.xx-yy.tsv.gz
где xx-yy – это интересующая вас пара (например, ru-en).
GitHub
LASER/tasks/WikiMatrix at main · facebookresearch/LASER
Language-Agnostic SEntence Representations. Contribute to facebookresearch/LASER development by creating an account on GitHub.
Huawei Speech & Language организует в Москве серию NLP-митапов. Первый из них состоится 6 августа и будет посвящён бертоведению.
Докладчики:
Никита Сметанин, Replika.ai - ВERT for dialogs: production-scale approach
Михаил Архипов, iPavlov, МФТИ - Multilingualism of BERT
Invited speaker Dr. Qun Liu, Chief Research Scientist of Noah's Ark Lab, Huawei
Место: Ленинградский проспект, 36 стр. 11 (Офисный центр SOK Динамо)
Для участия нужна регистрация: sites.google.com/view/moscow-nlp
Докладчики:
Никита Сметанин, Replika.ai - ВERT for dialogs: production-scale approach
Михаил Архипов, iPavlov, МФТИ - Multilingualism of BERT
Invited speaker Dr. Qun Liu, Chief Research Scientist of Noah's Ark Lab, Huawei
Место: Ленинградский проспект, 36 стр. 11 (Офисный центр SOK Динамо)
Для участия нужна регистрация: sites.google.com/view/moscow-nlp
Google
Huawei Speech & Language
An open seminar on modern approaches to Speech and Language Processing. Free for everyone.
Organized by Huawei Moscow Speech & Language Team (Huawei Noah's Ark Lab).
Organized by Huawei Moscow Speech & Language Team (Huawei Noah's Ark Lab).
#rl
Мы довольно быстро движемся по яндексовому курсу и у нас получается около недели в запасе. Поэтому предлагаю в этот четверг встретиться в формате практического занятия на котором разберём самые интересные домашки и пофиксим баги друг друга.
Ну и, конечно, надо просмотреть и выполнить что можете по 7 8 9 лекциям
Они не такие сложные, как я думал (по крайней мере 7 и 8)
Время и место стандартные: 19 часов, 522 Цифра
не забудьте ноутбуки
Мы довольно быстро движемся по яндексовому курсу и у нас получается около недели в запасе. Поэтому предлагаю в этот четверг встретиться в формате практического занятия на котором разберём самые интересные домашки и пофиксим баги друг друга.
Ну и, конечно, надо просмотреть и выполнить что можете по 7 8 9 лекциям
Они не такие сложные, как я думал (по крайней мере 7 и 8)
Время и место стандартные: 19 часов, 522 Цифра
не забудьте ноутбуки
#rl
Если вы всё ещё чувствуете, что не понимаете как работает policy gradient или actor-critic (что абсолютно нормально, я понял их раза с 4), очень советую внимательно просмотреть лекции Сергея Левина из Berkeley. Вместо примерно полуторачасового объяснения Яндекса с опусканием матана за всем этим вам предоставят почти 3 часа опускания матаном вас. Но если смотреть очень внимательно, всё очень хорошо объяснено.
1. Policy Gradients
2. Actor-Critic Algorithms
А ещё по-видимому мы закончим наш курс первой домашкой Berkeley cs294-112 по imitation learning
Если вы всё ещё чувствуете, что не понимаете как работает policy gradient или actor-critic (что абсолютно нормально, я понял их раза с 4), очень советую внимательно просмотреть лекции Сергея Левина из Berkeley. Вместо примерно полуторачасового объяснения Яндекса с опусканием матана за всем этим вам предоставят почти 3 часа опускания матаном вас. Но если смотреть очень внимательно, всё очень хорошо объяснено.
1. Policy Gradients
2. Actor-Critic Algorithms
А ещё по-видимому мы закончим наш курс первой домашкой Berkeley cs294-112 по imitation learning
YouTube
CS294-112 Fa18 9/5/18
Кажется, я пропустил статью в которой unsupervised MT превзошёл supervised-модель 2014 года. Но факт забавный.
А вот и статья
An Effective Approach to Unsupervised Machine Translation
Artetxe at al. [University of the Basque Country]
arxiv.org/abs/1902.01313
An Effective Approach to Unsupervised Machine Translation
Artetxe at al. [University of the Basque Country]
arxiv.org/abs/1902.01313
arXiv.org
An Effective Approach to Unsupervised Machine Translation
While machine translation has traditionally relied on large amounts of parallel corpora, a recent research line has managed to train both Neural Machine Translation (NMT) and Statistical Machine...
Некоторые статьи по анализу того, как работает BERT. Наверное, неплохо было бы их разобрать.
Visualizing and Measuring the Geometry of BERT
arxiv.org/pdf/1906.02715.pdf
Right for the Wrong Reasons: Diagnosing Syntactic Heuristics in Natural Language Inference
arxiv.org/abs/1902.01007
Probing Neural Network Comprehension of Natural Language Arguments
arxiv.org/abs/1907.07355
How multilingual is Multilingual BERT?
arxiv.org/pdf/1906.01502.pdf
BERT Rediscovers the Classical NLP Pipeline
arxiv.org/abs/1905.05950
What Does BERT Look At? An Analysis of BERT's Attention
arxiv.org/abs/1906.04341
Visualizing and Measuring the Geometry of BERT
arxiv.org/pdf/1906.02715.pdf
Right for the Wrong Reasons: Diagnosing Syntactic Heuristics in Natural Language Inference
arxiv.org/abs/1902.01007
Probing Neural Network Comprehension of Natural Language Arguments
arxiv.org/abs/1907.07355
How multilingual is Multilingual BERT?
arxiv.org/pdf/1906.01502.pdf
BERT Rediscovers the Classical NLP Pipeline
arxiv.org/abs/1905.05950
What Does BERT Look At? An Analysis of BERT's Attention
arxiv.org/abs/1906.04341
arXiv.org
Right for the Wrong Reasons: Diagnosing Syntactic Heuristics in...
A machine learning system can score well on a given test set by relying on heuristics that are effective for frequent example types but break down in more challenging cases. We study this issue...
В cs224u есть очень крутые видео. Например, вот тут хорошо рассказывают про Элмо, Берта, трансформеры и всё вот это. Гораздо лучше, чем в cs224n.
https://twitter.com/sannykimchi/status/1156985470275821573
https://twitter.com/sannykimchi/status/1156985470275821573
Twitter
Sanny Kim
@ChrisGPotts's explanation and visualization (!) of Transformers, ELMo and BERT is one of the best ones I've seen so far and is really complementary to the CS224n material! Found in @stanfordnlp's CS224u lecture 14 on Contextual Vectors: https://t.co/OhgcOxmDfV
Очень локальная новость, но всё же.
Все мы любим PyTorch, но к сожалению он неидеален (пока). Одна из ключевых проблем, с которой часто сталкиваются pytorch’исты - внезапный и труднообъяснимый deadlock при использовании нескольких num_workers в dataloader’е
В треде этого тикета несколько часов назад появилось возможное объяснение, почему это происходит.
You need to set
В общем внимательнее следите за своим числом процессов.
Конечно, объяснение так себе, но это уже лучше, чем «после того, как я сделал num_workers=0 и pin_memory=True, у меня заработало»
https://github.com/pytorch/pytorch/issues/1355#issuecomment-517955232
Все мы любим PyTorch, но к сожалению он неидеален (пока). Одна из ключевых проблем, с которой часто сталкиваются pytorch’исты - внезапный и труднообъяснимый deadlock при использовании нескольких num_workers в dataloader’е
В треде этого тикета несколько часов назад появилось возможное объяснение, почему это происходит.
You need to set
num_workers
lower than the number of CPUs in the machine (or pod if you are using Kubernetes), but high enough that the data is always ready for the next iteration. Unfortunately, if Dataloader uses any library that uses K
threads, then the number of processes spawned becomes num_workers*K = N*K
.В общем внимательнее следите за своим числом процессов.
Конечно, объяснение так себе, но это уже лучше, чем «после того, как я сделал num_workers=0 и pin_memory=True, у меня заработало»
https://github.com/pytorch/pytorch/issues/1355#issuecomment-517955232
GitHub
possible deadlock in dataloader · Issue #1355 · pytorch/pytorch
the bug is described at pytorch/examples#148. I just wonder if this is a bug in PyTorch itself, as the example code looks clean to me. Also, I wonder if this is related to #1120.
Тренды NLP с ACL
https://www.mihaileric.com/posts/nlp-trends-acl-2019/
TL;DR
1. Reducing Bias in NLP
1. Новые приложения NLP (fake news, medical letters simplification, biological applications)
1. Стандартизация парадигмы: предтренируй и файнтюнь
1. Попытки слияния knowledge graph и NN (но я всё ещё скептичен здесь)
1. Интерпретация моделей
1. Новые метрики для генерации текстов (и критика старых)
1. Критика текущих SOTA-моделей и датасетов (модели учат довольно простые фичи, которых достаточно для достижения высоких результатов на датасетах) - по-моему это больше проблема датасетов, чем моделей
за ссылку спасибо Юрию Кашницкому
https://www.mihaileric.com/posts/nlp-trends-acl-2019/
TL;DR
1. Reducing Bias in NLP
1. Новые приложения NLP (fake news, medical letters simplification, biological applications)
1. Стандартизация парадигмы: предтренируй и файнтюнь
1. Попытки слияния knowledge graph и NN (но я всё ещё скептичен здесь)
1. Интерпретация моделей
1. Новые метрики для генерации текстов (и критика старых)
1. Критика текущих SOTA-моделей и датасетов (модели учат довольно простые фичи, которых достаточно для достижения высоких результатов на датасетах) - по-моему это больше проблема датасетов, чем моделей
за ссылку спасибо Юрию Кашницкому
Mihaileric
Trends in Natural Language Processing: ACL 2019 In Review
Following an eventful week at ACL 2019, I summarize key trends and takeaways to look for in NLP.
Посмотрел на PytorchTransformers в SpaCy
Не понимаю зачем это надо. Интерфейсы 🤗 очень простые и гибкие. К интерфейсам SpaCy есть вопросы по обоим пунктам и не очень понятно зачем это нужно. Может быть это чисто для фанатов SpaCy.
https://github.com/explosion/spacy-pytorch-transformers/blob/master/README.md
Не понимаю зачем это надо. Интерфейсы 🤗 очень простые и гибкие. К интерфейсам SpaCy есть вопросы по обоим пунктам и не очень понятно зачем это нужно. Может быть это чисто для фанатов SpaCy.
https://github.com/explosion/spacy-pytorch-transformers/blob/master/README.md
Тут в чате говорят, новую соту завезли 🎉 (на самом деле нет, RoBERTa всё равно лучше на GLUE).
Но если серьёзнее, то Baidu (не путать с Badoo) Research несколько дней назад представила свою модель ERNIE (Enhanced Representation through kNowledge IntEgration) 2.0.
Идея метода предобученния состоит примерно в следующем:
0. Толстый трансформер (как и у всех)
1. Continual pre-training: сразу несколько self-supervised (или weak-supervised) задач на уровне слов, синтаксиса и семантики
2. ERNIE стартует с одной из этих задач и постепенно во время обучения добавляются новые, более сложные
3. К каждому слову добавляется специальный эмбеддинг в зависимости от задачи
Подробнее про задачи:
1. Word-aware Pre-training Tasks:
1.1 Knowledge Masking - masked language model++, в котором маскируются фразы и именованные сущности, подробнее в статье про ERNIE 1.0
1.2 Capitalization Prediction - да, просто предсказывать, является ли это слово капитализированным. Забавная идея.
1.3 Token-Document Relation Prediction - предсказывается, появляется ли данное слово хотя бы ещё раз в данном документе. Тоже очень интересная идея - таким образом можно пытаться извлекать ключевые слова.
2. Structure-aware Pre-training Tasks
2.1 Sentence Reordering - N предложений случайно шаффлятся, после чего нужно предсказать их оригинальный порядок.
2.2 Sentence Distance - классификация пар предложений на три класса: идут подряд / находятся в одном документе / находятся в разных документах
3. Semantic-aware Pre-training Tasks
3.1 Discourse Relation - если я правильно понял, то это дисстиляция semantic relation модели
3.2 IR Relevance - тк Baidu это поисковик, у них есть логи поиска. Они и используются в этой задаче. По query и title нужно предсказать один из трёх классов: 0 - the title is clicked by the users after they input the query, 1 - these titles appear in the search results but failed to be clicked by users, 2 - the query and title are completely irrelevant
за ссылку на статью спасибо @Cookie_thief
Статья довольно неплохо написана, советую почитать
UPD: нету абляционных исследований 😫
ERNIE 2.0: A Continual Pre-Trainining Framework for Language Understanding
Sun et al. [Baidu]
arxiv.org/pdf/1907.12412v1.pdf
Но если серьёзнее, то Baidu (не путать с Badoo) Research несколько дней назад представила свою модель ERNIE (Enhanced Representation through kNowledge IntEgration) 2.0.
Идея метода предобученния состоит примерно в следующем:
0. Толстый трансформер (как и у всех)
1. Continual pre-training: сразу несколько self-supervised (или weak-supervised) задач на уровне слов, синтаксиса и семантики
2. ERNIE стартует с одной из этих задач и постепенно во время обучения добавляются новые, более сложные
3. К каждому слову добавляется специальный эмбеддинг в зависимости от задачи
Подробнее про задачи:
1. Word-aware Pre-training Tasks:
1.1 Knowledge Masking - masked language model++, в котором маскируются фразы и именованные сущности, подробнее в статье про ERNIE 1.0
1.2 Capitalization Prediction - да, просто предсказывать, является ли это слово капитализированным. Забавная идея.
1.3 Token-Document Relation Prediction - предсказывается, появляется ли данное слово хотя бы ещё раз в данном документе. Тоже очень интересная идея - таким образом можно пытаться извлекать ключевые слова.
2. Structure-aware Pre-training Tasks
2.1 Sentence Reordering - N предложений случайно шаффлятся, после чего нужно предсказать их оригинальный порядок.
2.2 Sentence Distance - классификация пар предложений на три класса: идут подряд / находятся в одном документе / находятся в разных документах
3. Semantic-aware Pre-training Tasks
3.1 Discourse Relation - если я правильно понял, то это дисстиляция semantic relation модели
3.2 IR Relevance - тк Baidu это поисковик, у них есть логи поиска. Они и используются в этой задаче. По query и title нужно предсказать один из трёх классов: 0 - the title is clicked by the users after they input the query, 1 - these titles appear in the search results but failed to be clicked by users, 2 - the query and title are completely irrelevant
за ссылку на статью спасибо @Cookie_thief
Статья довольно неплохо написана, советую почитать
UPD: нету абляционных исследований 😫
ERNIE 2.0: A Continual Pre-Trainining Framework for Language Understanding
Sun et al. [Baidu]
arxiv.org/pdf/1907.12412v1.pdf
Подробности предобучения:
1. 64 V100
1. float16
1. Adam(eta=5e-5, beta1=0.9, beta2=0.98), прогрев в течение первых 4 000 батчей
1. число токенов в батче: 393 216 (наверное что-то близкое к maxseqlen=512, batch_size=768)