Notice: file_put_contents(): Write of 1719 bytes failed with errno=28 No space left on device in /var/www/group-telegram/post.php on line 50

Warning: file_put_contents(): Only 12288 of 14007 bytes written, possibly out of free disk space in /var/www/group-telegram/post.php on line 50
gonzo-обзоры ML статей | Telegram Webview: gonzo_ML/176 -
Telegram Group & Telegram Channel
Reformer: The Efficient Transformer
Nikita Kitaev, Łukasz Kaiser, Anselm Levskaya
Статья: https://arxiv.org/abs/2001.04451
Код: https://github.com/google/trax/tree/master/trax/models/reformer

Больше трансформеров, хороших и разных! Łukasz Kaiser, кстати, соавтор оригинальной работы, а также работы про Universal Transformer, да и многого другого по теме (https://scholar.google.ru/citations?hl=en&user=JWmiQR0AAAAJ&sortby=pubdate).

Реформер -- это по сути техническая оптимизация оригинального трансформера, чтобы он занимал меньше памяти и быстрее считался.

Проблема обычного трансформера, что он большой и тяжёлый, плюс сложность механизма внимания квадратичная. Из-за всего этого обучать трансформеры (особенно на длинных последовательностях) становится невозможно без кластера. И даже файнтюнить не всегда можно на одном GPU.

Например, в одной из больших конфигураций трансформера (не из оригинальной работы, а из более навороченной https://arxiv.org/abs/1811.02084, которая конечно не про типичный трансформер, а скорее про историю типа Мегатрона от Нвидии), число параметров в слое может достигать полумиллиарда. И слоёв таких много.

Плюс для обучения надо сохранять активации, плюс feed-forward слои в трансформере ещё большую размерность эмбеддингов имеют.

Соответственно в работе предлагаются три техники для облегчения этих проблем.

1. Reversible layers по типу как здесь https://arxiv.org/abs/1707.04585. Позволяют сократить на хранении активаций в N раз (N -- число слоёв).

2. Работа с активациями feed-forward слоёв блоками уменьшает потребление памяти ff-слоями.

3. Приближённое вычисление внимания через механизм Locality-sensitive hashing (LSH) сокращает сложность в этом месте с квадратичной O(L^2) до O(L*logL) (L -- размер последовательности).

Из всего этого самое интересное, кажется, LSH. Идея которого в том, что, во-первых, в расчёте внимания есть softmax, а в нём доминируют обычно несколько больших (наиболее близких к исходному) элементов. Так что достаточно считать его на этих самых наиболее близких. И, во-вторых, чтобы попроще найти эти наиболее близкие, надо использовать LSH, который сразу и положит их в один бакет. Так что включаем LSH и работаем только внутри бакета. На потенциальные промахи забиваем.

В чём-то идейно похоже на Sparse Transformer от OpenAI, только через LSH.

В экспериментах показывается, что всё это добро не ухудшает качество трансформера.

Query и Keys в трансформере можно считать одной матрицей, а не раздельными. Это ок, хуже не становится (иногда даже чуть лучше).

Обратимые слои тоже ок, тоже хуже не становится.

LSH делает чуть хуже, если хешей мало (скажем 2), но если сделать их побольше (8 или 16), то в целом тоже ок.

Ну и профит.

Если взглянуть шире, то за последнее время накопилось несколько интересных улучшений, которые выглядят ортогональными друг другу. Я бы занёс сюда:
* ALBERT (или как альтернатива ему Universal Transformer) от Гугла
* Compressive Transformer (как более продвинутый вариант Transformer-XL) от DeepMind
* Adaptive attention span от Фейсбука
* Ещё были оптимизации от Фейсбука про All-attention layer (https://ai.facebook.com/blog/making-transformer-networks-simpler-and-more-efficient/)
* Reformer вот теперь
* Наверное, если подумать, ещё что-то можно сюда добавить.

Коммьюнити ждёт своих героев, которые [имеют под рукой кластер или суперпомпьютер и] соберут все эти улучшения вместе и создатут новый супер-трансформер, а потом сделают на нём новый супер-BERT и супер-GPT2.

А если ещё это всё отдистиллировать…

Ам!



group-telegram.com/gonzo_ML/176
Create:
Last Update:

Reformer: The Efficient Transformer
Nikita Kitaev, Łukasz Kaiser, Anselm Levskaya
Статья: https://arxiv.org/abs/2001.04451
Код: https://github.com/google/trax/tree/master/trax/models/reformer

Больше трансформеров, хороших и разных! Łukasz Kaiser, кстати, соавтор оригинальной работы, а также работы про Universal Transformer, да и многого другого по теме (https://scholar.google.ru/citations?hl=en&user=JWmiQR0AAAAJ&sortby=pubdate).

Реформер -- это по сути техническая оптимизация оригинального трансформера, чтобы он занимал меньше памяти и быстрее считался.

Проблема обычного трансформера, что он большой и тяжёлый, плюс сложность механизма внимания квадратичная. Из-за всего этого обучать трансформеры (особенно на длинных последовательностях) становится невозможно без кластера. И даже файнтюнить не всегда можно на одном GPU.

Например, в одной из больших конфигураций трансформера (не из оригинальной работы, а из более навороченной https://arxiv.org/abs/1811.02084, которая конечно не про типичный трансформер, а скорее про историю типа Мегатрона от Нвидии), число параметров в слое может достигать полумиллиарда. И слоёв таких много.

Плюс для обучения надо сохранять активации, плюс feed-forward слои в трансформере ещё большую размерность эмбеддингов имеют.

Соответственно в работе предлагаются три техники для облегчения этих проблем.

1. Reversible layers по типу как здесь https://arxiv.org/abs/1707.04585. Позволяют сократить на хранении активаций в N раз (N -- число слоёв).

2. Работа с активациями feed-forward слоёв блоками уменьшает потребление памяти ff-слоями.

3. Приближённое вычисление внимания через механизм Locality-sensitive hashing (LSH) сокращает сложность в этом месте с квадратичной O(L^2) до O(L*logL) (L -- размер последовательности).

Из всего этого самое интересное, кажется, LSH. Идея которого в том, что, во-первых, в расчёте внимания есть softmax, а в нём доминируют обычно несколько больших (наиболее близких к исходному) элементов. Так что достаточно считать его на этих самых наиболее близких. И, во-вторых, чтобы попроще найти эти наиболее близкие, надо использовать LSH, который сразу и положит их в один бакет. Так что включаем LSH и работаем только внутри бакета. На потенциальные промахи забиваем.

В чём-то идейно похоже на Sparse Transformer от OpenAI, только через LSH.

В экспериментах показывается, что всё это добро не ухудшает качество трансформера.

Query и Keys в трансформере можно считать одной матрицей, а не раздельными. Это ок, хуже не становится (иногда даже чуть лучше).

Обратимые слои тоже ок, тоже хуже не становится.

LSH делает чуть хуже, если хешей мало (скажем 2), но если сделать их побольше (8 или 16), то в целом тоже ок.

Ну и профит.

Если взглянуть шире, то за последнее время накопилось несколько интересных улучшений, которые выглядят ортогональными друг другу. Я бы занёс сюда:
* ALBERT (или как альтернатива ему Universal Transformer) от Гугла
* Compressive Transformer (как более продвинутый вариант Transformer-XL) от DeepMind
* Adaptive attention span от Фейсбука
* Ещё были оптимизации от Фейсбука про All-attention layer (https://ai.facebook.com/blog/making-transformer-networks-simpler-and-more-efficient/)
* Reformer вот теперь
* Наверное, если подумать, ещё что-то можно сюда добавить.

Коммьюнити ждёт своих героев, которые [имеют под рукой кластер или суперпомпьютер и] соберут все эти улучшения вместе и создатут новый супер-трансформер, а потом сделают на нём новый супер-BERT и супер-GPT2.

А если ещё это всё отдистиллировать…

Ам!

BY gonzo-обзоры ML статей




Share with your friend now:
group-telegram.com/gonzo_ML/176

View MORE
Open in Telegram


Telegram | DID YOU KNOW?

Date: |

The regulator said it has been undertaking several campaigns to educate the investors to be vigilant while taking investment decisions based on stock tips. Lastly, the web previews of t.me links have been given a new look, adding chat backgrounds and design elements from the fully-features Telegram Web client. "Someone posing as a Ukrainian citizen just joins the chat and starts spreading misinformation, or gathers data, like the location of shelters," Tsekhanovska said, noting how false messages have urged Ukrainians to turn off their phones at a specific time of night, citing cybersafety. Oleksandra Matviichuk, a Kyiv-based lawyer and head of the Center for Civil Liberties, called Durov’s position "very weak," and urged concrete improvements. On February 27th, Durov posted that Channels were becoming a source of unverified information and that the company lacks the ability to check on their veracity. He urged users to be mistrustful of the things shared on Channels, and initially threatened to block the feature in the countries involved for the length of the war, saying that he didn’t want Telegram to be used to aggravate conflict or incite ethnic hatred. He did, however, walk back this plan when it became clear that they had also become a vital communications tool for Ukrainian officials and citizens to help coordinate their resistance and evacuations.
from no


Telegram gonzo-обзоры ML статей
FROM American