Descubra como conjuntos de modelos combinam várias arquiteturas, como Ultralytics , para aumentar a precisão e a robustez. Aprenda técnicas essenciais e dicas de implementação.
Um conjunto de modelos é uma abordagem estratégica em aprendizagem automática em que as previsões de vários modelos individuais são combinadas para produzir um resultado final que é frequentemente mais preciso e robusto do que qualquer modelo individual poderia alcançar sozinho. Muito semelhante a um comité de especialistas que delibera para chegar a uma decisão melhor do que um único indivíduo, um conjunto de modelos aproveita os pontos fortes de diversas arquiteturas para mitigar erros. Essa técnica é amplamente utilizada para melhorar o desempenho em tarefas complexas, reduzir o risco de sobreajuste e lidar com o compromisso entre viés e variância inerente à modelação estatística .
O princípio fundamental por trás de um conjunto de modelos é a «diversidade». Ao treinar vários modelos — frequentemente referidos como «aprendizes básicos» ou «aprendizes fracos» — em diferentes subconjuntos de dados de treino ou utilizando diferentes algoritmos, o conjunto garante que os erros cometidos por um modelo sejam provavelmente corrigidos por outros. No contexto da aprendizagem profunda, isso geralmente envolve a execução de várias redes neurais em paralelo durante a inferência.
Os métodos comuns para combinar essas previsões incluem:
Os conjuntos de modelos são essenciais em ambientes de alto risco, onde maximizar a precisão é fundamental e os recursos computacionais permitem a execução de vários modelos.
Embora seja possível criar estratégias de conjunto complexas usando bibliotecas como Scikit-learn, você pode criar um conjunto de inferência básico para visão computacional simplesmente carregando vários modelos e processando a mesma entrada. O exemplo a seguir demonstra como carregar dois modelos distintos Ultralytics YOLO para gerar previsões na mesma imagem.
from ultralytics import YOLO
# Load two different model variants to create a diverse ensemble
model_a = YOLO("yolo26n.pt") # Nano model (Speed focused)
model_b = YOLO("yolo26s.pt") # Small model (Higher accuracy)
# Perform inference on an image with both models
# In production, results are typically merged programmatically
results_a = model_a("https://ultralytics.com/images/bus.jpg")
results_b = model_b("https://ultralytics.com/images/bus.jpg")
print(f"Model A detected {len(results_a[0].boxes)} objects.")
print(f"Model B detected {len(results_b[0].boxes)} objects.")
É útil diferenciar um conjunto de modelos padrão de uma Mistura de Especialistas (MoE), um termo frequentemente visto na pesquisa moderna de Modelos de Linguagem Grande (LLM).
A principal vantagem de usar um conjunto de modelos é o aumento no desempenho. Os conjuntos frequentemente dominam os rankings em desafios de ciência de dados, como as competições Kaggle, porque podem modelar padrões complexos que os modelos individuais não conseguem captar. No entanto, isso tem um custo: a implementação de conjuntos requer mais memória e poder de computação.
Para equipas que procuram gerir essas demandas de recursos de forma eficiente, a Ultralytics oferece ferramentas para treinar, track e comparar diferentes arquiteturas de modelos. Ao comparar métricas de desempenho facilmente, os programadores podem decidir se o ganho de precisão de um conjunto justifica a infraestrutura extra necessária para a implementação em cenários de IA de ponta.