Descubra como o Model Soups melhora a precisão e a robustez através da média dos pesos dosYOLO Ultralytics . Aprenda a melhorar o desempenho sem aumentar a latência.
As «sopas de modelos» referem-se a uma técnica de aprendizagem automática em que os pesos de várias redes neurais, ajustados a partir do mesmo modelo base pré-treinado utilizando diferentes hiperparâmetros, são calculados em média para criar um único modelo mais robusto. Esta abordagem permite aos programadores melhorar a precisão global e a generalização sem aumentar o custo computacional durante a inferência.
Ao ajustar um modelo, os profissionais costumam realizar uma ampla varredura de ajuste de hiperparâmetros para encontrar a configuração com melhor desempenho. Tradicionalmente, é selecionado o melhor modelo individual e os restantes são descartados. No entanto, a criação de um «model soup» aproveita as diversas características aprendidas por todos os modelos na varredura. Ao calcular diretamente a média dos pesos dos modelos, a rede resultante supera frequentemente o melhor modelo individual, combinando eficazmente os seus pontos fortes e minimizando o sobreajuste. Este processo é altamente eficiente e pode ser facilmente gerido em ambientes colaborativos como a Ultralytics .
As «Model Soups» são altamente eficazes em situações em que os recursos computacionais são limitados, mas é necessária uma elevada precisão e robustez.
Para se orientar no panorama da otimização do deep learning, é importante distinguir o «Model Soups» de técnicas semelhantes:
A criação de um conjunto de modelos uniformes envolve aceder ao dicionárioPyTorch de vários modelos treinados e calcular matematicamente a média dos seus tensores. Segue-se um exemplo conciso de como isto pode ser conseguido utilizando um fluxo de trabalho Ultralytics nativamente suportado pela PyTorch .
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 instance
Ao recorrer a esta técnica, os profissionais da área da visão computacional podem facilmente melhorar métricas de desempenho como as capacidades de aprendizagem sem treino prévio e a robustez geral, sem comprometer a velocidade de implementação exigida pelas arquiteturas modernas de IA centradas na periferia.
Comece sua jornada com o futuro do aprendizado de máquina