Выбор ответа Senior Attention и трансформеры спрашивают часто обновлено

Сложность attention

Вопрос

Какова сложность self-attention по длине последовательности n и что это значит на практике?

Попробуйте сами

Выберите вариант, и откроется разбор.

Показать ответ и разбор

Коротко

Правильный ответ: O(n²·d) по времени и O(n²) по памяти: удвоение контекста учетверяет матрицу. QKᵀ это n×n скалярных произведений длины d.

Варианты ответа

  1. O(n²·d) по времени и O(n²) по памяти: удвоение контекста учетверяет матрицуправильный ответ
  2. O(n·d), как у RNN, потому что каждый токен обрабатывается один раз
  3. O(n·log n) благодаря softmax, который нормирует веса только по top-k ключам
  4. O(n³) из-за умножения матриц n×n на каждом из n шагов генерации

Разбор

QKᵀ это n×n скалярных произведений длины d. Поэтому длинный контекст дорог. FlashAttention не меняет асимптотику вычислений, но не материализует матрицу n×n в памяти GPU и сильно ускоряет. Для длинных контекстов есть разреженный, скользящий и линейный attention.

  • Линейную сложность имеют RNN и SSM.
  • softmax логарифма не даёт.
  • Кубической зависимости по n нет.

Ответьте сами, а не прочитайте

В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.

Термины по теме