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

Связь: @dropout05 (рекламы нет)
加入频道
Забавное соревнование по NLP - вам нужно научить модельку решать ЕГЭ. И iPavlov в лице @alexeysorokin89 собирает команду на участие в нём (если желающих будет много, то даже несколько команд). По всем вопросам обращаться к @alexeysorokin89

contest.ai-journey.ru/ru/competition
Неделю назад Richard Socher (один из соавторов GloVe, кстати) из Salesforce объявил о публикации крупнейшей на данный момент известной языковой модели CTRL c 1.6B параметров (против 1.5B у OpenGPT-2 и 774M у OpenAI GPT-2, про которые я уже писал). Научной новизны в предлагаемой модели никакой, кажется, нет, и, в общем-то, это продолжение гонки вооружений было бы совсем скучным, но есть несколько интересных моментов:

1. Это, кажется, первая из таких публичных монстро-моделей, обученная с явным обусловливанием (conditioning).
2. Помимо стилей/жанров/сабреддитов они неплохо придумали использовать в conditioning значение URL страницы-источника (при генерации -- необязательно настоящей). Например, ссылка в духе
https://www.cnn.com/2018/09/20/us-president-meets-british-pm позволяет сетке настроиться на стиль сайта CNN, на указанную тему и на конкретную дату (что позволяет ей правильно решить, кто в данный момент был президентом и премьером).
3. Они придумали развернуть расчёт conditioning для решения обратной задачи атрибуции источника: считают для заданного текста perplexity при различных conditioning параметрах, определяют, в каких условиях такой текст наиболее вероятен. Выглядит забавно.

Немного полезных ссылок: код и модель, статья, блогопост, инструкция по разворачиванию на Google Compute Engine (для бесплатного колаба модель слишком большая), тред с разными смешными примерами.
TinyBERT: Distilling BERT for Natural Language Understanding
Jiao et al. Huawei
arxiv.org/abs/1909.10351

Внезапно, очень хорошая статья по дисстиляции берта с очень интересными результатами. Основные идеи следующие:

1. Два этапа дистилляции - general (self-supervised) и task-specific (supervised) с аугментациями; абляционные исследования показывают, что всё из этого очень важно
1. Дистиллировать нужно не только финальное вероятностное распределение (его даже не нужно), а матрицы аттеншена и hidden’ы.
1. Перенос лучше производить не с последних/первых N слоёв, а равномерно (каждый второй слой / каждый третий)
1. Результаты других методов дисстиляции (в особенности DIstillBERT) слабо превосходят результаты BERTsmall сопоставимого размера

Код и обученные модели “will be made publicly available”.

В общем я был неправ, говоря что дистилляция BERT - это странное занятиие. Просто нужно делать её довольно хитро.
TINYBERT_highlited.pdf
1.8 MB
Ещё у меня возникла идея делиться с вами своими заметками по статье - если я читаю её полностью, то выделяю основные/интересные части. Вдруг кому-то будет полезно.
Спасибо @BobaZooba за ссылку на статью про ALBERT, твит про которого недавно был в канале

ALBERT: A lite BERT for self-supervised learning of language representations
Anonymous authors [Но на самом деле это Google]

пока не успел прочитать, но абстракт абстракта такой:

1. SOTA: GLUE, RACE, SQUAD
1. Two parameter-reduction techniques to lower memory consumption and increase the training speed of BERT
1. Comprehensive empirical evidence shows that our proposed methods lead to models that scale much better compared to the original BERT
1. Self-supervised loss that focuses on modeling inter-sentence coherence, and show it consistently helps downstream tasks with multi-sentence inputs

