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

Связь: @dropout05 (рекламы нет)
加入频道
On Extractive and Abstractive Neural Document Summarization with Transformer Language Models
Subramanian et al. [MILA]
arxiv.org/abs/1909.03186

We present a method to produce abstractive summaries of long documents that exceed several thousand words via neural abstractive summarization. We perform a simple extractive step before generating a summary, which is then used to condition the transformer language model on relevant information before being tasked with generating a summary. We show that this extractive step significantly improves summarization results. We also show that this approach produces more abstractive summaries compared to prior work that employs a copy mechanism while still achieving higher rouge scores. Note: The abstract above was not written by the authors, it was generated by one of the models presented in this paper.


У этой статьи настолько потрясающий абстракт, что к нему просто нечего добавить. Всем читать.
GPT-2 написал книгу (даже две).
И их можно купить на Amazon.
Писатели детективов напряглись.

twitter.com/gdb/status/1171538432100712448
Релиз-кандидат TensorFlow 1.5, который будет последним из TF 1.X (в этот раз уже точно).

Фишки:
1. pip install tensorflow ставит GPU-версию (при этом она будет работать и с CPU)
1. Модуль forward-совместимости с TF2.0

Полностью читать тут:

github.com/tensorflow/tensorflow/releases/tag/v1.15.0-rc0
Моделька для контролируемой генерации текста от команды Einstein.ai
Пока не вникал в суть, но вроде бы просто языковая модель со специальными токенами во время тренировки.

twitter.com/RichardSocher/status/1171847882078470144
Facebook AI Research заопенсорсили новую среду для обучения с подкреплением.
Основная фишка - "планирование" агентом каких-то high-level стратегий с помощью естественного языка.
Ссылка: https://ai.facebook.com/blog/-teaching-ai-to-plan-using-language-in-a-new-open-source-strategy-game/
8 сжатых Бертов из 32
https://www.intel.ai/q8bert/#gs.2srbl2

Intel запилили библиотеку NLP-Architect для квантизации и дистилляции transformer-based моделей. И результат: bert-base, квантизованный до 8bit, притом потери качества на базовых тасках сильно меньше чем у HuggingFace's DistilBERT.
Дистилляция Берта - это странное занятие. Потому что дистилляция нужна для создания разметки, а для Берта она и так берётся автоматически.
Другие способы сжатия, как показывает опыт Интел могут достигать отличных результатов. Ждём больше исследований на эту тему.

За ссылку спасибо @Daniil
Brain2Char: A Deep Architecture for Decoding Text from Brain Recordings
Pengfei Sun et al. Center for Integrative Neuroscience UCSF
arxiv.org/abs/1909.01401

Архитектура Brain2Char декодирует в последовательности символов из записей потенциалов непосредственно с коры головного мозга (метод ECoG) .

Encoder network
▫️ 3D Inception layers фильтры для извлечения пространственно-временных признаков из данных с электродов
▫️ bidirectional recurrent layers для получения эмбедингов, представление которых регуляризуется

Regularization network
Наказывает ембединги дополнительным loss за :
▫️ вариативность сигнала, вызванную различными для сессий записи положениями и качеством контакта электродов на мозге.
▫️ acoustic features (MFCC)
▫️ articulatory kinematic features (AKT)

Decoder Network
▫️ dilated convolution layers для устойчивости к шуму
▫️ language model weighted BeamSearch для декодирования в последовательности символов
▫️ CTC loss

🏆SOTA Тестировали на 3 участниках, получили 10,6%, 8,5% и 7,0% Word Error Rates при размерах словарного запаса от 1200 до 1900 слов.

Если произносить безмолвно, только мимикой, то ошибка всё ещё считается удовлетворительной - 40%, 67%.
Сегодня наткнулся на воскитительный модуль питона, о котором раньше ничего не знал.
docs.python.org/3/library/linecache.html

Linecache позволяет быстро обращаться к произвольным строчкам файлов. Это позволяет не грузить весь 1000000Гб датасет в память и не париться с написанием сложных pytorch Dataset (что я делал весь вчерашний день). Конечно, эта штука будет медленее хорошо реализованного датасета с read buffer и префетчингом, но зато она сильно проще.

Пример использования с просторов формов pytorch:
ссылка

 LazyTextDataset(Dataset):
   def __init__(self, filename):
       self._filename = filename
       self._total_data = 0
       self._total_data = int(subprocess.check_output("wc -l " + filename, shell=True).split()[0])

   def __getitem__(self, idx):
       line = linecache.getline(self._filename, idx + 1)
       csv_line = csv.reader([line])
       return next(csv_line)
     
   def __len__(self):
       return self._total_data
🏆1
NVIDIA Neural Modules: NeMo
https://github.com/NVIDIA/NeMo

Nvidia зарелизили ещё один catalyst обертку для PyTorch, заточенную на nlp и asr ресеч.

Из фишечек:
0) (Вроде бы) достаточно понятная абстракция
1) Куча всякого разного добра, чтобы облегчить жизнь nlp-шникам (например реализация beam search)
2) Интеграция из коробки с apex, pytorch-transformers, YouTokenToMe (bpe токенайзер от команды ВК, который работает за O(n))

Вообще выглядит прикольно, думаю вечерок потыкаться можно.
The #BenderRule: On Naming the Languages We Study and Why It Matters
Ссылка

Мастрид-рекомендация от Рудера для всех, кто занимается nlp.

TL;DR
Do state the name of the language that is being studied, even if it's English. Acknowledging that we are working on a particular language foregrounds the possibility that the techniques may in fact be language specific. Conversely, neglecting to state that the particular data used were in, say, English, gives [a] false veneer of language-independence to the work. (Bender 2011:18)
The Bottom-up Evolution of Representations in the Transformer:
A Study with Machine Translation and Language Modeling Objectives
Voita et al.
arxiv.org/abs/1909.01380

Статья про теоретикоинформационный анализ трансформера при различных способах его тренировки. Сравнивают машинный перевод, языковое моделирование и masked language modelling. Анализ делают с помощью измерения mutual information и PWCCA.

К статье есть отличный блогпост от одного из авторов - Елены Войты из Яндекса
Evolution of Representations in the Transformer
ссылка

TL;DR
1. with the LM objective, as you go from bottom to top layers, information about the past gets lost and predictions about the future get formed;
1. for MLMs, representations initially acquire information about the context around the token, partially forgetting the token identity and producing a more generalized token representation; the token identity then gets recreated at the top layer;
1. for MT, though representations get refined with context, less processing is happening and most information about the word type does not get lost.
Забавное соревнование по 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 - это странное занятиие. Просто нужно делать её довольно хитро.