Partage 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’intégration, mais cet article se base sur les modèles d’incorporation d’Azure OpenAI. Les démonstrations du dépôt d’exemples exploitent les modèles d’incorporation des similarités d’Azure OpenAI.

Les attributs de dimension ont au minimum 2 dimensions et au maximum 4096 dimensions par champ vectoriel.

Remarque

Cet article s’applique à la version en disponibilité générale de la recherche vectorielle, qui suppose que le code de votre application appelle une bibliothèque externe comme Azure OpenAI pour la vectorisation. Une nouvelle fonctionnalité appelée vectorisation intégrée, actuellement en préversion, offre une vectorisation intégrée. La vectorisation intégrée dépend des indexeurs, des ensembles de compétences, et de la compétence AzureOpenAIEmbedding ou d’une compétence personnalisée qui pointe vers un modèle qui s’exécute en dehors de Recherche Azure AI.

Comment les modèles sont utilisés

  • Pour les requêtes, vous devez soumettre les données fournies par l’utilisateur à un modèle d’incorporation qui convertit rapidement le texte lisible par les humains en un vecteur.

    • Par exemple, vous pouvez utiliser text-embedding-ada-002 pour générer des incorporations de texte et l’API REST Image Retrieval pour les incorporations d’images.

    • 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 utilisé pour l’indexation, utilisez le même modèle pour les requêtes.

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

Si vous voulez des ressources dans la même région, commencez par ceci :

  1. sUne région pour le modèle d’incorporation des similarités, actuellement en Europe et aux États-Unis.

  2. Une 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 l’intégration d’un modèle Machine Learning en utilisant une compétence personnalisée dans un pipeline d’enrichissement par IA, notez les régions qui fournissent 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==0.28.1

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)

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. Il peut s’agir de faire correspondre des images à du texte, d’effectuer des recherches multilingues ou de trouver des documents similaires.
  • 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.
  • 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