Три простых способа сжать диффузионную модель Спойлер: все 3 требуют… — Bahamut: Memes&Themes — TG.ME

Forwarded fromWHwhargarbl
Три простых способа сжать диффузионную модель

Спойлер: все 3 требуют дообучения

1) Заменить ТЕ на более легкий

Просто учим адаптер который обучает qwen35-0.8b возвращать ембеддинги в пространстве Qwen3VL-4b (например)

Для этого надо подготовить тысячи пар ембеддингов текста заенкоженных учителем и учеником и обучить адаптер. Адаптер это обычный перцептрон (десяток строк кода, ваша ЛЛМ знает его)

Прос: Быстро и просто. Обучение занимает минут 5. Лосс за это время падает процентов на 95.

Конс: Модель полностью рабочая но все равно нужно дообучать - файн детали пропадут. Большие модели от маленьких отличаются глубиной знаний. Ембеддинг от Джесики Альба с 4 миллиардного квена уже знает что у нее большая жопа и голубые глаза. Маленький квен таких знаний не содержит, но он знает и голубые глаза и большую жопу - те вам просто придется описывать подробнее чтобы получить такую же генерацию

Старуха в посте сгенерирована в Креа-2 с Квен08 б обученным за 5 минут

2) Мержинг. Выкинуть пустые блоки и помержить соседние по непохожести

Креа-2 мне удалось сжать таким образом на 16 процентов. Это уже адовая лоботомия поэтому я подробно не опишу. Но мой агент не такой ленивый - я написал код и выложил

https://huggingface.co/recoilme/losslessmix-dit#idea

Кратко суть мержинга с минимальными потерями:

Merging a pair into one block is lossy.

The goal is to lose as little as possible:
Merge step — blend the two blocks' weights per channel by the absolute cosine similarity of their weight vectors

- Channels that point the same direction (high cos) blend proportionally;
- Channels that point away (cos ≤ 0) keep W_j entirely.

So incompatible features are never averaged into garbage — that's the "lossless" part, inherited from recoilme/losslessmix.

Прос: можно выкинуть процентов 16 из модели не фатально разрушив - этот способ лучше дебильного выкинем блок или помержим усреднением

Конс: модель сильно деградирует +/- безопасно можно выкинуть мержем один блок из 28 - после 6 модель разрушается фатально

Требует долгого дообучения

3) Дистиляция

Напоследок самый кровавый способ (не для гагар)

Вместо того чтобы курочить существующую модель создаете новую с нуля - а затем дистилируете знания из учителя в ученика

Прос: вероятно самый чистый способ - перенести знания а не вырезать их

Конс: невероятно сложный и ресурсоемкий. собрать рабочую архитектуру сложно - собрать хорошую компактную архитектуру сложнее в 100 раз.

Я набросал пример компактного ДиТ на стыке идей из Креа и ЗИмадж и Универсального трансформера. Там также есть пример дистиляции базовой -но дистилировать диффузию гораздо сложнее.

https://huggingface.co/recoilme/sdxsv3

Чтобы успешно перенести приор с старшей модели у вас должен совпадать вход и выход- и Вае и ембеддинг от ТЕ. Ембеддинг можно "натянуть" способом один но вае - нет. Сама тушка при этом может быть любой архитектуры

Также рекомендую почитать как страдал Валера с мержем МоЕ трансформеров
👍2
September 1, 2026 135 1 3