Telegram Group & Telegram Channel
RWKV: Reinventing RNNs for the Transformer Era
Bo Peng, Eric Alcaide, Quentin Anthony, Alon Albalak, Samuel Arcadinho, Huanqi Cao, Xin Cheng, Michael Chung, Matteo Grella, Kranthi Kiran GV, Xuzheng He, Haowen Hou, Przemyslaw Kazienko, Jan Kocon, Jiaming Kong, Bartlomiej Koptyra, Hayden Lau, Krishna Sri Ipsit Mantri, Ferdinand Mom, Atsushi Saito, Xiangru Tang, Bolun Wang, Johan S. Wind, Stansilaw Wozniak, Ruichong Zhang, Zhenyuan Zhang, Qihang Zhao, Peng Zhou, Jian Zhu, Rui-Jie Zhu
Статья: https://arxiv.org/abs/2305.13048
Код: https://github.com/BlinkDL/RWKV-LM
Модели: https://huggingface.co/BlinkDL
Посты с описанием: https://johanwind.github.io/2023/03/23/rwkv_overview.html, https://johanwind.github.io/2023/03/23/rwkv_details.html

Давно хотелось написать про эту работу, которая долгое время существовала исключительно практически как народный проект в виде репы на гитхабе. И вот в мае 2023 года авторы наконец засабмитили статью на архив.

