Журнал · Rit.work

Chameleon меняет формат квантизации по ходу диффузии

Chameleon выбирает числовой формат по слоям и этапам диффузии, повышая качество квантизованных SDXL, SDXL-Turbo и PixArt-α без ручной настройки под каждую модель.

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

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

Диффузионные модели можно перевести на низкую битность с меньшей потерей качества, если не навязывать всей сети один числовой формат. Arnab Sanyal и Sandeep Chinchali показали в нерецензированном препринте, где все числа получили сами авторы, что такой выбор сохраняет соответствие изображений запросам почти на уровне FP16. Для продуктовой команды это добавляет ещё один способ управлять качеством квантизации, но пока не доказывает ускорение на реальном оборудовании.

Формат выбирают по распределению значений

Посттренировочная квантизация уменьшает точность весов и промежуточных значений уже обученной модели. Обычно система заранее выбирает INT или FP, а затем подстраивает масштаб, нулевую точку и иногда битность отдельных слоёв. Chameleon оставляет битность фиксированной, но разрешает менять сам способ представления чисел.

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

Для активаций Chameleon заранее измеряет тяжесть хвостов распределения и берёт отношение сигнала к шуму из расписания диффузии. Калибровка использует 128 подписей, делит траекторию на десять интервалов и проводит по одному проходу из 20 шагов для каждой подписи. Результат записывается в таблицу, из которой слой во время генерации получает нужный формат для текущего этапа.

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

Маршрутизация учитывает и устройство сети. В SDXL некоторые свёртки получают объединённые признаки из разных частей UNet, где максимальный размах каналов доходил до 163 раз. Для них Chameleon принудительно использует MXFP8: этот формат делит значения на небольшие блоки с общим порядком и лучше переносит резкие различия масштаба.

Chameleon удержал качество на трёх архитектурах

Метод проверяли на SDXL, одноступенчатой SDXL-Turbo и трансформере PixArt-α. Изображения генерировали по подписям из COCO-2014, а качество сравнивали в режимах W8A8 и W4A8 — с восьми- или четырёхбитными весами и восьмибитными активациями.

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

Оценка CLIP, которая показывает соответствие изображения текстовому запросу, отклонилась от FP16 не более чем на 0,24. В режиме W4A8 она оказалась лучшей среди сравниваемых квантизованных вариантов. Это важное дополнение к FID: улучшение распределения изображений само по себе не гарантирует, что модель сохранила смысл запроса.

Проверка охватывает только генерацию изображений и три конкретные архитектуры. Для SDXL формат менялся по слоям и этапам, для SDXL-Turbo из-за единственного шага Chameleon выбирал только представление весов, а для PixArt-α сохранил динамический расчёт масштаба из Q-DiT. Метод здесь выступает не общей заменой существующей квантизации, а дополнительным уровнем выбора формата.

В планы стоит добавить калибровку, но не ускорение

Работа меняет план внедрения, если команда уже рассматривает FP8 или MX-форматы для диффузионной модели. Вместо раннего решения «вся сеть работает в INT8» имеет смысл сохранить несколько аппаратно доступных форматов и выбрать их при калибровке по слоям, каналам и этапам удаления шума. Ручная настройка порогов под каждую модель не потребовалась.

Полная калибровка SDXL заняла 45 минут на одном A100, а таблица форматов для активаций потребовала около 200 КБ. Во время вывода модели маршрутизация сводится к чтению записи из таблицы, поэтому сама логика выбора невелика по сравнению с проходом нейросети.

Однако эксперименты использовали имитацию низкой точности поверх обычных вычислений. Они измеряют потерю качества, но не реальную задержку, потребление памяти или пропускную способность. Чтобы заложить Chameleon в производственный контур, придётся проверить нативные ядра для нужных форматов и цену переключения между ними.

Аппаратная поддержка тоже задаёт границу применимости. FP8 доступен на современных GPU, а MX-форматы ориентированы на более новое оборудование; на ускорителях только с целочисленной арифметикой палитра Chameleon сократится. Смешивание форматов по каналам также может потребовать разбивать матричное умножение на группы или распаковывать веса внутри ядра.

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

Источники

Иллюстрация: рисунок из статьи «Chameleon: Dynamic Format Adapter for Efficient Diffusion», Arnab Sanyal, Sandeep Chinchali, CC BY 4.0

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

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

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

Rit.work

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

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

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