Poor Man’s BERT — Exploring Pruning as an Alternative to Knowledge Distillation. Как получить маленький берт из большого забесплатно (без дистилляции)? Убрать несколько верхних слоёв. Как до этого дошли и что ещё пробовали описано в посте и в статье.
Medium
Poor Man’s BERT — Exploring Pruning as an Alternative to Knowledge Distillation
Exploring the simple approach to model compression
Тут в Стенфорде выяснили, что 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.
От себя хочу добавить, что вижу всё больше расхождений интуитивных представлений из лингвистики и реального мира. Так что не бойтесь пробовать ваши идеи даже если они не кажутся лингвистически корректными.
От авторов:
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.
От себя хочу добавить, что вижу всё больше расхождений интуитивных представлений из лингвистики и реального мира. Так что не бойтесь пробовать ваши идеи даже если они не кажутся лингвистически корректными.
Forwarded from Pavel S
Intento_TAUS_Benchmark_Jul_2020.pdf
8.6 MB
Привет всем!
Вышел новый 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
Вышел новый 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
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) работает на многих задачах.
Статья не самая простая, но там очень много интересных вещей, которые сложно запихать в короткий обзор. Советую почитать.
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) работает на многих задачах.
Статья не самая простая, но там очень много интересных вещей, которые сложно запихать в короткий обзор. Советую почитать.
В 🤗 добавили zero-shot classifier на основе обученной на MNLI модели.
Идея взята из статьи Yin et al. и заключается в том, что вы задаёте модельке вопросы вида "эта статья очень интересная", "позитивный отзыв" и она должна выдать согласуются эти два утверждения или нет. Чем мне этот подход нравится это то, что вы сами можете явно указать сет ваших ожидаемых классов, а не как в кластеризации / LDA.
Из статьи я не понял, насколько хорошо этот подход работает, но чего-то что можно запихать даже в маленький прод я бы не ожидал. Но для личных проектов или для какой-то первоначальной грязной разметки на которой вы предтренируете модель, после чего файнтюните её на своих supervised-данных почему бы и нет? Тем более это работает в 3 строчки кода:
Ссылки:
1. Блог
1. Демо
1. Колаб
Идея взята из статьи 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. Колаб
Twitter
Hugging Face
No labeled data? No problem. The 🤗 Transformers master branch now includes a built-in pipeline for zero-shot text classification, to be included in the next release. Try it out in the notebook here: https://t.co/31Z6LR1NjK https://t.co/IugPUj3sa1
Andrej Karpathy опубликовал мега простую минимальную имплементацию языковой модели на трансформерах. Подобной штуки очень не хватало как для того, чтобы учить трансформер, так и для того, чтобы по быстрому поиграться с легковесной нейронной языковой моделькой (а не с 20000 строк кода в fairseq).
Очень советую посмотреть на код, может быть даже вдумчиво почитать. Хоть код и не идеален, он очень приятно читается.
И, кстати, вы тоже можете написать что-то подобное. Есть очень много областей, которые покрыты либо тяжёлыми фреймворками, либо низкокачественными случайными репозиториями с миллионом ноутбуков.
https://github.com/karpathy/minGPT
Очень советую посмотреть на код, может быть даже вдумчиво почитать. Хоть код и не идеален, он очень приятно читается.
И, кстати, вы тоже можете написать что-то подобное. Есть очень много областей, которые покрыты либо тяжёлыми фреймворками, либо низкокачественными случайными репозиториями с миллионом ноутбуков.
https://github.com/karpathy/minGPT
GitHub
GitHub - karpathy/minGPT: A minimal PyTorch re-implementation of the OpenAI GPT (Generative Pretrained Transformer) training
A minimal PyTorch re-implementation of the OpenAI GPT (Generative Pretrained Transformer) training - karpathy/minGPT
Forwarded from addmeto
Небольшой фантастический рассказ, в котором часть текста и диалог в конце написаны нейронкой GPT-3. Отдельно оцените по краям общение Автора и нейронки, по ней хорошо видно, что она неплохо поддерживает диалог на базе того что написано.
Очень, очень красивый эксперимент, показывающий как в ближайшем будущем будет работать парное написание текстов, ИИ и живой человек вместе дают результат намного лучше, чем каждый из них поотдельности https://jamesyu.org/singular/
Очень, очень красивый эксперимент, показывающий как в ближайшем будущем будет работать парное написание текстов, ИИ и живой человек вместе дают результат намного лучше, чем каждый из них поотдельности https://jamesyu.org/singular/
jamesyu.org
Singular: Possible Futures of the Singularity in Conversation with GPT-3
Short stories about the singularity written in collaboration with GPT-3.
Forwarded from Towards NLP🇺🇦
Multilingual NLP
Сейчас время начинать (или вспомнить, что забросили) новые учебные курсы. И, если честно, сейчас онлайн курсов невероятное количество и по классическому ML, и по deeplearning, и по NLP. Так, fast.ai перезапустили свой курс по глубокому обучению и, вдобавок, еще и книгу выпустили.
Но меня, если честно, из всего этого изобилия привлек новый курс под названием Multilingual Natural Language Processing. Курс начнется 1 сентября. Здесь самый разнообразный спектр тем — и переходы между простарнствами языков, перевод, разбор фонетической стороны языка. Поэтому, если вы уже устали от базы и классики, стоит обратить внимание.
Сейчас время начинать (или вспомнить, что забросили) новые учебные курсы. И, если честно, сейчас онлайн курсов невероятное количество и по классическому ML, и по deeplearning, и по NLP. Так, fast.ai перезапустили свой курс по глубокому обучению и, вдобавок, еще и книгу выпустили.
Но меня, если честно, из всего этого изобилия привлек новый курс под названием Multilingual Natural Language Processing. Курс начнется 1 сентября. Здесь самый разнообразный спектр тем — и переходы между простарнствами языков, перевод, разбор фонетической стороны языка. Поэтому, если вы уже устали от базы и классики, стоит обратить внимание.
Очередная новость из цикла "в 🤗 добавили"
В этот раз добавили модели PEGASUS, которые до сих пор около-сота по суммаризации. По личным ощущениям, они уже близки к тому, что можно попробовать использовать в реальных задачах.
Кажется, они все для английского, что не очень классно. Но при желании можно хитрыми способами подменить эмбеддинги и пофайнтюнить так, чтобы заработало на другом языке.
твит, модельки, статья
В этот раз добавили модели PEGASUS, которые до сих пор около-сота по суммаризации. По личным ощущениям, они уже близки к тому, что можно попробовать использовать в реальных задачах.
Кажется, они все для английского, что не очень классно. Но при желании можно хитрыми способами подменить эмбеддинги и пофайнтюнить так, чтобы заработало на другом языке.
твит, модельки, статья
Twitter
Sam Shleifer
Excited to release PEGASUS in @huggingface transformers: 12 new SOTA summarization models: https://t.co/gzc414Gjf6 from Google Brain (@GoogleAI) intern @JingqingZX , and colleagues @yaozhaoai, ,Mohammad Saleh, and Peter Liu (@peterjliu). 👇
Рекомендуемый метод файнюнинга на новые языки. В статье файнтюнили берт на другой язык за 1-2 дня. Не вижу причины, почему бы пегасус не заработал.
Forwarded from DL in NLP (nlpcontroller_bot)
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. Абляционные исследования показывают, что инициализация критически важна.
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. Абляционные исследования показывают, что инициализация критически важна.
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 токенов, при этом благодаря синусоидальным эмбеддингам обученная моделька вполне себе раборает с более длинными текстами
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 токенов, при этом благодаря синусоидальным эмбеддингам обученная моделька вполне себе раборает с более длинными текстами
Forwarded from DeepPavlov notifications
Всем привет!
Как вы могли знать, команда лаборатории участвовала в конкурсе Amazon Alexa Prize. Сейчас мы готовим аналог SocialBot только со своими графами, классификаторами и т.д. и приглашаем вас пообщаться с нашим ботом. Мы очень хотим услышать 🙏 вашу обратную связь.
Тестировать можно через Telegram или beta website. А оставить фидбек можно в канале private discussion group. Нам важен каждый диалог 🙏
P.s пожалуйста, не делитесь ни с кем ссылкой, потому что это пока бета-релиз.
Как вы могли знать, команда лаборатории участвовала в конкурсе Amazon Alexa Prize. Сейчас мы готовим аналог SocialBot только со своими графами, классификаторами и т.д. и приглашаем вас пообщаться с нашим ботом. Мы очень хотим услышать 🙏 вашу обратную связь.
Тестировать можно через Telegram или beta website. А оставить фидбек можно в канале private discussion group. Нам важен каждый диалог 🙏
P.s пожалуйста, не делитесь ни с кем ссылкой, потому что это пока бета-релиз.
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 слоёв).
Что это означает: рандомные нейросети извлекают не самые плохие фичи, а так же что управлять распределением этих фичей очень важно.
Frankle et al. [FAIR]
arxiv.org/abs/2003.00152
Не совсем про NLP, но довольно безумные результаты, что всегда интересно. Мы все знаем про BatchNorm и что он классый. Что он делает, это меняет среднее и дисперсию своего инпута. Эти два вектора - как изменится средние и дисперсия в каждом канале - тренируемые и лично меня их наличие всегда сбивало с толка.
Теперь они сбивают меня с толка ещё сильнее. В статье показвыают, что если в ResNet тренировать только параметры BatchNorm, она вполне себе неплохо работает. В смысле, конечно, плохо. Но на CIFAR и ImageNet гораздо лучше случайного классификатора. И гораздо лучше, чем если тренировать такое же число каких-то других параметров сети либо если тренировать только финальный линейный слой. Эффект заметнее на более глубоких сетках (>50 слоёв).
Что это означает: рандомные нейросети извлекают не самые плохие фичи, а так же что управлять распределением этих фичей очень важно.