Узнайте, как слияние моделей позволяет объединить несколько предварительно обученных моделей в одну. Узнайте, как объединить весовые коэффициенты Ultralytics для повышения производительности без дополнительной задержки.
Объединение моделей — это инновационный метод в машинном обучении (ML), который объединяет обученные параметры (веса) нескольких предварительно обученных моделей в одну единую модель. В отличие от традиционных многомодельных конфигураций, слияние напрямую объединяет веса моделей в пространстве параметров. Это позволяет специалистам объединять специализированные знания нескольких моделей, настроенных на различные задачи или наборы данных, без затрат памяти и вычислительных ресурсов, связанных с одновременным запуском нескольких моделей .
Благодаря применению операций непосредственно к весам, объединение моделей позволяет сохранить архитектурную структуру единой сети. Это особенно ценно при развертывании сложных конвейеров компьютерного зрения (CV) на периферийных устройствах, где сокращение задержки инференции и экономия памяти имеют решающее значение.
Полезно провести разграничение между объединением моделей и такими смежными понятиями, как ансамбль моделей и переносное обучение.
Исследователи разработали несколько методов эффективного объединения весов без ущерба для базовых возможностей сети, как показано в недавних научных работах, опубликованных на arXiv.
Объединение моделей является весьма эффективным методом для построения обобщенных систем без необходимости повторного обучения с нуля.
Вы можете легко выполнить базовое объединение моделей с помощью 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 предоставляет интуитивно понятный интерфейс, позволяющий без труда управлять комплексными проектами в области искусственного интеллекта для систем технического зрения.
Начните свой путь в будущее машинного обучения