Работа продолжает традицию развития рекуррентных или шире нетрансформерных архитектур, про которые мы тут любим писать, хоть и делаем это не так часто как хотелось бы. Среди последних интересных архитектур были S4 (https://www.group-telegram.com/kr/gonzo_ML.com/1424) и LEM (https://www.group-telegram.com/kr/gonzo_ML.com/857). А на очереди ещё много всего интересного.

С трансформерами в целом всё хорошо кроме пресловутого квадратичного (от длины последовательности) внимания. Было много многообещающих работ про оптимизированные механизмы вплоть до линейных, но почему-то в массы они так и не пошли, что интересно. У рекуррентных сетей обычно сложность линейная, но хуже перформанс, потому что параллелятся и скейлятся они плохо (а ещё сложности с затухающими градиентами). Есть ещё шустрые свёрточные, но они больше нацелены на поиск локальных паттернов, а на больших длинах им сложно. Текущая работа предлагает новую архитектуру под названием Receptance Weighted Key Value (RWKV), обладающую достоинствами и хорошей параллелизации трансформеров, и эффективного инференса рекуррентных сетей.

Как этого добились? Рациональный дизайн!

По сути, авторы предлагают новый механизм внимания, вдохновлённый Attention Free Transformer (AFT, https://arxiv.org/abs/2105.14103, работа команды из Apple). Традиционное трансформерное QKV (query, key и value) заменяется на RWKV, где K и V -- те же самые, R -- Receptance vector отвечающий за принятие прошлой информации, а W -- это обучаемый вес (Weight) затухающий в зависимости от позиции.

Как и обычный трансформер, RWKV состоит из состыкованных блоков c residual connection, внутри которых time-mixing и channel-mixing подблоки с рекуррентностями.

В time-mixing блоке входной сигнал (эмбеддинги) x преобразуется в набор r, k и v через линейную интерполяцию текущего входа и предыдущего, и проекцию через соответствующие матрицы W_r, W_k, W_v. Например, для k формула выглядит так:

k_t = W_k * (µ_k*x_t + (1 − µ_k)*x_{t−1}), для r и v аналогично.

Такая интерполяция текущего и предыдущего входов называется time-shift mixing в time-mixing блоке и token shift в channel-mixing блоке.

Дальше вычисляется WKV, аналог QKV внимания в традиционном трансформере. В QKV веса внимания для v считались как q_i*k_j/sqrt(d), а здесь как -(t-1-i)*w+k_i. W — это обучаемый channel-wise вектор, умноженный на относительную позицию токена. Есть ещё дополнительный вектор U, введённый чтобы отдельно обращать внимание на текущий токен t, это сделано для борьбы с потенциальной дегенерацией W. От всего этого берётся softmax. При увеличении длины последовательности (времени t) в получающуюся взвешенную сумму входит всё больше элементов. Квадратичной сложности от умножения здесь нет. Затем полученный wkv поэлементно умножается на гейтирующую функцию (сигмоиду) от r (receptance). Для wkv реализовали свой кастомный CUDA кернел.

Блок channel-mixing попроще. Там аналогичным образом считаются r_t и k_t. От k_t берётся квадрат ReLU и делается проекция через матрицу W_v (которая как бы для v, value, а само v при этом не используется — вот этот момент я недопонял, почему именно так, видимо это и есть channel mixing?). И дальше так же сигмоида от r.



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

RWKV: Reinventing RNNs for the Transformer Era
Bo Peng, Eric Alcaide, Quentin Anthony, Alon Albalak, Samuel Arcadinho, Huanqi Cao, Xin Cheng, Michael Chung, Matteo Grella, Kranthi Kiran GV, Xuzheng He, Haowen Hou, Przemyslaw Kazienko, Jan Kocon, Jiaming Kong, Bartlomiej Koptyra, Hayden Lau, Krishna Sri Ipsit Mantri, Ferdinand Mom, Atsushi Saito, Xiangru Tang, Bolun Wang, Johan S. Wind, Stansilaw Wozniak, Ruichong Zhang, Zhenyuan Zhang, Qihang Zhao, Peng Zhou, Jian Zhu, Rui-Jie Zhu
Статья: https://arxiv.org/abs/2305.13048
Код: https://github.com/BlinkDL/RWKV-LM
Модели: https://huggingface.co/BlinkDL
Посты с описанием: https://johanwind.github.io/2023/03/23/rwkv_overview.html, https://johanwind.github.io/2023/03/23/rwkv_details.html

Давно хотелось написать про эту работу, которая долгое время существовала исключительно практически как народный проект в виде репы на гитхабе. И вот в мае 2023 года авторы наконец засабмитили статью на архив.

Работа продолжает традицию развития рекуррентных или шире нетрансформерных архитектур, про которые мы тут любим писать, хоть и делаем это не так часто как хотелось бы. Среди последних интересных архитектур были S4 (https://www.group-telegram.com/kr/gonzo_ML.com/1424) и LEM (https://www.group-telegram.com/kr/gonzo_ML.com/857). А на очереди ещё много всего интересного.

С трансформерами в целом всё хорошо кроме пресловутого квадратичного (от длины последовательности) внимания. Было много многообещающих работ про оптимизированные механизмы вплоть до линейных, но почему-то в массы они так и не пошли, что интересно. У рекуррентных сетей обычно сложность линейная, но хуже перформанс, потому что параллелятся и скейлятся они плохо (а ещё сложности с затухающими градиентами). Есть ещё шустрые свёрточные, но они больше нацелены на поиск локальных паттернов, а на больших длинах им сложно. Текущая работа предлагает новую архитектуру под названием Receptance Weighted Key Value (RWKV), обладающую достоинствами и хорошей параллелизации трансформеров, и эффективного инференса рекуррентных сетей.

Как этого добились? Рациональный дизайн!

По сути, авторы предлагают новый механизм внимания, вдохновлённый Attention Free Transformer (AFT, https://arxiv.org/abs/2105.14103, работа команды из Apple). Традиционное трансформерное QKV (query, key и value) заменяется на RWKV, где K и V -- те же самые, R -- Receptance vector отвечающий за принятие прошлой информации, а W -- это обучаемый вес (Weight) затухающий в зависимости от позиции.

Как и обычный трансформер, RWKV состоит из состыкованных блоков c residual connection, внутри которых time-mixing и channel-mixing подблоки с рекуррентностями.

В time-mixing блоке входной сигнал (эмбеддинги) x преобразуется в набор r, k и v через линейную интерполяцию текущего входа и предыдущего, и проекцию через соответствующие матрицы W_r, W_k, W_v. Например, для k формула выглядит так:

k_t = W_k * (µ_k*x_t + (1 − µ_k)*x_{t−1}), для r и v аналогично.

Такая интерполяция текущего и предыдущего входов называется time-shift mixing в time-mixing блоке и token shift в channel-mixing блоке.

Дальше вычисляется WKV, аналог QKV внимания в традиционном трансформере. В QKV веса внимания для v считались как q_i*k_j/sqrt(d), а здесь как -(t-1-i)*w+k_i. W — это обучаемый channel-wise вектор, умноженный на относительную позицию токена. Есть ещё дополнительный вектор U, введённый чтобы отдельно обращать внимание на текущий токен t, это сделано для борьбы с потенциальной дегенерацией W. От всего этого берётся softmax. При увеличении длины последовательности (времени t) в получающуюся взвешенную сумму входит всё больше элементов. Квадратичной сложности от умножения здесь нет. Затем полученный wkv поэлементно умножается на гейтирующую функцию (сигмоиду) от r (receptance). Для wkv реализовали свой кастомный CUDA кернел.

Блок channel-mixing попроще. Там аналогичным образом считаются r_t и k_t. От k_t берётся квадрат ReLU и делается проекция через матрицу W_v (которая как бы для v, value, а само v при этом не используется — вот этот момент я недопонял, почему именно так, видимо это и есть channel mixing?). И дальше так же сигмоида от r.

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


Warning: Undefined variable $i in /var/www/group-telegram/post.php on line 260

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

View MORE
Open in Telegram


Telegram | DID YOU KNOW?

Date: |

At its heart, Telegram is little more than a messaging app like WhatsApp or Signal. But it also offers open channels that enable a single user, or a group of users, to communicate with large numbers in a method similar to a Twitter account. This has proven to be both a blessing and a curse for Telegram and its users, since these channels can be used for both good and ill. Right now, as Wired reports, the app is a key way for Ukrainians to receive updates from the government during the invasion. READ MORE If you initiate a Secret Chat, however, then these communications are end-to-end encrypted and are tied to the device you are using. That means it’s less convenient to access them across multiple platforms, but you are at far less risk of snooping. Back in the day, Secret Chats received some praise from the EFF, but the fact that its standard system isn’t as secure earned it some criticism. If you’re looking for something that is considered more reliable by privacy advocates, then Signal is the EFF’s preferred platform, although that too is not without some caveats. In addition, Telegram's architecture limits the ability to slow the spread of false information: the lack of a central public feed, and the fact that comments are easily disabled in channels, reduce the space for public pushback.
from kr


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