Post-training Quantization
С увеличением количества данных на обучении (и качества модели), ошибка квантизации растет 🔼. Кроме того, ошибка для больших моделей фиксированном отношении
D/N меньше 🔽 у больших 🔼 моделей.Самый любопытный и шокирующий 😱 вывод в том, что начиная с какого-то момента у модели, обученной на большем количестве данных, качество после квантизации будет хуже, чем у модели, на меньшем. То есть при квантизации в низкую битность, бессмысленно учить модели до упора, и в какой-то момент придется остановиться, чтобы получить лучшее, что в принципе возможно.
Проанализировав зависимости, авторы выводят функциональную форму для
\delta_{PTQ}, где ошибка растет степенным образом по количеству данных, убывает степенным образом по размеру модели, и растет экспоненциально с уменьшением битности.QAT + Low-precision training
Далее авторы обучают модели, квантизуя либо только веса, либо веса и активации.
Оказывается, что эффект от квантизации можно описать как некую мультипликативную добавку к количеству параметров вида
(1 - e^{P/gamma}). Т.е модель с квантизацией чего либо и эквивалентна модели с N (1 - e^{P/gamma}) параметрами. Коэффцициенты P, gamma свои у весов, активаций и кэшей. Кэши легче всего квантизуются, веса посередине, а активации тяжелее всего.Причем ошибки квантизации w, a, kv независимы и предложенная зависимость хорошо фитируется на основе экспериментальных точек.
Предполагая, что у нас есть вычислитель, умеющий эффективно работать с любой точностью, авторы фиксируют бюджет обучения, определяемый как
C = 6 (P / 16) ND (16 от bf16) и ищут оптимум по лоссу.Наблюдения следующие:
⭐️ Если учить в низкой точности, масштабировать размер модели надо быстрее, чем количество данных. (в Шиншилее, напомню, оптимально пропорционально)
⭐️ Compute-optimal precision не зависит от бюджета обучения и примерно равно 7 бит на параметр. Эксперименты проводят с INT-X, FP-X, floating-point чуть лучше, но общий вывод справедлив.
Отсюда замечание, что обучение в INT4/FP4 и более низких битностях может быть не оптимально.