Un angle différent : modèles d’intégration optimisés pour la récupération
Dans les systèmes modernes de récupération de données, les utilisateurs ont souvent besoin de plus qu’un seul résultat à partir d’une requête ; ils s’attendent à obtenir plusieurs résultats pertinents, classés en fonction du contexte de la requête. Cette attente pose des défis aux modèles d’embedding traditionnels, qui se concentrent généralement sur des relations binaires. Récemment, lors du SF Unstructured Data Meetup, Robertson Taylor, architecte de solutions chez Marqo, a présenté le Generalized Contrastive Learning (GCL). Cette approche dépasse les appariements binaires en intégrant la prise en compte du rang et de la requête dans le processus d’entraînement du modèle.
Robertson intervenant lors du Meetup Unstructured Data d’août à SF
Ce blog explorera les principaux enseignements de la présentation de Robertson et démontrera comment le GCL peut être intégré à Milvus, une base de données vectorielle de premier plan, afin de créer des systèmes de génération augmentée par récupération (RAG) optimisés. Bien que Marqo propose des solutions de stockage et de récupération vectoriels, ce blog se concentrera sur la manière dont les utilisateurs de Milvus peuvent exploiter des modèles GCL affinés avec Marqtune, une plateforme d’affinage de Marqo, pour améliorer leurs capacités de récupération.
Pour mieux comprendre comment le GCL répond à ces défis, examinons d’abord les limites des modèles d’embedding traditionnels, tels que CLIP.
Regardez la rediffusion de l’intervention de Robertson sur YouTube.
Les modèles d’embedding et leurs limites
Les modèles d’embedding traditionnels, tels que CLIP (Contrastive Language-Image Pretraining), sont largement utilisés pour des tâches comme la recherche d’images. Ces modèles sont conçus pour minimiser la distance entre des éléments appariés, comme une légende et une image. Bien que cette approche fonctionne bien pour des relations simples et binaires, elle peine à répondre aux exigences plus complexes des systèmes de récupération qui nécessitent des résultats multimodaux classés.
Robertson a commencé sa présentation en abordant plusieurs défis associés aux modèles existants :
Relations binaires : Les modèles comme CLIP apprennent à partir de paires de texte et d’images, ce qui les rend efficaces pour des tâches spécifiques, mais insuffisants lorsqu’il s’agit de classer plusieurs résultats en fonction des requêtes des utilisateurs.
Manque de prise en compte du rang et de la requête : De nombreux modèles d’embedding traitent toutes les requêtes de la même manière, sans ajuster les résultats en fonction du comportement des utilisateurs ou des données d’interaction.
Capacités multimodales limitées : La plupart des modèles excellent dans le traitement du texte ou des images, mais peinent à combiner efficacement ces types de données.
Combinaison inter-champs inefficace : Les modèles existants échouent souvent à combiner efficacement les informations issues de plusieurs champs, p. ex., le titre, la description et les avis, en une seule représentation vectorielle.
Ces limites signifient que, même si les modèles traditionnels offrent des performances adéquates dans des environnements contrôlés, ils sont souvent insuffisants dans des scénarios réels où le classement et les capacités multimodales sont essentiels.
Pour illustrer la manière dont les modèles CLIP sont généralement entraînés, examinons le diagramme suivant :
Figure 1 : Comment CLIP est entraîné
CLIP utilise une architecture à deux tours avec un encodeur de texte et un encodeur d’image. Le modèle est entraîné à minimiser la distance entre les paires positives (texte et image correspondants) et à maximiser la distance entre toutes les autres paires. Bien que cette approche soit efficace pour certaines tâches, elle ne tient pas compte des complexités des scénarios de recherche réels. C’est là que GCL intervient.
Generalized Contrastive Learning (GCL) : une solution pour l’optimisation de la recherche
Pour remédier aux limites des modèles traditionnels, Marqo a introduit le Generalized Contrastive Learning (GCL). Cette approche améliore les modèles d’embedding en intégrant la prise en compte du rang et la prise en compte de la requête dans le processus d’entraînement, ce qui améliore considérablement la pertinence et le classement des résultats de recherche.
GCL relève ces défis grâce à plusieurs innovations clés :
Prise en compte du rang : GCL résout ce problème en intégrant des données d’interaction utilisateur, telles que les clics et les actions d’ajout au panier, dans le processus d’entraînement. Cela permet au modèle d’apprendre à classer les résultats en fonction des préférences des utilisateurs.
Prise en compte de la requête : Au lieu de traiter toutes les requêtes de la même manière, GCL affine les embeddings afin de tenir compte du contexte d’une requête. Par exemple, lorsqu’un utilisateur recherche un appareil photo reflex, GCL tient compte du fait que la requête provienne d’un photographe professionnel à la recherche d’un équipement haut de gamme ou d’un consommateur à la recherche d’un modèle d’entrée de gamme. Cette prise en compte de la requête permet au système de renvoyer des résultats plus pertinents.
Capacités multimodales : GCL prend en charge la recherche multimodale en permettant au système d’intégrer et de récupérer à la fois du texte et des images de manière unifiée. Par exemple, dans un contexte d’e-commerce, GCL peut combiner les titres de produits, les descriptions, les avis et les images en un seul vecteur, fournissant ainsi des résultats de recherche plus pertinents.
Combinaison inter-champs : GCL permet au modèle de combiner efficacement les informations issues de plusieurs champs en une seule représentation vectorielle, améliorant ainsi la qualité globale des résultats de recherche.
Compréhension intramodale : En intégrant divers champs textuels pendant l’entraînement, GCL améliore la capacité du modèle à gérer plus efficacement les requêtes texte-texte.
Pour illustrer le fonctionnement de GCL, examinons le diagramme suivant qui montre le processus d’optimisation de la recherche multimodale à l’aide de GCL :
Figure 2 : Processus d’optimisation de la recherche multimodale à l’aide de GCL
Le système commence par capturer les interactions des utilisateurs, telles que les clics sur les résultats de recherche. Ces interactions sont ensuite agrégées afin de créer un score pour chaque paire requête-résultat. Les requêtes sont utilisées pour entraîner le modèle afin d’améliorer les performances de recherche, tandis que les scores agrégés servent à pondérer l’importance des différents résultats pendant l’entraînement. Le modèle est ensuite entraîné à l’aide de ces données pondérées, en intégrant à la fois les informations de requête et les scores d’interaction utilisateur. Enfin, le modèle entraîné est évalué à l’aide de nouvelles requêtes et de nouveaux scores afin d’évaluer ses performances.
Ce processus permet au modèle d’apprendre à partir du comportement réel des utilisateurs et d’optimiser les scénarios de recherche réels, plutôt que de simplement minimiser les distances entre des paires prédéfinies. Maintenant que nous avons vu comment GCL résout les principaux défis de l’optimisation de la recherche, explorons comment il peut être affiné pour des tâches spécifiques et des applications réelles.
Affinage des tâches avec GCL
GCL est polyvalent et peut être utilisé pour affiner des modèles pour diverses tâches de type recherche au-delà de la recherche de base. L’image suivante illustre certaines de ces tâches :
Figure 3 : Exemples de tâches d’affinage avec GCL
Explorons chacune de ces tâches d’affinage plus en détail :
Amélioration de la recherche de base
GCL améliore la recherche traditionnelle requête-document en intégrant les données d’interaction des utilisateurs. Cela signifie que lorsqu’un utilisateur recherche un terme, le modèle ne se contente pas de faire correspondre des mots-clés, mais prend également en compte la manière dont les utilisateurs ont interagi avec des requêtes et des résultats similaires par le passé. Par exemple, si de nombreux utilisateurs ayant recherché un laptop léger ont cliqué sur des ultrabooks, le modèle apprend à classer les ultrabooks plus haut pour cette requête, même si le terme ultrabook n’est pas explicitement mentionné.
Recommandations avancées
GCL permet à la fois des recommandations requête-document et document-document. Cette double approche permet des suggestions de produits plus nuancées et contextuelles. Dans les recommandations requête-document, GCL peut suggérer des produits en fonction de la requête de recherche d’un utilisateur, en tenant compte non seulement des termes de la requête, mais aussi des schémas de comportement des utilisateurs. Pour les recommandations document-document, GCL peut identifier des produits associés en fonction de similitudes dans les fonctionnalités, les schémas d’interaction des utilisateurs ou la pertinence contextuelle, même lorsque les articles ne sont pas manifestement similaires.
Résolution d’entités et déduplication
Les capacités de correspondance document-document de GCL le rendent puissant pour les tâches de résolution d’entités et de déduplication. Il peut identifier des articles similaires ou identiques dans un jeu de données, même lorsqu’il existe de légères variations dans la manière dont les articles sont décrits ou catégorisés. C’est particulièrement utile dans l’e-commerce pour identifier les fiches produits en double, ou dans les projets d’intégration de données où la même entité peut être représentée différemment dans plusieurs sources de données.
Recherche conditionnelle
Cette fonctionnalité permet à GCL d’intégrer des informations contextuelles dans le processus de recherche. Par exemple, une recherche de winter jackets donne des résultats différents selon la localisation de l’utilisateur (p. ex., des doudounes épaisses pour les climats froids, des vestes plus légères pour les hivers plus doux). GCL apprend à ajuster ses résultats en fonction de ces facteurs conditionnels, fournissant des résultats de recherche plus pertinents, adaptés à des contextes ou à des places de marché spécifiques.
Recherche personnalisée
GCL pousse la personnalisation plus loin en tenant compte du contexte propre à l’utilisateur, comme l’historique de navigation, les articles dans le panier actuel ou le comportement d’achat passé. Cela permet d’obtenir des résultats de recherche hautement adaptés, alignés sur les intérêts et les besoins actuels de l’utilisateur. Par exemple, si un utilisateur a consulté du matériel photo haut de gamme, une recherche de trépied ****pourrait privilégier des options de qualité professionnelle plutôt que des alternatives économiques.
Classification et mapping de taxonomie
GCL peut être appliqué à des tâches de classification, comme la catégorisation automatique de produits dans une taxonomie prédéfinie. C’est particulièrement utile pour les grandes plateformes d’e-commerce ou les systèmes de gestion de contenu où la catégorisation manuelle serait chronophage et sujette aux erreurs. GCL peut apprendre à partir des catégorisations existantes et des interactions des utilisateurs pour prendre des décisions intelligentes sur la manière de classer de nouveaux articles, assurant la cohérence et améliorant l’organisation globale de grands jeux de données.
Ces tâches de fine-tuning rendent GCL hautement adaptable à divers défis de recherche d’information. Voyons comment GCL est appliqué dans des scénarios concrets.
Applications concrètes de GCL
Robertson a partagé plusieurs exemples de la manière dont GCL est utilisé pour résoudre des problèmes concrets. Un cas notable concernait une plateforme d’e-commerce qui avait initialement mis en œuvre une solution de recherche vectorielle de base à l’aide d’un modèle prêt à l’emploi. Cependant, la plateforme a constaté une forte baisse des taux d’ajout au panier et de l’engagement global, car le système ne fournissait pas de résultats pertinents.
Après l’intégration de GCL, la plateforme a constaté des améliorations significatives. Les produits qui correspondaient davantage aux préférences des utilisateurs étaient mieux classés, ce qui a entraîné un meilleur engagement et une augmentation des ventes. La plateforme a pu exploiter des données non structurées comme les avis des utilisateurs et les images de produits afin d’améliorer la pertinence des résultats de recherche. En intégrant des données issues des interactions des utilisateurs, telles que les clics et le comportement d’achat, la plateforme a renforcé sa capacité à fournir des résultats de recherche personnalisés et classés.
Dans le domaine de la recherche académique, GCL a amélioré la récupération d’articles de recherche pertinents en intégrant des métadonnées telles que les détails sur les auteurs et les citations dans le processus de recherche. Cela a non seulement accéléré le processus de recherche, mais a aussi accru la pertinence des résultats, rendant le système plus efficace pour les chercheurs qui naviguent dans de grandes bases de données.
Voyons maintenant comment GCL intègre des techniques avancées pour améliorer encore les performances dans les environnements de production.
Techniques avancées dans GCL
Robertson a évoqué plusieurs techniques avancées qui peuvent encore améliorer les performances des modèles GCL. Celles-ci incluent des méthodes d’entraînement adaptées à la production, telles que la troncature et la binarisation des embeddings.
Figure 4 : Troncature et binarisation des embeddings
L’entraînement tenant compte de la troncature permet la création d’embeddings Matryoshka, qui peuvent réduire la taille des embeddings de 2 à 4 fois sans perte de fidélité. Le modèle apprend à créer des représentations significatives de différentes tailles à partir d’un seul modèle. Apprendre à binariser est une autre technique qui permet des réductions significatives du stockage et de la latence avec une perte minimale de fidélité, en apprenant des embeddings qui ne valent que 0 ou 1. Ces techniques sont particulièrement précieuses dans les environnements de production où les coûts de stockage et la vitesse de récupération sont des facteurs critiques.
GCL prend également en charge la création d’embeddings conditionnels, qui permettent un contrôle plus nuancé des résultats de recherche
Figure 5 : Embeddings conditionnels
En utilisant des préfixes ou des instructions conditionnelles dans les requêtes, le modèle peut apprendre à ajuster ses résultats en fonction de conditions spécifiques. Par exemple, USA Marketplace : appareil photo SLR pourrait produire des résultats différents de UK Marketplace : appareil photo SLR. Les embeddings conditionnels peuvent également être utilisés pour influencer le style ou la qualité des résultats, de manière similaire au fonctionnement des prompts dans les modèles de génération d’images.
Ces techniques avancées améliorent non seulement les aspects techniques de GCL, mais conduisent également à des gains de performance dans les tâches de récupération en conditions réelles. Voyons comment les modèles entraînés avec GCL se comportent par rapport aux approches traditionnelles.
Améliorations des performances avec GCL
L’utilisation de GCL améliore les performances dans plusieurs scénarios variés. Examinons certains de ceux partagés par Robertson :
Figure 6 : Comparaison des performances entre les modèles d’embeddings entraînés avec GCL et les autres
Les performances dans le domaine ont montré une augmentation de 6 fois du NDCG (Normalized Discounted Cumulative Gain) par rapport aux modèles préentraînés. Pour les requêtes nouvelles non vues pendant l’entraînement, GCL a tout de même surpassé les modèles préentraînés de près de 3 fois. Lorsqu’il a été appliqué à de nouveaux jeux de données non vus pendant l’entraînement, GCL a conservé son avantage en matière de performance. Même dans des scénarios zero-shot, GCL a montré des améliorations du NDCG par rapport aux modèles traditionnels. Ces résultats démontrent la robustesse et la généralisabilité de GCL dans divers scénarios de récupération.
Avec des améliorations aussi significatives de l’efficacité de la récupération, en particulier dans des scénarios nouveaux et zero-shot, GCL est prêt à redéfinir les performances des systèmes de récupération. Voyons maintenant comment vous pouvez apporter ces avantages à vos propres applications RAG en tirant parti de GCL avec Milvus.
Exploiter GCL avec Milvus pour les applications RAG
Bien que Marqo fournisse une solution complète pour la récupération basée sur les embeddings, de nombreuses organisations s’appuient déjà sur Milvus pour leurs besoins en base de données vectorielle. Si vous utilisez Milvus ou prévoyez de l’intégrer à votre infrastructure de données, vous pouvez tout de même bénéficier des modèles affinés avec GCL dans vos applications de génération augmentée par récupération (RAG).
Voici comment vous pouvez intégrer GCL avec Milvus pour le RAG :
Fine-Tuning avec Marqtune : Utilisez Marqtune, la plateforme de fine-tuning de Marqo, pour appliquer GCL à des modèles pré-entraînés. Ce processus optimise le modèle pour vos tâches de récupération spécifiques.
Téléchargement du modèle affiné : Après le fine-tuning, téléchargez le modèle optimisé depuis Marqtune.
Intégration avec Milvus : Utilisez le modèle affiné pour générer des embeddings, qui peuvent ensuite être stockés et recherchés dans Milvus.
Récupération efficace : Exploitez les capacités optimisées de Milvus pour la récupération vectorielle à grande échelle et à grande vitesse. Combiné aux embeddings sensibles aux requêtes de GCL, Milvus peut classer et renvoyer efficacement des résultats pertinents, même dans des jeux de données complexes et multimodaux.
Scalabilité : À mesure que votre jeu de données s’agrandit, Milvus peut gérer les exigences croissantes liées au stockage et à la recherche de milliards d’embeddings, garantissant des performances constantes.
Grâce à la puissance combinée de GCL et de Milvus, les systèmes augmentés par récupération peuvent atteindre une scalabilité et des performances impressionnantes. Mais qu’est-ce qui fait de Milvus un choix si idéal pour ces applications ?
Pourquoi choisir Milvus pour votre système RAG amélioré par GCL ?
Lors de la mise en œuvre d’un système de génération augmentée par récupération (RAG) utilisant des modèles affinés par apprentissage contrastif généralisé (GCL), le choix de la bonne base de données vectorielle est crucial. Milvus se distingue comme un excellent choix grâce à ses fonctionnalités robustes et à ses technologies avancées. Explorons pourquoi Milvus est particulièrement adapté à la gestion des embeddings générés par GCL et à l’alimentation d’applications RAG efficaces.
Fonctionnalités clés de Milvus
Prise en charge du multi-tenant : Milvus permet à plusieurs utilisateurs ou applications de travailler sur le même système sans interférer les uns avec les autres. Cette fonctionnalité offre un accès aux données sécurisé et isolé, ce qui la rend idéale pour les environnements d’entreprise où différentes équipes ou projets peuvent avoir besoin d’utiliser la même instance Milvus. Dans le contexte des systèmes RAG améliorés par GCL, vous pouvez exécuter plusieurs tâches de récupération pour différents services ou cas d’utilisation sur un seul déploiement Milvus, tout en maintenant la séparation et la sécurité des données.
Architecture scalable et élastique : Conçu pour répondre aux besoins croissants en données, Milvus se met automatiquement à l’échelle pour satisfaire la demande. Cela garantit que les performances restent optimales à mesure que votre volume de données augmente. Cette scalabilité est cruciale pour les applications RAG, qui traitent souvent des collections de documents en expansion rapide. À mesure que vous affinez davantage de modèles avec GCL et générez plus d’embeddings, Milvus peut absorber cette croissance sans effort, sans compromettre la vitesse ou l’efficacité de la récupération.
Prise en charge de divers index : Milvus prend en charge plusieurs types d’index, notamment HNSW (Hierarchical Navigable Small World), PQ (Product Quantization), Binary et DiskANN. Cette variété vous permet de choisir le type d’index le plus approprié à votre cas d’utilisation spécifique, en équilibrant vitesse de recherche, précision et efficacité du stockage. Par exemple, HNSW pourrait être idéal pour les recherches à grande vitesse dans les embeddings générés par GCL, tandis que PQ pourrait être utilisé pour un stockage plus compact de grands ensembles d’embeddings.
Cohérence ajustable : Milvus vous permet d’ajuster les niveaux de cohérence de vos données, offrant un équilibre entre performance et exactitude des données en fonction des besoins de votre application. Dans le contexte des systèmes RAG, cette fonctionnalité est particulièrement utile. Vous pouvez privilégier la vitesse de recherche pour les applications en temps réel, ou opter pour une cohérence plus forte dans les scénarios où l’exactitude des données est primordiale, comme dans les applications financières ou médicales.
Calcul accéléré par le matériel : Optimisé pour tirer parti de matériel comme les GPU, Milvus offre un traitement plus rapide et plus efficace pour les tâches gourmandes en ressources. Cela est particulièrement bénéfique lorsque l’on travaille avec des modèles GCL, qui peuvent être exigeants sur le plan computationnel. L’accélération matérielle garantit que, même à mesure que votre base de données d’embeddings s’agrandit, les temps de récupération restent rapides, préservant ainsi la réactivité de votre système RAG.
Technologies avancées alimentant Milvus
Types de calcul flexibles : Milvus est optimisé pour divers environnements matériels, notamment AVX512 (Advanced Vector Extensions), Neon pour SIMD (Single Instruction, Multiple Data) et l’accélération GPU. Cette flexibilité permet à Milvus de tirer efficacement parti de matériel haute performance, offrant un traitement rapide et une évolutivité rentable. Pour les systèmes RAG enrichis par GCL, cela signifie que vous pouvez choisir le type de calcul le plus adapté en fonction de votre matériel disponible et de vos exigences de performance.
Capacités de recherche polyvalentes : Milvus prend en charge un large éventail de méthodes de recherche, notamment top-K ANN (Approximate Nearest Neighbors), range ANN et les recherches filtrées. Ces différents types de recherche vous permettent d’adapter la fonctionnalité de récupération à vos besoins spécifiques. Par exemple, top-K ANN pourrait être utilisé pour trouver les documents les plus pertinents pour un embedding de requête donné, tandis que les recherches filtrées pourraient combiner la similarité sémantique avec des filtres de métadonnées pour des récupérations plus précises.
Techniques d’indexation avancées : Avec la prise en charge de 15 types d’indexation différents, Milvus offre une grande flexibilité dans la manière dont les données sont stockées et recherchées. Cela inclut des techniques avancées comme HNSW pour les recherches à grande vitesse et DiskANN pour gérer des jeux de données massifs. Le bon choix d’index peut avoir un impact significatif sur les performances de votre système RAG, vous permettant d’optimiser soit la vitesse de recherche, soit l’efficacité mémoire, selon vos priorités.
Flexibilité des langages et des API : Milvus prend en charge plusieurs langages de programmation, notamment Python, Java, Go et Node.js. Cette polyvalence facilite l’intégration de Milvus dans les piles technologiques existantes et permet aux développeurs de travailler avec leurs langages préférés. Pour les systèmes RAG, cela signifie que vous pouvez intégrer Milvus de manière transparente dans votre base de code existante, quel que soit le langage dans lequel elle est conçue.
Gestion robuste des données : Milvus offre des capacités sophistiquées de gestion des données, notamment la gestion des collections et des partitions. Cela permet une organisation et une récupération efficaces des jeux de données d’embeddings à grande échelle. Pour les systèmes RAG enrichis par GCL, vous pouvez structurer vos embeddings en collections logiques (par exemple, par type de document ou domaine) et en partitions, permettant des recherches plus ciblées et efficaces.
Compte tenu de son architecture robuste et de ses capacités avancées, Milvus fournit l’infrastructure idéale pour exploiter des modèles enrichis par GCL dans des systèmes augmentés par récupération.
Conclusion
Robertson a fait un excellent travail en montrant comment le Generalized Contrastive Learning (GCL) améliore la récupération en introduisant la prise en compte du rang et de la requête, améliorant ainsi la pertinence et le classement des résultats. Cette approche va au-delà des modèles binaires traditionnels, ce qui la rend très efficace pour des applications comme l’e-commerce et la recherche académique.
Nous avons également vu comment Milvus soutient davantage ces avancées grâce à son architecture évolutive et à sa gestion efficace des embeddings, permettant une récupération à grande vitesse et des performances optimisées pour des jeux de données complexes et multimodaux. Ensemble, GCL et Milvus offrent une solution robuste pour créer des systèmes augmentés par récupération de nouvelle génération.
Continuer à lire

Announcing the General Availability of Zilliz Cloud BYOC on Google Cloud Platform
Zilliz Cloud BYOC on GCP offers enterprise vector search with full data sovereignty and seamless integration.

Democratizing AI: Making Vector Search Powerful and Affordable
Zilliz democratizes AI vector search with Milvus 2.6 and Zilliz Cloud for powerful, affordable scalability, cutting costs in infrastructure, operations, and development.

Vector Databases vs. Hierarchical Databases
Use a vector database for AI-powered similarity search; use a hierarchical database for organizing data in parent-child relationships with efficient top-down access patterns.


