Кронекером по Фишеру: как при сжатии LLM учесть кривизну второго порядка и не умереть

Wait 5 sec.

Привет Хабр! На связи Вика Чекалина из команды «Мультимодальный ИИ» AIRI. Сегодня мы поговорим о том, как выкручиваться, когда вычислительных ресурсов мало и для деплоя необходимо сжать LLM, но так, чтобы потеря в качестве была минимальной. Логично, что нужно использовать дополнительную информацию — например, матрицу Фишера (FIM), которая содержит в себе информацию о важности и взаимодействии параметров модели. Но FIM реальных LLM слоев просто огромные, и работать с ними напрямую вычислительно тяжело или просто невозможно. Люди придумывают различные упрощения: например, можно отталкиваться от предположения, что матрица Фишера диагональна — это сильно сокращает объём памяти, однако корреляция между различными параметрами слоя теряется навсегда. Мы решили не идти на такие компромиссы и придумали метод, который быстро и легко позволяет параметризировать полную недиагональную матрицу Фишера без потери информации о корреляции. Читать далее