Segmentation et incorporation de données intégrées dans Recherche Azure AI

Important

Cette fonctionnalité est en préversion publique sous les conditions d’utilisation supplémentaires. L’API REST 2023-10-01-Preview prend en charge cette fonctionnalité.

la vectorisation intégrée ajoute la segmentation des données et l’incorporation de texte à vecteur à des compétences dans l’indexation basée sur l’indexeur. Il ajoute également des conversions de texte à vecteur aux requêtes.

Cette fonctionnalité est en préversion uniquement. Dans la version généralement disponible de recherche vectorielle et dans les versions préliminaires précédentes, la segmentation et la vectorisation des données s’appuient sur des composants externes pour la segmentation et les vecteurs, et votre code d’application doit gérer et coordonner chaque étape. Dans cette préversion, la segmentation et la vectorisation sont intégrées à l’indexation par le biais de compétences et d’indexeurs. Vous pouvez configurer un ensemble de compétences qui segmente les données à l’aide de la compétence Fractionnement de texte, puis appeler un modèle d’incorporation à l’aide de la compétence AzureOpenAIEmbedding ou d’une compétence personnalisée. Tous les vectoriseurs utilisés pendant l’indexation peuvent également être appelés sur les requêtes pour convertir du texte en vecteurs.

Pour l’indexation, la vectorisation intégrée nécessite :

Pour les requêtes :

  • Un vectoriseur défini dans le schéma d’index, affecté à un champ vectoriel et utilisé automatiquement au moment de la requête pour convertir une requête de texte en vecteur.

Les conversions de vecteurs sont unidirectionnels : texte à vecteur. Il n’existe aucune conversion de vecteur en texte pour les requêtes ou les résultats (par exemple, vous ne pouvez pas convertir un résultat vectoriel en chaîne lisible par l’homme).

Diagramme de composant

Le diagramme suivant montre les composants de la vectorisation intégrée.

Diagramme des composants dans un flux de travail de vectorisation intégré.

Voici une liste de contrôle des composants responsables de la vectorisation intégrée :

  • Source de données prise en charge pour l’indexation basée sur l’indexeur.
  • Index qui spécifie les champs de vecteur et une définition de vectoriseur affectée aux champs vectoriels.
  • Ensemble de compétences fournissant une compétence Fractionnement de texte pour la segmentation des données et une compétence pour la vectorisation (la compétence AzureOpenAiEmbedding ou une compétence personnalisée pointant vers un modèle d’incorporation externe).
  • Si vous le souhaitez, les projections d’index (également définies dans un ensemble de compétences) pour envoyer (push) des données segmentées vers un index secondaire
  • Modèle d’incorporation, déployé sur Azure OpenAI ou disponible via un point de terminaison HTTP.
  • Indexeur pour conduire le processus de bout en bout. Un indexeur spécifie également une planification, des mappages de champs et des propriétés pour la détection des modifications.

Cette liste de contrôle se concentre sur la vectorisation intégrée, mais votre solution n’est pas limitée à cette liste. Vous pouvez ajouter d’autres compétences pour l’enrichissement par IA, créer une base de connaissances, ajouter un classement sémantique, ajouter un réglage de pertinence et d’autres fonctionnalités de requête.

Disponibilité et tarification

La disponibilité de vectorisation intégrée est basée sur le modèle d’incorporation. Si vous utilisez Azure OpenAI, vérifiez sa disponibilité régionale.

Si vous utilisez une compétence personnalisée et un mécanisme d’hébergement Azure (par exemple, une application de fonction Azure, Azure Web App et Azure Kubernetes), consultez la page produit par région pour connaître la disponibilité des fonctionnalités.

La segmentation des données (compétence Fractionnement de texte) est gratuite et disponible sur tous les services Azure AI dans toutes les régions.

Remarque

Certains services de recherche plus anciens créés avant le 1er janvier 2019 sont déployés sur l’infrastructure qui ne prend pas en charge les charges de travail vectorielles. Si vous essayez d'ajouter un champ vectoriel à un schéma et que vous obtenez une erreur, c'est que les services sont obsolètes. Dans ce cas, vous devez créer un service de recherche pour tester la fonctionnalité vectorielle.

Quels scénarios peuvent prendre en charge la vectorisation intégrée ?

  • Subdiviser des documents volumineux en blocs, utiles pour les scénarios vectoriels et non vectoriels. Pour les vecteurs, les segments vous aident à respecter les contraintes d’entrée des modèles incorporés. Pour les scénarios non vectoriels, vous pouvez avoir une application de recherche de style conversation dans laquelle GPT assemble des réponses à partir de blocs indexés. Vous pouvez utiliser des segments vectorisés ou non vectorisés pour la recherche de style conversation.

  • Créez un magasin de vecteurs où tous les champs sont des champs vectoriels, et l’ID de document (requis pour un index de recherche) est le seul champ de chaîne. Interrogez le magasin vectoriel pour récupérer les ID de document, puis envoyez les champs vectoriels du document à un autre modèle.

  • Combinez des champs de vecteur et de texte pour la recherche hybride, avec ou sans classement sémantique. La vectorisation intégrée simplifie tous les scénarios pris en charge par la recherche vectorielle.

