Task Vectors
Scopri come i task vector consentono un efficiente unione dei modelli e la direzione del comportamento. Scopri come manipolare i pesi di Ultralytics YOLO26 per il multi-tasking zero-shot.
I vettori di task rappresentano le modifiche specifiche apportate ai pesi di una rete neurale durante il fine-tuning per ottenere una nuova capacità. Sottraendo i parametri di un modello base fondamentale da quelli di un modello ottimizzato, i ricercatori possono isolare un vettore direzionale nello spazio dei pesi che racchiude il comportamento appreso per quel task specifico. Questo approccio consente agli sviluppatori di applicare semplici operazioni aritmetiche sui parametri del modello per guidare, modificare o unire i comportamenti del modello senza richiedere ulteriore capacità di calcolo per l'addestramento.
Come si differenziano i vettori di attività dal transfer learning#
Mentre il concetto di apprendimento per trasferimento prevede l'addestramento sequenziale di un modello su un nuovo dataset per adattarne la conoscenza esistente, i vettori di task operano direttamente sui pesi strutturali del modello post-addestramento. Invece di riaddestrare i gradienti per apprendere un nuovo dominio, l'interpolazione dello spazio dei pesi tramite i vettori di task consente ai professionisti di combinare linearmente le differenze di peso di più modelli addestrati in modo indipendente. Questo abilita la fusione di modelli zero-shot, permettendo a un singolo modello di ereditare più capacità simultaneamente senza il tipico sovraccarico computazionale durante l'addestramento.
Applicazioni nel mondo reale#
La capacità di manipolare algebricamente i modelli di deep learning ha portato a diverse applicazioni di impatto nei moderni flussi di lavoro di IA:
- Fusione di modelli multi-task: Gli ingegneri possono combinare un vettore di task ottimizzato per il rilevamento di oggetti con un altro addestrato per la segmentazione delle immagini. Quando applicato a un modello base di Ultralytics YOLO26, questo crea un'architettura a duplice scopo che eccelle in entrambi i task contemporaneamente, preservando i punti di forza di ciascun fine-tuning originale.
- Disapprendimento automatico e sicurezza dell'IA: Se un modello mostra output distorti o pericolosi, i ricercatori possono calcolare un vettore di task che rappresenta quel comportamento indesiderato specifico. Sottraendo questo vettore dai pesi del modello, possono "cancellare" efficacemente il comportamento, contribuendo in modo significativo a migliorare gli standard di sicurezza dell'IA e di robusta etica dell'IA.
- Adattamento di dominio nella visione artificiale: Nell'adattare i modelli per ambienti specifici — come il passaggio dall'inferenza in tempo reale diurna a quella notturna — i vettori di task consentono agli utenti di scalare l'entità dell'adattamento. Applicare una frazione del vettore (ad esempio, un fattore di scala pari a 0,5) può produrre un modello bilanciato che offre ottime prestazioni in entrambi i domini.
Lavorare con i vettori di attività in PyTorch#
La creazione e l'applicazione di un task vector richiede l'accesso e la manipolazione del PyTorch state dictionary. Il seguente esempio mostra come estrarre un task vector da un modello Ultralytics YOLO26 sottoposto a fine-tuning e applicarlo nuovamente al modello base con un fattore di scala specifico.
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]Il futuro della manipolazione dei pesi#
Poiché architetture come i modelli linguistici di grandi dimensioni e i mastodontici transformer di visione crescono nel numero di parametri, riaddassarli per ogni minima regolazione diventa economicamente non fattibile. I vettori di task offrono un'alternativa matematicamente elegante per l'ottimizzazione dei modelli post-addestramento. Condividendo vettori di task leggeri anziché interi modelli multi-gigabyte, la community di IA può accelerare la collaborazione open-source nell'IA. Una volta perfezionati i tuoi vettori di task personalizzati, l'utilizzo della piattaforma Ultralytics semplifica i successivi processi di distribuzione del modello e monitoraggio, assicurando che i tuoi pesi ottimizzati si traducano direttamente in endpoint pronti per la produzione.






