Что такое квантизация моделей
Что проверяют
Понимаете ли вы, чем именно платите за экономию ресурсов и какие варианты квантизации бывают. Инженеру по машинному обучению вопрос задают как вопрос о стоимости инференса: влезет ли модель в имеющуюся память и не развалится ли качество.
Как отвечать
Квантизация это перевод весов, а при необходимости активаций и кэша внимания, из формата с плавающей точкой в представление меньшей разрядности, обычно восемь или четыре бита, с сохранением масштаба и нулевой точки.
Разделить стоит по нескольким осям:
- по моменту: после обучения, с калибровочной выборкой, и с учётом квантизации прямо в обучении, что дороже, но заметно выигрывает на низких разрядностях;
- по покрытию: только веса, что типично для больших языковых моделей, либо веса вместе с активациями, без чего не включить целочисленные ядра;
- по гранулярности масштаба: на тензор, на канал, на группу значений. Чем мельче группа, тем меньше просадка и тем больше служебных данных;
- по схеме: симметричная и асимметричная, плюс отдельная обработка выбросов в активациях.
Про выигрыш честная формулировка такая: размер падает пропорционально разрядности почти всегда, а скорость растёт там, где расчёт упирается в память, то есть на пошаговой генерации. Если ядра под выбранный формат нет, веса будут распаковываться на лету и ускорения не получится.
Где спотыкаются
Смешивают квантизацию с прунингом и дистилляцией. Это разные рычаги: снижение разрядности, удаление весов и перенос знаний в меньшую модель, и применяются они независимо.
Обещают ускорение строго пропорционально разрядности. Выигрыш определяется тем, во что упёрлись, памятью или арифметикой, и поддержкой формата конкретным железом и рантаймом.
Проверяют качество одним агрегатом на общем наборе. Просадка почти всегда собирается по краям: длинный контекст, редкие языки, код, строгий формат ответа. Мерить надо на своей задаче и на тех примерах, где модель и раньше была на грани.