Trouvez des réponses aux Questions fréquentes (FAQ) sur le service Recherche Azure AI.
Recherche Azure AI fournit un moteur de recherche dédié et un stockage persistant de votre contenu pouvant faire l’objet d’une recherche pour les scénarios de recherche en texte intégral et de recherche vectorielle. Il comprend également une IA intégrée facultative utilisée pour extraire davantage de texte et de structure à partir de contenu brut et pout segmenter et vectoriser du contenu pour la recherche vectorielle.
Le workflow principal est la création, le chargement et l’interrogation d’un index. Même si vous pouvez utiliser le portail Azure pour la plupart des tâches, le service Recherche Azure AI est destiné à être utilisé par programmation en gérant les requêtes à partir du code client. La prise en charge par programmation est assurée par le biais d’API REST et de bibliothèques de client dans les SDK .NET, Python, Java et JavaScript pour Azure.
Est-ce que « Recherche Azure », « Recherche cognitive Azure » et « Recherche Azure AI » correspondent au même service ?
Recherche Azure a été renommé Recherche cognitive Azure en octobre 2019 pour refléter l’utilisation étendue (mais facultative) de compétences cognitives et du traitement par IA dans les opérations du service. Recherche cognitive Azure a été renommé Recherche Azure AI en octobre 2023 pour s’aligner sur les services Azure AI.
Pour les vecteurs, les modèles d’incorporation que vous utilisez déterminent l’expérience linguistique.
Pour les chaînes et les nombres non-vecteurs, l’analyseur par défaut utilisé pour la tokenisation est Lucene standard et il est indépendant du langage. Sinon, la prise en charge linguistique est exprimée via des analyseurs de langue qui appliquent des règles linguistiques au contenu entrant (indexation) et sortant (requêtes). Certaines fonctionnalités, telles que le vérificateur d’orthographe et la réécriture de requêtes, sont limitées à un sous-ensemble de langues.
Le code client doit appeler les bibliothèques de client SDK Azure ou les API REST pour se connecter à un index de recherche, formuler des requêtes et traiter les réponses. Vous pouvez également écrire du code qui génère et actualise un index, ou qui exécute des indexeurs programmatiquement ou avec un script.
Pas toujours. L’API REST est toujours la première à implémenter de nouvelles fonctionnalités dans les versions d’API en préversion. Les bibliothèques de client dans les SDK Azure récupèrent les nouvelles fonctionnalités au fil du temps, mais sont publiées suivant leur propre calendrier.
Bien que les API REST soient les premières à utiliser les dernières fonctionnalités, les Kits de développement logiciel (SDK) Azure prennent mieux en charge le codage et sont recommandés par rapport à REST, sauf si une fonctionnalité obligatoire n’est pas disponible.
Vous ne pouvez pas mettre en pause un service de recherche. Dans la Recherche Azure AI, des ressources de calcul sont allouées à la création du service. Il n’est pas possible de libérer des ressources à la demande.
Le niveau de service, le nom et la région sont fixes pour la durée de vie du service.
Si je migre mon service de recherche vers un autre abonnement ou groupe de ressources, dois-je m’attendre à un temps d’arrêt ?
Tant que vous suivez la liste de vérification avant de déplacer des ressources et veillez à ce que chaque étape soit terminée, il ne devrait y avoir aucun temps d’arrêt.
Ce terme fait référence à l’ingestion, à l’analyse et au stockage du contenu textuel et des jetons qui remplissent un index de recherche. L’indexation crée des index inversés et d’autres structures de données physiques qui prennent en charge la récupération d’informations.
Il crée des index vectoriels si le schéma inclut des champs vectoriels.
Il n’existe aucune prise en charge native pour le portage d’index. Les index de recherche sont considérés comme des structures de données en aval, acceptant du contenu d’autres sources de données qui collectent des données opérationnelles. Par conséquent, il n’y a pas de support intégré de la sauvegarde et de la restauration des index, car vous pouvez regénérer un index à partir de données sources si vous l’avez supprimé ou voulez le déplacer.
Toutefois, si vous voulez déplacer un index entre des services de recherche, vous pouvez essayer l’exemple de code index-backup-restore dans cet exemple de référentiel .NET de la Recherche Azure AI. Il existe également une version Python de la sauvegarde et de la restauration.
Non, si vous supprimez un index ou un service Recherche Azure AI, il ne peut pas être récupéré. Quand vous supprimez un service de recherche, tous les index dans le service sont supprimés définitivement.
Si vous utilisez l’indexeur de recherche pour Azure SQL Database, il n’y a pas de restrictions d’utilisation des réplicas principaux ou secondaires comme source de données quand vous créez un index à partir de zéro. Toutefois, pour que l’index soit actualisé avec des mises à jour incrémentielles (basées sur les enregistrements modifiés), le réplica principal est nécessaire. Cela vient du fait que SQL Database assure uniquement le suivi des modifications sur les réplicas principaux. Si vous essayez d’utiliser des réplicas secondaires pour une charge de travail d’actualisation d’index, il n’est pas garanti que vous obteniez toutes les données.
La recherche vectorielle est une technique qui recherche les documents les plus similaires en comparant leurs représentations vectorielles. Étant donné que l’objectif d’une représentation vectorielle est de capturer les caractéristiques essentielles d’un élément dans un format numérique, les requêtes vectorielles peuvent identifier du contenu similaire même s’il n’existe aucune correspondance explicite basée sur des mots clés ou des balises. Lorsqu’un utilisateur effectue une recherche, la requête est résumée dans une représentation vectorielle et le moteur de recherche vectorielle identifie les documents les plus similaires. Pour améliorer l’efficacité sur les bases de données volumineuses, la recherche vectorielle fournit souvent les voisins les plus proches d’un vecteur de requête. Consultez vue d’ensemble de la recherche vectorielle pour connaître les spécificités de l’offre vectorielle de Recherche IA Azure.
Recherche Azure AI prend en charge l’indexation et la récupération de vecteurs. Il peut segmenter et vectoriser des chaînes de requête et du contenu si vous utilisez la vectorisation intégrée et prenez une dépendance sur les indexeurs et les ensembles de compétences.
Avec la recherche vectorielle autonome, vous utilisez d’abord un modèle d’incorporation pour transformer le contenu en une représentation vectorielle dans un espace d’incorporation. Vous pouvez ensuite fournir ces vecteurs dans une charge utile de document à l’index de recherche pour l’indexation. Pour traiter les requêtes de recherche, vous utilisez le même modèle d’incorporation pour transformer la requête de recherche en une représentation vectorielle, et la recherche vectorielle trouve les vecteurs les plus similaires et retourne les documents correspondants.
Dans Recherche Azure AI, vous pouvez indexer les données vectorielles sous forme de champs dans des documents, ainsi que des types de contenu textuels et d’autres types de contenu. Il existe plusieurs types de données pour les champs vectoriels.
Les requêtes vectorielles peuvent être émises de manière autonomes ou en combinaison avec d’autres types de requêtes, y compris les requêtes de termes et les filtres dans la même requête de recherche.
La vectorisation intégrée est désormais en disponibilité générale.
La plupart des services existants prennent en charge la recherche vectorielle. Si vous utilisez un package ou une API qui prend en charge la recherche vectorielle et que la création d’index échoue, le service de recherche sous-jacent ne prend pas en charge la recherche vectorielle et un nouveau service doit être créé. Cela peut se produire pour un petit sous-ensemble de services créés avant le 1er janvier 2019.
Si votre service de recherche prend en charge la recherche vectorielle, les index existants et les nouveaux index peuvent prendre en charge les champs vectoriels.
Pourquoi puis-je voir différentes limites de taille d’index vectoriel entre mes nouveaux services de recherche et les services de recherche existants ?
La Recherche Azure AI a déployé de meilleures limites de taille d’index vectoriel dans le monde entier pour les nouveaux services de recherche, mais certaines régions connaissent des contraintes de capacité, tandis que d’autres n’ont pas l’infrastructure requise. Les nouveaux services de recherche créés dans les régions prises en charge devraient voir les limites de taille d’index vectoriel augmentées. Malheureusement, nous ne pouvons pas migrer les services existants vers les nouvelles limites. Par ailleurs, seuls les index vectoriels qui utilisent l’algorithme HNSW (Hierarchical Navigable Small World) indiquent la taille d’index vectoriel dans le portail Azure. Si votre index utilise l’algorithme KNN exhaustif, la taille d’index vectoriel est indiquée à zéro, même si l’index contient des vecteurs.
Pour activer la recherche vectorielle dans un index, vous devez :
Ajoutez un ou plusieurs champs vectoriels à une collection de champs.
Ajoutez une section « vectorSearch » au schéma d’index spécifiant la configuration utilisée par les champs de recherche vectorielle, y compris les paramètres de l’algorithme Voisin le plus proche approximatif utilisé, comme HNSW.
Utilisez la dernière version stable 2024-07-01ou un SDK Azure pour créer ou mettre à jour l’index, charger des documents et émettre des requêtes. Pour plus d’informations, consultez Créer un index vectoriel.
Les requêtes s’exécutent sur un seul index de recherche hébergé sur votre service de recherche. Vous ne pouvez pas joindre plusieurs index pour rechercher du contenu dans ces derniers. Toutefois, vous pouvez interroger des index portant le même nom dans plusieurs services de recherche.
Dans la plupart des cas, l’utilisateur ne sait pas que chaque type de requête prend en charge des comportements de recherche et des niveaux d’analyse linguistique différents. La recherche en texte intégral, qui représente la principale charge de travail, comprend une phase d’analyse linguistique qui ne conserve que la racine des termes entrés. Cet aspect de l’analyse de requête permet d’élargir le nombre de correspondances possibles, car le terme peut ainsi correspondre à un plus grand nombre de variantes.
Toutefois, les requêtes de caractère générique, les requêtes partielles et les requêtes d’expression régulière ne sont pas analysées comme les requêtes de terme ou d’expression normales et peuvent entraîner un rappel médiocre si la requête ne correspond pas à la forme analysée du mot dans l’index de recherche. Pour plus d’informations sur l’analyse des requêtes et l’analyse lexicale, consultez l’architecture de requêtes.
La plupart des requêtes de recherche de caractère générique, comme les requêtes de préfixe, partielle et d’expression régulière, sont réécrites en interne avec des termes correspondants dans l’index de recherche. Ce traitement supplémentaire ajoute à la latence. Par ailleurs, les requêtes de recherche large, comme a*
, susceptibles d’être réécrites avec de nombreux termes, peuvent être lentes. Pour des recherches performantes avec caractère générique, définissez un analyseur personnalisé.
Non, la recherche est toujours limitée à un seul index.
Les scores de recherche sont générés pour les requêtes de recherche en texte intégral, en fonction des propriétés statistiques des termes correspondants, et sont triés du plus haut au plus bas dans le jeu de résultats. Les types de requête qui ne sont pas des recherches en texte intégral (caractère générique, préfixe, expression régulière) ne sont pas classés par score de pertinence. Ce comportement est inhérent au produit. Un score constant permet aux correspondances trouvées au moyen de l’extension de requête d’être ajoutées aux résultats, sans affecter le classement.
Par exemple, supposons l’entrée « tour* » dans une recherche par caractères génériques, qui retourne les résultats « tours », « tourettes » et « tourmaline ». Étant donné la nature de ces résultats, il est impossible de déduire raisonnablement quels termes sont plus utiles que d’autres. Pour cette raison, nous ignorons les fréquences de terme pendant le scoring des résultats dans les requêtes de type caractère générique, préfixe et regex. Les résultats de recherche basés sur une entrée partielle reçoivent un score constant afin d’éviter que des résultats inattendus ne soient retournés.
Il stocke vos données dans la zone géographique (Géo) où votre service est déployé. Microsoft peut répliquer vos données dans la même zone géographique à des fins de haute disponibilité et de durabilité. Pour plus d’informations, consultez Résidence des données dans Azure.
La Recherche Azure AI envoie-t-elle des données de clients à d’autres services à des fins de traitement ?
Oui, les compétences et les vectoriseurs effectuent des appels sortants depuis Recherche Azure AI vers d’autres ressources Azure ou modèles externes que vous spécifiez pour l’incorporation ou la conversation. Les appels à ces API contiennent généralement du contenu brut à traiter ou à des requêtes qui sont vectorisées par un modèle d’incorporation. Pour les connexions Azure à Azure, le service envoie les requêtes sur le réseau interne. Si vous ajoutez une compétence ou un vectoriseur personnalisés, l’indexeur envoie du contenu à l’URI fourni dans la compétence personnalisée sur le réseau public, sauf si vous configurez une liaison privée partagée.
Le traitement (vectorisation ou transformations d’IA appliquées) est effectué dans la zone géographique qui héberge les Azure AI services utilisés par les compétences, ou les applications ou fonctions Azure hébergeant les compétences personnalisées, ou la région Azure OpenAI ou Azure AI Foundry qui héberge vos modèles déployés. Ces ressources sont spécifiées par vous. Vous pouvez donc choisir de les approvisionner dans la même zone géographique que votre service de recherche, ou non
Si vous envoyez des données à des modèles ou services externes (non-Azure), l’emplacement du traitement est déterminé par le service externe.
Vous pouvez si vous implémentez une solution qui associe des documents à une identité utilisateur. En règle générale, les utilisateurs autorisés à exécuter votre application sont également autorisés à voir tous les résultats de recherche. La Recherche Azure AI n’a pas de support intégré des autorisations au niveau des lignes ou au niveau du document, mais vous pouvez implémenter des filtres de sécurité pour contourner le problème. Pour connaître les étapes et les scripts, consultez Prise en main de l’exemple de conversation d’entreprise Python à l’aide de RAG.
Oui ,vous pouvez utiliser l’autorisation basée sur les rôles pour les opérations de plan de données sur le contenu.
Puis-je utiliser le Portail Azure pour afficher et gérer le contenu de recherche si le service de recherche se trouve derrière un pare-feu IP ou un point de terminaison privé ?
Vous pouvez utiliser le Portail Azure sur un service de recherche protégé par le réseau si vous créez une exception réseau qui autorise l’accès au client et au portail. Pour plus d’informations, consultez se connecter via un pare-feu IP ou se connecter via un point de terminaison privé.
Si vous ne trouvez pas de réponse à votre question ici, vous pouvez consulter les sources suivantes pour plus de questions et réponses.
Stack Overflow : Recherche Azure AI
Fonctionnement de la recherche en texte intégral dans la Recherche Azure AI
Qu’est-ce que Recherche Azure AI ?