Task Vectors
Apprends comment les vecteurs de tâches permettent une fusion efficace de modèles et une orientation du comportement. Découvre comment manipuler les poids d'Ultralytics YOLO26 pour le multi-tâche zero-shot.
Les vecteurs de tâche représentent les changements spécifiques apportés aux poids d'un réseau de neurones lors du réglage fin pour atteindre une nouvelle capacité. En soustrayant les paramètres d'un modèle de base fondamental de ceux d'un modèle réglé finement, les chercheurs peuvent isoler un vecteur directionnel dans l'espace des poids qui encapsule le comportement appris pour cette tâche spécifique. Cette approche permet aux développeurs d'appliquer des opérations arithmétiques simples sur les paramètres du modèle pour orienter, modifier ou fusionner les comportements des modèles sans nécessiter de ressources de calcul d'entraînement supplémentaires.
Comment les vecteurs de tâche se différencient de l'apprentissage par transfert
Bien que le concept de transfer learning implique l'entraînement séquentiel d'un modèle sur un nouveau jeu de données pour adapter ses connaissances existantes, les vecteurs de tâche opèrent directement sur les poids structurels du modèle après l'entraînement. Au lieu de réentraîner les gradients pour apprendre un nouveau domaine, l'interpolation dans l'espace des poids utilisant des vecteurs de tâche permet aux praticiens de combiner linéairement les différences de poids provenant de plusieurs modèles entraînés indépendamment. Cela permet une fusion de modèles zéro-shot, permettant à un modèle unique d'hériter de plusieurs capacités simultanément sans le coût computationnel typique pendant l'entraînement.
Applications dans le monde réel
La capacité à manipuler algébriquement les modèles de deep learning a conduit à plusieurs applications percutantes au sein des pipelines IA modernes :
- Fusion de modèles multi-tâches : Les ingénieurs peuvent combiner un vecteur de tâche optimisé pour la détection d'objets avec un autre entraîné pour la segmentation d'image. Lorsqu'il est appliqué à un modèle de base Ultralytics YOLO26, cela crée une architecture à double usage qui excelle simultanément dans les deux tâches, préservant les forces de chaque réglage fin original.
- Désapprentissage machine et sécurité de l'IA : Si un modèle présente des sorties biaisées ou dangereuses, les chercheurs peuvent calculer un vecteur de tâche représentant ce comportement indésirable spécifique. En soustrayant ce vecteur des poids du modèle, ils peuvent efficacement « effacer » le comportement, contribuant largement à l'amélioration de la sécurité de l'IA et aux normes robustes d'éthique de l'IA.
- Adaptation au domaine en vision par ordinateur : Lors de l'adaptation de modèles pour des environnements spécifiques — comme le passage de l'inférence en temps réel de jour à celle de nuit — les vecteurs de tâche permettent aux utilisateurs de mettre à l'échelle l'ampleur de l'adaptation. Appliquer une fraction du vecteur (par exemple, un facteur d'échelle de 0,5) peut produire un modèle équilibré qui fonctionne bien dans les deux domaines.
Travailler avec les vecteurs de tâche dans PyTorch
Créer et appliquer un vecteur de tâche nécessite d'accéder et de manipuler le dictionnaire d'état PyTorch. L'exemple suivant démontre comment extraire un vecteur de tâche d'un modèle YOLO26 finement réglé et l'appliquer au modèle de base avec un facteur d'échelle spécifique.
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]L'avenir de la manipulation des poids
À mesure que les architectures comme les grands modèles de langage et les transformateurs de vision massifs augmentent en nombre de paramètres, les réentraîner pour chaque ajustement mineur devient économiquement irréalisable. Les vecteurs de tâche offrent une alternative mathématiquement élégante pour l'optimisation de modèles post-entraînement. En partageant des vecteurs de tâche légers au lieu de modèles entiers de plusieurs gigaoctets, la communauté IA peut accélérer la collaboration open-source en IA. Une fois que tes vecteurs de tâche personnalisés sont raffinés, l'utilisation de la plateforme Ultralytics simplifie le déploiement de modèles et les processus de suivi ultérieurs, garantissant que tes poids optimisés se traduisent directement en points de terminaison prêts pour la production.