openreview.net/pdf?id=H1eA7AEtvS
Вышка приглашает на семинар - всем регистрироваться
Forwarded from Katya Artemova
Всем привет!
3 октября 2019, в четверг, 19:00 приглашаем на заседание семинара Научно-учебной лаборатории  моделей и методов вычислительной прагматики Департамента анализа данных и искусственного интеллекта ВШЭ.
Тема: "Соревнование по решению школьных тестов по русскому языку и базовое решение для него"
Докладчик: Валентин Малых (научный сотрудник Huawei Noah's Ark lab)
Аннотация: В докладе будет рассказано про проходящее соревнование https://contest.ai-journey.ru, в чем состоит его сложность и почему оно интересно. Будет рассмотрено базовое решение для этого соревнования, которое набрало бы "тройку" на настоящем экзамене. Если вы заинтересовались, то может быть у вас получится сделать решение на "отлично".
Место проведения: Покровский бульвар, д. 11, D502, 19:00

ссылка для регистрации https://www.hse.ru/expresspolls/poll/308207309.html
NeMo: a toolkit for building AI applications using Neural Modules
Oleksii Kuchaiev et al. NVIDIA
arxiv.org/abs/1909.09577

Тулкит для быстрого стакания монструозных архитектур из высокоуровневых фреймворк-агностичных блоков.

Боль:
- Стандартный подход переиспользования компонентов в комплексных архитектурах - стекать предобученные опенсорсные модели.

- Определение архитектуры и обучение модели могут быть трудноразделимы в одном скрипте.

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

Болеутоляющее:
- Декомпозиция на высокоуровневые функциональные building blocks (такие, как language model, encoder, decoder, data augmentation algorithm, a loss function и т.д.) с фиксированными input и output интерфейсами.

- Разделение на описание архитектуры, обучение, алгоритм оптимизации, выбор фреймворков backend.

- Интерфейсы блоков определены статическими типами данных с описанием семантики данных для каждой оси тензора (такой, как WordEmbedding, ImageEmbeddingTag, Spectrogram), между building blocks выполняется проверка на совместимость.

- Building blocks фреймворк-агностичны, сейчас могут конвертироваться из любой PyTorch nn.Module, а после добавления поддержки, - и из других фреймворков. Кроме базовых блоков уже есть коллекции высокоуровневых: модели распознавания речи, машинного перевода, BERT.

▫️ Python
▫️ Distributed training
▫️ Mixed precision training
▫️ Multi-GPU
▫️ Open Source https://github.com/NVIDIA/NeMo
▫️ Видос с примером использования https://drive.google.com/file/d/1CF-buP_Y1qCAefzoyvOUCXl_3v2vO5P-/preview
ALBERT: A Lite BERT for Self-supervised Learning of Language Representations
Lan et al. Google
arxiv.org/abs/1909.11942

Гугл исследует, как увеличение ширины трансформера влияет на вероятность получить SOTA. Оказывается, что если сделать это правильным обазом, то весьма положительно.

Ключевые идеи:
1. зашарить параметры между всеми слоями трансформера, как в Universal Transformer (по сути просто итерируемся по одному слою)
2. чтобы при увеличении hidden не рос размер эмбеддинг-матрицы, проецировать эмбеддинги не напрямую, а через промежуточное пространство
3. вместо next sentence prediction, где негативные примеры семплируются из всего датасета, брать два последовательно идущих предложения и с некоторой вероятностью менять их местами; предсказывать в каком порядке они должны идти
4. увеличить размер hidden в 4 раза, получаем SOTA

Подробнее про 2
было:

emb = Embedding(vocab=30K, emb_size=H)

стало:

emb = Embedding(vocab=30K, emb_size=E)(x)
emb = Linear(E, H)(emb)


если H >> E, то это позволяет сократить число параметров и ускорить вычисления

Другие подробности:
1. Использовали умное маскирование - с некоторой вероятностью маскировали до 3 последовательно идущих токенов
1. LAMB optimizer
1. ALBERT, достигающий сопоставимых с BERT Large результатов медленнее BERT Large
albert_highligted.pdf
1 MB
И статья с хайлайтами
Сегодня Google исполняется 21, поэтому статья

The Anatomy of a Large-Scale Hypertextual Web Search Engine
Brin and Page [Stanford]
https://stanford.io/2IBq2o3

Абстракт абстракта:
People are likely to surf the web using its link graph, often starting with high quality human maintained indices such as Yahoo! or with search engines. Human maintained lists cover popular topics effectively but are subjective, expensive to build and maintain, slow to improve, and cannot cover all esoteric topics. Automated search engines that rely on keyword matching usually return too many low quality matches. We have built a large-scale search engine which addresses many of the problems of existing systems. It makes especially heavy use of the additional structure present in hypertext to provide much higher quality search results.

Интересно посмотреть на состояние интернета того времени через призму статьи. Да, она немного не про NLP, ну и ладно.
Collaborative Multi-Agent Dialogue Model Training Via Reinforcement Learning
Alexandros Papangelis et al. Uber AI
arxiv.org/abs/1907.05507

Совместное одновременное обучение information seeker и information provider агентов, взаимодействующих только посредством диалога на естественном языке.

Архитектура агентов:

▫️NLU natural language understanding network
- NLU, получая на вход предложение в свободной форме, возвращает список намерений (intent) и соответсвующих им тегов из фиксированного набора. Например: "There are no Italian restaurants in the south part of the city, but one is available in the west side" -> deny(food: Italian, area: south), inform(area: west)}. Для устранения неднозначности созданы теги, соответсвующие намерениям, такие как deny_area и inform_area для локаций.
- модель состоит из свёрточного енкодера и двух декодеров: intent multi-label classifier, slot tagger
- метрика: F1 scores
- предобучена на датасете DSTC2

