глоссарий

FlashAttention

FlashAttention

FlashAttention — это алгоритм вычисления внимания в больших языковых моделях. Он решает главную проблему классического внимания: память растёт квадратично от длины последовательности. Из‑за этого обработка даже 10 тысяч токенов требует десятков миллионов чисел, что часто не помещается в видеокарту. FlashAttention обходит ограничение, делая вычисления экономичными по памяти и заметно быстрее.

Без такого подхода модели с длинным контекстом не могли бы обрабатывать книги, договоры или переписку целиком. FlashAttention позволяет учитывать тысячи и миллионы токенов, сокращает время обучения в разы. Это один из ключевых прорывов, сделавших современные чат‑боты и анализаторы текста быстрее и дешевле.

Как это работает? Обычное внимание сначала сохраняет оценки связи между всеми парами слов, а затем делает финальные расчёты. FlashAttention действует иначе: разбивает данные на блоки, считает частичные результаты и сразу складывает их, переиспользуя память. Это похоже на сложение огромного столбца чисел с калькулятором, который показывает только 10 цифр: вы держите в уме текущий итог и перенос, а не записываете все промежуточные суммы. Так получается точный результат без хранения промежуточных матриц.

Прикладной пример: обработка технической документации на сотни страниц. Классическое внимание потребовало бы слишком много памяти, а FlashAttention позволяет модели прочитать почти весь документ, удерживая ключевые связи между абзацами и находя сквозные противоречия между главами.

Итог: FlashAttention — изящное решение проблемы квадратичной памяти, делающее ИИ мощнее и доступнее. Это пример того, как умная организация вычислений побеждает грубую силу.