Фреймворк с определениями современных моделей машинного обучения для текста, изображений, аудио и мультимодальных задач — для обучения и инференса.
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
Установите необходимые для сборки пакеты: packaging, psutil и ninja
- 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 обновляется ежедневно.
Похожие проекты
Библиотека для оптимизации глубокого обучения, упрощающая и ускоряющая распределённое обучение и инференс больших моделей.
SGLang — открытый фреймворк для инференса больших языковых и мультимодальных моделей, а также diffusion-моделей на GPU, TPU и CPU разных платформ.
Быстрая и эффективная по памяти библиотека и сервер для запуска и обслуживания больших языковых моделей через API, совместимый с OpenAI.
Минималистичный, удобный для модификации инструментарий для полного цикла работы с LLM — от токенизации и предобучения до дообучения, оценки и чата; запускается на одном узле с GPU.
Библиотека Python, которая запускает большие языковые модели послойно и позволяет выполнять инференс моделей класса 70B на одной GPU с 4 ГБ памяти без квантования.