Yolo Vision Shenzhen
Shenzhen
Rejoindre maintenant
Glossaire

Exercices d'arithmétique

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.

Comment fonctionne ce concept ?

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.

Applications concrètes

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 :

Différencier des concepts connexes

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 :

  • Vecteurs de tâches: Il s'agit des tenseurs mathématiques proprement dits (les différences de poids calculées) utilisés au cours du processus arithmétique. L'arithmétique des tâches constitue le cadre général dans lequel s'inscrivent l'addition ou la soustraction de ces vecteurs.
  • Fusion de modèles: Il s'agit d'un terme général désignant la combinaison de plusieurs modèles. Si l'arithmétique est une méthode de fusion des modèles, celle-ci peut également impliquer des réseaux de routage complexes ou l'assemblage de modèles.
  • Apprentissage par transfert: Selon les concepts de l'apprentissage par transfert présentés sur Wikipédia, cela consiste à utiliser les connaissances acquises lors d'une tâche comme point de départ pour une autre, ce qui nécessite généralement des cycles d'apprentissage supplémentaires. L'arithmétique des tâches modifie les comportements uniquement par le biais de calculs de poids directs, sans cycles d'apprentissage supplémentaires.

Mise en œuvre des opérations arithmétiques

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.

Construisons ensemble l'avenir de l'IA !

Commencez votre parcours avec l'avenir de l'apprentissage automatique