Reformer
Découvrez l'architecture Reformer, une variante efficace du Transformer pour les séquences longues. Découvrez comment l'attention LSH et les RevNets optimisent la mémoire pour la recherche en IA.
Le Reformer est une variante efficace de l'
architecture Transformer conçue pour traiter de très longues
séquences de données qui seraient impossibles à calculer pour les modèles standard. Introduit pour résoudre les
goulots d'étranglement de mémoire inhérents aux
systèmes d'apprentissage profond traditionnels, le Reformer réduit la
complexité du mécanisme d'attention de
termes quadratiques à des termes linéaires-logarithmiques. Cette innovation permet aux
chercheurs en intelligence artificielle de
former des modèles sur des fenêtres contextuelles couvrant des dizaines de milliers de tokens, tels que des livres entiers, des images haute résolution ou de
longues compositions musicales, sur un seul
GPU.
Principales innovations du réformateur
LeReformer tire son efficacité de deux changements architecturaux majeurs qui le distinguent des modèles tels que
BERT
ou la série GPT originale. Ces techniques répondent au besoin important de mémoire pour stocker les activations pendant l'
entraînement du modèle.
-
Hachage sensible à la localité (LSH) Attention : dans un Transformer standard, chaque élément d'une séquence
prête attention à tous les autres éléments, ce qui génère une charge de calcul considérable. Le Reformer utilise le
hachage sensible à la localité pour regrouper les vecteurs similaires
. Au lieu de calculer les scores d'attention pour toutes les paires, le modèle ne les calcule que pour un petit
sous-ensemble de voisins les plus proches,
ce qui accélère considérablement le moteur d'inférence.
-
Couches résiduelles réversibles (RevNets) : les réseaux neuronaux traditionnels
doivent stocker les activations de
chaque couche afin de calculer les gradients pendant la
rétropropagation. Le Reformer utilise des
réseaux neuronaux réversibles, qui permettent de
recalculer l'entrée d'une couche à partir de sa sortie pendant le passage en arrière. Cette technique élimine le besoin de
mettre en cache les activations intermédiaires, libérant ainsi de la
mémoire pour des lots de plus grande taille.
Réformateur vs transformateur standard
Bien que les deux architectures s'appuient sur le mécanisme d'auto-attention, elles servent des objectifs différents au sein de l'
écosystème d'apprentissage automatique.
-
Transformateur standard : excellent pour les séquences courtes à moyennes. Cependant, son utilisation de la mémoire
augmente de manière quadratique ($O(L^2)$) avec la longueur de la séquence ($L$). Il est la colonne vertébrale de nombreux
grands modèles linguistiques (LLM) utilisés pour des
tâches telles que l'analyse des sentiments ou les chatbots.
-
Reformer : optimisé pour les longueurs extrêmes ($O(L \log L)$). Il sacrifie une petite partie de la
précision dans certains contextes pour pouvoir traiter des
entrées impossibles à traiter par les Transformers standard, telles que le traitement de données d'analyse de séries chronologiques extrêmement longues
ou la génération d'images
pixel par pixel.
Applications concrètes
La capacité du Reformer à gérer de vastes fenêtres contextuelles ouvre de nouvelles possibilités dans les domaines où les données ne peuvent pas être facilement
fragmentées.
-
Analyse génomique : les séquences d'ADN sont constituées de millions de paires de bases. Le Reformer peut analyser ces
longues chaînes pour identifier des modèles en
bio-informatique sans perdre le contexte général, ce qui facilite la
prédiction de la structure des protéines.
-
Génération de textes longs : contrairement aux
modèles de génération de texte standard qui peuvent perdre leur cohérence
après quelques paragraphes, un Reformer peut maintenir la cohérence sur des milliers de mots, ce qui le rend adapté à la
génération de résumés de longs contrats juridiques ou de chapitres entiers de romans.
Efficacité dans la vision par ordinateur
Si les réformateurs sont souvent associés au texte, le principe d'efficacité est crucial dans la
vision par ordinateur. Tout comme le réformateur optimise les
transformateurs, les modèles de vision modernes tels que YOLO26 optimisent les
réseaux neuronaux convolutifs (CNN) pour l'
inférence en temps réel. Il est essentiel de comprendre les contraintes de mémoire
lors du déploiement de modèles sur des appareils périphériques via Ultralytics , où les ressources matérielles sont limitées.
Le code suivant montre comment inspecter l'empreinte mémoire d'un modèle à l'aide de
PyTorch, un concept central dans le développement d'
architectures efficaces en termes de mémoire comme le Reformer.
import torch
import torch.nn as nn
# Define a simple Transformer layer (Standard, not Reformer optimized)
layer = nn.TransformerEncoderLayer(d_model=512, nhead=8)
model = nn.TransformerEncoder(layer, num_layers=6)
# Create a long sequence input (Sequence Length: 2000, Batch: 1, Features: 512)
# Standard Transformers struggle as this length increases.
input_data = torch.rand(2000, 1, 512)
# Check parameter count to understand model complexity
params = sum(p.numel() for p in model.parameters())
print(f"Model Parameters: {params:,}")
# Perform a forward pass
output = model(input_data)
print(f"Output shape: {output.shape}")
Concepts connexes
-
Attention clairsemée: une
catégorie plus large de techniques, y compris LSH, où le modèle ne s'intéresse qu'à un sous-ensemble de jetons afin d'économiser des ressources informatiques.
-
Contrôle des gradients: technique
similaire aux couches réversibles utilisée pour échanger du temps de calcul contre de la mémoire pendant l'
entraînement du modèle.
-
Optimisation des modèles:
Pratique générale visant à améliorer l'efficacité des modèles, qui englobe la quantification, l'élagage et les modifications architecturales
telles que celles apportées dans Reformer.