Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
La recherche vectorielle est une approche de récupération d’informations qui prend en charge l’indexation et l’interrogation sur des représentations numériques du contenu. Étant donné que le contenu est numérique plutôt que texte brut, la correspondance est basée sur des vecteurs qui sont les plus similaires au vecteur de requête. Cette approche permet la correspondance entre :
- La sémantique ou la ressemblance conceptuelle. Par exemple, « chien » et « canine » sont conceptuellement similaires mais linguistiquement distincts.
- Contenu multilingue, tel que « dog » en anglais et « hund » en allemand.
- Plusieurs types de contenu, tels que « chien » en texte brut et image d’un chien.
Cet article fournit une vue d’ensemble de la recherche vectorielle dans Recherche Azure AI, notamment les scénarios pris en charge, la disponibilité et l’intégration à d’autres services Azure.
Conseil
Vous voulez commencer immédiatement ? Procédez comme suit :
- Fournissez des incorporations pour votre index ou générez des incorporations dans un pipeline d’indexeur.
- Créez un index vectoriel.
- Exécutez des requêtes vectorielles.
Quels scénarios la recherche vectorielle peut-elle prendre en charge ?
La recherche vectorielle prend en charge les scénarios suivants :
Recherche de similarité. Encoder du texte à l’aide de modèles incorporés ou de modèles open source, tels que les incorporations OpenAI ou SBERT, respectivement. Vous récupérez ensuite des documents à l’aide de requêtes qui sont également encodées en tant que vecteurs.
Recherche hybride. Recherche Azure AI définit la recherche hybride comme l’exécution de la recherche vectorielle et de la recherche par mots-clés dans la même requête. La prise en charge vectorielle est implémentée au niveau du champ. Si un index contient des champs vectoriels et non vecteurs, vous pouvez écrire une requête qui cible les deux. Les requêtes s’exécutent en parallèle, et les résultats sont fusionnés en une seule réponse et classés en conséquence.
Recherche modale. Encodez du texte et des images à l’aide d’incorporations modales, telles que OpenAI CLIP ou GPT-4 Turbo avec Vision dans Azure OpenAI, puis interrogez un espace incorporé composé de vecteurs à partir des deux types de contenu.
Recherche multilingue. Recherche Azure AI est conçu pour l’extensibilité. Si vous avez incorporé des modèles et des modèles de conversation formés dans plusieurs langues, vous pouvez les appeler par le biais de compétences personnalisées ou intégrées côté indexation ou vectoriseurs côté requête. Pour plus de contrôle sur la traduction de texte, utilisez les fonctionnalités multi language prises en charge par Recherche Azure AI pour le contenu non-vecteur dans les scénarios de recherche hybride.
Recherche vectorielle filtrée. Une requête de requête peut inclure une requête vectorielle et une expression de filtre. Les filtres s’appliquent aux champs texte et numériques. Ils sont utiles pour les filtres de métadonnées et pour inclure ou exclure les résultats de recherche en fonction des critères de filtre. Bien qu’un champ vectoriel ne soit pas filtrable, vous pouvez configurer un texte filtrable ou un champ numérique. Le moteur de recherche peut traiter le filtre avant ou après l’exécution de la requête vectorielle.
Base de données vectorielle. Recherche Azure AI stocke les données que vous interrogez. Utilisez-le comme index vectoriel pur lorsque vous avez besoin d’une mémoire à long terme ou d’une base de connaissances, de base des données pour l’architecture de génération augmentée de récupération (RAG) ou d’une application qui utilise des vecteurs.
Comment fonctionne la recherche vectorielle ?
Recherche Azure AI prend en charge l’indexation, le stockage et l’interrogation des incorporations de vecteurs à partir d’un index de recherche. Le diagramme suivant montre les flux de travail d’indexation et de requête pour la recherche vectorielle.
Côté indexation, Recherche Azure AI utilise un algorithme des plus proches voisins pour placer des vecteurs similaires proches dans un index. En interne, il crée des index vectoriels pour chaque champ vectoriel.
La façon dont vous obtenez des incorporations à partir de votre contenu source dans Recherche Azure AI dépend de votre approche de traitement :
Pour le traitement interne, Recherche Azure AI offre la segmentation intégrée des données et la vectorisation dans un pipeline d'indexeur. Vous fournissez les ressources nécessaires, telles que les points de terminaison et les informations de connexion pour Azure OpenAI. Recherche Azure AI effectue ensuite les appels et gère les transitions. Cette approche nécessite un indexeur, une source de données prise en charge et un ensemble de compétences qui pilote la segmentation et l’incorporation.
Pour le traitement externe, vous pouvez générer des incorporations en dehors de Recherche Azure AI et envoyer le contenu prévectorisé directement dans les champs vectoriel dans votre index de recherche.
Côté requête, votre application cliente collecte les entrées utilisateur, généralement par le biais d’une invite. Vous pouvez ajouter une étape d’encodage pour vectoriser l’entrée, puis envoyer la requête vectorielle à votre index de Recherche Azure AI pour la recherche de similarité. Comme pour l’indexation, vous pouvez utiliser la vectorisation intégrée pour encoder la requête. Pour les deux approches, Recherche Azure AI retourne des documents avec les k voisins les plus proches (kNN) dans les résultats.
Recherche Azure AI prend en charge les scénarios hybrid qui exécutent la recherche de vecteurs et de mots clés en parallèle et retournent un jeu de résultats unifié, qui fournit souvent de meilleurs résultats que la recherche de vecteur ou de mot clé seul. Pour la recherche hybride, le contenu vectoriel et non vecteur est ingéré dans le même index pour les requêtes qui s’exécutent simultanément.
Disponibilité et tarification
La recherche vectorielle est disponible dans toutes les régions et sur tous les niveaux sans frais supplémentaires. Toutefois, la génération d’incorporations ou l’utilisation de l’enrichissement par IA pour la vectorisation peut entraîner des frais du fournisseur de modèle.
Pour le portail et l’accès programmatique à la recherche vectorielle, vous pouvez utiliser :
- L’Assistant d'importation de données dans le portail Azure.
- API REST du service de recherche.
- SDK Azure pour .NET, Python et JavaScript.
- Autres offres Azure, telles que Microsoft Foundry.
Note
Certains services de recherche créés avant le 1er janvier 2019 ne prennent pas en charge les charges de travail vectorielles. Si vous essayez d’ajouter un champ vectoriel à un schéma et d’obtenir une erreur, il s’agit d’un résultat de services obsolètes. Dans ce cas, vous devez créer un service de recherche pour tester la fonctionnalité vectorielle.
Les services de recherche créés après le 3 avril 2024 offrent des quotas plus élevés pour les index vectoriels. Si vous avez un service plus ancien, vous pouvez peut-être mettre à niveau votre service pour des quotas vectoriels plus élevés.
intégration Azure et services connexes
Recherche Azure AI est profondément intégré dans la plateforme IA Azure. Le tableau suivant répertorie les produits utiles dans les charges de travail vectorielles.
| Produit | Intégration |
|---|---|
| Azure OpenAI | Azure OpenAI fournit des modèles d’incorporation et des modèles de conversation. Les démonstrations et exemples ciblent le modèle text-embedding-ada-002 . Nous vous recommandons Azure OpenAI pour générer des incorporations pour du texte. |
| Outils de fonderie | L’API de récupération d’images Vectoriser Image prend en charge la vectorisation du contenu de l'image. Nous vous recommandons cette API pour générer des incorporations pour les images. |
| Service de l’agent Foundry | Dans Recherche Azure AI, vous pouvez créer une source indexée knowledge source qui pointe vers un index de recherche contenant des champs vectoriels et un vectoriseur. Vous pouvez ensuite associer la source de connaissances à une base de connaissances et connecter la base de connaissances au Foundry Agent Service, en fournissant à vos agents des résultats de recherche vectorielle pour une récupération améliorée des connaissances. |
| plateformes de données Azure : Stockage Blob Azure, Azure Cosmos DB, Azure SQL, Microsoft OneLake | Vous pouvez utiliser des indexeurs pour automatiser l’ingestion des données, puis utiliser la vectorisation intégrée pour générer des incorporations. Recherche Azure AI peut indexer automatiquement des données vectorielles à partir de indexeurs d’objets blob Azure, indexeurs Azure Cosmos DB pour NoSQL, Azure Data Lake Storage gen2, Azure Table Storage et Microsoft OneLake. Pour plus d’informations, consultez Ajouter des champs vectoriels à un index de recherche. |
Il est également couramment utilisé dans les frameworks open source comme LangChain.