Une banque de mémoire est une structure de données utilisée dans les algorithmes d'apprentissage automatique pour stocker et référencer les informations provenant d'itérations passées ou d'échantillons traités, découplant ainsi efficacement la capacité de mémoire du modèle de ses contraintes informatiques immédiates . Dans le contexte de l'apprentissage profond (DL), une banque de mémoire sert généralement de référentiel pour les intégrations ou les vecteurs de caractéristiques. Cela permet à un modèle de comparer l'entrée actuelle à un vaste historique d'entrées précédentes sans avoir à retraiter ou à conserver simultanément toutes ces données dans la mémoire vive (RAM) active. En conservant un tampon de représentations, les modèles peuvent apprendre à partir d'un contexte plus large, améliorant ainsi leurs performances dans les tâches qui nécessitent une cohérence à long terme ou une comparaison avec de grands ensembles de données.
La fonction principale d'une banque de mémoire est d'étendre les informations disponibles au-delà de la taille du lot actuel. Pendant l'entraînement, lorsque les données circulent dans le réseau neuronal, les représentations des caractéristiques qui en résultent sont poussées dans la banque. Si la banque atteint sa capacité maximale , les caractéristiques les plus anciennes sont généralement supprimées pour faire de la place aux nouvelles, un processus connu sous le nom de file d'attente « premier entré, premier sorti » (FIFO).
Ce mécanisme est particulièrement important car GPU mémoire du GPU est finie. Sans banque de mémoire , comparer une seule image à un million d'autres images nécessiterait une taille de lot impossible à traiter sur du matériel standard . Avec une banque de mémoire, le modèle peut stocker des vecteurs légers de ces millions d'images et les référencer efficacement à l'aide de techniques de recherche par similarité, telles que le produit scalaire ou la similarité cosinus.
Les banques de mémoire sont devenues une pierre angulaire dans plusieurs flux de travail avancés de vision par ordinateur (CV) et de langage naturel :
Il est utile de différencier la banque de mémoire des autres concepts de stockage et de traitement figurant dans le glossaire :
Le texte suivant Python Cet extrait illustre le concept d'une banque de mémoire de type « premier entré, premier sorti »
(FIFO) utilisant torch. Cette structure est souvent utilisée pour conserver un historique continu des vecteurs de caractéristiques
lors de boucles d'apprentissage personnalisées ou de tâches d'inférence complexes.
import torch
# Initialize a memory bank (Capacity: 100 features, Vector Dim: 128)
# In a real scenario, these would be embeddings from a model like YOLO26
memory_bank = torch.randn(100, 128)
# Simulate receiving a new batch of features (e.g., from the current image batch)
new_features = torch.randn(10, 128)
# Update the bank: Enqueue new features, Dequeue the oldest ones
# This maintains a fixed size while keeping the memory 'fresh'
memory_bank = torch.cat([memory_bank[10:], new_features], dim=0)
print(f"Updated Memory Bank Shape: {memory_bank.shape}")
# Output: Updated Memory Bank Shape: torch.Size([100, 128])
Bien que puissantes, les banques de mémoire posent le problème de la « dérive de représentation ». Étant donné que le réseau de codeurs change légèrement à chaque étape d'entraînement, les caractéristiques stockées dans la banque depuis 100 étapes peuvent être « obsolètes » ou incompatibles avec l'état actuel du modèle. Des techniques telles que l'utilisation d'un codeur à momentum (une moyenne du modèle mise à jour lentement) permettent d'atténuer ce problème.
Pour les équipes qui cherchent à gérer les versions des ensembles de données et les artefacts de modèles utilisant ces techniques avancées, Ultralytics fournit un hub centralisé pour organiser les données, track les expériences et déployer efficacement les modèles. La gestion de la complexité du stockage et de la récupération des fonctionnalités est essentielle pour passer de l'intelligence artificielle (IA) expérimentale à des systèmes de production robustes .