Yolo Vision Shenzhen
Шэньчжэнь
Присоединиться сейчас
Глоссарий

Объединение моделей

Узнайте, как слияние моделей позволяет объединить несколько предварительно обученных моделей в одну. Узнайте, как объединить весовые коэффициенты Ultralytics для повышения производительности без дополнительной задержки.

Объединение моделей — это инновационный метод в машинном обучении (ML), который объединяет обученные параметры (веса) нескольких предварительно обученных моделей в одну единую модель. В отличие от традиционных многомодельных конфигураций, слияние напрямую объединяет веса моделей в пространстве параметров. Это позволяет специалистам объединять специализированные знания нескольких моделей, настроенных на различные задачи или наборы данных, без затрат памяти и вычислительных ресурсов, связанных с одновременным запуском нескольких моделей .

Благодаря применению операций непосредственно к весам, объединение моделей позволяет сохранить архитектурную структуру единой сети. Это особенно ценно при развертывании сложных конвейеров компьютерного зрения (CV) на периферийных устройствах, где сокращение задержки инференции и экономия памяти имеют решающее значение.

Объединение моделей с учетом их отличий

Полезно провести разграничение между объединением моделей и такими смежными понятиями, как ансамбль моделей и переносное обучение.

  • Объединение моделей и ансамбль моделей: в ансамбле моделей отдельные сети работают независимо друг от друга, каждая из них запускается во время инференции, а их результаты усредняются. Это повышает точность, но значительно увеличивает вычислительную нагрузку. При объединении моделей веса объединяются перед инференцией, в результате чего получается единая модель, не требующая дополнительных вычислений во время выполнения.
  • Объединение моделей и переносное обучение: переносное обучение предполагает использование базовой модели и её дальнейшую обучение на новом наборе данных. Объединение моделей не требует дополнительной настройки; оно использует математические операции для объединения уже обученных моделей.

Распространенные методы

Исследователи разработали несколько методов эффективного объединения весов без ущерба для базовых возможностей сети, как показано в недавних научных работах, опубликованных на arXiv.

  • Усреднение весов: Самый простой метод, при котором берется среднее значение весов из нескольких моделей, имеющих одинаковую архитектуру.
  • Арифметика задач: метод, при котором «векторы задач» (разность между тонко настроенной моделью и её базовой моделью) складываются или вычитаются для объединения или удаления определённых поведенческих характеристик.
  • TIES-Merging: передовой подход, позволяющий устранить интерференцию параметров за счёт удаления избыточных значений и выбора согласованных знаков во всех моделях, при этом сохраняя эффективность при решении различных задач.

Применение в реальном мире

Объединение моделей является весьма эффективным методом для построения обобщенных систем без необходимости повторного обучения с нуля.

  • Автономные транспортные средства: Автомобиль с автономным управлением может использовать базовую модель Ultralytics . Инженеры могут независимо обучить одну версию модели для detect движений пешеходов, а другую — для распознавания сложных дорожных знаков. Объединение этих двух моделей создает единый высокопроизводительный детектор, который обрабатывает обе задачи одновременно без удвоения времени вывода.
  • ИИ в здравоохранении: В области медицинской визуализации различные исследовательские больницы могут настраивать модели на основе специализированных локальных наборов данных (например, один для МРТ-сканов и один для КТ-сканов) в связи со строгими законами о конфиденциальности данных. Безопасно объединяя эти модели, исследователи могут создать комплексный диагностический инструмент, который использует преимущества разнообразных распределений данных.

Пример: простое средневзвешенное значение

Вы можете легко выполнить базовое объединение моделей с помощью 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 предоставляет интуитивно понятный интерфейс, позволяющий без труда управлять комплексными проектами в области искусственного интеллекта для систем технического зрения.

Давайте вместе создадим будущее искусственного интеллекта!

Начните свой путь в будущее машинного обучения