Task Vectors
Apprends comment les vecteurs de tâche permettent une fusion efficace des modèles et un pilotage du comportement. Découvre comment manipuler les poids d'Ultralytics YOLO26 pour le multi-tâche zéro-shot.
Les task vectors représentent les modifications spécifiques apportées aux poids d'un réseau de neurones lors du réglage fin (fine-tuning) pour acquérir une nouvelle capacité. En soustrayant les paramètres d'un modèle de base fondamental de ceux d'un modèle ajusté, les chercheurs peuvent isoler un vecteur directionnel dans l'espace des poids qui englobe le comportement appris pour cette tâche spécifique. Cette approche permet aux développeurs d'appliquer de simples opérations arithmétiques sur les paramètres du modèle pour orienter, modifier ou fusionner les comportements des modèles sans nécessiter de calculs d'entraînement supplémentaires.
En quoi les vecteurs de tâche diffèrent de l'apprentissage par transfert#
Alors que le concept de transfert d'apprentissage consiste à entraîner séquentiellement un modèle sur un nouveau jeu de données pour adapter ses connaissances existantes, les task vectors agissent 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 à l'aide de task vectors 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 en zero-shot, permettant à un seul modèle d'hériter de plusieurs capacités simultanément sans la surcharge de calcul habituelle pendant l'entraînement.
Applications concrètes#
La capacité à manipuler algébriquement des modèles de deep learning a conduit à plusieurs applications percutantes dans les pipelines d'IA modernes :
- Fusion de modèles multi-tâches : Les ingénieurs peuvent combiner un task vector optimisé pour la détection d'objets avec un autre entraîné pour la segmentation d'images. Lorsqu'il est appliqué à un modèle de base Ultralytics YOLO26, cela crée une architecture à double usage qui excelle dans les deux tâches simultanément, tout en préservant les points forts de chaque réglage fin d'origine.
- Désapprentissage automatique et sécurité de l'IA : Si un modèle présente des résultats biaisés ou dangereux, les chercheurs peuvent calculer un task vector représentant ce comportement indésirable spécifique. En soustrayant ce vecteur des poids du modèle, ils peuvent effectivement « effacer » ce comportement, contribuant grandement à l'amélioration de la sécurité de l'IA et aux normes d'éthique de l'IA robustes.
- Adaptation de domaine en computer vision : Lors de l'adaptation de modèles à des environnements spécifiques — tel que le passage d'une inférence en temps réel diurne à nocturne —, les task vectors permettent aux utilisateurs de moduler l'ampleur de l'adaptation. L'application d'une fraction du vecteur (par exemple, un facteur d'échelle de 0,5) peut produire un modèle équilibré qui donne de bons résultats dans les deux domaines.
Travailler avec les vecteurs de tâche dans PyTorch#
Créer et appliquer un task vector nécessite d'accéder au et de manipuler le dictionnaire d'état PyTorch. L'exemple suivant montre comment extraire un task vector d'un modèle Ultralytics YOLO26 affiné 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 des architectures telles que les grands modèles de langage et les transformers de vision massifs augmentent en nombre de paramètres, les réentraîner pour chaque petit ajustement devient économiquement non viable. Les task vectors constituent une alternative mathématiquement élégante pour l'optimisation de modèles post-entraînement. En partageant des task vectors légers au lieu de modèles entiers de plusieurs gigaoctets, la communauté de l'IA peut accélérer la collaboration open source en IA. Une fois tes task vectors personnalisés affinés, l'utilisation de la plateforme Ultralytics simplifie les processus ultérieurs de déploiement de modèles et de surveillance, garantissant que tes poids optimisés se traduisent directement par des points de terminaison prêts pour la production.






