FVAttn: Как ускорить генерацию видео в 2.5 раза без потери качества
Генерация 5-секундного видео в разрешении 720p на модели Wan2.2-14B занимает два часа на одном NVIDIA H20. При этом 74.1% времени уходит на вычисление внимания — операции, квадратично растущей с увеличением длины последовательности. Шаг за шагом, кадр за кадром, диффузионные трансформеры пересчитывают взаимодействие между тысячами токенов, даже когда большинство из них вносят минимальный вклад в результат. Исследователи из FVAttn предложили решение: адаптивное разреженное внимание с runtime-балансировкой нагрузки, которое ускоряет инференс в 2.5 раза без переобучения модели и с минимальной потерей качества. Это training-free оптимизация, которая работает с существующими видео-моделями прямо сейчас. ## Что такое разреженное внимание в видео-трансформерах Видео-диффузионные трансформеры (Video DiTs) обрабатывают длинные пространственно-временные последовательности. Для видео 720p с 81 кадрами это 3600 токенов на латентный кадр, умноженных на количество кадров. Полное внимание вычисляет взаимодействие каждого токена с каждым, что даёт квадратичный рост вычислений. Разреженное внимание эксплуатирует избыточность: для большинства query-токенов лишь небольшая подгруппа key-блоков вносит существенный вклад в выход. Training-free методы строят блочные маски во время инференса и пропускают низковажные взаимодействия. Это работает, но создаёт новую проблему — неравномерную загрузку GPU. ### Top-p vs Top-k: адаптивность против предсказуемости Два основных подхода к разреживанию: Top-k фиксирует количество сохраняемых блоков для каждого query-блока, Top-p адаптирует количество под распределение важности. Concentrated head (когда внимание сосредоточено в нескольких блоках) требует меньше вычислений, flat head (когда внимание распределено равномерно) — больше. Top-p улучшает fidelity маски: она сохраняет точность внимания при схожем среднем бюджете вычислений. Но эта адаптивность создаёт гетерогенность нагрузки. Разные attention heads сохраняют разное количество key-блоков, что при sequence parallelism превращается в ранговый дисбаланс. ## Проблема straggler в мульти-GPU инференсе Ulysses-style sequence parallelism распределяет attention heads по GPU rank'ам. Каждый rank получает полную последовательность для подмножества heads и вычисляет внимание независимо. При dense attention все heads имеют одинаковую вычислительную нагрузку — баланс идеален. Динамическое разреженное внимание ломает это свойство. Каждый head фактически вычисляет разное количество операций в зависимости от текущей sparse mask. Когда несколько high-density heads попадают на один rank, этот rank становится straggler — другие GPU ждут его завершения и простаивают. Максимальное изменение нагрузки между соседними шагами достигает 97% на уровне heads и 44% на уровне ranks в 4-шаговом distilled setting. Predictive pre-scheduling до sequence-to-head All-to-All опирается на устаревшие или приблизительные сигналы. Полная репартиция после маскирования требует дополнительной передачи данных и может стереть выигрыш от разреживания. ## Архитектура FVAttn: Two-Stage Runtime Scheduling FVAttn начинает работу после того, как текущая sparse mask уже материализована. Система выполняет двухэтапное планирование: Runtime Load Balancing (RLB) сокращает критический путь, Slack-Aware Sparse Augmentation (SASA) конвертирует остаточный slack не-критических ranks в дополнительные высокоценные блоки. ### Sparse-routing frontend FVAttn комбинирует Top-p routing с Top-k safety floor. Top-p обеспечивает адаптивный бюджет вычислений, Top-k поддерживает минимальный бюджет против ошибок маршрутизации или чрезмерного разреживания. Блоки переупорядочиваются по кривой Гильберта, чтобы пространственно близкие токены попадали в соседние блоки на разных масштабах. Один pass маршрутизации производит per-head density для RLB и порядок важности key-блоков для SASA. Дополнительные вычисления не требуются — Top-p адаптивность одновременно источник выигрыша в fidelity и источник гетерогенности, которую RLB должна обработать. ### Runtime Load Balancing (RLB) После материализации маски нагрузка каждого head L_h полностью наблюдаема. Нагрузка rank r равна L_r = Σ L_h для heads, назначенных на этот rank. Топ-p адаптивность создаёт вариацию L_h между heads, что усиливается в ранговый дисбаланс. FVAttn формулирует балансировку как явную оптимизацию выигрыша. Critical-path benefit K = c × (max L_r - max L_r_new), где c — unit compute time одного sparse block. Cost состоит из communication overhead P для перемещения head states и scheduling overhead C для планирования миграции. Net gain G = K - P - C. Ключевое наблюдение: нагрузка, создаваемая Top-p, сконцентрирована в небольшом количестве heads, а не равномерно распределена. Перемещение нескольких dense heads с перегруженных ranks на ranks с оставшейся ёмкостью убирает большинство straggler времени без коммуникационной стоимости глобального reshuffling. Миграция только 20% локальных heads (один head на rank в 8-GPU setting) снижает средний дисбаланс с 1.34 до 1.08. Дальнейшее увеличение бюджета миграции даёт значительно меньший выигрыш. FVAttn ограничивает пространство кандидатов от глобальной репартиции до lightweight P2P head migration — каждый rank мигрирует максимум один локальный head. ### Slack-Aware Sparse Augmentation (SASA) После балансировки не-критические ranks имеют остаточный slack — время, которое они ждут завершения критического пути. SASA конвертирует этот slack в дополнительные высокоценные блоки. Система добавляет маски预算 на ranks, которые не являются bottleneck, улучшая coverage sparse mask без удлинения критического пути. Piecewise thresholds k1=1.05 и k2=1.10 определяют режим: SASA alone включается при k1 ≤ ρ < k2, RLB+SASA при ρ ≥ k2. Augmentation coefficient n1=0.8 и trigger threshold n2=0.07 контролируют агрессивность добавления блоков. ## Экспериментальные результаты на 8×H20 FVAttn оценивался на трёх видео-диффузионных workload: Wan2.2 I2V 14B, Wan2.2 Animate 14B, Wan2.1 T2V 14B. Все используют LightX2V 4-step distilled LoRA configuration, генерируют 720p видео с 81 кадрами (21 latent frame, 3600 tokens per latent frame). Hardware: сервер с 8× NVIDIA H20 GPU, соединённых через NVLink, CUDA 13.1. Метрики: VBench для общего качества видео, PSNR/SSIM/LPIPS/CLIP-Sim для сравнения с FlashAttention output, DiT latency для эффективности. ### Image-to-Video (Wan2.2-14B I2V) FlashAttention dense baseline: VBench 88.7%, DiT latency 38.59s. FVAttn Top-p=0.95: VBench 88.8%, PSNR 23.801, SSIM 0.8092, LPIPS 0.1045, CLIP-Sim 0.9906, DiT latency 19.10s (2.02× speedup). FVAttn Top-p=0.90: VBench 88.8%, PSNR 23.473, DiT latency 18.30s (2.11× speedup). Для сравнения, SpargeAttention Top-p=0.95 даёт VBench 88.3%, PSNR 22.400, latency 19.92s (2.01× speedup). SpargeAttention Top-p=0.90: VBench 88.2%, PSNR 21.477, latency 19.23s (2.01× speedup). FVAttn при той же скорости показывает существенно лучшие метрики fidelity: PSNR +1.4 dB, SSIM +0.036, LPIPS -0.022. ### Animate (Wan2.2-14B) FlashAttention: latency 36.95s. FVAttn Top-p=0.95: PSNR 22.640, SSIM 0.8488, latency 15.21s (2.43× speedup). FVAttn Top-p=0.90: PSNR 21.512, latency 14.79s (2.50× speedup). Для сравнения, SageAttention dense: PSNR 22.259, latency 17.96s (2.06× speedup). FVAttn быстрее и сохраняет качество. Jenga Top-p=0.95: PSNR 21.534, latency 22.24s (1.66× speedup) — значительно медленнее. ### Text-to-Video (Wan2.1-14B T2V) FlashAttention: VBench 81.3%, latency 34.70s. FVAttn Top-p=0.90: VBench 81.6%, PSNR 19.585, latency 14.96s (2.32× speedup). SpargeAttention Top-p=0.90: VBench 80.9%, PSNR 17.161, latency 15.69s (2.21× speedup). FVAttn быстрее на 0.73s и показывает VBench +0.7%, PSNR +2.4 dB. ## Внимание: 4.41× ускорение over FlashAttention Среднее ускорение внимания (attention latency, включая mask routing, scheduling, sparse attention execution) составляет 4.41× над FlashAttention. Это превышает ускорение самих DiT инференса (2.02-2.50×), потому что attention — не единственная операция в трансформере, но доминирующая (74.1% времени). Ускорение DiT latency ниже, потому что включает другие компоненты: feed-forward networks, layer normalization, residual connections, All-to-All коммуникацию. Но поскольку attention — bottleneck, его ускорение непосредственно определяет общее ускорение. ## Ablation studies: вклад RLB и SASA Controlled experiments с SpargeAttention frontend (тот же Top-p sparse-routing) изолируют эффект runtime scheduling. Без load balancing: SpargeAttention Top-p=0.90 даёт 19.23s. С db-SP: 19.09s (2.02× speedup) — минимальный выигрыш. С RLB+SASA: 18.84s (2.05× speedup) — дополнительное ускорение. FVAttn-Base (адаптивный sparse-routing без RLB/SASA) на Animate: latency 16.40s (2.25×). FVAttn полный: 15.21s (2.43×). Разница 1.19s показывает вклад runtime scheduling поверх адаптивного маршрутизирования. FVAttn-Base + db-SP: 15.51s (2.38×) — db-SP даёт ограниченный выигрыш над no load balancing. FVAttn с RLB+SASA превосходит db-SP на 0.30s (2.43× vs 2.38×). ## Почему training-free подход важен FVAttn не требует переобучения модели, модификации весов, или доступа к training data. Это pure inference-time оптимизация, которая работает с существующими видео-диффузионными моделями. Для production-систем это означает: можно интегрировать в существующий pipeline без retraining cost. Step distillation (4-step LoRA) уменьшает количество denoising steps и даёт до 25× ускорение инференса. Но step distillation оставляет per-step sequence length и квадратичную стоимость внимания неизменными. Внимание остаётся bottleneck даже в few-step regime. FVAttn — комплементарная оптимизация: она работает внутри каждого denoising step и ускоряет самую дорогую операцию. ## Практические implications Для видео-продакшена: генерация 5-секундного 720p видео на 8×H20 сокращается с ~38 секунд DiT latency до ~15 секунд с FVAttn Top-p=0.90. Это 2.5× ускорение при сохранении качества (VBench 88.8% vs 88.7% baseline, PSNR 23.473 vs 22.400 для SpargeAttention). Для масштабирования: FVAttn работает с sequence parallelism, что критично для длинных видео. 3600 tokens per latent frame × 21 latent frames = 75,600 tokens — последовательность, требующая мульти-GPU распределения. Training-free sparse attention с load balancing делает инференс практичным без牺牲 качества. Для исследований: FVAttn показывает, что systems-level оптимизации (load balancing, P2P migration, slack utilization) могут давать больший выигрыш, чем algorithmic improvements (более сложные sparse patterns). Одна и та же sparse mask с runtime scheduling превосходит более сложные методы без scheduling. ## Часто задаваемые вопросы ### Требует ли FVAttn переобучения модели? Нет, FVAttn — training-free оптимизация. Она работает с существующими видео-диффузионными моделями без модификации весов или доступа к training data. Интеграция происходит на уровне inference pipeline. ### Насколько FVAttn быстрее FlashAttention? FVAttn даёт 4.41× ускорение attention latency и 2.02-2.50× ускорение DiT inference latency на 8×H20 GPU с NVLink. Ускорение DiT ниже, потому что attention — не единственная операция, но доминирующая (74.1% времени). ### Работает ли FVAttn с другими моделями, кроме Wan2.2? FVAttn оценивался на Wan2.2 I2V, Wan2.2 Animate, и Wan2.1 T2V. Архитектура применима к любым Video DiTs с Ulysses-style sequence parallelism и динамическим sparse attention. Требует адаптации thresholds для конкретных моделей. ### Что лучше: FVAttn или SageAttention? FVAttn и SageAttention решают разные задачи. SageAttention — dense quantized attention, ускоряет полное внимание через квантование. FVAttn — sparse attention с load balancing, пропускает низковажные взаимодействия. FVAttn показывает лучшее качество (PSNR 23.473 vs 22.259 для SageAttention на Animate) и большее ускорение (2.50× vs 2.06×). ## Итог FVAttn решает системную проблему мульти-GPU инференса видео-трансформеров: дисбаланс нагрузки, создаваемый адаптивным разреженным вниманием. Runtime Load Balancing через P2P head migration снижает imbalance factor с 1.34 до 1.08, Slack-Aware Sparse Augmentation конвертирует остаточный slack в дополнительные высокоценные блоки. Результат — 2.5× ускорение инференса с сохранением качества (VBench 88.8%, PSNR +1.4 dB над конкурентами). Если вы работаете с видео-генерацией на диффузионных трансформерах, FVAttn — training-free оптимизация, которую можно интегрировать без переобучения модели. Проверьте код на GitHub и попробуйте на своих workload.