▫️Dialogue policies (DP)
- на вход поступают рузультаты NLU
- для seeker состояния содержат его цель и полученную в результате диалога информацию, для provider - всю запрошенную информацию с фокусом на текущий запрос, результаты SQL запросов из базы данных о ресторанах
- награда даётся как за выполнение совместной задачи (ресторан назван верно, на все запросы seeker даны ответы), так и специфично целям агентов. Это позволяет обучать нового агента в паре с уже обученным.
- seeker дополнительно наказывается за запросы не "выражающие" информацию о цели, provider - за запросы без ответа.
- алгоритм: Win or Lose Fast Policy Hill Climbing (WoLF-PHC)
- обучается непосредственно взаимодействием агентов

▫️NLG natural language generation network
- на вход поступают рузультаты DP в виде намерений и плейсхолдеров информации из базы: act_inform $food act_inform $pricerange act_offer $name
- модель: seq2seq EncoderDecoder with LSTMs rnn, attention
- метрика: модифицированный BLEU score - вмеcто расчёта метрики только по одному конкретному ответу считается по всем ответам в датасете, имеющим семантически одинаковые запросы.
- предобучена на DSTC2

🏆 Outperform supervised baselines.
Удачные примеры диалогов прекрасны, неудачный интереснее
Придешь на reading club?
public poll

Нет, но буду смотреть стрим – 97
👍👍👍👍👍👍👍 63%

Да, хочу послушать – 41
👍👍👍 27%

Нет, не пойду – 10
👍 7%

Да, хочу выступить – 5
▫️ 3%

👥 153 people voted so far.
Всем привет!
Итак, список статей для reading club из чатика. Если есть ещё варианты - шлите в оный.

Transparency by Design: Closing the Gap Between Performance and Interpretability in Visual Reasoning ссылка

Explain Yourself! Leveraging Language Models for Commonsense Reasoning ссылка

Sentence-BERT: Sentence Embeddings using Siamese BERT-Networks ссылка

Neural Text Generation with Unlikelihood Training ссылка

ALBERT: A Lite BERT for Self-supervised Learning of Language Representations ссылка

CTRL: A Conditional Transformer Language Model for Controllable Generation ссылка

Misspelling Oblivious Word Embeddings ссылка

MASS: Masked Sequence to Sequence Pre-training for Language Generation ссылка

Если вы хотите взять какую-то статью, то отметьтесь в табличке тык
Итак, отмечаем, когда удобнее провести reading club

https://doodle.com/poll/ypiiux324pfvzkii