Apprentissage de représentations Matryoshka expliqué : la méthode derrière les embeddings de texte efficaces d’OpenAI
Le développement de modèles de machine learning réels implique toujours un compromis entre coût et performance. Par exemple, plus le modèle et le jeu de données que nous utilisons pendant l’entraînement sont grands, plus notre modèle entraîné sera finalement performant. Cependant, cette capacité accrue s’accompagne d’un temps plus long et de coûts de calcul plus élevés, car l’entraînement nécessite des durées nettement plus longues. Le même principe s’applique pendant l’inférence, où les modèles plus grands ont tendance à générer des représentations de caractéristiques plus volumineuses qui nécessitent davantage de mémoire pour le stockage.
Comme les besoins pendant l’entraînement et l’inférence en machine learning peuvent varier considérablement d’un cas d’utilisation à l’autre, il est essentiel de disposer d’une méthode qui nous permette d’échanger une petite portion de la performance d’un modèle contre une réduction des coûts. C’est là qu’une méthode comme Matryoshka Representation Learning (MRL) entre en jeu. Par exemple, le modèle text-embedding-3-small d’OpenAI utilise MRL pour permettre aux développeurs de raccourcir les embeddings tout en conservant leurs propriétés fondamentales de représentation des concepts. En permettant l’ajustement des dimensions des embeddings, MRL aide à trouver l’équilibre parfait entre efficacité des coûts et performance du modèle.
Cet article explorera le fonctionnement de MRL, sa mise en œuvre et la manière dont il permet de créer des modèles de machine learning évolutifs et efficaces. Commençons par la motivation derrière MRL.
La motivation derrière Matryoshka Representation Learning (MRL)
Le compromis coût-performance est toujours un élément à prendre en compte avant de développer ou d’utiliser des modèles de machine learning.
Pendant l’entraînement, les paramètres d’un modèle et la quantité de données d’entraînement influencent directement sa performance finale. Les modèles et jeux de données d’entraînement plus grands ont tendance à produire des modèles plus performants. Cependant, le coût de calcul nécessaire pour entraîner ces modèles est également plus élevé.
Pendant ce temps, lors de l’inférence, les modèles plus grands produisent des représentations de caractéristiques plus volumineuses. Cette augmentation des représentations de caractéristiques signifie que nous avons besoin de plus de mémoire pour les stocker.
Prenons BERT comme exemple dans le contexte de la recherche d’information. BERT est l’un des premiers modèles de deep learning basés sur les Transformer à avoir atteint des performances de pointe sur plusieurs jeux de données de référence en classification de texte, reconnaissance d’entités nommées (NER), question-réponse (QnA), et plus encore.
Figure : Workflow de génération d’embeddings à l’aide du modèle BERT base.
En résumé, BERT prend une phrase ou un mot en entrée et le transforme en un embedding de taille fixe. Cet embedding capture le sens sémantique de l’entrée originale, et sa taille dépend de la variante spécifique du modèle utilisée.
BERT possède deux variantes principales : le modèle base et le modèle large. Le modèle base produit un embedding à 768 dimensions, tandis que le modèle large génère un embedding à 1024 dimensions.
Supposons que nous souhaitions stocker 10 millions d’embeddings dans une base de données vectorielle pour un cas d’utilisation de recherche d’information. Si nous utilisons le modèle BERT base au format FP32, nous aurons besoin d’environ 768×10M×4=30,72 Go de mémoire pour stocker ces embeddings. En revanche, l’utilisation du modèle BERT large dans le même scénario nécessiterait environ 40,9 Go. De plus, une taille d’embedding plus grande peut ralentir le processus de recherche en augmentant la complexité computationnelle des recherches de similarité. Cependant, le principal avantage de l’utilisation d’embeddings plus grands réside dans leur capacité accrue à retrouver des informations très pertinentes par rapport aux embeddings plus petits.
Une solution idéale à ces problèmes en recherche d’information consiste à diviser l’ensemble du processus en deux parties : présélection et reranking. La présélection consiste à récupérer un ensemble initial de documents candidats à partir d’une vaste collection dans notre base de données vectorielle comme Milvus. Le reranking prend ensuite ces candidats présélectionnés et les réordonne afin de maximiser la pertinence des résultats finaux.
Figure- Flux de travail de présélection et de reranking
Figure : Flux de travail de présélection et de reranking.
Pour effectuer la présélection, l’algorithme calcule la similarité entre les embeddings de requête et une vaste collection d’embeddings stockés dans la base de données vectorielle. Par conséquent, l’utilisation de tailles d’embedding plus petites peut rendre ce calcul plus efficace et plus rapide. À l’inverse, le reranking met l’accent sur la précision, ce qui signifie que nous bénéficierions de tailles d’embedding plus grandes.
Le problème avec cette méthode est qu’une fois que nous sélectionnons un modèle particulier, la taille des embeddings ou des représentations de caractéristiques qu’il produit est fixe. Ce manque de flexibilité limite notre capacité à utiliser des embeddings de différentes tailles à partir d’un seul modèle.
Figure- Flux de travail d’un modèle générant un embedding de taille fixe..png
Figure : Flux de travail d’un modèle générant un embedding de taille fixe.
L’approche Matryoshka Representation Learning (MRL) offre une solution intéressante à ce problème : les modèles entraînés avec cette méthode peuvent produire des embeddings de tailles variées. Nous explorerons le mécanisme de cette approche en détail dans la section suivante.
Qu’est-ce que le Matryoshka Representation Learning (MRL) ?
Matryoshka Representation Learning (MRL) est une méthode d’entraînement des réseaux neuronaux visant à produire des représentations multi-échelles au sein d’un seul modèle. Inspiré des poupées Matriochka, où les plus petites poupées s’emboîtent dans les plus grandes, le MRL permet à un modèle de produire des représentations de tailles variables (du grossier au fin) en utilisant une seule passe avant. Cette approche permet aux modèles de deep learning de mieux comprendre les relations complexes et les nuances dans les données. Le MRL est particulièrement efficace pour des tâches telles que la recherche sémantique, la recherche d’information, le traitement multilingue et toute application nécessitant des représentations nuancées des données à différents niveaux d’abstraction.
Visualisation des embeddings Matryoshka avec plusieurs couches de détail
Figure : Visualisation des embeddings Matryoshka avec plusieurs couches de détail
Les modèles d’embedding populaires qui ont adopté l’approche Matryoshka Representation Learning (MRL) incluent text-embedding-3-large d’OpenAI, nomic-embed-text-v1 de Nomic et gte-multilingual-base d’Alibaba.
Fonctionnement de l’approche MRL
L’approche MRL nous permet d’extraire des représentations de caractéristiques à partir de n’importe quel modèle de machine learning dans plusieurs tailles. Par exemple, au lieu d’utiliser les 1024 dimensions originales d’un embedding, nous pouvons utiliser les 16, 32, 64, 128 ou 256 premières dimensions (ou toute dimension de notre choix). La clé de cette capacité réside dans la façon dont le modèle est entraîné lors de la mise en œuvre de l’approche MRL.
Figure- Entraînement de la fonction de perte MRL et son cas d’utilisation pendant l’inférence
Figure : Entraînement de la fonction de perte MRL et son cas d’utilisation pendant l’inférence. Source.
Lors de l’entraînement de modèles avec MRL, nous optimisons non pas une seule fonction de perte, comme c’est généralement le cas dans l’entraînement standard de modèles, mais plusieurs. Chaque fonction de perte vise à optimiser la représentation des caractéristiques pour une dimension spécifique que nous définissons à l’avance. Si nous définissons cinq dimensions de caractéristiques différentes, nous devrons optimiser cinq fonctions de perte distinctes pendant l’entraînement.
Supposons que nous voulions entraîner un modèle BERT large à l’aide de l’approche MRL. Comme mentionné dans la section précédente, ce modèle génère un embedding de taille 1024. Si nous définissons les dimensions de caractéristiques à 32, 64, 128, 256 et 1024, nous optimiserons cinq fonctions de perte différentes pendant l’entraînement afin que le modèle apprenne à générer des embeddings optimisés dans ces dimensions.
L’optimisation à travers ces différentes dimensions est simple : MRL décompose la fonction de perte globale en la somme des pertes pour chaque dimension individuelle. En utilisant notre exemple ci-dessus, cela peut s’exprimer comme suit :
Le processus d’optimisation pour un modèle entraîné avec MRL peut être représenté plus formellement comme suit :
Figure : Équation d’optimisation de l’approche MRL. Source.
Comme vous pouvez le voir, la définition de la fonction de perte ci-dessus est assez générale. Par conséquent, l’approche MRL peut être appliquée à presque n’importe quel modèle et est entièrement indépendante de l’architecture du modèle. Nous pouvons également affiner des modèles préentraînés comme BERT ou tout autre modèle basé sur des transformeurs pour produire des embeddings de différentes tailles. En poursuivant notre scénario ci-dessus, nous pouvons désormais générer des embeddings de 1024 dimensions à partir de notre modèle BERT large entraîné, ainsi que des embeddings de 32, 64, 128 et 256 dimensions.
Globalement, après l’entraînement d’un modèle avec MRL, les dimensions initiales des caractéristiques générées par le modèle entraîné portent des informations plus significatives que les dimensions ultérieures. Les premières dimensions contiennent des détails de haut niveau, tandis que les dimensions suivantes se concentrent sur des informations plus granulaires, imitant la structure d’une poupée Matriochka.
Cependant, cela ne signifie pas que les embeddings plus courts sont toujours simplement les versions tronquées des plus longs. Les valeurs de chaque élément dans les embeddings plus courts peuvent différer de celles des embeddings plus longs en raison du facteur d’échelle appliqué à chaque dimension de caractéristique pendant l’entraînement. Cependant, si nous définissons le facteur d’échelle dans chaque dimension comme étant égal, les valeurs de chaque élément entre les embeddings plus courts et plus longs peuvent sembler identiques.
Résultats expérimentaux de MRL
L’approche MRL a été évaluée sur des modèles d’apprentissage automatique dans différentes modalités, notamment le texte, la vision et vision-texte. Les modèles ResNet50 et ViT représentent les modèles basés sur la vision, BERT représente les modèles basés sur le texte, et ALIGN représente la combinaison de la vision et du texte. Ces modèles ont principalement été évalués pour deux cas d’utilisation courants : classification et recherche. Parlons d’abord de la classification.
Lorsque l’on compare les performances du modèle ResNet50 entraîné sur le jeu de données ImageNet-1K à celles d’un ResNet50 standard entraîné indépendamment, le modèle MRL atteint une précision top-1 comparable à différentes tailles de représentation des caractéristiques.
Pour mieux évaluer l’utilité des représentations de caractéristiques pour les tâches en aval, la précision du plus proche voisin à 1 voisin (1-NN) pour chaque taille de représentation de caractéristiques a également été mesurée. La configuration pour calculer le 1-NN est la suivante : étant donné 1,3K échantillons d’images dans la base de données, la tâche consiste à trouver le plus proche voisin pour chacune des 50K requêtes. Avec cette configuration, le ResNet50 entraîné avec MRL est jusqu’à 2 % plus précis à chaque taille de représentation de caractéristiques par rapport à son homologue à caractéristiques fixes.
Figure- Précision Top-1 et précision 1-NN de ResNet50 sur ImageNet-1K
Figure : Précision Top-1 et précision 1-NN de ResNet50 sur ImageNet-1K. Source.
Parallèlement, les performances du modèle ViT entraîné avec MRL sur le jeu de données JFT-300M sont également très compétitives pour toutes les tailles de représentation. Sa précision 1-NN est comparable à celle du ViT entraîné avec des représentations de caractéristiques de taille fixe. Comme le montre la figure ci-dessous, les performances du modèle MRL sont également meilleures que celles de son homologue à taille fixe pour les représentations de caractéristiques plus petites, en partie parce que des caractéristiques aléatoires sont sélectionnées dans le modèle à taille fixe pour représenter les dimensions inférieures. Une tendance similaire est observée avec le modèle ALIGN entraîné à l’aide de l’approche MRL ; ses performances égalent celles du modèle ALIGN entraîné avec des représentations de taille fixe.
Figure- Précision 1-NN de ViT et ALIGN sur ImageNet-1K
Figure : Précision 1-NN de ViT et ALIGN sur ImageNet-1K. Source.
Le principal avantage de l’utilisation de l’approche MRL est sa flexibilité pour passer d’une taille de représentation de caractéristiques à une autre à partir du même modèle. Pour tirer pleinement parti de cette force, des tests de classification adaptative utilisant ResNet50 sur ImageNet-1K ont également été menés.
Cette configuration consiste à apprendre la probabilité softmax maximale afin de déterminer les transitions des représentations de caractéristiques plus petites vers des représentations plus grandes. Les résultats des tests montrent que le modèle MRL avec une représentation de caractéristiques à 37 dimensions est aussi précis que le modèle ResNet50 entraîné avec une représentation de caractéristiques fixe à 512 dimensions, tout en étant seulement 0,8 % moins précis que le modèle à 2048 dimensions.
Figure- Précision Top 1 du modèle ResNet50 en classification adaptative (gauche) et mAP de ResNet50 dans un cas d’utilisation de recherche d’images (droite)
Figure : Précision Top 1 du modèle ResNet50 en classification adaptative (gauche) et mAP de ResNet50 dans un cas d’utilisation de recherche d’images (droite). Source.
Ensuite, parlons de la recherche. Comme vous le savez peut-être, l’objectif de la recherche est de trouver un ensemble de contextes similaires pour une requête donnée. Par conséquent, la qualité de la recherche entre ResNet50 entraîné avec MRL et les représentations de caractéristiques de taille fixe a été testée à l’aide de la précision moyenne moyenne (mAP). Le modèle MRL montre une amélioration de la mAP allant jusqu’à 3 % par rapport à son homologue à taille fixe à chaque taille de représentation de caractéristiques, comme l’illustre la visualisation ci-dessus.
Étant donné que nous pouvons utiliser plusieurs tailles de représentation de caractéristiques avec MRL, il est également particulièrement intéressant d’explorer comment accélérer le processus de recherche tout en maintenant la précision avec MRL. Nous pouvons le tester dans un scénario appelé recherche adaptative.
Comme mentionné précédemment, il existe deux étapes principales dans un processus de recherche : la présélection et le reranking. La configuration de la recherche adaptative impliquait l’utilisation d’une représentation de caractéristiques à 16 dimensions pour présélectionner un ensemble de 200 candidats, tandis qu’une représentation de caractéristiques à 2048 dimensions est utilisée pour le reranking. Cette approche est comparée à une autre méthode qui utilise une représentation de caractéristiques à 2048 dimensions à la fois pour la présélection et le reranking.
Sur ImageNet-1K, l’utilisation du modèle MRL peut théoriquement accélérer le processus de récupération jusqu’à 128 fois. Nous parlons de résultat théorique car, dans les applications réelles, nous utilisons rarement un algorithme naïf de plus proche voisin pour les tâches de récupération. À la place, des algorithmes de plus proche voisin approximatif (ANN) comme FAISS, ANNOY ou HNSW sont couramment mis en œuvre pour améliorer la vitesse de récupération. Dans ce cas, la configuration utilisant le modèle MRL atteint une accélération de 14 fois par rapport aux processus de récupération utilisant l’algorithme HNSW sur un matériel identique.
Un résultat similaire a été observé avec le jeu de données ImageNet-4K, où les auteurs de l’article ont utilisé un modèle MRL avec une représentation de caractéristiques à 64 dimensions pour la présélection et une représentation à 2048 dimensions pour le reclassement. Les résultats indiquent une accélération théorique de 32 fois et une accélération réelle de six fois.
Le compromis entre mAP@10 et MFLOPs/Query pour l’Adaptive Retrieval (AR) sur ImageNet-1K (gauche) et ImageNet-4K (droite).
Le compromis entre mAP@10 et MFLOPs/Query pour l’Adaptive Retrieval (AR) sur ImageNet-1K (gauche) et ImageNet-4K (droite). Source.
Implémentation de l’approche MRL
Dans cette section, nous allons examiner une implémentation simple de l’approche MRL. En particulier, nous utiliserons un modèle de base MPNet entraîné avec l’approche MRL sur le jeu de données NLI pour générer des embeddings de différentes tailles. Comme vous le savez peut-être déjà, le modèle de base MPNet original ne peut générer qu’un embedding à 768 dimensions. Cependant, ce modèle MPNet entraîné peut générer des embeddings en 768, 512, 256, 128 et 64 dimensions, où le poids de chaque dimension pendant l’entraînement est défini à 1.
Nous pouvons utiliser ce modèle à l’aide de la bibliothèque SentenceTransformers avec le code suivant.
from sentence_transformers import SentenceTransformer
matryoshka_dim_short = 64
matryoshka_dim_long = 768
text = ["The weather is so nice!"]
short_embedding = SentenceTransformer("tomaarsen/mpnet-base-nli-matryoshka", truncate_dim=matryoshka_dim_short).encode(text)
long_embedding = SentenceTransformer("tomaarsen/mpnet-base-nli-matryoshka", truncate_dim=matryoshka_dim_long).encode(text)
print(f"Shape: {short_embedding.shape, long_embedding.shape}")
print(short_embedding[0][0:10])
print(long_embedding[0][0:10])
"""
Output:
Shape: ((1, 64), (1, 768))
[-0.33891088 0.01647538 -0.29915053 0.24952686 -0.04321517 -0.31616145
-0.12996909 -0.05221268 0.02296597 0.07074839]
[-0.33891088 0.01647538 -0.29915053 0.24952686 -0.04321517 -0.31616145
-0.12996909 -0.05221268 0.02296597 0.07074839]
"""
Dans le code ci-dessus, nous utilisons le modèle de base MPNet entraîné pour générer des embeddings de deux tailles différentes : 64 et 768. Étant donné que le poids ou facteur d’échelle de chaque dimension est défini à 1, les deux embeddings ont donc des éléments identiques, comme vous pouvez le voir dans les 10 premiers éléments des deux embeddings ci-dessus.
Puisque la valeur de chaque élément est identique, la similarité entre les deux embeddings serait donc de 1.
from sentence_transformers.util import cos_sim
similarities = cos_sim(short_embedding[0], long_embedding[0][:matryoshka_dim_short])
print(similarities)
# tensor([[1.]])
Si vous souhaitez entraîner votre propre modèle avec l’approche MRL, vous pouvez consulter le dépôt GitHub officiel de cette méthode.
Conclusion
L’approche MRL introduit une solution pour équilibrer le compromis coût-performance en apprentissage automatique. En permettant à n’importe quel modèle d’apprentissage automatique de produire des représentations de caractéristiques de tailles variables, MRL offre la flexibilité nécessaire pour optimiser soit la vitesse, soit la précision, en fonction de notre cas d’utilisation et de nos ressources. Nous avons vu que cette adaptabilité est précieuse dans des applications comme la classification et la recherche, où le passage entre des représentations plus petites et plus grandes peut améliorer considérablement l’efficacité sans sacrifier massivement les performances.
Les résultats expérimentaux démontrent que MRL égale et dépasse souvent la précision des modèles traditionnels à taille fixe dans plusieurs domaines, notamment les tâches liées au texte, à la vision et au multimodal. De plus, la compatibilité de l’approche avec des architectures existantes comme ResNet50, ViT et BERT souligne son applicabilité à différentes modalités de modèles. Avec le potentiel d’accélérations substantielles dans des scénarios réels et une qualité de recherche améliorée, MRL représente une avancée prometteuse pour des solutions d’apprentissage automatique plus efficaces et polyvalentes.
Ressources associées
Continuer à lire

3 Easiest Ways to Use Claude Code on Your Mobile Phone
Run Claude Code from your phone with Remote Control, Happy Coder, or SSH + Tailscale. Comparison table, setup steps, and tools for typing, memory, and parallel tasks.

Expanding Our Global Reach: Zilliz Cloud Launches in Azure Central India
Zilliz Cloud expands to Azure Central India. This new region helps customers meet compliance, reduce latency, and optimize cloud costs when building AI applications.

Vector Databases vs. Document Databases
Use a vector database for similarity search and AI-powered applications; use a document database for flexible schema and JSON-like data storage.


