Partager via


Informations de référence sur l’API REST d’inférence du modèle Azure AI

L’inférence de modèle Azure AI est une API qui expose un ensemble commun de fonctionnalités pour les modèles fondamentaux et qui peut être utilisé par les développeurs pour consommer des prédictions d’un ensemble diversifié de modèles de manière uniforme et cohérente. Les développeurs peuvent communiquer avec différents modèles déployés dans le portail Azure AI Foundry sans modifier le code sous-jacent qu’ils utilisent.

Avantages

Les modèles fondamentaux, tels que les modèles linguistiques, ont fait des progrès remarquables ces dernières années. Ces progrès ont révolutionné différents domaines, notamment le traitement du langage naturel et la vision par ordinateur, et ils ont activé des applications telles que les chatbots, les assistants virtuels et les services de traduction de langue.

Bien que les modèles fondamentaux excellent dans des domaines spécifiques, ils ne disposent pas d’un ensemble uniforme de fonctionnalités. Certains modèles sont mieux à une tâche spécifique et même dans la même tâche, certains modèles peuvent aborder le problème d’une manière et d’une autre. Les développeurs peuvent tirer parti de cette diversité en en utilisant le bon modèle pour le bon travail leur permettant de :

  • Améliorez les performances dans une tâche en aval spécifique.
  • Utilisez des modèles plus efficaces pour des tâches plus simples.
  • Utilisez des modèles plus petits qui peuvent s’exécuter plus rapidement sur des tâches spécifiques.
  • Composez plusieurs modèles pour développer des expériences intelligentes.

Avoir un moyen uniforme de consommer des modèles fondamentaux permet aux développeurs de réaliser tous ces avantages sans sacrifier la portabilité ou modifier le code sous-jacent.

Prise en charge du Kit de développement logiciel (SDK) d’inf

Le package d’inférence Azure AI vous permet de consommer tous les modèles prenant en charge l’API d’inférence de modèle Azure AI et de les modifier facilement. Le package d’inférence Azure AI fait partie du Kit de développement logiciel (SDK) Azure AI Foundry.

Langue Documentation Colis Exemples
C# de référence azure-ai-inference (NuGet) exemples C#
Java de référence azure-ai-inference (Maven) exemples Java
JavaScript de référence @azure/ai-inference (npm) exemples JavaScript
Python de référence azure-ai-inference (PyPi) exemples Python

Capacités

La section suivante décrit certaines des fonctionnalités exposées par l’API :

Modalités

L’API indique comment les développeurs peuvent consommer des prédictions pour les modalités suivantes :

Extensibilité

L’API d’inférence de modèle Azure AI spécifie un ensemble de modalités et de paramètres auxquels les modèles peuvent s’abonner. Toutefois, certains modèles peuvent avoir d’autres fonctionnalités que l’API indique. Dans ces cas, l’API permet au développeur de les transmettre en tant que paramètres supplémentaires dans la charge utile.

En définissant un en-tête extra-parameters: pass-through, l’API tente de transmettre directement un paramètre inconnu au modèle sous-jacent. Si le modèle peut gérer ce paramètre, la requête se termine.

L’exemple suivant montre une requête qui transmet le paramètre safe_prompt pris en charge par Mistral-Large, qui n’est pas spécifié dans l’API d’inférence du modèle AZURE AI.

demande de

POST /chat/completions?api-version=2024-05-01-preview
Authorization: Bearer <bearer-token>
Content-Type: application/json
extra-parameters: pass-through
{
    "messages": [
    {
        "role": "system",
        "content": "You are a helpful assistant"
    },
    {
        "role": "user",
        "content": "Explain Riemann's conjecture in 1 paragraph"
    }
    ],
    "temperature": 0,
    "top_p": 1,
    "response_format": { "type": "text" },
    "safe_prompt": true
}

Note

