avatar
gonzo-обзоры ML статей
@gonzo_ML
05.10.2020 17:50
Linformer: Self-Attention with Linear Complexity
Sinong Wang, Belinda Z. Li, Madian Khabsa, Han Fang, Hao Ma
Статья: https://arxiv.org/abs/2006.04768

Хочется написать про свежий Performer, но пожалуй стоит перед ним написать про Linformer.

Это всё из серии про уменьшить квадратичную сложность полного механизма внимания в трансформере. Линформер, очевидно по названию, уменьшает сложность до линейной и по времени и по месту. За последние полгода таких работ уже несколько, недавний Big Bird (@gonzo_ML381) из свежего, или чуть более ранняя работа с многообещающим названием “Transformers are RNNs” (https://arxiv.org/abs/2006.16236).

Разберём Linformer.

Идея в общем проста — заменим полную матрицу внимания на низкоранговую аппроксимацию. Авторы исходят из наблюдения, что self-attention низкоранговый. Для этого они анализируют спектр матрицы и утверждают, что особенно в верхних слоях, больше информации сконцентрировано в наибольших сингулярных значениях. И грубо говоря, считаем SVD для матрицы внимания и оставляем только k сингулярных значений (например, 128).

SVD только дорого считать на каждый чих, поэтому делаем проще, вводим две линейные проекции для K и V (Q не трогаем) перед расчётом внимания, так что в итоге считать придётся меньше. Оригинальные размерности n*d матрицы ключей и значений конвертятся в k*d и дальше внимание уже скейлится линейно, получается матрица внимания n*k вместо n*n.

Для пущей оптимизации эти матрицы проекций (E и F) можно ещё и пошарить между головами или слоями.

В экспериментах получают для k=128 качество как у трансформера с n=512, а для k=256 сравнимо с n=1024. И шаринг тоже работает, даже если шарить матрицы на все слои (то есть вообще одна матрица E на всю сеть).

Ну в общем работает вроде как, качество норм. Получают качество сравнимое с BERT’ом или RoBERTa, но при в 4 раза меньшем k. Плюс всё получается быстрее и памяти жрёт меньше.
Telegram
gonzo-обзоры ML статей
Big Bird: Transformers for Longer Sequences Manzil Zaheer, Guru Guruganesh, Avinava Dubey, Joshua Ainslie, Chris Alberti, Santiago Ontanon, Philip Pham, Anirudh Ravula, Qifan Wang, Li Yang, Amr Ahmed Статья: https://arxiv.org/abs/2007.14062 Чего-то мы про Big Bird не написали, а это непорядок. Во-первых, потому что это ещё один персонаж Улицы Сезам (следующий полезный трансформер определённо надо назвать Mr. Snuffleupagus, https://muppet.fandom.com/wiki/Mr._Snuffleupagus). Во-вторых, потому что это развитие ETC (https://t.me/gonzo_ML/299) от тех же (в основном) авторов. В двух словах идея такая: сделаем sparse attention таким, чтобы сложность механизма внимания стала линейной. Для этого внимание разбирают на три части: - глобальные токены g (смотрят на всю последовательность полным вниманием) - случайные токены r (ключи, на которые смотрит каждый query) - блок локальных соседей вправо и влево, всего w Если про конкретику, то на задачах QA весь контекст имеет длину 4096 токенов, w=192..252, g=128..430, r=192.…
13 2.3K

Обсуждение 0

Обсуждение не доступно в веб-версии. Чтобы написать комментарий, перейдите в приложение Telegram.

Обсудить в Telegram