Share via


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

Important

La vectorisation et le fractionnement intégrées des données sont en version préliminaire publique sous conditions d’utilisation des compléments. L’API REST 2023-10-01-Preview fournit cette fonctionnalité.

La vectorisation intégrée est une extension des pipelines d’indexation et de requête dans Recherche Azure AI. Elle offre les capacités suivantes :

  • Segmentation des données pendant l’indexation
  • Conversion de texte en vecteur pendant l’indexation
  • Conversion de texte en vecteur pendant les requêtes

La segmentation des données n’est pas une exigence difficile, mais elle est nécessaire pour répondre aux exigences d’entrée de jeton des modèles d’incorporation, sauf si vos documents bruts sont petits.

Un avantage clé est que la vectorisation intégrée accélère le développement et réduit les tâches de maintenance pendant l’ingestion des données et le temps de requête, car il existe moins de composants externes à configurer et à gérer.

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).

Utilisation de la vectorisation intégrée lors de l’indexation

Pour les conversions de segments de données et de texte en vecteur, vous utilisez une dépendance sur les composants suivants :

Utilisation de la vectorisation intégrée dans les requêtes

Pour la conversion de texte en vecteur pendant les requêtes, vous utilisez une dépendance vis-à-vis de ces composants :

  • 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.
  • Une requête spécifiant un ou plusieurs champs vectoriels.
  • Une chaîne de texte convertie en vecteur au moment de l’interrogation.

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é.

Le flux de travail est un pipeline d’indexeur. Les indexeurs récupèrent des données à partir de sources de données prises en charge et initient l’enrichissement des données (ou l’IA appliquée) en appelant des services Azure OpenAI ou Azure AI services, ou du code personnalisé pour les conversions de texte en vecteur ou d’autres traitements.

Ce diagramme 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 vectorisation intégrée est disponible dans toutes les régions et tous les niveaux. Toutefois, si vous utilisez Azure OpenAI et la compétence AzureOpenAIEmbedding, assurez-vous de la disponibilité régionale de ce service.

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 ?

  • Subdivisez 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 le contenu 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 style question et réponse ou de style conversation. L’index secondaire contient des informations granulaires pour des correspondances plus spécifiques, quand l’index parent dispose de plus d’informations et peut souvent produire une réponse plus complète. Lorsqu’une correspondance est trouvée dans l’index secondaire, la requête retourne le document parent à partir de l’index principal. Supposons par exemple un fichier PDF volumineux en tant que document source, l’index principal peut avoir des informations de base (titre, date, auteur, description), tandis qu’un index secondaire contient des blocs de contenu interrogeable.

Étapes suivantes