StiTching
Мне сегодня нужно было сшить кожу на пальце, и в процессе этого перформанса я вспомнила про model stitching. Чтобы скрасить время — врачебное и моё — начала рассказывать зачем это надо. Без понятия, зашло ли хирургу и медсестре
, но зато я обнаружила для себя интересный тейк на поделиться с вами = )
Что:
Model stitching как идея появился в 2015 году. Его выдвинули как метод изучения эквивалентности двух сетей, но математическая эквивалентность здесь мимо не проходила — она, более того, не верна — авторы назвали два представления эквивалентными, если существует преобразование между ними, в математике мы требуем аксиом).
Тогда это осталось нишевым инструментом для картинок — юзали AlexNet-ы.
Потом в 2021 NeurIPS идею дооформили, вышли две работы:
Similarity and Matching of Neural Network Representations и
Revisiting Model Stitching to Compare Neural Representations. Кстати, в первой работе шутили про Франкенштейна (или нет).
Как это стало устроено:
Смотрим на две обученные и замороженные сети A и B. «Сшитая» модель строится так:
• берём нижние слои сети B (front model, представление r = B≤ℓ)
• между ними ставим тонкий обучаемый stitching layer — единственный, кто обучается
• подключаем к верхним слоям сети A (top model, A>ℓ)
То есть делаем бутерброд из белого и темного хлеба, если хотите. А формально ищется простейший слой, задачей вида: L_ℓ(r; A) = inf_{s∈S} L(A>ℓ ∘ s ∘ r)
Где s — stitching layer, A>ℓ — верхние слои A, r — представление из B. s∈S — тут специально, мы ищем слой из класса простых слоев, а инфимум (inf), как математический знак, говорит нам, что stitching layer обязан быть минимальным: для свёрточных сетей — 1×1 conv с BatchNorm, для трансформеров — token-wise linear.
Как именно обучают stitching layer:
— HLM (hard label matching) — минимизируем ошибку на настоящих метках задачи.
— SLM (soft label matching) — минимизируем расстояние до предсказаний end-модели, а не до ground truth.
— DM (direct matching) — напрямую минимизируем расстояние между активациями на уровне stitching.
— FuLA (functional latent alignment, Athanasiadis et al., 2026) — stitching layer обучается имитировать не только выход end-модели, но и её внутренние процессы послойно (на пальцах плохо — надо читать).
Метрика успеха — stitching penalty = разница между ошибкой сшитой модели и ошибкой базовой A. Penalty ≈ 0 означает совместимость. Penalty < 0 — сшитая модель стала лучше базовой, то есть мы буквально подсадили ей более сильные нижние слои.
Зачем это нужно:
Смотрим на фиолетовую/рыжую цитату — изначально — метрика сходства. Но потом пошло интереснее. Например,
Stitchable Neural Networks (CVPR 2023) можно семейство предобученных моделей разного размера (например, Swin-Ti/S/B), сшить и получить модель, которая во время инференса может динамически переключаться между режимами accuracy/efficiency или
T-Stitch: ускорение диффузионных моделей через замену первых шагов денойзинга на более лёгкую сеть и возврат к тяжёлой для финального качества.
Это что, пахнет LoRA?
Эту мысль я обдумывала при знакомстве со stitching. Вдруг она не возникла у вас — я опеределиа.
Да: оба метода замораживают предобученные веса и вставляют тонкий линейный слой.
Но нет: LoRA адаптирует одну модель к новой задаче, stitching измеряет совместимость двух уже обученных сетей на старой задаче.
Финал не придумала, но stiting — одна из штук, висящих у меня на "идеи для рисерча". А ещё — просто вдумайтесь! Этот AI-мир можно сшить!
Хирург, кстати, ничего не спросил, но швы наложил нормально.
Аккуратнее будьте, друзья, и будьте здоровы! 😌