Matryoshka Representation Learning (MRL)
Découvre comment l’apprentissage des représentations Matryoshka (MRL) permet de créer des embeddings à plusieurs granularités. Apprends à optimiser la recherche et le déploiement en périphérie d’Ultralytics YOLO26.
L'apprentissage des représentations Matryoshka (MRL) est une technique d'entraînement en intelligence artificielle (AI) et en machine learning (ML) qui contraint un réseau neuronal à apprendre des plongements à plusieurs granularités dans un seul vecteur de sortie. Inspiré des poupées russes gigognes, MRL organise le plongement de sorte que les informations sémantiques importantes soient placées en tête. Ainsi, un vecteur de grande dimension (par exemple, 1024 dimensions) peut être tronqué en sous-ensembles imbriqués plus petits (comme 512, 256 ou 64 dimensions) sans perdre sa représentation sous-jacente. Cette flexibilité réduit considérablement la surcharge de calcul généralement associée aux tâches de recherche d'information.
Fonctionnement de l'apprentissage des représentations Matryoshka#
Traditionnellement, un modèle de plongement est entraîné pour optimiser une fonction de perte spécifique pour une taille de sortie fixe. Si un système a besoin d'un vecteur plus petit pour économiser de la mémoire, il faut entraîner un nouveau modèle. MRL résout ce problème en appliquant une fonction de perte imbriquée pendant l'entraînement. Il optimise conjointement la représentation complète et ses sous-ensembles imbriqués. Des organisations comme OpenAI ont adopté MRL pour leurs API modernes de plongement, ce qui permet aux développeurs de supprimer dynamiquement des dimensions à la fin d'un vecteur tout en conservant des scores précis de similarité cosinus.
Applications concrètes#
MRL offre des avantages distincts pour trouver un équilibre entre précision, coûts de stockage et bande passante mémoire.
- Recherche vectorielle adaptative pour les LLM : Dans les pipelines de génération augmentée par récupération (RAG), les grands modèles de langage (LLMs) s'appuient souvent sur de vastes bases de données vectorielles. Avec MRL, une entreprise peut effectuer rapidement une recherche sémantique approximative à l'aide des 64 premières dimensions des plongements, puis réordonner les meilleurs résultats à l'aide des vecteurs complets de 1024 dimensions. Cette approche en deux passes accélère considérablement la recherche vectorielle et réduit les coûts de stockage des bases de données.
- Vision par ordinateur évolutive en périphérie : Lors du déploiement de systèmes de vision par ordinateur à l'aide de la plateforme Ultralytics, les contraintes matérielles peuvent varier considérablement. Un modèle utilisant MRL peut transmettre des plongements visuels complets à un puissant serveur de déploiement dans le cloud, puis basculer en douceur vers la transmission de plongements tronqués à 128 dimensions sur des appareils à faible consommation d'informatique en périphérie, optimisant ainsi la latence sans réentraîner le modèle.
Distinguer les concepts associés#
Pour utiliser MRL correctement, il est utile de le distinguer des anciennes techniques de compression des données.
- MRL et réduction de dimensionnalité : Des algorithmes comme l'ACP (analyse en composantes principales) ou t-SNE sont appliqués après l'entraînement pour compresser les données. À l'inverse, MRL est intégré nativement à l'architecture du réseau neuronal pendant l'entraînement, ce qui préserve des relations non linéaires plus profondes.
- MRL et élagage de modèle : L'élagage supprime des poids et des couches du réseau neuronal lui-même pour accélérer l'inférence, par exemple en créant une variante plus petite d'un modèle Ultralytics YOLO. MRL ne modifie pas la taille du modèle ; il ne change que la taille du vecteur de sortie produit par le modèle.
Mise en œuvre pratique#
La troncature d'un plongement MRL est extrêmement simple et ne nécessite aucune logique complexe d'indexation sémantique. Comme les caractéristiques les plus importantes sont fortement pondérées dans les premières dimensions, il suffit de découper le tableau. L'exemple suivant montre comment tronquer une sortie multimodale simulée de YOLO26 avec des opérations de base sur les tenseurs PyTorch.
import torch
# Simulate a full 1024-dimensional MRL embedding returned by a model
full_embedding = torch.rand(1, 1024)
# To deploy on memory-constrained hardware, simply slice the first 256 dimensions
# Because the model was trained with MRL, this subset remains highly accurate
truncated_embedding = full_embedding[:, :256]
print(f"Original size: {full_embedding.shape[1]}, Compressed size: {truncated_embedding.shape[1]}")








