🔬 Метод
Существенным затруднением при квантизации БЯМ является наличие выбросов в весах и неравномерный диапазон значений в разных входных и выходных каналах.
Можно упрощать квантизацию с помощью поворотов или масштабирования (как в SmoothQuant). И предложенный метод похож на SmoothQuant, но с добавлением скейлинга на выходе.
В качестве меры плохоквантуемости модели вводят дисбаланс, определяемый как отношение максимального и минимального стандартного отклонения по стобцам и строкам матрицы весов.
Оптимизировать эту меру предлагается через модифицированный итеративный алгоритм Sinkhorn-Knopp (который в оригинале используется для приведения матрицы к двойной стохастической).
Сами итерации выглядят довольно просто - считаем стандарные отклонения строк и столбцов, делим на них, и повторяем до посинения сходимости.
Метод можно комбинировать с data-aware алгоритмами - типа GPTQ и AWQ.
🧪Эксперименты
Метод валидируют на моделях семейства Qwen-3 (включая 235B) и DeepSeek-V2.5 (V3 не смогли поместить на один хост, по всей видимости)
SINQ несколько превосходит data-free методы (bnb, HQQ) по качеству.
Замеряют не только стандартные бенчи, но и flip-ы (долю токенов, где argmax отличается у исходной и квантизованной модели), коя есть более устойчивая и монотонная мера.
SINQ с AWQ немного лучше data-free версии.
Квантизуются модели достаточно быстро - от 3с до 50с для 32B Квена 3. Для больших моделей почему-то не приводят время.
В качестве бейзлайнов фигурирует HIGGS. Но результаты подозрительно плохие, хуже, чем однородная int квантизация. Вероятно, забыли про Адамаровы повороты.
Кернелов под дополительный скейлинг на выходе пока не завезли. Замеров скорости нет.
💡 Выводы
Поиск скейлов предложенным образом выглядит концептуально новым. Дешевизна и простота метода при наличии удобных интеграций может снискать ему популярность. Однако кажется, что бейзлайны плоховато заведены судя по метрикам. Ну и оверхед на квантизацию, полезность при MXFP4/NVFP4 квантизации тоже немаловажны.
Post #567
2.09K
- 👀 4