Журнал · Rit.work

LoPA снимает трёхкратный потолок ускорения FFN

LoPA делает управляющую матрицу FFN дешёвой и позволяет превратить разрежённые активации в измеримое ускорение на CPU и GPU.

Rit.work
Студия разработки
30 сентября 2026 г.3 мин чтения

Материал подготовлен автоматически по первоисточникам: ссылки на них — в конце статьи.

Полносвязный блок FFN языковой модели удалось ускорить на GPU в 3,31 раза, пропуская вычисления для неактивных элементов. В препринте Meta FAIR и École Normale Supérieure представили схему LoPA; работу ещё не рецензировали, а все числа получили сами авторы. Для новых моделей это открывает способ снизить стоимость вывода, но существующей модели потребуются дополнительное обучение и специальные вычислительные ядра.

Почему обычный разрежённый гейтинг упирается в потолок

В типичном FFN с гейтингом работают три матрицы. Первая определяет, какие скрытые элементы активны, вторая вычисляет их значения, третья возвращает результат к исходной размерности модели.

Если выход первой матрицы содержит точные нули, соответствующие операции во второй и третьей можно пропустить. Но саму первую матрицу приходится вычислять полностью: только после этого модель узнаёт, где находятся нули. Поэтому даже при полностью разрежённом выходе стандартный гейтинг не может дать расчётный выигрыш больше чем втрое.

Чтобы получить достаточно нулей, авторы меняют SILU на R-S+. Новая функция ведёт себя как SILU для положительных значений, а отрицательные превращает в нули. Модели не приходится заново приспосабливаться ко всему диапазону активаций, как при прямой замене на RELU.

После замены обучение продолжают со штрафом за ненулевые активации. Его вес автоматически растёт, если разрежённость ниже заданной цели, и уменьшается, если модель её превысила. Так команда задаёт нужную долю нулей заранее, а не принимает уровень, который случайно получился у готовой модели.

LoPA удешевляет матрицу, которую нельзя пропустить

LoPA заменяет полную управляющую матрицу суммой фиксированной разрежённой матрицы и произведения двух обучаемых матриц низкого ранга. Фиксированная часть содержит по одному ненулевому элементу в каждой строке и не даёт управляющей матрице потерять полный ранг. Низкоранговая часть сохраняет обучаемость, но требует меньше операций.

При обучении модели с нуля освободившиеся параметры переносят в остальные матрицы FFN: блок сохраняет общий объём параметров, но тратит меньшую долю вычислений на определение активных элементов. Именно этот перенос позволяет выйти за предел стандартного гейтинга, а не одна разрежённость сама по себе.

При целевой разрежённости 90% LoPA Casting сократила расчётное число операций в 3,2 раза при сопоставимом качестве. Лучший результат методов top-p и TEAL составил 1,6 раза. Качество здесь сопоставляли по NLL — мере того, насколько хорошо модель предсказывает следующий токен: меньшее значение лучше.

Расчётный выигрыш ещё не означает такое же ускорение оборудования, поэтому авторы написали отдельные ядра для разрежённых операций. На CPU полная модель со стандартным гейтингом ускорилась в 1,53 раза, а с LoPA — в 1,88 раза. Результат на GPU из лида относится только к FFN, поэтому переносить его на всю модель нельзя: внимание, загрузка памяти и прочие части вывода остаются на месте.

Когда стоит менять архитектурный план

Для команды, которая обучает базовую модель с нуля, LoPA становится архитектурным решением, которое нужно принять до предобучения. Этот вариант сохраняет число параметров и позволяет расширить две разрежённые матрицы за счёт дешёвого гейта. Проверять его всё равно придётся на полном контуре вывода: работа показывает ускорение отдельных ядер на GPU и всей модели на CPU, но не обещает одинакового выигрыша при любой длине контекста и пакетной обработке.

Для готовой модели доступен более осторожный путь: заменить функцию активации и продолжить обучение, не меняя форму матриц. Перевести существующую полную матрицу на LoPA тоже можно, однако её приближают низкоранговым разложением и уже не компенсируют потерянные параметры расширением FFN. В экспериментах это ожидаемо ухудшало качество по сравнению с вариантом, заложенным с начала обучения.

Основные опыты провели на моделях только с декодером, основанных на архитектуре Llama3; крупнейшая содержала 5,79 млрд параметров без таблицы токенов. Перенос дополнительно проверили на Qwen3-1.7B и на моделях со смесью экспертов. Сравнения проводили при одинаковых бюджетах предобучения и дополнительного обучения, а качество оценивали не только по NLL, но и на прикладных наборах задач.

Практический вывод зависит от контроля над моделью и инфраструктурой. Если команда обучает собственную LLM и FFN занимает заметную часть стоимости вывода, LoPA стоит включить в архитектурные эксперименты до крупного запуска. Если продукт использует готовую модель через обычный сервер вывода, менять план рано: без дополнительного обучения и специальных ядер разрежённые активации сами по себе не дают показанного ускорения.

Источники

Пауза в чтении

Похоже на вашу задачу?

Расскажите, что собираете. За полчаса разложим на этапы и назовём сроки — это бесплатно и ни к чему не обязывает.

Rit.work

Студия разработки

Собираем мобильные приложения и помогаем командам получать от AI реальную пользу. Основатель и команда, работаем удалённо — с клиентами в России и за рубежом.

← Ко всем материалам
Понравилось? Обсудим вашу задачу