Repolode
Dao-AILab

Dao-AILab/flash-attention

Официальная реализация FlashAttention — точного и экономного по памяти attention-ядра для обучения и инференса Transformer-моделей на GPU.

Звёзды
25,163
Форки
3,175
Открытые issues
1,382
Последний коммит
12 часов назад

Что это?

FlashAttention — точная реализация attention для Transformer-моделей, которая снижает расход памяти GPU и ускоряет вычисление attention. Стандартному attention требуется память, объём которой квадратично зависит от длины последовательности; FlashAttention вычисляет тот же результат, используя память, объём которой растёт линейно. Благодаря этому на GPU помещаются гораздо более длинные последовательности.

В репозитории есть FlashAttention-2 для NVIDIA CUDA (GPU Ampere, Ada и Hopper) и AMD ROCm, а также FlashAttention-3 для GPU Hopper и FlashAttention-4, написанный на CuTeDSL для GPU Hopper и Blackwell. Основные функции Python поддерживают стандартный attention, attention для последовательностей переменной длины, упакованные QKV и инференс с KV-кэшем, а также причинные маски, attention со скользящим окном, ALiBi, MQA/GQA, dropout и softcapping.

Пакет устанавливается через pip и требует PyTorch и CUDA или ROCm toolkit. Основная поддерживаемая платформа — Linux.

Ключевые возможности

  • 01Вычисляет точный attention, используя память, объём которой линейно зависит от длины последовательности.
  • 02Поддерживает причинные маски, локальный attention со скользящим окном и ALiBi.
  • 03Реализует MQA и GQA с помощью KV-тензоров, в которых голов меньше, чем в Q.
  • 04Включает постраничный KV-кэш и обновление KV-кэша на месте для инкрементального декодирования.
  • 05Предлагает сборки CUDA для GPU NVIDIA, а также бэкенды Triton и CK для GPU AMD.

Сценарии использования

  • Обучение крупных языковых Transformer-моделей на длинных последовательностях с GPU NVIDIA A100 или H100.
  • Инференс LLM с инкрементальным декодированием и постраничным KV-кэшем.
  • Выполнение attention на GPU AMD Instinct через бэкенды ROCm.

Быстрый старт

  1. 1

    Установите необходимые для сборки пакеты: packaging, psutil и ninja

  2. 2

    Установите FlashAttention из PyPI

    pip install flash-attn --no-build-isolation

Что важно знать

  • Официальная поддержка предоставляется только для Linux; сборка в Windows недостаточно протестирована.
  • Требуется набор инструментов CUDA или ROCm и совместимый GPU, например Ampere, Ada или Hopper для CUDA.
  • Сборка из исходного кода может быть медленной и требовать много памяти, если не использовать ninja и не ограничить число параллельных задач.

Темы

Частые вопросы

Что такое flash-attention?
Официальная реализация FlashAttention — точного и экономного по памяти attention-ядра для обучения и инференса Transformer-моделей на GPU. FlashAttention — точная реализация attention для Transformer-моделей, которая снижает расход памяти GPU и ускоряет вычисление attention. Стандартному attention требуется память, объём которой квадратично зависит от длины последовательности; FlashAttention вычисляет тот же результат, используя память, объём которой растёт линейно. Благодаря этому на GPU помещаются гораздо более длинные последовательности.
flash-attention можно использовать бесплатно? Какая у него лицензия?
flash-attention распространяется с открытым исходным кодом под лицензией BSD-3-Clause. Перед использованием в коммерческих продуктах проверьте условия лицензии.
flash-attention всё ещё поддерживается?
Активно поддерживается. Последний коммит в flash-attention — 20 окт. 2026 г..
Для чего можно использовать flash-attention?
Обучение крупных языковых Transformer-моделей на длинных последовательностях с GPU NVIDIA A100 или H100. Инференс LLM с инкрементальным декодированием и постраничным KV-кэшем. Выполнение attention на GPU AMD Instinct через бэкенды ROCm.
Как установить flash-attention?
Установите необходимые для сборки пакеты: packaging, psutil и ninja Установите FlashAttention из PyPI: pip install flash-attn --no-build-isolation
Где скачать flash-attention?
Исходный код и инструкции по установке — на GitHub: https://github.com/Dao-AILab/flash-attention

Описание создано ИИ на основе README проекта. Статистика GitHub обновляется ежедневно.

Похожие проекты

Минималистичный, удобный для модификации инструментарий для полного цикла работы с LLM — от токенизации и предобучения до дообучения, оценки и чата; запускается на одном узле с GPU.

58,8 тыс.8,2 тыс.PythonMITОбновлён в прошлом месяце