Yolo Vision Shenzhen
Shenzhen
Iscriviti ora
Glossario

Vettori di attività

Scopri come i vettori di attività consentono di unire i modelli e guidare il comportamento in modo efficiente. Scopri come manipolare i pesi Ultralytics per il multitasking zero-shot.

I vettori di attività rappresentano le modifiche specifiche apportate ai pesi di una rete neurale durante la messa a punto per ottenere una nuova capacità. Sottraendo i parametri di un modello di base di riferimento da quelli di un modello ottimizzato, i ricercatori possono isolare un vettore direzionale nello spazio dei pesi che racchiude il comportamento appreso per quella specifica attività. Questo approccio consente agli sviluppatori di applicare semplici operazioni aritmetiche sui parametri del modello per orientare, modificare o unire i comportamenti del modello senza richiedere ulteriori risorse di calcolo per l'addestramento.

In che modo i vettori di attività si differenziano dal transfer learning

Mentre il concetto di apprendimento per trasferimento prevede l'addestramento sequenziale di un modello su un nuovo set di dati per adattare le sue conoscenze esistenti, i vettori di attività agiscono direttamente sui pesi strutturali del modello dopo l'addestramento. Invece di addestrare nuovamente i gradienti per apprendere un nuovo dominio, l'interpolazione dello spazio dei pesi tramite i vettori di attività consente ai professionisti di combinare linearmente le differenze di peso provenienti da più modelli addestrati in modo indipendente. Ciò consente la fusione di modelli zero-shot, permettendo a un singolo modello di ereditare più capacità contemporaneamente senza il tipico sovraccarico computazionale durante l'addestramento.

Applicazioni nel mondo reale

La possibilità di manipolare i modelli di deep learning dal punto di vista algebrico ha portato a diverse applicazioni di grande impatto nelle moderne pipeline di IA:

Lavorare con i vettori di attività in PyTorch

La creazione e l'applicazione di un vettore di attività richiedono l'accesso e la manipolazione del dizionarioPyTorch . L' esempio seguente mostra come estrarre un vettore di attività da un modello YOLO26 ottimizzato e riapplicarlo al modello di 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 del peso

Man mano che architetture come i grandi modelli linguistici e i trasformatori di visione su larga scala aumentano il numero di parametri, il loro riaddestramento per ogni piccola modifica diventa economicamente insostenibile. I vettori di attività forniscono un'alternativa matematicamente elegante per l'ottimizzazione dei modelli post-addestramento . Condividendo vettori di attività leggeri invece di interi modelli da diversi gigabyte, la comunità dell'IA può accelerare la collaborazione open-source nel campo dell'IA. Una volta perfezionati i vostri vettori di attività personalizzati, l'utilizzo della Ultralytics semplifica i successivi processi di implementazione e monitoraggio dei modelli, garantendo che i vostri pesi ottimizzati si traducano direttamente in endpoint pronti per la produzione.

Costruiamo insieme il futuro dell'intelligenza artificiale!

Inizia il tuo viaggio con il futuro del machine learning