tgoop.com/nn_for_science/2473
Last Update:
✂️ SCC-Compaction — умное «сжатие» контекста, которое ускоряет трансформеры во много раз
Коротко:
Semantic Connected Components (SCC) — это приём, который на лету находит токены с одинаковым смыслом и заменяет всю группу одним, сохраняя информацию. Он работает прямо во время инференса, без переобучения модели, и подходит не только для видео-LLMs (как в свежей работе LLaVA-Scissor), но и для текста, аудио и любых других последовательностей.
Откуда выросла идея
У трансформеров время работы растёт квадратично от длины последовательности. Видео-модели особенно страдают: ролик в 30 с — это тысячи патч-токенов. Авторы статьи заметили, что многие токены дублируют друг друга и решили «склеивать» похожие.
Эта мысль не новая: в 2023-м появилась ToMe (Token Merging) — метод для Vision Transformer-ов, который просто сливает ближайшие по косинусному сходству патчи. SCC идёт дальше: вместо парного слияния строится граф похожести и собираются целые кластеры семантически эквивалентных токенов. Это даёт более чистое и контролируемое сжатие.
Как работает SCC-Compaction
1. Оставляем ваш обычный энкодер как есть. Он выдаёт векторы-эмбеддинги для каждого токена.
2. Считаем косинусную похожесть всех токенов между собой и соединяем те, где она выше порога τ.
3. Ищем связные компоненты в получившемся графе — это быстрый алгоритм union-find, так что задержка минимальна.
4. Сжимаем компоненту в один токен: берём средний вектор и усредняем позиционную информацию.
5. Для видео делаем два прохода: сначала чистим дубли внутри кадра, затем между кадрами. Для текста можно сделать аналогично — внутри абзаца, а потом между абзацами.
Что это даёт на практике
• Минус 50–90 % токенов, минус квадратичный over-head. На публичных бенчмарках авторы получают ускорение в 2–10 раз при потере точности ≤ 3 п.п.
• Без переобучения и специальных ядер. Это примерно 30 строк кода на PyTorch, вставляемых перед подачей токенов в трансформер.
• Модальность-агностично. Если векторы отражают смысл, SCC сможет их группировать:
– длинные чаты → схлопываем переформулировки;
– аудио → убираем повторяющиеся фреймы;
– IoT-логи → оставляем только «точки изменений».
Ограничения
• Качество эмбеддингов. Если encoder путает смыслы, SCC может склеить лишнее. Решение — брать векторы из более позднего слоя или поднять τ.
• Порядок важен? Для музыки, кода или методов, чувствительных к последовательности, храните вместе с усреднённым вектором диапазон позиций — так модель не «сломает» порядок элементов.
• Слишком сильная усадка. При keep-ratio < 5 % метрики начинают заметно проседать — тестируйте границы на своей задаче.
Почему стоит попробовать прямо сейчас
1. GPU-часы → деньги. Чем меньше токенов, тем дешевле inference.
2. Унификация. Один и тот же трюк ускорит как LLM-чат-бота, так и мультимодальный анализ видео.
3. Карьерный плюс. На интервью всё чаще спрашивают про оптимизацию inference без retraining — SCC + ToMe — готовый ответ.
Статья с которой я разогнался
BY AI для Всех

Share with your friend now:
tgoop.com/nn_for_science/2473