Partager via


Générer des incorporations pour des requêtes de recherche et des documents

Recherche Azure AI n’héberge pas de modèles de vectorisation : une des problématiques est donc de créer des incorporations pour les entrées et les sorties des requêtes. Vous pouvez utiliser n’importe quel modèle d’incorporation pris en charge, mais les étapes de cet article se basent sur les modèles d’incorporation Azure OpenAI.

Nous recommandons la vectorisation intégrée, qui fournit une segmentation et une vectorisation des données intégrées. La vectorisation intégrée dépend des indexeurs, des ensembles de compétences, et des compétences intégrées ou personnalisées qui pointent vers un modèle qui s’exécute en dehors de Recherche Azure AI.

Si vous souhaitez gérer vous-même la segmentation et la vectorisation des données, nous fournissons des démos dans l’exemple de dépôt qui illustrent comment intégrer d’autres solutions de la communauté.

Utilisation des modèles d’incorporations dans les requêtes vectorielles

  • Les entrées de requêtes sont des vecteurs, du texte ou des images convertis en vecteurs pendant le traitement des requêtes. La solution intégrée dans Recherche Azure AI consiste à utiliser un vectoriseur.

    Vous pouvez également gérer la conversion vous-même en passant l’entrée de requête à un modèle d’incorporations de votre choix. Pour éviter une limitation du débit, vous pouvez implémenter une logique de nouvelle tentative dans votre charge de travail. Pour la démonstration Python, nous avons utilisé tenacity.

  • Les résultats d’une requête sont tous les documents correspondants trouvés dans un index de recherche. Votre index de recherche doit avoir été préalablement chargé avec des documents comportant un ou plusieurs champs vectoriels avec des incorporations. Quel que soit le modèle d’incorporations utilisé pour l’indexation, utilisez ce même modèle pour les requêtes.

Créer des ressources dans la même région

La vectorisation intégrée nécessite que les ressources se trouvent dans la même région :

  1. Vérifiez la disponibilité des modèles d’incorporations de texte par région.

  2. Recherchez la même région pour Recherche Azure AI.

  3. Pour prendre en charge les requêtes hybrides qui incluent le classement sémantique, ou si vous voulez essayer d’intégrer un modèle de Machine Learning en utilisant une compétence personnalisée dans un pipeline d’enrichissement par l’IA, sélectionnez une région Recherche Azure AI qui fournit ces fonctionnalités.

Générer une incorporation pour une requête improvisée

Le code Python suivant génère une intégration que vous pouvez coller dans la propriété « valeurs » d’une requête vectorielle.

!pip install openai

import openai

openai.api_type = "azure"
openai.api_key = "YOUR-API-KEY"
openai.api_base = "https://YOUR-OPENAI-RESOURCE.openai.azure.com"
openai.api_version = "2024-02-01"

response = openai.Embedding.create(
    input="How do I use Python in VSCode?",
    engine="text-embedding-ada-002"
)
embeddings = response['data'][0]['embedding']
print(embeddings)

La sortie est un tableau vectoriel de 1536 dimensions.

Conseils et recommandations pour incorporer l’intégration du modèle

  • Identifiez les cas d’utilisation : évaluez les cas d’utilisation spécifiques où l’incorporation de l’intégration de modèles pour les fonctionnalités de recherche vectorielle peut apporter une valeur ajoutée à votre solution de recherche. Cela peut inclure du contenu d’image multimodal ou correspondant avec du contenu texte, une recherche multilingue ou une recherche de similarité.

  • Concevez une stratégie de segmentation : les modèles d’incorporations ont des limites quant au nombre de jetons qu’ils peuvent accepter, ce qui introduit une exigence en matière de segmentation des données pour les fichiers volumineux. Pour plus d’informations, consultez Segmenter les documents volumineux pour les solutions de recherche vectorielle.

  • Optimisez les coûts et les performances : la recherche vectorielle peut être gourmande en ressources et est soumise à des limites maximales : envisagez donc de vectoriser seulement les champs dont le contenu a une signification sémantique. Réduisez la taille des vecteurs afin de pouvoir stocker davantage de vecteurs pour le même prix.

  • Choisissez le bon modèle d’incorporation : sélectionnez un modèle approprié pour votre cas d’utilisation spécifique, comme des incorporations de mots pour les recherches textuelles ou des incorporations d’images pour les recherches visuelles. Envisagez d’utiliser des modèles préentraînés, comme text-embedding-ada-002 d’OpenAI ou l’API REST Image Retrieval de Vision par ordinateur Azure AI.

  • Normalisez les longueurs des vecteurs : vérifiez que les longueurs des vecteurs sont normalisées avant de les stocker dans l’index de recherche pour améliorer la précision et les performances de la recherche de similarité. La plupart des modèles préentraînés sont déjà normalisés, mais ce n’est pas le cas de tous.

  • Optimisez le modèle : si nécessaire, optimisez le modèle sélectionné sur des données spécifiques à votre domaine afin d’améliorer ses performances et sa pertinence pour votre application de recherche.

  • Testez et itérez : testez et optimisez en permanence l’intégration de votre modèle d’incorporation pour obtenir les performances de recherche souhaitées et la satisfaction de l’utilisateur.

Étapes suivantes