Repolode
fla-org

fla-org/flash-linear-attention

Ядра на Triton и готовые к обучению слои для линейного и разреженного внимания, моделей пространства состояний и гибридных архитектур LLM.

Звёзды
5,952
Форки
778
Открытые issues
126
Последний коммит
6 часов назад

Что это?

Flash Linear Attention (fla) — библиотека Python с эффективными на уровне оборудования строительными блоками для моделей последовательностей, которые заменяют стандартное softmax-внимание или дополняют его. В библиотеке есть ядра Triton, готовые слои, такие как GatedDeltaNet, RetNet, GLA и Mamba2, а также совместимые с 🤗 Transformers классы моделей, построенные на их основе. По заявлению проекта, реализации не привязаны к конкретной платформе и проверены на оборудовании NVIDIA, AMD и Intel.

Помимо отдельных слоёв, fla включает объединённые модули, например RMSNorm с gating, fused linear cross entropy и rotary embeddings, призванные снизить расход памяти и ускорить обучение. Гибридные модели могут добавлять слои стандартного внимания в модели с линейным вниманием через аргумент конфигурации, задавая их расположение для каждого слоя. Генерация работает через стандартные API Hugging Face, а предобученные чекпойнты размещены в организации fla-hub.

В репозитории также описан процесс обучения с помощью сопутствующего фреймворка flame, построенного на torchtitan, а ещё приведены скрипты оценки с использованием lm-evaluation-harness и измерения perplexity.

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

  • 01Ядра Triton для линейного и разреженного внимания, а также вариантов моделей пространства состояний.
  • 02Готовые к замене слои смешивания токенов, например MultiScaleRetention, вместо multihead attention.
  • 03Совместимые с Hugging Face Transformers классы моделей с настраиваемыми конфигурациями.
  • 04Гибридные модели, в которые можно добавлять слои стандартного внимания на выбранных уровнях.
  • 05Объединённые модули нормализации, rotary embeddings и cross entropy для снижения расхода памяти и ускорения обучения.
  • 06Дополнительные компоненты для CUDA, ROCm, XPU, Ascend NPU и CPU.

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

  • Замена квадратичного внимания в языковой модели с длинным контекстом на вариант линейного внимания.
  • Предобучение или дообучение LLM со субквадратичной сложностью в стиле рабочего процесса Hugging Face.
  • Эксперименты с гибридными архитектурами, сочетающими внимание и рекуррентные слои.
  • Сравнение скорости ядер линейного внимания на разных GPU.

Темы

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

Что такое flash-linear-attention?
Ядра на Triton и готовые к обучению слои для линейного и разреженного внимания, моделей пространства состояний и гибридных архитектур LLM. Flash Linear Attention (fla) — библиотека Python с эффективными на уровне оборудования строительными блоками для моделей последовательностей, которые заменяют стандартное softmax-внимание или дополняют его. В библиотеке есть ядра Triton, готовые слои, такие как GatedDeltaNet, RetNet, GLA и Mamba2, а также совместимые с 🤗 Transformers классы моделей, построенные на их основе. По заявлению проекта, реализации не привязаны к конкретной платформе и проверены на оборудовании NVIDIA, AMD и Intel.
flash-linear-attention можно использовать бесплатно? Какая у него лицензия?
flash-linear-attention распространяется с открытым исходным кодом под лицензией MIT. Перед использованием в коммерческих продуктах проверьте условия лицензии.
flash-linear-attention всё ещё поддерживается?
Активно поддерживается. Последний коммит в flash-linear-attention — 20 окт. 2026 г..
Для чего можно использовать flash-linear-attention?
Замена квадратичного внимания в языковой модели с длинным контекстом на вариант линейного внимания. Предобучение или дообучение LLM со субквадратичной сложностью в стиле рабочего процесса Hugging Face. Эксперименты с гибридными архитектурами, сочетающими внимание и рекуррентные слои. Сравнение скорости ядер линейного внимания на разных GPU.
Где скачать flash-linear-attention?
Исходный код и инструкции по установке — на GitHub: https://github.com/fla-org/flash-linear-attention

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

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

NEO — семейство нативных моделей для работы с изображениями и текстом, которые обрабатывают пиксели и слова в единой плотной архитектуре без энкодера, с кодом для обучения и оценки.

90433PythonApache-2.0Обновлён 3 месяца назад