Model Merging
Узнай, как слияние моделей объединяет несколько предобученных моделей в одну. Изучи способы объединения весов Ultralytics YOLO26 для повышения производительности без дополнительной задержки.
Слияние моделей — это инновационный метод в машинном обучении (ML), который объединяет изученные параметры (веса) нескольких предварительно обученных моделей в одну универсальную модель. В отличие от традиционных многомодельных систем, слияние напрямую объединяет веса модели в пространстве параметров. Это позволяет объединять специализированные знания нескольких моделей, дообученных на разных задачах или датасетах, без дополнительных затрат памяти и вычислительных ресурсов на одновременный запуск нескольких моделей.
Применяя операции непосредственно к весам, слияние моделей сохраняет архитектурные размеры одной сети. Это особенно ценно при развертывании сложных конвейеров компьютерного зрения (CV) на периферийных устройствах, где критически важно уменьшить задержку инференса и сэкономить память.
Разграничение понятия объединения моделей#
Полезно отличать слияние моделей от связанных концепций, таких как ансамблирование моделей и трансферное обучение.
- Объединение моделей против ансамблирования: ансамбль моделей сохраняет отдельные нейросети по отдельности, запуская каждую во время вывода и усредняя их результаты. Это повышает точность, но увеличивает вычислительные затраты. Объединение моделей комбинирует фактические веса до вывода, что приводит к созданию одной модели, не требующей дополнительных вычислительных ресурсов во время работы.
- Слияние моделей против трансферного обучения: Трансферное обучение предполагает взятие базовой модели и ее дальнейшее обучение на новом датасете. Слияние моделей не требует дополнительного дообучения; оно использует математические операции для объединения уже обученных моделей.
Распространенные методы#
Исследователи разработали несколько методов эффективного объединения весов без разрушения базовых возможностей сети, как показано в недавних академических исследованиях на arXiv.
- Усреднение весов: Самый простой метод, заключающийся в вычислении среднего значения весов нескольких моделей с одинаковой архитектурой.
- Арифметика задач (Task Arithmetic): метод, при котором «векторы задач» (разница между дообученной моделью и ее базовой моделью) складываются или вычитаются для объединения или удаления определенных моделей поведения.
- TIES-Merging: продвинутый подход, который устраняет интерференцию параметров путем обрезки избыточных значений и выбора согласованных знаков в разных моделях, сохраняя производительность при выполнении разнообразных задач.
Реальные приложения#
Объединение моделей весьма эффективно для создания обобщенных систем без переобучения с нуля.
- Автономные транспортные средства: Беспилотный автомобиль может использовать базовую модель Ultralytics YOLO26. Инженеры могут независимо обучить одну версию модели обнаруживать незаметные движения пешеходов, а другую — читать сложные дорожные знаки. Слияние этих двух моделей создает единый высокоэффективный детектор, который справляется с обеими задачами одновременно без удвоения времени инференса.
- ИИ в здравоохранении: В медицинской визуализации разные исследовательские больницы могут дообучать модели на специализированных локальных датасетах (например, один для МРТ-сканирования, а другой для КТ-сканирования) из-за строгих законов о конфиденциальности данных. Безопасно объединяя модели, исследователи могут создать комплексный инструмент диагностики, использующий преимущества различных распределений данных.
Пример: простое усреднение весов#
Ты можешь легко выполнить базовое слияние моделей с помощью PyTorch. В следующем примере показано, как усреднить словари состояний двух моделей с одинаковой структурой.
import torch
# Load the weights (state dicts) from two identical architectures
weights_a = torch.load("yolo26_task1.pt")["model"].state_dict()
weights_b = torch.load("yolo26_task2.pt")["model"].state_dict()
# Perform simple weight averaging
merged_weights = {k: (weights_a[k] + weights_b[k]) / 2.0 for k in weights_a.keys()}
# Save the newly merged model weights
torch.save({"model": merged_weights}, "yolo26_merged.pt")Для команд, стремящихся упростить сложные рабочие процессы разметки датасетов, обучения и развертывания, Ultralytics Platform предоставляет интуитивно понятный интерфейс для легкого управления сквозными проектами в области визуального ИИ.






