Журнал · Rit.work

Три уровня сжатия LLM вместо SVD по одной матрице

Поэтапная оптимизация матриц, Transformer-блоков и всей модели снижает перплексию после низкорангового сжатия, но не сохраняет прикладные способности автоматически.

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

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

Ошибки при низкоранговом сжатии LLM удалось заметно сократить без внешних данных и дополнительных параметров во время работы модели. На LLaMA-7B при удалении 60% параметров перплексия WikiText-2 снизилась с 42,1 после обычного SVD до 11,4 после полной цепочки; чем ниже перплексия, тем увереннее модель предсказывает следующий токен. В препринте HKUST (Guangzhou) и QudeLeap Research, который не проходил рецензирование и где все числа получили сами авторы, промежуточная настройка Transformer-блока оказалась ключом к устойчивости на других текстах.

Почему оптимальной матрицы недостаточно

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

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

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

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

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

Блочная настройка удерживает качество на других текстах

После матричного SVD блочная настройка снизила перплексию WikiText-2 до 19,1. Финальная оптимизация всей модели исправила часть ошибок, которые накапливались между блоками, и довела результат до значения из лида.

Роль среднего этапа лучше видна за пределами калибровочного распределения. Если перейти от SVD сразу к настройке всей модели, результат на WikiText-2 почти совпадает с полной цепочкой, но на Penn Treebank перплексия ухудшается на 24 пункта. Дополнительное обучение всей модели этот разрыв не закрыл: блочная настройка работает не только как промежуточный ремонт, но и как регуляризатор.

Проверка охватывает пять архитектур размером от 7 до 13 млрд параметров и режимы сжатия от 20 до 80%. Использовались базовые модели, а качество измеряли на WikiText-2, Penn Treebank и C4; настройки различались между архитектурами, а весь диапазон сжатия не прогоняли по единому протоколу.

Вывод относится к перплексии и точности воспроизведения сжатой модели, а не к сохранению всех способностей. Результаты на прикладных задачах оставались ниже исходной модели. В основном режиме эксперимента сжатые варианты не решили GSM8K по строгому совпадению ответа и выдавали вырожденные повторяющиеся пересказы на проверочной части SAMSum.

Что менять в плане разработки

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

Блочный этап особенно полезен при малом калибровочном наборе. Когда набор увеличили, прямой переход от SVD к настройке всей модели стал конкурентоспособным на части тестов. Значит, блочную оптимизацию следует рассматривать как обмен вычислений до развёртывания на объём калибровочных данных, а не как обязательную часть любого сжатия.

У такого конвейера есть цена: для настройки блоков нужно хранить их промежуточные скрытые состояния. Финальный этап также требует обучать множители по всей вычислительной схеме, поэтому это уже не простая офлайн-операция над файлами весов.

Сокращение числа параметров не гарантирует более быструю генерацию. В реализации из работы каждый низкоранговый слой выполняет два последовательных умножения матриц, из-за чего скорость генерации снизилась на 9–14%. Специализированные объединённые ядра не использовались, поэтому перед выбором схемы нужны замеры на целевом оборудовании.

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

Источники

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

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

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

Rit.work

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

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

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