Почему рекуррентные нейронные сети могут работать параллельно: трюк с обобщением фрагментов данны...
Простое объяснение на доске для начинающих, почему некоторые современные модели в стиле RNN могут быть распараллелены. Ключевая идея: рекуррентность по-прежнему причинно-следственная, но блоки шагов можно суммировать в виде аффинных отображений: S_out = M × S_in + B Как только каждый блок становится небольшой суммирующей парой (M, B), мы можем объединять блоки с помощью ассоциативного правила и использовать параллельное префиксное сканирование, аналогичное префиксным суммам. Основано на этих заметках: https://zhiyuan1i.github.io/posts/kda-mathematics/ https://zhiyuan1i.github.io/posts/dplr-mathematics/ Главы: 0:00 Почему RNN может работать параллельно? Мотивация RNN и RWKV 0:28 Один шаг — это небольшая функция 0:59 Блок становится одной большой функцией 1:22 Аффинные отображения чисто компонуются 1:54 Правило слияния ассоциативно 2:20 Простейший случай: внешние произведения и накопление в стиле RWKV 2:49 KDA: Остатки зависят от старого состояния 3:20 DPLR: Явное отображение перехода 3:51 Контекстный параллелизм: вычисления до того, как вы узнаете состояние 4:19 Что такое параллелизм, а что нет? 4:43 Ментальная модель для RNN, RWKV и параллельного сканирования
Название:
Почему рекуррентные нейронные сети могут работать параллельно: трюк с обобщением фрагментов данны...
Категория:
Разное