Наивное усреднение весов нейросетей может резко ухудшить результат, даже если две модели имеют одинаковую архитектуру и сопоставимый loss. Причина в том, что качество определяется функцией, которую вычисляет сеть, а усреднение работает с координатами параметрического пространства. Одинаковые позиции в двух чекпойнтах могут отвечать за разные признаки.
Нейроны скрытого слоя допускают перестановку. Если вместе переставить связанные входящие и исходящие веса, функция сети сохранится, но значения параметров изменятся. Покоординатное среднее двух таких эквивалентных решений смешает несовместимые признаки и может отправить модель в область высокого loss.
Практический вывод: перед слиянием нужно проверить совместимость чекпойнтов, при необходимости выровнять скрытые представления по активациям, затем усреднить связанные параметры и сравнить результат с исходными моделями. Для независимо обученных сетей ансамбль или отдельные адаптеры иногда безопаснее среднего весов.
Эта проблема встречается при объединении обычных нейросетей, model soups, federated averaging и LLM. В Transformer к перестановкам нейронов добавляются связанные преобразования голов внимания, FFN-слоёв, residual-потоков, нормализации и embedding-таблиц.
Почему усреднение весов ломается даже у моделей с одинаковой ошибкой
Одинаковая архитектура не означает одинаковую систему координат
Совпадение архитектуры означает, что модели имеют одинаковую схему вычислений: те же слои, размеры матриц и типы операций. Если формы тензоров совпадают, их технически можно сложить. Это проверка совместимости форм, а не доказательство совместимости функций.
Нужно разделять три свойства:
- Архитектурная совместимость: параметры имеют одинаковые имена, размеры и порядок операций.
- Функциональная эквивалентность: две сети дают одинаковые или близкие выходы на входных данных.
- Параметрическая совместимость: одинаковые координаты весов кодируют сходные признаки и могут безопасно смешиваться.
Модели A и B могут решать одну задачу с близкой ошибкой, но хранить признаки в разном порядке. В первой сети нейрон с индексом 17 распознаёт контуры, а во второй тот же индекс отвечает за текстуру. Простое среднее соединит параметры двух разных функций.
Ситуация возникает даже без архитектурных различий. Независимые запуски обучения используют разные случайные инициализации и проходят по разным траекториям оптимизации. В результате сети могут прийти к функционально похожим решениям с разной внутренней организацией.
Что именно делает наивное среднее
Для двух чекпойнтов покоординатное слияние обычно записывают так:
theta_merge = alpha * theta_A + (1 - alpha) * theta_B
При alpha = 0.5 каждая координата нового чекпойнта получает среднее значение соответствующих координат моделей A и B. Операция не анализирует, какие нейроны связаны между собой, как меняются активации и сохраняется ли поведение сети.
Средняя матрица может содержать значения, которые не встречались ни в одной исходной модели. Средний bias способен сдвинуть границу активации, средний фильтр может потерять структуру, а средние параметры Q и K в Transformer изменят распределение внимания. Новый чекпойнт не обязан повторять ни одну исходную модель.
Поэтому одинаковые формы тензоров отвечают на вопрос «можно ли выполнить сложение», но не на вопрос «сохранит ли результат полезные признаки». Перед merge нужно сопоставить внутренние координаты или отказаться от объединения параметров.
Симметрия нейронных сетей: как перестановка нейронов сохраняет функцию
Два скрытых нейрона, два порядка одного решения
Возьмём сеть с одним скрытым слоем:
h = sigma(W1x + b1)y = W2h + b2
Пусть в скрытом слое два нейрона вычисляют признаки a и b. В одной сети порядок такой: сначала a, затем b. В другой сети порядок обратный: сначала b, затем a. Если выходной слой меняет порядок своих весов, итоговый результат остаётся прежним.
Математически перестановку задаёт permutation matrix P. Для поэлементной активации можно заменить параметры так:
W1' = P W1 b1' = P b1 W2' = W2 P^-1
Тогда скрытое представление преобразуется как h' = P h, а выход сохраняется:
y' = W2' h' + b2 = W2 P^-1 P h + b2 = W2 h + b2
Переставлять нужно всю связанную цепочку параметров. Изменение одной матрицы без соответствующего преобразования соседнего слоя нарушит функцию сети.
Почему среднее двух эквивалентных сетей уже не эквивалентно им
Пусть активация равна ReLU, bias равен нулю, а модели вычисляют одну и ту же функцию:
Модель A:
W1_A = [[1, 0],
[0, 1]]
W2_A = [1, 2]
Модель B:
W1_B = [[0, 1],
[1, 0]]
W2_B = [2, 1]
Модель A считает ReLU(x1) + 2ReLU(x2). Модель B сначала получает признаки в обратном порядке, затем компенсирует перестановку весами выходного слоя и считает ту же функцию.
После наивного среднего получаем:
W1_merge = [[0.5, 0.5],
[0.5, 0.5]]
W2_merge = [1.5, 1.5]
Оба скрытых нейрона теперь смотрят на одну и ту же смесь признаков. Сеть считает 3ReLU(0.5x1 + 0.5x2), что отличается от исходной функции. Для входа (1, 0) исходные модели дают 1, а средняя модель даёт 1.5. Для входа (0, 1) исходный результат равен 2, средний снова равен 1.5.
Проблема возникла не из-за плохого обучения и не из-за численной ошибки. Среднее смешало первую строку W1_A со второй строкой W1_B, хотя эти строки описывали разные признаки. Выходной слой получил такую же несовместимую комбинацию.
Почему средняя точка может оказаться в области высокого loss
Параметрически близко не значит функционально похоже
Путь между двумя наборами весов можно записать так:
theta(t) = (1 - t)theta_A + t theta_B, где t меняется между 0 и 1.
На концах отрезка находятся хорошо обученные модели. Средняя точка соответствует t = 0.5. Низкий loss на концах не гарантирует низкий loss внутри пути. Если признаки временно разрушаются, ошибка в середине возрастает.
Перестановка нейронов способна сделать две функционально одинаковые сети далёкими в пространстве весов. Простое евклидово расстояние между параметрами в таком случае вводит в заблуждение. Обратная ситуация тоже возможна: близкие значения весов не гарантируют близкие ответы, если сеть чувствительна к конкретному направлению изменения.
Интуиция похожа на сравнение двух таблиц, где строки имеют разные подписи. Числа в одинаковых ячейках можно усреднить, но результат потеряет смысл, если строка 1 в одной таблице описывает один объект, а в другой совершенно другой.
Для повторения механики градиентов и связи параметров с функцией сети полезны разборы обратного распространения ошибки и повторного использования вычислений при расчёте градиентов. Здесь важен тот же принцип: поведение сети связано со всей цепочкой вычислений, а не с отдельным числом в матрице.
Барьер из-за симметрии и барьер из-за конфликта задач
У деградации при усреднении есть два разных источника.
- Искусственный барьер симметрии. Модели вычисляют близкую функцию, но используют разные порядки нейронов или каналов. После корректного matching часть барьера может исчезнуть.
- Настоящий функциональный конфликт. Модели выучили разные признаки, оптимизировались под разные распределения данных или достигли разных минимумов loss. Перестановка координат не объединит несовместимые решения.
В первом случае среднее портится из-за представления параметров. Во втором проблема сохраняется после идеального выравнивания. Поэтому хороший результат после matching нельзя считать автоматическим следствием самой перестановки.
Узкий барьер между минимумами особенно неприятен: обе конечные модели работают хорошо, но небольшое смешивание весов разрушает чувствительные признаки. Проверка только чекпойнта при t = 0.5 скрывает форму пути. Надёжнее измерить несколько значений t и посмотреть, где растёт loss.
Какие симметрии нужно учитывать кроме перестановки
Перестановки каналов, голов внимания и FFN-нейронов
В свёрточной сети можно переставить выходные каналы одного слоя и синхронно переставить входные каналы следующего. Если фильтры предыдущего слоя имеют форму [C_out, C_in, H, W], перестановка выходных каналов меняет первую ось. В следующем слое нужно изменить соответствующую ось входных каналов.
В feed-forward блоке Transformer внутренние нейроны тоже могут иметь другой порядок. Для обычного FFN перестановка затрагивает строки входящей проекции и столбцы исходящей. В SwiGLU нужно одинаково переставить связанные проекции gate и up, затем согласовать down-проекцию.
Голова multi-head attention состоит из связанных частей Q, K и V. Перестановка голов требует переупорядочить соответствующие блоки этих проекций и входные блоки output projection. Если изменить только Q или только V, внимание начнёт связывать несовместимые подпространства.
Перестановка координат residual-потока сложнее. Один и тот же hidden state складывается с выходами нескольких ветвей, поэтому локальная перестановка внутри одного блока должна быть согласована со всеми операциями, которые читают этот поток.
Масштабирование и вращательные преобразования: где нужна осторожность
Перестановки представляют один класс симметрий. Для ReLU работает условное масштабирование: если умножить входящие веса и bias нейрона на положительный коэффициент c, а исходящий вес разделить на c, функция может сохраниться. Основание такой операции, положительная однородность ReLU:
ReLU(cz) = cReLU(z) для c > 0.
Это свойство нельзя автоматически переносить на любую активацию. GELU, sigmoid, нормализация, ограничения параметров и численная константа epsilon меняют условия эквивалентности. Масштабирование bias тоже требует согласованного преобразования.
В чистой последовательности линейных слоёв возможна смена базиса промежуточного пространства. Если представить скрытый вектор как z' = Rz, следующую матрицу можно скорректировать через W' = WR^-1. Для произвольной вращательной матрицы R это сохраняет функцию только там, где преобразование проходит через все операции без нарушения нелинейностей.
В Transformer ситуацию усложняют residual-связи, LayerNorm, RMSNorm, позиционные представления, gated-активации и shared embeddings. Поэтому возможные вращательные преобразования нужно проверять для конкретной архитектуры. Универсальное правило «любые скрытые координаты можно повернуть» неверно.
Как выравнивать модели перед усреднением
Сопоставление скрытых нейронов по корреляции активаций
Значения весов редко дают надёжный критерий соответствия. Более осмысленный вариант, activation matching, сравнивает поведение нейронов на одинаковых входах.
- Выбрать модель A как reference.
- Подготовить калибровочный датасет с примерами, похожими на реальные данные применения.
- Прогнать модели A и B через одинаковые слои.
- Собрать активации каждого нейрона или канала на всех примерах.
- Рассчитать сходство между каждой парой нейронов.
- Найти взаимно-однозначное соответствие.
Если матрицы активаций имеют форму Z_A in R^(N x d) и Z_B in R^(N x d), для пары нейронов i, j можно вычислить корреляцию, cosine similarity или другую выбранную метрику. Затем строится матрица стоимостей:
S[i,j] = similarity(Z_A[:,i], Z_B[:,j])
Нужно найти перестановку p, которая максимизирует суммарное сходство:
p* = argmax_p sum_i S[i,p(i)]
Для такой задачи подходит венгерский алгоритм. Он ищет глобальное взаимно-однозначное соответствие, поэтому жадный выбор лучшего кандидата для каждого нейрона не обязателен.
Один пример редко описывает внутреннюю функцию нейрона. Калибровочный набор должен содержать разные длины, классы, стили запросов или режимы входа, которые встречаются в целевой задаче. Для языковых моделей нужно учитывать маски padding и сравнивать совместимые позиции токенов. При разных токенизаторах прямое сопоставление скрытых состояний становится существенно менее надёжным.
Применение перестановки ко всем связанным параметрам
Найденное соответствие нужно перенести на все оси тензоров, которые используют переставляемое представление.
| Компонент | Что согласовать |
|---|---|
| MLP | Строки входящей матрицы, bias скрытых нейронов и столбцы исходящей матрицы |
| CNN | Выходные каналы текущего слоя и входные каналы следующего |
| FFN Transformer | Связанные строки up/gate-проекций и столбцы down-проекции |
| Attention heads | Блоки Q, K, V и соответствующие блоки output projection |
| Residual hidden state | Все ветви блока, normalization, embedding и выходная голова |
В MLP ошибка обычно появляется, когда переставляют строки W1, но забывают переставить столбцы W2. В Transformer к этому добавляются output projection, residual-пути и возможные tied weights между embedding и lm_head.
Для FFN внутреннее измерение часто можно сопоставлять отдельно, если преобразование полностью проходит через up/gate и down. Перестановка координат общего residual-потока требует более широкого преобразования. Независимо менять hidden dimension в каждом блоке нельзя, потому что skip-связь складывает представления в одной системе координат.
Что делать при неоднозначном совпадении
Матрица сходства может содержать несколько почти одинаковых кандидатов. Это бывает у дублирующих признаков, редко активируемых нейронов и нейронов, чьи функции зависят от узкого режима данных.
Сохраняйте для каждого соответствия:
- значение similarity;
- разницу между первым и вторым кандидатом;
- долю слабых или неоднозначных пар;
- слой и тип активации, на которых строилось сравнение;
- калибровочный набор, использованный для matching.
Низкое сходство не доказывает, что модели несовместимы. Оно сигнализирует о том, что выбранные данные не раскрывают общий признак или модели действительно используют разные решения. Проверка на нескольких наборах данных помогает разделить эти случаи.
Пошаговый алгоритм слияния выровненных моделей
Подготовка чекпойнтов и проверка совместимости
Сначала нужно сравнить метаданные и структуру параметров. Минимальный список проверок:
- одинаковая архитектура и порядок операций;
- совпадающие размеры всех связанных тензоров;
- одинаковый tokenizer и соответствие vocabulary для LLM;
- наличие или отсутствие adapters;
- тип нормализации и расположение normalization-слоёв;
- связаны ли embedding и lm_head общими весами;
- одинаковый dtype и способ хранения параметров;
- использовалась ли квантизация и на каком этапе.
Технически одинаковые имена параметров ещё не означают одинаковую семантику. Нужно зафиксировать базовую модель, задачу fine-tuning, токенизатор, набор adapters и формат чекпойнта. Смешивание этих условий затруднит поиск причины деградации.
Matching по слоям и перенос координат
Практический pipeline можно построить последовательно:
- Выбрать reference-модель и сохранить исходные чекпойнты.
- Подготовить калибровочный набор и отдельный validation set.
- Собрать активации совместимых слоёв обеих моделей.
- Решить задачу matching для каналов, FFN-нейронов или голов внимания.
- Применить найденные перестановки к связанным параметрам.
- После каждой группы преобразований проверить выходы модели до усреднения.
- Сформировать выровненное среднее и сравнить его с baseline.
Порядок слоёв имеет значение. Раннее скрытое представление задаёт координаты для следующих блоков, поэтому matching одного слоя может влиять на интерпретацию соседнего. В простом MLP можно выровнять слой целиком. В Transformer полезно разделять внутреннюю ширину FFN, головы внимания и residual dimension, потому что для них действуют разные ограничения.
Если перестановка должна сохранять функцию, выходы модели до и после неё должны совпадать с небольшой численной погрешностью на контрольных входах. Если они заметно расходятся, проблема обычно находится в пропущенной оси тензора, bias, residual-ветви или общей таблице embedding.
Усреднение, сохранение baseline и первичная проверка
Для нескольких моделей используют взвешенное среднее:
theta_merge = sum_i w_i * theta_i, где sum_i w_i = 1.
Коэффициенты w_i нужно выбрать заранее по понятному критерию: равные веса, качество на validation set, объём клиентских данных или другая заранее описанная схема. Подбор коэффициентов по тому же набору, на котором объявляется итоговое качество, повышает риск подгонки.
В каждом эксперименте сохраняйте минимум четыре версии:
- модель A;
- модель B;
- наивное среднее без matching;
- выровненное среднее.
Так видно, что именно дало изменение. Если сохранить только финальный merge, невозможно отделить эффект перестановки от влияния коэффициента усреднения, dtype или случайного изменения протокола оценки.
Усреднение моделей машинного обучения: model soups и federated averaging
Model soups: почему общая база помогает
Model soups обычно объединяет несколько fine-tuned чекпойнтов, полученных из одной базовой модели. У них совпадают архитектура, исходные веса, tokenizer и большая часть выученных координат. Поэтому внутренние представления чаще остаются согласованными, чем у двух сетей, обученных независимо.
Общая инициализация снижает риск произвольной перестановки нейронов. Модели стартуют в одной системе координат и меняют её из близкой точки. Это повышает шансы на полезное среднее, но не даёт гарантии.
Конфликт появляется, если fine-tuning шёл на разных задачах, с разными сильными regularization, большими learning rate или несовместимыми наборами данных. Один чекпойнт может усилить классификацию, другой сохранить редкие признаки или изменить поведение на специальных примерах. Среднее сгладит эти направления, иногда вместе с нужной специализацией.
Для model soups полезно сначала сравнить выходы, loss и интерполяцию, а затем проверить, действительно ли добавление очередного чекпойнта улучшает выбранные подзадачи. Формальная возможность сложить веса не заменяет такой проверки.
Federated averaging: общие координаты не устраняют drift
В FedAvg клиенты обычно получают один глобальный чекпойнт, обучают его локально и возвращают обновлённые параметры в той же системе координат. Явная проблема независимых перестановок выражена слабее: клиент не начинает обучение с полностью другой внутренней нумерацией нейронов.
Вредное усреднение всё равно возможно. Локальные датасеты могут иметь разные распределения, клиенты выполняют разное число шагов, а обновления направлены к разным локальным минимумам. Этот эффект называют local drift. После нескольких раундов средний глобальный чекпойнт может ухудшать качество на редких группах данных или плохо переносить знания между клиентами.
В федеративном обучении нужно различать два вопроса:
- сохранились ли общие параметрические координаты;
- совместимы ли локальные обновления по содержанию.
FedAvg обычно лучше отвечает на первый вопрос, потому что использует общий старт. Второй зависит от неоднородности данных, локальных целей, числа шагов и выбранного протокола агрегации.
Слияние моделей нейросетей и LLM: почему Transformer сложнее
Что нужно согласовать в Transformer
В Transformer один и тот же residual-поток проходит через несколько связанных механизмов. При слиянии нужно проверить:
- Q-, K- и V-проекции и разбиение на attention heads;
- output projection, которая собирает результаты голов;
- FFN-нейроны и все связанные up, gate и down-проекции;
- residual-связи, складывающие ветви в одном hidden space;
- LayerNorm, RMSNorm и их обучаемые параметры;
- input embedding и выходную lm_head;
- shared или tied weights между embedding и lm_head;
- позиционные представления и специальные токены.
Перестановка голов внимания должна менять Q, K, V и соответствующие части output projection. Для FFN перестановка внутреннего измерения должна проходить через все связанные проекции. Hidden dimension residual-потока нельзя менять локально в одном блоке, если остальные ветви сохраняют старую систему координат.
У LLM дополнительные риски создают разные tokenizer, adapters, цели fine-tuning, форматы RoPE или других позиционных механизмов, квантизация и различия в распределении данных. Даже одинаковый размер hidden state не подтверждает, что модели используют одинаковые внутренние базисы.
Почему одинаковый размер LLM не гарантирует совместимость
Две языковые модели могут иметь одинаковое число слоёв, размер hidden state и количество параметров, но различаться по нескольким критическим объектам. Разные vocabulary меняют смысл строк embedding-таблицы. Разные токенизаторы создают другие последовательности входных идентификаторов. Разные fine-tuning-цели смещают поведение в несовпадающие области.
Adapters требуют отдельной проверки. LoRA хранит низкоранговые обновления для конкретных матриц, и их слияние зависит от того, совпадают ли базовые веса, ранг, масштабирование и целевые projection-слои. Усреднение adapter-параметров без проверки базовой модели может дать результат, который хуже каждого исходного варианта.
Квантизация добавляет численную ошибку. Среднее целочисленных или квантизованных представлений не равно среднему исходных полноточных весов. Если модели хранятся в разных форматах, сначала нужно разделить проблему выравнивания функций и проблему восстановления численных параметров.
При сравнении LLM архитектурные детали влияют и на память, и на скорость инференса. Разбор различий между крупными открытыми моделями, их контекстом и KV-cache помогает не принимать совпадение размера за полную совместимость: сравнение архитектурных и эксплуатационных характеристик LLM.
Когда ансамбль или адаптеры рациональнее среднего весов
Ансамбль сохраняет несколько моделей и объединяет их ответы на уровне logits, вероятностей или маршрутизации. Параметры при этом не смешиваются, поэтому специализация каждой модели остаётся доступной. Цена решения, дополнительные требования к памяти и инференсу.
Адаптеры подходят, когда есть общая базовая модель и несколько узких вариантов поведения. Их можно подключать по задаче, пользователю или типу запроса. Такой подход требует управления несколькими файлами и маршрутизацией, зато уменьшает риск повредить базовые способности.
Среднее весов выигрывает простотой развёртывания: получается один чекпойнт. Ансамбль выигрывает сохранением разнообразия. Адаптеры занимают промежуточное положение, когда базовая модель общая, а различия сосредоточены в небольших обновлениях.
Почему выравнивание не гарантирует хороший результат
Узкий барьер между решениями остаётся после matching
Matching устраняет несогласованность координат, связанную с перестановкой. Он не обязан устранять геометрический барьер между разными минимумами loss.
После выравнивания нужно измерить путь:
theta(t) = (1 - t)theta_A + t theta_B t = 0, 0.25, 0.5, 0.75, 1
Если loss резко возрастает около середины, модели разделены узким барьером. Итоговое среднее может оказаться непригодным, даже когда activation matching даёт высокие значения сходства. В таком случае стоит проверить меньший коэффициент смешивания, другой способ merge или ансамбль.
Разные минимумы могут кодировать разные полезные решения. Сглаживание параметров не выбирает автоматически лучший признак и не знает, какие способности нужно сохранить. Это инженерная гипотеза, которую проверяют на данных.
Activation matching зависит от данных
Нейрон может выглядеть похожим на калибровочном наборе и выполнять другую функцию на реальных запросах. Для узкого набора примеров алгоритм найдёт соответствие, оптимальное именно для этого распределения.
Калибровочный датасет должен покрывать режимы, ради которых создаётся merge. Для классификатора это классы и сложные границы, для LLM, типы запросов, языки, длины контекста, форматы ответа и специализированная лексика. Финальную метрику лучше считать на независимой отложенной выборке.
Полезно повторить matching на нескольких поднаборах и сравнить перестановки. Если соответствие сильно меняется при замене данных, внутренняя структура моделей плохо согласована или критерий сходства недостаточно устойчив.
Технические ограничения: нормализация, adapters и квантизация
Разные статистики normalization могут менять активации ещё до того, как проявится ошибка matching. Параметры LayerNorm или RMSNorm нельзя смешивать с другими весами без проверки их роли в конкретной архитектуре.
Adapters добавляют собственные координаты. Сначала нужно решить, объединяются ли базовые модели, adapter-обновления или оба слоя параметров. Для LoRA важно учитывать целевую матрицу, масштаб и базовый checkpoint.
При разном dtype округление меняет результат. Квантизованные веса могут иметь разные масштабы, zero-point и схемы группировки. Среднее таких представлений способно отражать особенности формата, а не полезную среднюю модель. Надёжное сравнение требует одинакового dtype, одинаковой схемы деквантизации и фиксации порядка операций.
Как проверить результат слияния на данных
Минимальный набор сравнений
Evaluation protocol должен включать исходные модели и оба варианта merge:
| Вариант | Что показывает |
|---|---|
| Модель A | Первый baseline и его сильные стороны |
| Модель B | Второй baseline и отличия поведения |
| Наивное среднее | Эффект сложения без выравнивания |
| Выровненное среднее | Эффект matching при том же протоколе оценки |
| Ансамбль | Сравнение с объединением ответов без смешивания весов |
Для LLM измеряют perplexity на отложенном корпусе и метрики целевых задач: качество классификации, точность извлечения, следование формату, генерацию кода или другие показатели, соответствующие применению. Для компьютерного зрения и других сетей выбирают loss, accuracy, F1, mAP или профильную метрику.
Один общий балл скрывает регрессии. Модель может улучшить среднее качество и потерять редкий язык, отдельный класс или критический формат ответа. Поэтому результаты нужно раскладывать по подзадачам и группам входов.
При проектировании собственного evaluation harness полезно разделять качество самой модели и влияние обвязки, формата запросов, декодирования и проверяющего кода. Практический пример такого подхода разобран в материале о том, как дизайн harness меняет результаты на одной 4B-модели: проверка влияния обвязки на метрику.
Проверка барьера и регрессий
Для линейной интерполяции сохраните loss и целевые метрики при нескольких значениях t. Минимальный набор можно расширить точками 0.1, 0.2, 0.3 и так далее, если кривая имеет резкий провал.
- Проверяйте, где появляется рост loss.
- Сравнивайте кривые для наивного и выровненного пути.
- Ищите подзадачи, где средняя модель теряет специализацию.
- Проверяйте редкие и сложные примеры отдельно.
- Фиксируйте seed, dtype, декодирование и порядок вычислений.
Для LLM полезно сравнивать не только perplexity, но и поведение на длинном контексте, structured output, инструментах, коде и доменной терминологии, если эти режимы входят в задачу. Для классификатора стоит смотреть confusion matrix и качество по классам, а не одну accuracy.
Как оценить качество самого выравнивания
Плохой merge может быть следствием слабого matching или фундаментальной несовместимости моделей. Чтобы разделить эти причины, сохраните промежуточные показатели:
- матрицы similarity для каждого сопоставленного слоя;
- долю нейронов с низким сходством;
- разницу между лучшим и вторым кандидатом;
- изменение выходов после применения перестановки;
- список всех переставленных осей и тензоров.
Если корректная перестановка должна сохранять функцию, выходы до и после неё сравнивают на одних входах. Заметное изменение до усреднения указывает на ошибку переноса координат. Если выходы совпадают, а среднее всё равно проваливается, причина, вероятно, связана с конфликтом функций, барьером, нормализацией или численным форматом.
Калибровочный набор нужен для поиска соответствий. Финальное качество оценивают на отложенных данных. Один и тот же набор можно применять для отладки, но результат merge тогда требует более осторожной интерпретации.
Практический вывод: когда усреднять, а когда не стоит
Усреднение весов разумно пробовать, когда модели имеют:
- одинаковую архитектуру и порядок операций;
- общую базу или близкую инициализацию;
- одинаковый tokenizer и согласованные embedding-таблицы;
- сходную задачу fine-tuning;
- низкий loss на совместимом распределении данных;
- приемлемую кривую линейной интерполяции.
При независимом обучении сначала проверьте activation matching и сохранение выходов после перестановок. Для Transformer отдельно разберите attention heads, FFN, residual dimension, normalization, adapters и tied weights. Совпадение shape недостаточно.
Среднее лучше отложить, если модели используют разные токенизаторы, конфликтующие задачи или демонстрируют высокий loss внутри интерполяционного пути. В таких условиях сравните ансамбль, маршрутизацию или отдельные адаптеры. Выбор зависит от бюджета памяти, стоимости инференса и того, насколько критично сохранить специализированные способности.
Короткий чек-лист:
- Сохранить модели A и B без изменений.
- Проверить архитектуру, tokenizer, dtype, adapters и shared weights.
- Сформировать наивное среднее как baseline.
- Собрать активации на репрезентативном калибровочном датасете.
- Найти соответствия по корреляции или cosine similarity.
- Решить assignment-задачу венгерским алгоритмом.
- Перенести перестановки на все связанные параметры.
- Проверить выходы до усреднения.
- Собрать выровненное среднее с зафиксированными весами.
- Сравнить baseline, оба merge, интерполяцию и ансамбль на отложенных данных.
Главный критерий успеха, поведение на данных. Форма чекпойнта, совпадение размеров тензоров и низкий loss исходных моделей сами по себе не доказывают, что их веса можно безопасно сложить.