Size: a a a

2020 July 27
DL in NLP
Poor Man’s BERT — Exploring Pruning as an Alternative to Knowledge Distillation. Как получить маленький берт из большого забесплатно (без дистилляции)? Убрать несколько верхних слоёв. Как до этого дошли и что ещё пробовали описано в посте и в статье.
источник
2020 July 28
DL in NLP
Тут в Стенфорде выяснили, что self-attention не классный. Точнее, доказали что при фиксированном числе слоёв (как мы его обычно и используем) он не может в простые формальные языки. Например, в детекцию четное или нечётное число какого-то токена есть у него на входе или в проверку валидности скобок.

От авторов:
These limitations seem surprising given the practical success of self-attention and the prominent role assigned to hierarchical structure in linguistics, suggesting that natural language can be approximated well with models that are too weak for the formal languages typically assumed in theoretical linguistics.

От себя хочу добавить, что вижу всё больше расхождений интуитивных представлений из лингвистики и реального мира. Так что не бойтесь пробовать ваши идеи даже если они не кажутся лингвистически корректными.
источник
DL in NLP
источник
2020 July 31
DL in NLP
Переслано от Pavel S
Привет всем!
Вышел новый evaluation report по оценке сервисов машинного перевода.

tl;dr:
* Репорт нацелен больше на людей из локализации
* 15 MT Engines, 14 Language Pairs, 16 Industry Sectors, 8 Content Types
* Отказываемся от BLEU для оценки перевода [1]
* Основная метрика BERTscore [2]
* На почти на всех парах лидирует: Amazon / Systran PNMT
* На паре en-ru: SDL BeGlobal, ModernMT, Google, Amazon
* Best MT per Industry Sector - slide 25
* Best MT per Content Type - slide 29
* Почему не WMT датасеты? Ответ: Есть очень хитрые провайдеры :)
* Чуть позже выйдет репорт про COVID (healthcare) + показана работа Human Linguistic Quality Analysis
источник
2020 August 10
DL in NLP
The Lottery Ticket Hypothesis for Pre-trained BERT Networks
Chen et al.
arxiv.org/abs/2007.12223

TL;DR
BERT-инициализация упрощает нахождение билетов (вплоть до 90% sparsity), при этом билеты для одних задач обычно не работают для других. Исключение составляет MLM.

Подробнее:

Lottery ticket hypothesis - это очень интересная штука, которая заключается в том, что в инициализации большой нейросетки содержится маленькая подсеть, которая тренируема до качества всей сети. Другим языком - гипотетически, можно натренировать GPT-3 не с 160B параметров, а с, условно 16B (уменьшение параметров на 90%). Вопрос лишь в том, как инициализировать. Подсеть и инициализация, которые достигает качества полной сети называются winning ticket.

На данный момент эту гипотезу уже неплохо протестировали в задачах CV (sparsity 80%), но в NLP и конкретно в трансформерах результаты пока не такие впечатляющие (sparsity 20-40%).

В новой статье авторы исследуют эту гипотезу с BERT-инициализацией. Основные результаты такие: на каждой отдельной таске находят winning tickets с разреженностью от 40% (SQUAD) до 90% (QQP и WNLI). При этом эти билеты не трансферятся между прикладными задачами (нельзя использовать билет SQUAD для QQP и наоборот). Но winning ticket для MLM (70% sparsity) работает на многих задачах.

Статья не самая простая, но там очень много интересных вещей, которые сложно запихать в короткий обзор. Советую почитать.
источник
DL in NLP
источник
2020 August 12
DL in NLP
В 🤗 добавили zero-shot classifier на основе обученной на MNLI модели.
Идея взята из статьи Yin et al. и заключается в том, что вы задаёте модельке вопросы вида "эта статья очень интересная", "позитивный отзыв" и она должна выдать согласуются эти два утверждения или нет. Чем мне этот подход нравится это то, что вы сами можете явно указать сет ваших ожидаемых классов, а не как в кластеризации / LDA.

Из статьи я не понял, насколько хорошо этот подход работает, но чего-то что можно запихать даже в маленький прод я бы не ожидал. Но для личных проектов или для какой-то первоначальной грязной разметки на которой вы предтренируете модель, после чего файнтюните её на своих supervised-данных почему бы и нет? Тем более это работает в 3 строчки кода:

from transformers import pipeline
clf = pipeline('zero-shot-classification')

prediction = clf(sequences="zero-shot is awesome!", candidate_labels=["positive", "negative"])


Ссылки:
1. Блог
1. Демо
1. Колаб
источник
2020 August 18
DL in NLP
Andrej Karpathy опубликовал мега простую минимальную имплементацию языковой модели на трансформерах. Подобной штуки очень не хватало как для того, чтобы учить трансформер, так и для того, чтобы по быстрому поиграться с легковесной нейронной языковой моделькой (а не с 20000 строк кода в fairseq).
Очень советую посмотреть на код, может быть даже вдумчиво почитать. Хоть код и не идеален, он очень приятно читается.

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

https://github.com/karpathy/minGPT
источник
2020 August 21
DL in NLP
Небольшой фантастический рассказ, в котором часть текста и диалог в конце написаны нейронкой GPT-3. Отдельно оцените по краям общение Автора и нейронки, по ней хорошо видно, что она неплохо поддерживает диалог на базе того что написано.