La valeur par défaut de extra-parameters est error qui retourne une erreur si un paramètre supplémentaire est indiqué dans la charge utile. Vous pouvez également définir extra-parameters: drop pour supprimer n’importe quel paramètre inconnu dans la requête. Utilisez cette fonctionnalité si vous envoyez des demandes avec des paramètres supplémentaires que vous savez que le modèle ne prend pas en charge, mais que vous souhaitez que la demande se termine de toute façon. Un exemple typique de ceci indique seed paramètre.

Modèles avec un ensemble disparate de fonctionnalités

L’API d’inférence de modèle Azure AI indique un ensemble général de fonctionnalités, mais chacun des modèles peut décider de les implémenter ou non. Une erreur spécifique est retournée dans les cas où le modèle ne peut pas prendre en charge un paramètre spécifique.

L’exemple suivant montre la réponse d’une demande de saisie semi-automatique de conversation indiquant le paramètre reponse_format et demandant une réponse au format JSON. Dans l’exemple, étant donné que le modèle ne prend pas en charge cette fonctionnalité, une erreur 422 est retournée à l’utilisateur.

demande de

POST /chat/completions?api-version=2024-05-01-preview
Authorization: Bearer <bearer-token>
Content-Type: application/json
{
    "messages": [
    {
        "role": "system",
        "content": "You are a helpful assistant"
    },
    {
        "role": "user",
        "content": "Explain Riemann's conjecture in 1 paragraph"
    }
    ],
    "temperature": 0,
    "top_p": 1,
    "response_format": { "type": "json_object" },
}

Réponse

{
    "status": 422,
    "code": "parameter_not_supported",
    "detail": {
        "loc": [ "body", "response_format" ],
        "input": "json_object"
    },
    "message": "One of the parameters contain invalid values."
}

Pourboire

Vous pouvez inspecter la propriété details.loc pour comprendre l’emplacement du paramètre incriminé et details.input pour voir la valeur qui a été passée dans la requête.

Sécurité du contenu

L’API d’inférence du modèle IA Azure prend en charge Azure AI Content Safety. Lorsque vous utilisez des déploiements avec Azure AI Content Safety sur, les entrées et les sorties passent par un ensemble de modèles de classification visant à détecter et à empêcher la sortie de contenu dangereux. Le système de filtrage de contenu (préversion) détecte et prend des mesures sur des catégories spécifiques de contenu potentiellement dangereux dans les invites d’entrée et les achèvements de sortie.

L’exemple suivant montre la réponse d’une demande de saisie semi-automatique de conversation qui a déclenché la sécurité du contenu.

demande de

POST /chat/completions?api-version=2024-05-01-preview
Authorization: Bearer <bearer-token>
Content-Type: application/json
{
    "messages": [
    {
        "role": "system",
        "content": "You are a helpful assistant"
    },
    {
        "role": "user",
        "content": "Chopping tomatoes and cutting them into cubes or wedges are great ways to practice your knife skills."
    }
    ],
    "temperature": 0,
    "top_p": 1,
}

Réponse

{
    "status": 400,
    "code": "content_filter",
    "message": "The response was filtered",
    "param": "messages",
    "type": null
}

Commencer

L’API d’inférence du modèle IA Azure est disponible sur les ressources Azure AI Services. Vous pouvez commencer à l’utiliser de la même façon que n’importe quel autre produit Azure où vous créer et configurer votre ressource pour l’inférence de modèle Azure AI, ou l’instance du service, dans votre abonnement Azure. Vous pouvez créer autant de ressources que nécessaire et les configurer indépendamment si vous avez plusieurs équipes avec différentes exigences.

Une fois que vous avez créé une ressource Azure AI Services, vous devez déployer un modèle avant de pouvoir commencer à effectuer des appels d’API. Par défaut, aucun modèle n’est disponible sur celui-ci. Vous pouvez donc contrôler les modèles à partir desquels commencer. Consultez le tutoriel Créer votre premier déploiement de modèle dans l’inférence de modèle Azure AI.