Tutoriel : choisir des modèles d’incorporation et de conversation pour RAG dans Recherche Azure AI
Une solution RAG basée sur Recherche Azure AI dépend des modèles d’incorporation pour la vectorisation et des modèles de conversation pour la recherche conversationnelle sur vos données.
Dans ce tutoriel, vous allez :
- Découvrez quels modèles dans le cloud Azure fonctionnent avec l’intégration intégrée
- En savoir plus sur les modèles Azure utilisés pour la conversation
- Déployer des modèles et collecter des informations de modèle pour votre code
- Configurer l’accès au moteur de recherche aux modèles Azure
- En savoir plus sur les compétences et les vectoriseurs personnalisés pour attacher des modèles non-Azure
Si vous n’avez pas d’abonnement Azure, créez un compte gratuit avant de commencer.
Prérequis
Le Portail Azure, utilisé pour déployer des modèles et configurer des attributions de rôles dans le cloud Azure.
Un rôle Propriétaire ou Administrateur de l’accès utilisateur sur votre abonnement Azure, nécessaire pour créer des attributions de rôles. Vous utilisez au moins trois ressources Azure dans ce tutoriel. Les connexions sont authentifiées avec Microsoft Entra ID, ce qui nécessite la possibilité de créer des rôles. Les attributions de rôles pour la connexion à des modèles sont documentées dans cet article. Si vous ne pouvez pas créer de rôles, vous pouvez utiliser à la place des clés API.
Un fournisseur de modèles, tel que Azure OpenAI, Azure AI Vision via une ressource multiservices Azure AI Services ou Azure AI Studio.
Nous utilisons Azure OpenAI dans ce tutoriel. D’autres fournisseurs sont répertoriés afin que vous connaissiez vos options en matière de vectorisation intégrée.
Recherche Azure AI, niveau De base ou supérieur fournit une identité managée utilisée dans les attributions de rôles.
Une région partagée. Pour réaliser tous les tutoriels de cette série, la région doit prendre en charge Recherche Azure AI et le fournisseur de modèles. Consultez les régions prises en charge pour :
les régions Azure AI Studio.
Recherche Azure AI est actuellement confronté à une disponibilité limitée dans certaines régions. Pour vérifier l’état de la région, consultez la liste des régions Recherche Azure AI.
Conseil
Consultez cet article pour obtenir la liste des régions qui se chevauchent.
Passer en revue les modèles prenant en charge la vectorisation intégrée
Le contenu vectorisé améliore les résultats de la requête dans une solution RAG. Recherche Azure AI prend en charge une action de vectorisation intégrée dans un pipeline d’indexation. Elle prend également en charge la vectorisation au moment de la requête, en convertissant des entrées de texte ou d’image en incorporation pour une recherche vectorielle. Dans cette étape, identifiez un modèle d’incorporation qui fonctionne pour votre contenu et vos requêtes. Si vous fournissez des données vectorielles brutes et des requêtes vectorielles brutes, ou si votre solution RAG n’inclut pas de données vectorielles, ignorez cette étape.
Les requêtes vectorielles qui incluent une étape de conversion de texte à vecteur doivent utiliser le même modèle d’incorporation utilisé lors de l’indexation. Le moteur de recherche ne génère pas d’erreur si vous utilisez des modèles différents, mais vous obtenez des résultats médiocres.
Pour répondre aux exigences du même modèle, choisissez des modèles d’incorporation qui peuvent être référencés par le biais de compétences lors de l’indexation et de vectoriseurs pendant l’exécution de la requête. Le tableau suivant liste les paires de compétence et de vectoriseur. Pour voir comment les modèles d’incorporation sont utilisés, passez directement à la section Créer un pipeline d’indexation pour le code qui appelle une compétence d’incorporation et un vectoriseur correspondant.
Recherche Azure AI fournit une prise en charge des compétences et des vectoriseurs pour les modèles d’incorporation suivants dans le cloud Azure.
Client | Incorporation de modèles | Compétence | Vectoriseur |
---|---|---|---|
Azure OpenAI | text-embedding-ada-002, text-embedding-3-large, text-embedding-3-small |
AzureOpenAIEmbedding | AzureOpenAIEmbedding |
Azure AI Vision | multimodal 4.0 1 | AzureAIVision | AzureAIVision |
Catalogue de modèles Azure AI Studio | OpenAI-CLIP-Image-Text-Embeddings-vit-base-patch32, OpenAI-CLIP-Image-Text-Embeddings-ViT-Large-Patch14-336, Facebook-DinoV2-Image-Embeddings-ViT-Base, Facebook-DinoV2-Image-Embeddings-ViT-Giant, Cohere-embed-v3-english, Cohere-embed-v3-multilingual |
AML 2 | Catalogue de modèles Azure AI Studio |
1 Prend en charge la vectorisation d’image et de texte.
2 Modèles déployés dans le catalogue de modèles sont accessibles via un point de terminaison AML. Nous utilisons la compétence AML existante pour cette connexion.
Vous pouvez utiliser d’autres modèles en plus de ceux listés ici. Pour plus d’informations, consultez Utiliser des modèles non-Azure pour les incorporations dans cet article.
Remarque
Les entrées d’un modèle d’incorporation sont généralement des données segmentées. Dans un modèle RAG de Recherche Azure AI, la segmentation est gérée dans le pipeline d’indexeur, abordé dans un autre didacticiel dans cette série.
Passer en revue les modèles utilisés pour l’IA générative au moment de la requête
Recherche Azure AI n’a pas de code d’intégration pour les modèles de conversation. Vous devez donc choisir un LLM que vous connaissez et qui répond à vos besoins. Vous pouvez modifier le code de requête pour essayer différents modèles sans avoir à recréer un index ou réexécuter une partie du pipeline d’indexation. Passez en revue Rechercher et générer des réponses pour le code qui appelle le modèle de conversation.
Les modèles suivants sont couramment utilisés pour une expérience de recherche de conversation :
Client | Modèles de conversation |
---|---|
Azure OpenAI | GPT-35-Turbo, GPT-4, GPT-4o, GPT-4 Turbo |
Les modèles GPT-35-Turbo et GPT-4 sont optimisés pour fonctionner avec des entrées au format de conversation.
Nous utilisons GPT-4o dans ce tutoriel. Lors des tests, nous avons constaté qu’il était moins susceptible d’utiliser en complément ses propres données d’apprentissage. Par exemple, étant donné la requête « dans quelle mesure la terre est-elle recouverte d’eau ? », GPT-35-Turbo a répondu en utilisant sa connaissance intégrée sur la terre pour indiquer que 71 % de la terre est recouverte d’eau, même si les exemples de données ne font pas état de ce fait. En revanche, GPT-4o a répondu (correctement) avec « Je ne sais pas ».
Déployer des modèles et collecter des informations
Les modèles doivent être déployés et accessibles via un point de terminaison. Les compétences et les vectoriseurs liés à l’incorporation ont besoin du nombre de dimensions et du nom du modèle.
Cette série de tutoriels utilise les modèles et fournisseurs de modèles suivants :
- Text-embedding-3-large sur Azure OpenAI pour les incorporations
- GPT-4o sur Azure OpenAI pour la complétion de conversation
Vous devez avoir Contributeur OpenAI Cognitive Services ou une version ultérieure pour déployer des modèles dans Azure OpenAI.
Accéder à Azure AI Studio.
Sélectionnez Déploiements dans le menu de gauche.
Sélectionnez Déployer le modèle>Déployer le modèle de base.
Sélectionnez text-embedding-3-large dans la liste déroulante et confirmez la sélection.
Spécifiez un nom de déploiement. Nous vous recommandons « text-embedding-3-large ».
Acceptez les valeurs par défaut.
Sélectionnez Déployer.
Répétez les étapes précédentes pour gpt-4o.
Notez les noms et points de terminaison du modèle. Les compétences et les vectoriseurs d’incorporation assemblent le point de terminaison complet en interne. Vous avez donc uniquement besoin de l’URI de ressource. Par exemple, étant donné
https://MY-FAKE-ACCOUNT.openai.azure.com/openai/deployments/text-embedding-3-large/embeddings?api-version=2024-06-01
, le point de terminaison que vous devez fournir dans les définitions de compétence et de vectoriseur esthttps://MY-FAKE-ACCOUNT.openai.azure.com
.
Configurer l’accès au moteur de recherche aux modèles Azure
Pour l’exécution du pipeline et des requêtes, ce tutoriel utilise Microsoft Entra ID pour l’authentification et les rôles pour l’autorisation.
Attribuez-vous les autorisations d’identité du service de recherche sur Azure OpenAI. Le code de ce tutoriel s’exécute localement. Les demandes adressées à Azure OpenAI proviennent de votre système. En outre, les résultats de recherche du moteur de recherche sont passés à Azure OpenAI. Pour ces raisons, vous et le service de recherche avez besoin d’autorisations sur Azure OpenAI.
Connectez-vous au Portail Azure, puis trouvez votre service de recherche.
Configurez Recherche Azure AI pour utiliser une identité managée par le système.
Recherchez votre ressource Azure OpenAI.
Sélectionnez Contrôle d’accès (IAM) dans le menu de gauche.
Sélectionnez Ajouter une attribution de rôle.
Sélectionnez Utilisateur OpenAI Cognitive Services.
Sélectionnez Identité managée, puis Membres. Recherchez l’identité managée par le système pour votre service de recherche dans la liste déroulante.
Ensuite, sélectionnez Utilisateur, groupe ou principal de service, puis sélectionnez Membres. Recherchez votre compte d’utilisateur, puis sélectionnez-le dans la liste déroulante.
Vérifiez que deux principaux de sécurité sont affectés au rôle.
Sélectionnez Vérifier et attribuer pour créer les attributions de rôles.
Pour accéder aux modèles sur Azure AI Vision, attribuez Utilisateur OpenAI de Cognitive Services. Pour Azure AI Studio, attribuez Développeur Azure AI.
Utiliser des modèles non-Azure pour les incorporations
Le modèle d’intégration d’un modèle d’incorporation consiste à l’envelopper dans une compétence personnalisée et un vectoriseur personnalisé. Cette section fournit des liens vers des articles de référence. Pour obtenir un exemple de code qui appelle un modèle non-Azure, consultez Version de démonstration d’incorporations personnalisées.
Client | Incorporation de modèles | Compétence | Vectoriseur |
---|---|---|---|
Quelconque | Quelconque | compétence personnalisée | vectoriseur personnalisé |