Descubra como a fusão de modelos combina vários modelos pré-treinados num único. Saiba como fundir os pesos Ultralytics para melhorar o desempenho sem aumentar a latência.
A fusão de modelos é uma técnica inovadora na aprendizagem automática (ML) que combina os parâmetros aprendidos (pesos) de vários modelos pré-treinados num único modelo unificado. Ao contrário das configurações tradicionais com vários modelos, a fusão combina diretamente os pesos dos modelos no espaço de parâmetros. Isto permite aos profissionais combinar o conhecimento especializado de vários modelos ajustados para tarefas ou conjuntos de dados diferentes, sem incorrer nos custos de memória e computacionais associados à execução simultânea de vários modelos.
Ao aplicar operações diretamente aos pesos, a fusão de modelos mantém a pegada arquitetónica de uma única rede. Isto é particularmente valioso na implementação de pipelines avançados de visão computacional (CV) em dispositivos periféricos, onde a redução da latência de inferência e a poupança de memória são fundamentais.
É útil distinguir a fusão de modelos de conceitos relacionados, como o conjunto de modelos e a aprendizagem por transferência.
Os investigadores desenvolveram vários métodos para combinar pesos de forma eficaz sem comprometer as capacidades subjacentes da rede, tal como explorado em recentes estudos académicos publicados no arXiv.
A fusão de modelos é altamente eficaz para criar sistemas generalizados sem necessidade de retreinar os modelos a partir do zero.
Pode realizar facilmente a fusão de modelos básicos utilizando PyTorch. O exemplo a seguir demonstra como calcular a média dos dicionários de estado de dois modelos com estrutura idêntica.
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")
Para equipas que pretendem simplificar os complexos fluxos de trabalho de anotação, treino e implementação de conjuntos de dados, a Ultralytics oferece uma interface intuitiva para gerir projetos de IA de visão de ponta a ponta sem esforço.
Comece sua jornada com o futuro do aprendizado de máquina