Quand utiliser la vectorisation intégrée

Nous vous recommandons d’utiliser la prise en charge intégrée de vectorisation d’Azure AI Studio. Si cette approche ne répond pas à vos besoins, vous pouvez créer des indexeurs et des ensembles de compétences qui appellent la vectorisation intégrée à l’aide des interfaces programmatiques de la Recherche Azure AI.

Comment utiliser la vectorisation intégrée

Pour la vectorisation de requête uniquement :

  1. Ajouter un vectoriseur à un index. Il doit s’agir du même modèle d’incorporation utilisé pour générer des vecteurs dans l’index.
  2. Affectez le vectoriseur à un profil vectoriel, puis affectez un profil vectoriel au champ vectoriel.
  3. Formuler une requête vectorielle qui spécifie la chaîne de texte à vectoriser.

Scénario plus courant, la segmentation et la vectorisation des données pendant l’indexation :

  1. Créer une connexion de source de données à une source de données prise en charge pour l’indexation basée sur l’indexeur.
  2. Créer un ensemble de compétences qui appelle la compétence Fractionnement de texte à la segmentation et AzureOpenAIEmbeddingModel ou une compétence personnalisée pour vectoriser les segments.
  3. Créer un index qui spécifie un vectoriseur pour le temps de requête et l’affecter aux champs vectoriels.
  4. Créer un indexeur pour tout piloter, de l’extraction de données à l’exécution de l’ensemble de compétences, via l’indexation.

Si vous le souhaitez, créez des index secondaires pour les scénarios avancés où le contenu segmenté se trouve dans un index et non segmenté dans un autre index. Les index segmentés (ou les index secondaires) sont utiles pour les applications RAG.

Conseil

Essayez le nouvel Assistant Importer et vectoriser des données dans le portail Azure pour explorer la vectorisation intégrée avant d’écrire du code.

Vous pouvez également configurer un notebook Jupyter pour exécuter le même flux de travail, cellule par cellule, pour voir comment chaque étape fonctionne.

Limites

Assurez-vous que vous connaissez les quotas et limites Azure OpenAI pour l’incorporation de modèles. La Recherche Azure AI a des stratégies de nouvelle tentative, mais si le quota est épuisé, les nouvelles tentatives échouent.

Les limites des jetons Par minute Azure OpenAI sont par modèle, par abonnement. Gardez cette information à l’esprit si vous utilisez un modèle d’incorporation pour les charges de travail de requête et d’indexation. Si possible, suivez les meilleures pratiques. Ayez un modèle d’incorporation pour chaque charge de travail et essayez de les déployer dans différents abonnements.

Dans Recherche Azure AI, n’oubliez pas qu’il existe des limites de service par niveau et charges de travail.

Enfin, les fonctionnalités suivantes ne sont actuellement pas prises en charge :

Avantages de la vectorisation intégrée

Voici quelques-uns des principaux avantages de la vectorisation intégrée :

  • Aucun pipeline de segmentation et de vectorisation de données distincts. Le code est plus simple à écrire et à gérer.

  • Automatisation de l’indexation de bout en bout. Lorsque les données changent dans la source (par exemple dans stockage Azure, Azure SQL ou Cosmos DB), l’indexeur peut déplacer ces mises à jour via l’ensemble du pipeline, de la récupération, au craquage de documents, via l’enrichissement par IA facultatif, l’enrichissement des données, la segmentation des données, la vectorisation et l’indexation.

  • Projection de contenu segmenté vers des index secondaires. Les index secondaires sont créés comme vous le feriez pour n’importe quel index de recherche (schéma avec des champs et d’autres constructions), mais ils sont renseignés en tandem avec un indexeur principal. Le contenu de chaque document source transite vers des champs dans des index principaux et secondaires lors de la même exécution d’indexation.

    Les index secondaires sont destinés aux applications de segmentation et de récupération d’une génération augmentée (RAG) de données. En supposant qu’un fichier PDF volumineux en tant que document source, l’index principal peut avoir des informations de base (titre, date, auteur, description) et un index secondaire contient les blocs de contenu. La vectorisation au niveau du segment de données facilite la recherche d’informations pertinentes (chaque bloc peut faire l’objet d’une recherche) et retourne une réponse pertinente, en particulier dans une application de recherche de style conversation.

Index segmentés

La segmentation est un processus de division du contenu en parties gérables plus petites (segments) qui peuvent être traitées indépendamment. La segmentation est requise si les documents sources sont trop volumineux pour la taille maximale d’entrée de l’incorporation ou des modèles de langage volumineux, mais vous pouvez trouver qu’il vous donne une meilleure structure d’index pour modèles RAG et la recherche de style conversation.

Le diagramme suivant montre les composants de l’indexation en bloc.

Diagramme du flux de travail de segmentation et de vectorisation.

Étapes suivantes