Yolo Vision Shenzhen
Shenzhen
Junte-se agora
Glossário

Vetores de tarefas

Saiba como os vetores de tarefas permitem a fusão eficiente de modelos e o direcionamento do comportamento. Descubra como manipular os pesos Ultralytics para a realização de múltiplas tarefas sem treinamento prévio.

Os vetores de tarefa representam as alterações específicas feitas nos pesos de uma rede neural durante o ajuste fino para alcançar uma nova capacidade. Ao subtrair os parâmetros de um modelo base fundamental dos de um modelo ajustado, os investigadores podem isolar um vetor direcional no espaço de pesos que encapsula o comportamento aprendido para essa tarefa específica. Esta abordagem permite aos programadores aplicar operações aritméticassimples aos parâmetros do modelo para orientar, modificar ou fundir comportamentos do modelo sem necessitar de recursos computacionais adicionais para treino.

Em que medida os vetores de tarefa se diferenciam da aprendizagem por transferência

Embora o conceito de aprendizagem por transferência implique treinar sequencialmente um modelo num novo conjunto de dados para adaptar o seu conhecimento existente, os vetores de tarefa atuam diretamente sobre os pesos estruturais do modelo após o treino. Em vez de retreinar gradientes para aprender um novo domínio, a interpolação do espaço de pesos utilizando vetores de tarefa permite aos profissionais combinar linearmente as diferenças de peso de vários modelos treinados independentemente. Isto permite a fusão de modelos zero-shot, permitindo que um único modelo herde múltiplas capacidades simultaneamente sem a sobrecarga computacional típica durante o treino.

Aplicações no Mundo Real

A capacidade de manipular modelos de aprendizagem profunda de forma algébrica levou a várias aplicações de grande impacto em fluxos de trabalho modernos de IA:

Trabalhar com vetores de tarefas no PyTorch

A criação e a aplicação de um vetor de tarefa requerem o acesso e a manipulação do dicionárioPyTorch . O exemplo seguinte demonstra como extrair um vetor de tarefa de um modelo YOLO26 ajustado e aplicá-lo novamente ao modelo base com um fator de escala específico.

from ultralytics import YOLO

# Load the state dictionaries for the base and fine-tuned models
base_weights = YOLO("yolo26n.pt").model.state_dict()
tuned_weights = YOLO("yolo26n-custom.pt").model.state_dict()

# Calculate the task vector (tuned weights minus base weights)
task_vector = {k: tuned_weights[k] - base_weights[k] for k in base_weights.keys()}

# Apply the task vector to the base model using a 0.5 scaling factor
for k in base_weights.keys():
    base_weights[k] += 0.5 * task_vector[k]

O Futuro da Manipulação do Peso

À medida que arquiteturas como grandes modelos de linguagem e transformadores de visão massivos aumentam o número de parâmetros, retreiná-los para cada pequeno ajuste torna-se economicamente inviável. Os vetores de tarefa oferecem uma alternativa matematicamente elegante para a otimização de modelos pós-treino . Ao partilhar vetores de tarefas leves em vez de modelos inteiros com vários gigabytes, a comunidade de IA pode acelerar a colaboração de código aberto em IA. Assim que os seus vetores de tarefas personalizados forem aperfeiçoados, a utilização da Ultralytics simplifica os processos subsequentes de implementação e monitorização de modelos, garantindo que os seus pesos otimizados se traduzam diretamente em terminais prontos para produção.

Vamos construir juntos o futuro da IA!

Comece sua jornada com o futuro do aprendizado de máquina