Forwarded from Machinelearning
Внимание - ключевой компонент трансформеров, но его квадратичная сложность вычислений становится проблемой при обработке длинных последовательностей. Квантование успешно применяется для ускорения линейных слоев, но оно мало изучено применительно к механизму внимания.
SageAttention - экспериментальный метод, который использует 8-битное квантование механизма внимания для ускорения вычислений и сохранения точности модели.
Метод не требует специального обучения и конвертации моделей в какой-либо формат, он применяется к существующим трансформеным моделям в режиме "plug-and-play".
Ключевые особенности метода:
INT8 в четыре раза быстрее, чем в FP16, и в два раза быстрее, чем в FP8.
Умножение матриц в высокой разрядности позволяет ускорить вычисления без потери точности.
Для каждого слоя внимания выбирается наиболее быстрый вариант квантования.
SageAttention реализован с использованием
Triton
и оптимизирован для GPU RTX4090 и 3090. Метод превосходит FlashAttention2 и xformers по скорости примерно в 2,1 и 2,7 раза соответственно.Тестирование на Llama2, CogvideoX, Unidiffuser и TIMM подтвердило сохранение метрик точности при использовании SageAttention.
⚠️ Использование SageAttention рекомендуется с версиями:
⚠️ SageAttention оптимизирован для RTX4090 и RTX3090. На других архитектурах GPU прирост производительности может быть незначительным.
# Install sageattention
pip install sageattention
# How to use
from sageattention import sageattn
attn_output = sageattn(q, k, v, is_causal=False, smooth_k=True)
# Plug-and-play example with Cogvideo
# add the following codes and run
from sageattention import sageattn
import torch.nn.functional as F
F.scaled_dot_product_attention = sageattn
# Specifically
cd example
python sageattn_cogvideo.py
@ai_machinelearning_big_data
#AI #ML #SageAttention #Transformers
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
❤4👍3🔥3