Utiliser le point de terminaison d'inférence de modèle Azure AI pour consommer des modèles
L’inférence de modèle Azure AI dans Azure AI services permet aux clients de consommer les modèles les plus puissants des fournisseurs de modèles phares à l’aide d’un point de terminaison unique et d’informations d’identification. Cela signifie que vous pouvez basculer entre les modèles et les consommer à partir de votre application sans modifier une seule ligne de code.
Cet article explique comment utiliser le point de terminaison d’inférence pour les appeler.
Points de terminaison
Azure AI Services exposent plusieurs points de terminaison en fonction du type de travail que vous recherchez :
- Point de terminaison d’inférence de modèle Azure AI
- Point de terminaison Azure OpenAI
Le point de terminaison d’inférence Azure AI (généralement sous la forme https://<resource-name>.services.ai.azure.com/models
) permet aux clients d’utiliser un seul point de terminaison avec la même authentification et le même schéma pour générer l’inférence pour les modèles déployés dans la ressource. Tous les modèles prennent en charge cette capacité. Ce point d'accès suit l'API d'inférence de modèle Azure AI.
Les modèles Azure OpenAI déployés sur les services IA prennent également en charge l’API Azure OpenAI (généralement sous la forme https://<resource-name>.openai.azure.com
). Ce point de terminaison expose les fonctionnalités complètes des modèles OpenAI et prend en charge des fonctionnalités supplémentaires telles que les Assistants, les threads, les fichiers et l’inférence par lots.
Pour en savoir plus sur l'application du point de terminaison Azure OpenAI, voir la documentation du service Azure OpenAI.
Utilisation de la fonctionnalité de routage dans le point de terminaison d’inférence du modèle Azure AI
Le point de terminaison d’inférence achemine les demandes vers un déploiement donné en faisant correspondre le paramètre name
à l’intérieur de la requête au nom du déploiement. Cela signifie que les déploiements fonctionnent en tant qu’alias d’un modèle donné sous certaines configurations. Cette flexibilité vous permet de déployer un modèle donné plusieurs fois dans le service, mais sous différentes configurations si nécessaire.
Par exemple, si vous créez un déploiement nommé Mistral-large
, ce déploiement peut être appelé comme suit :
Installez le package azure-ai-inference
à l’aide de votre gestionnaire de package, par exemple pip :
pip install azure-ai-inference>=1.0.0b5
Avertissement
La ressource Azure AI Services nécessite la version azure-ai-inference>=1.0.0b5
de Python.
Vous pouvez ensuite utiliser le package pour consommer le modèle. L’exemple suivant montre comment créer un client pour consommer les complétions de conversation :
import os
from azure.ai.inference import ChatCompletionsClient
from azure.core.credentials import AzureKeyCredential
model = ChatCompletionsClient(
endpoint="https://<resource>.services.ai.azure.com/models",
credential=AzureKeyCredential(os.environ["AZUREAI_ENDPOINT_KEY"]),
)
Découvrez nos exemples, et lisez la documentation de référence API pour vous lancer.
Pour un modèle de conversation, vous pouvez créer une requête comme suit :
from azure.ai.inference.models import SystemMessage, UserMessage
response = client.complete(
messages=[
SystemMessage(content="You are a helpful assistant."),
UserMessage(content="Explain Riemann's conjecture in 1 paragraph"),
],
model="mistral-large"
)
print(response.choices[0].message.content)
Si vous spécifiez un nom de modèle qui ne correspond à aucun modèle de déploiement donné, vous obtenez une erreur indiquant que le modèle n’existe pas. Vous pouvez contrôler les modèles disponibles pour les utilisateurs en créant des modèles de déploiements comme expliqué dans ajouter et configurer des déploiements de modèles.
Limites
- Azure OpenAI Batch ne peut pas être utilisé avec le point de terminaison d’inférence du modèle Azure AI. Vous devez utiliser l’URL de déploiement dédiée comme expliqué dans Prise en charge de l’API Batch dans la documentation Azure OpenAI.
- L’API en temps réel n’est pas prise en charge dans le point de terminaison d’inférence. Utilisez l’URL de déploiement dédiée.