Очень, очень красивый эксперимент, показывающий как в ближайшем будущем будет работать парное написание текстов, ИИ и живой человек вместе дают результат намного лучше, чем каждый из них поотдельности https://jamesyu.org/singular/
источник
2020 August 25
DL in NLP
Multilingual NLP

Сейчас время начинать (или вспомнить, что забросили) новые учебные курсы. И, если честно, сейчас онлайн курсов невероятное количество и по классическому ML, и по deeplearning, и по NLP. Так, fast.ai перезапустили свой курс по глубокому обучению и, вдобавок, еще и книгу выпустили.

Но меня, если честно, из всего этого изобилия привлек новый курс под названием Multilingual Natural Language Processing. Курс начнется 1 сентября. Здесь самый разнообразный спектр тем — и переходы между простарнствами языков, перевод, разбор фонетической стороны языка. Поэтому, если вы уже устали от базы и классики, стоит обратить внимание.
источник
DL in NLP
Очередная новость из цикла "в 🤗 добавили"

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

твит, модельки, статья
источник
DL in NLP
источник
DL in NLP
Рекомендуемый метод файнюнинга на новые языки. В статье файнтюнили берт на другой язык за 1-2 дня. Не вижу причины, почему бы пегасус не заработал.
источник
DL in NLP
From English To Foreign Languages: Transferring Pre-trained Language Models
Tran [Amazon Alexa AI]
arxiv.org/abs/2002.07306

Когда ты видишь статью с одним автором - это либо полный трэш, либо что-то действительно интересное. В случае с этой статьёй:
With a single GPU, our approach can obtain a foreign BERTbase model within a day and a foreign BERTlarge within two days

Основная идея:
1. Инициализировать эмбеддинги нового языка (L2) с помощью эмбеддингов старого языка (L1). Каждый эмбеддинг L2 - это взвешенная сумма некоторых эмбеддингов L1. Веса находят либо с помощью word transition probability (см. статистический MT) либо с помощью unsupervised embedding alignment (см. Artexe 2018)
2. Обучить эмбеддинги BERT на данных L2 (остальные веса заморожены)
3. Обучить BERT на данных L1 + L2

Результаты заметно лучше mBERT на XNLI и немножко лучше на dependency parsing. Абляционные исследования показывают, что инициализация критически важна.
источник
2020 August 26
DL in NLP
PEGASUS: Pre-training with Extracted Gap-sentences for Abstractive Summarization
Zhang et al. [Google], Jul 2020
arxiv.org/abs/1912.08777

В канале, оказывается, не было обзора PEGASUS. Пришло время наверстать упущенное.

В статье предлагают новый метод предтренировки, специально заточенный под суммаризацию - Gap Sentences Generation (GSC). Идея аналогична MLM/BART и прочим, но вот ключевые отличия: один MASK токен маскирует целое предложение; генерируется только замаскированное предложение, а не весь текст; предложение для маскирования выбирается с учётом функции важности согласно ROUGE1-F1.

Результат: 12 сот

Самая лучшая из моделек в статье обучалась на два objective: MLM и GSC на корпусе из новостных текстов размером в 3.8TB 😮
Из интересных подробностей:
1. Синусоидальные позиционнные эмбеддинги, вместо обучаемых
1. Adafactor вместо ADAM
1. Unigram-токенизация вместо BPE
1. Батч 8129
1. Максимальная длина текста 512 токенов, при этом благодаря синусоидальным эмбеддингам обученная моделька вполне себе раборает с более длинными текстами
источник
DL in NLP
источник
DL in NLP
Всем привет!
Как вы могли знать, команда лаборатории участвовала в конкурсе Amazon Alexa Prize. Сейчас мы готовим аналог SocialBot только со своими графами, классификаторами и т.д. и приглашаем вас пообщаться с нашим ботом. Мы очень хотим услышать 🙏 вашу обратную связь.
Тестировать можно через Telegram или beta website. А оставить фидбек можно в канале private discussion group. Нам важен каждый диалог 🙏

P.s пожалуйста, не делитесь ни с кем ссылкой, потому что это пока бета-релиз.
источник
2020 August 30
DL in NLP
Training BatchNorm and Only BatchNorm: On the Expressivity of Random Features in CNNs
Frankle et al. [FAIR]
arxiv.org/abs/2003.00152

Не совсем про NLP, но довольно безумные результаты, что всегда интересно. Мы все знаем про BatchNorm и что он классый. Что он делает, это меняет среднее и дисперсию своего инпута. Эти два вектора - как изменится средние и дисперсия в каждом канале - тренируемые и лично меня их наличие всегда сбивало с толка.

Теперь они сбивают меня с толка ещё сильнее. В статье показвыают, что если в ResNet тренировать только параметры BatchNorm, она вполне себе неплохо работает. В смысле, конечно, плохо. Но на CIFAR и ImageNet гораздо лучше случайного классификатора. И гораздо лучше, чем если тренировать такое же число каких-то других параметров сети либо если тренировать только финальный линейный слой. Эффект заметнее на более глубоких сетках (>50 слоёв).

Что это означает: рандомные нейросети извлекают не самые плохие фичи, а так же что управлять распределением этих фичей очень важно.
источник
DL in NLP
BatchNorm - тренируем только gamma и beta, 2 Random Params Per Channel - тренируем по два параметра в каждом слое (и канале), Output - тренируем только последний линейный слой
источник
DL in NLP
Ещё одна классная картинка. На ней видно, что BatchNorm выступает в роли селектора фичей. Много какие просто зануляются.
источник