Découvrez comment l'arithmétique des tâches utilise les mises à jour des poids pour modifier le comportement du modèle. Apprenez à fusionner des tâches ou à désapprendre des caractéristiques dans Ultralytics sans avoir à procéder à un réentraînement complet.
L'arithmétique des tâches est une technique avancée d'apprentissage automatique qui consiste à modifier le comportement de réseaux neuronaux pré-entraînés en ajoutant ou en soustrayant des mises à jour spécifiques des poids. Au lieu de réentraîner entièrement un modèle à partir de zéro, les praticiens peuvent isoler les différences acquises entre un modèle de base et un modèle affiné. Ces différences sont essentiellement des mises à jour directionnelles qui encapsulent une capacité ou un comportement spécifique. En appliquant des opérations mathématiques de base telles que l'addition et la soustraction à ces mises à jour, les développeurs peuvent modifier dynamiquement les systèmes d'apprentissage profond. Ce paradigme a connu un succès considérable dans les récentes recherches arXiv sur l'arithmétique des tâches, offrant une méthode légère et efficace en termes de calcul pour adapter des modèles à grande échelle à de nouvelles exigences.
Cette technique repose sur le calcul de la différence entre les poids d'un modèle de base pré-entraîné et ceux d'une version ayant fait l'objet d'un ajustement fin sur un ensemble de données spécifique. Cette différence isolée devient une représentation localisée de la nouvelle compétence. En manipulantdirectement les dictionnaires PyTorch ou en utilisant les méthodologiesTensorFlow , les ingénieurs peuvent adapter et combiner ces différences de poids. Par exemple, soustraire une mise à jour de poids spécifique peut forcer un modèle à « oublier » un comportement appris, un concept largement exploré dans Anthropic sur la sécurité des modèles.
L'arithmétique des tâches permet de mettre en place plusieurs flux de travail très efficaces dans les chaînes de traitement modernes de la vision par ordinateur et du traitement du langage naturel :
Lorsqu'on parcourt les archives d'IEEE Xplore ou la bibliothèque numérique de l'ACM, il est facile de confondre l'arithmétique des tâches avec des méthodologies apparentées :
La mise en œuvre de ces stratégies d'optimisation de modèles dans la pratique nécessite une gestion rigoureuse de l'état interne du modèle. Vous trouverez ci-dessous un exemple de calcul et d'application d'une mise à jour à l'aide de PyTorch, une technique fréquemment abordée dans les articles récents sur la vision par ordinateur.
import torch
# Load the state dictionaries of the pre-trained base and fine-tuned models
base_weights = torch.load("yolo26_base.pt")
tuned_weights = torch.load("yolo26_tuned.pt")
# Calculate the task vector and add it back to the base model with a scaling factor
scaling_factor = 0.5
for key in base_weights.keys():
task_vector = tuned_weights[key] - base_weights[key]
base_weights[key] += scaling_factor * task_vector
Pour les équipes chargées de gérer des chaînes de traitement complexes d'annotation de données et plusieurs versions de modèles finement ajustés, la Ultralytics offre un environnement simplifié permettant de superviser l'entraînement dans le cloud et le déploiement en toute fluidité, rendant ainsi la gestion des améliorations itératives des modèles beaucoup plus efficace.
Commencez votre parcours avec l'avenir de l'apprentissage automatique