Model Soups
Узнай, как Model Soups повышают точность и надежность за счет усреднения весов моделей Ultralytics YOLO. Научись увеличивать производительность, не увеличивая задержку.
Model Soups — это метод машинного обучения, при котором веса нескольких нейронных сетей, дообученных на основе одной и той же предварительно обученной базовой модели с использованием разных гиперпараметров, усредняются для создания единой, более надежной модели. Этот подход позволяет разработчикам улучшить общую точность и обобщающую способность без увеличения вычислительных затрат при инференсе.
При дообучении модели специалисты обычно проводят масштабный поиск hyperparameter tuning, чтобы найти конфигурацию с наилучшей производительностью. Традиционно выбирается одна лучшая модель, а остальные отбрасываются. Однако создание model soup позволяет использовать разнообразные признаки, изученные всеми моделями в ходе поиска. Путем прямого усреднения их model weights результирующая сеть часто превосходит по эффективности одну лучшую модель, объединяя их сильные стороны и минимизируя overfitting. Этот процесс крайне эффективен и легко управляется в рамках таких сред для совместной работы, как Ultralytics Platform.
Link to this sectionРеальные применения#
Model Soups особенно эффективны в сценариях, где вычислительные ресурсы ограничены, но требуются высокая точность и надежность.
- Компьютерное зрение для автономных транспортных средств: При развертывании систем object detection в беспилотных автомобилях модели должны демонстрировать высокую обобщающую способность в различных условиях освещения и погоды. Усредняя несколько моделей, обученных с использованием различных методов аугментации данных и скоростей обучения, инженеры создают очень надежный «суп», который сохраняет низкую inference latency. Это гарантирует, что скорость обработки в реальном времени, критически важная для autonomous navigation, останется неизменной.
- Мобильная медицинская диагностика: В приложениях Edge AI, таких как выполнение image classification на смартфонах для первичного дерматологического скрининга, вычислительная мощность сильно ограничена. Model soup обеспечивает повышенную точность, необходимую для клинической надежности, гарантируя при этом, что итоговый размер модели легко помещается на mobile edge devices, не разряжая аккумулятор и не требуя подключения к облаку.
Link to this sectionРазграничение похожих концепций#
Чтобы ориентироваться в области deep learning optimization, важно отличать Model Soups от похожих методов:
- Model Ensemble: Ансамблирование объединяет предсказания (выходные данные) нескольких независимых моделей. Хотя это повышает точность, оно требует запуска каждой модели во время инференса, что умножает вычислительные затраты. Model Soups усредняют веса перед инференсом, сохраняя вычислительные затраты на уровне одной модели.
- Model Merging: Это более широкий термин для объединения моделей, которые могли быть обучены для совершенно разных задач или на разных наборах данных. Model Soups — это специфическое подмножество слияния, при котором все модели происходят от одной и той же pre-trained base architecture и дообучаются для одной и той же целевой задачи.
Link to this sectionПример реализации#
Создание унифицированного model soup включает доступ к PyTorch state dictionary нескольких обученных моделей и математическое усреднение их тензоров. Ниже приведен краткий пример того, как это можно реализовать с помощью рабочего процесса Ultralytics YOLO26, который нативно поддерживается PyTorch framework.
import torch
# Load the PyTorch state dictionaries from two fine-tuned YOLO26 models
model1 = torch.load("yolo26_run1.pt")["model"].state_dict()
model2 = torch.load("yolo26_run2.pt")["model"].state_dict()
# Create a uniform model soup by averaging the model weights
soup_dict = {key: (model1[key] + model2[key]) / 2.0 for key in model1.keys()}
# The resulting soup_dict can now be loaded into a new YOLO26 instanceBy leveraging this technique, computer vision practitioners can easily boost performance metrics like zero-shot learning capabilities and general robustness without sacrificing the deployment speed required for modern, edge-first AI architectures.






