Matryoshka Representation Learning (MRL)
Apprends comment l'apprentissage par représentation Matryoshka (MRL) permet des plongements multi-granulaires. Découvre comment optimiser la recherche et le déploiement en périphérie avec Ultralytics YOLO26.
Le Matryoshka Representation Learning (MRL) est une technique d'entraînement en intelligence artificielle (IA) et en apprentissage automatique (ML) qui force un réseau de neurones à apprendre des embeddings multi-granulaires au sein d'un vecteur de sortie unique. Inspiré des poupées russes, le MRL structure l'embedding de sorte que les informations sémantiques importantes soient placées en priorité. Cela signifie qu'un vecteur à haute dimension (par exemple, 1024 dimensions) peut être tronqué en sous-ensembles plus petits et imbriqués (comme 512, 256 ou 64 dimensions) sans perdre sa représentation sous-jacente. Cette flexibilité réduit considérablement la surcharge computationnelle généralement associée aux tâches de recherche d'informations.
Link to this sectionComment fonctionne le Matryoshka Representation Learning#
Traditionnellement, un modèle d'embedding est entraîné pour optimiser une fonction de perte spécifique pour une taille de sortie fixe. Si un système nécessite un vecteur plus petit pour économiser de la mémoire, un tout nouveau modèle doit être entraîné. Le MRL résout ce problème en appliquant une fonction de perte imbriquée pendant la phase d'entraînement. Il optimise conjointement la représentation complète et ses sous-ensembles imbriqués. Des organisations comme OpenAI ont adopté le MRL pour leurs API d'embedding modernes, permettant aux développeurs de supprimer dynamiquement des dimensions à la fin d'un vecteur tout en conservant des scores de similarité cosinus précis.
Link to this sectionApplications concrètes#
Le MRL offre des avantages distincts pour équilibrer la précision avec les coûts de stockage et la 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 (LLM) s'appuient souvent sur de vastes bases de données vectorielles. En utilisant le MRL, une entreprise peut effectuer une recherche sémantique rapide et grossière en utilisant les 64 premières dimensions des embeddings, puis reclasser les meilleurs résultats en utilisant les vecteurs complets de 1024 dimensions. Cette approche en deux étapes 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 utilisant la plateforme Ultralytics, les contraintes matérielles peuvent varier considérablement. Un modèle utilisant le MRL peut transmettre des embeddings visuels de taille réelle à un serveur de déploiement cloud puissant, mais repasser gracieusement à la transmission d'embeddings tronqués de 128 dimensions lors de l'utilisation de périphériques d'edge computing à faible consommation, optimisant ainsi la latence sans réentraîner le modèle.
Link to this sectionDifférencier les concepts associés#
Pour utiliser correctement le MRL, il est utile de le distinguer des anciennes techniques utilisées pour compresser les données.
- MRL vs Réduction de dimensionnalité : Des algorithmes comme l'ACP (Analyse en Composantes Principales) ou le t-SNE sont appliqués après l'entraînement pour compresser les données. En revanche, le MRL est intégré nativement dans l'architecture du réseau de neurones pendant l'entraînement, préservant ainsi des relations non linéaires plus profondes.
- MRL vs Élagage de modèle : L'élagage supprime des poids et des couches du réseau de neurones lui-même pour accélérer l'inférence, comme lors de la création d'une variante plus petite d'un modèle Ultralytics YOLO. Le MRL ne modifie pas la taille du modèle ; il change uniquement la taille du vecteur de sortie produit par le modèle.
Link to this sectionMise en œuvre pratique#
Tronquer un embedding MRL est extrêmement simple et ne nécessite aucune logique complexe d'indexation sémantique. Comme les caractéristiques les plus critiques sont fortement pondérées dans les premières dimensions, tu peux simplement découper le tableau. L'exemple suivant démontre la troncature d'une sortie multimodale simulée de YOLO26 en utilisant des opérations de tenseurs PyTorch de base.
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]}")





