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.
Les bases de données vectorielles stockent et gèrent les incorporations vectorielles. Les incorporations sont des représentations numériques des données qui conservent la signification sémantique. Les mots, documents, images, audio et autres types de données peuvent tous être vectorisés. Vous pouvez utiliser des incorporations pour aider un modèle IA à comprendre la signification des entrées afin qu’il puisse effectuer des comparaisons et des transformations, telles que la synthèse de texte, la recherche de données contextuelles ou la création d’images à partir de descriptions de texte.
Par exemple, vous pouvez utiliser une base de données vectorielle pour :
- Identifier des images, des documents et des chansons similaires en fonction de leur contenu, de leurs thèmes, sentiments et styles.
- Identifier des produits similaires en fonction de leurs caractéristiques, fonctionnalités et groupes d’utilisateurs.
- Recommander du contenu, des produits ou des services en fonction des préférences de l’utilisateur.
- Identifier les meilleures options potentielles dans un grand pool de choix pour répondre à des exigences complexes.
- Identifier les anomalies de données ou les activités frauduleuses qui dévient des modèles prédominants ou normaux.
Comprendre la recherche vectorielle
Les bases de données vectorielles fournissent des fonctionnalités de recherche vectorielle pour rechercher des éléments similaires en fonction de leurs caractéristiques de données plutôt que par des correspondances exactes sur un champ de propriété. La recherche vectorielle fonctionne en analysant les représentations vectorielles de vos données que vous avez créées à l’aide d’un modèle d’incorporation d’IA, tel que les modèles d’incorporation Azure OpenAI. Le processus de recherche mesure la distance entre les vecteurs de données et votre vecteur de requête. Les vecteurs de données les plus proches de votre vecteur de requête sont ceux qui sont sémantiquement les plus similaires.
Certains services, tels qu’Azure Cosmos DB pour MongoDB vCore, fournissent des fonctionnalités de recherche vectorielle native pour vos données. D’autres bases de données peuvent être améliorées avec la recherche vectorielle en indexant les données stockées à l’aide d’un service tel que Recherche Azure AI, qui peut analyser et indexer vos données pour fournir des fonctionnalités de recherche vectorielle.
Flux de travail de recherche vectorielle avec .NET et OpenAI
Les bases de données vectorielles et leurs fonctionnalités de recherche sont particulièrement utiles dans les flux de travail de modèle RAG avec Azure OpenAI. Ce modèle vous permet d’augmenter votre modèle IA avec des connaissances sémantiquement enrichies de vos données. Un flux de travail IA courant à l’aide de bases de données vectorielles comprend les étapes suivantes :
- Créer des incorporations pour vos données à l’aide d’un modèle d’incorporation OpenAI.
- Stocker et indexer les incorporations dans une base de données vectorielle ou un service de recherche.
- Convertissez les requêtes de l'utilisateur de votre application en éléments intégrés.
- Exécutez une recherche vectorielle sur vos données en comparant l'insertion de l'invite de l'utilisateur avec les insertions dans votre base de données.
- Utilisez un modèle de langage tel que gpt-4o pour assembler une saisie semi-conviviale à partir des résultats de la recherche vectorielle.
Pour obtenir un exemple pratique de ce flux, consultez l’implémentation d’Azure OpenAI avec RAG à l’aide de la recherche vectorielle dans un didacticiel d’application .NET .
Voici d’autres avantages du modèle RAG :
- Générez des réponses contextuellement pertinentes et précises aux invites utilisateur à partir de modèles IA.
- Surmonter les limites des jetons LLM : le travail lourd est effectué par le biais de la recherche vectorielle de base de données.
- Réduisez les coûts du réglage précis fréquent des données mises à jour.
Bibliothèque Microsoft.Extensions.VectorData
Le 📦 package Microsoft.Extensions.VectorData.Abstractions fournit une couche unifiée d’abstractions pour interagir avec les magasins vectoriels dans .NET. Ces abstractions vous permettent d’écrire du code sur une API unique et de permuter le magasin de vecteurs sous-jacent avec des modifications minimales apportées à votre application.
La bibliothèque fournit les fonctionnalités clés suivantes :
- Modèle de données unifié : définissez votre modèle de données une fois à l’aide d’attributs .NET et utilisez-le dans n’importe quel magasin vectoriel pris en charge.
- Opérations CRUD : Créer, lire, mettre à jour et supprimer des enregistrements dans un magasin vectoriel.
- Recherche de vecteur et de texte : interroger des enregistrements par similarité sémantique à l’aide de la recherche vectorielle ou par mot clé à l’aide de la recherche de texte.
- Gestion des collections : créer, répertorier et supprimer des collections (tables ou index) dans un magasin vectoriel.
Abstractions clés
La Microsoft.Extensions.VectorData.Abstractions bibliothèque expose les classes abstraites principales suivantes :
- VectorStore: classe de niveau supérieur pour une base de données vectorielle. Utilisez-le pour récupérer et gérer des collections.
-
VectorStoreCollection<TKey,TRecord> : représente une collection nommée d'enregistrements dans un stockage vectoriel. Utilisez-le pour effectuer des opérations CRUD et de recherche. Implémente également
IVectorSearchable<TRecord>. - IKeywordHybridSearchable<TRecord>: implémenté par des collections qui prennent en charge la recherche hybride, combinant la similarité vectorielle avec la correspondance de mots clés.
Pour obtenir un guide pas à pas couvrant la définition du modèle de données, les opérations CRUD, la recherche vectorielle, le filtrage, la recherche hybride et la génération d’incorporation, consultez Utiliser des magasins vectoriels dans les applications .NET AI.
Fournisseurs d'entrepôts de vecteurs
Le Microsoft.Extensions.VectorData.Abstractions package définit les abstractions et les packages de fournisseur distincts fournissent des implémentations pour des bases de données vectorielles spécifiques. Choisissez le fournisseur qui correspond à votre base de données vectorielle, par exemple Microsoft.SemanticKernel.Connectors.AzureAISearch.
Note
Malgré l’inclusion de « SemanticKernel » dans les noms de package, ces fournisseurs n’ont rien à voir avec le noyau sémantique et sont utilisables n’importe où dans .NET, y compris Agent Framework.
Tous les fournisseurs implémentent les mêmes VectorStore classes abstraites et VectorStoreCollection<TKey,TRecord> identiques. Vous pouvez donc basculer entre eux sans modifier votre logique d’application.
Conseil / Astuce
Utilisez le fournisseur en mémoire (Microsoft.SemanticKernel.Connectors.InMemory) pendant le développement et le test. Il ne nécessite aucun service ou configuration externe, et vous pouvez le remplacer par un fournisseur de production ultérieurement.