Partager via


Apprendre à déployer des modèles Mistral avec Azure Machine Learning studio

Dans cet article, vous allez apprendre à utiliser Azure Machine Learning studio pour déployer les modèles de la famille Mistral en tant qu’API serverless avec facturation basée sur jeton avec paiement à l’utilisation.

Mistral AI propose deux catégories de modèles dans Azure Machine Learning studio. Ces modèles sont disponibles dans le catalogue de modèles.

  • Modèles Premium : Mistral Large (2402), Mistral Large (2407), Mistral Small et Ministral-3B.
  • Modèles ouverts : Mistral Nemo, Mixtral-8x7B-Instruct-v01, Mixtral-8x7B-v01, Mistral-7B-Instruct-v01 et Mistral-7B-v01.

Tous les modèles Premium et Mistral Nemo (un modèle ouvert) peuvent être déployés en tant qu’API serverless avec facturation par jetons basée sur le paiement à l’utilisation. Vous pouvez déployer les autres modèles ouverts sur des calculs managés dans votre propre abonnement Azure.

Vous pouvez parcourir la famille de modèles Mistral dans le catalogue de modèles en filtrant la collection Mistral.

Famille de modèles Mistral

Mistral Large est le modèle LLM (Large Language Model) le plus avancé de Mistral AI. Il peut être utilisé sur n’importe quelle tâche basée sur le langage grâce à ses fonctionnalités de raisonnement et de connaissances de pointe. Il existe deux variantes disponibles pour la version de modèle Mistral Large :

  • Mistral Large (2402)
  • Mistral Large (2407)

En outre, certains attributs de Mistral Large (2402) sont les suivants :

  • Spécialisé en RAG. Les informations cruciales ne sont pas perdues au milieu de fenêtres contextuelles longues (jusqu’à 32 K jetons).
  • Fort en codage. Génération, révision et commentaires du code. Prend en charge tous les langages de codage standard.
  • Multilingue par nature. Meilleures performances en Français, allemand, espagnol et italien, en plus de l’anglais. Des dizaines d’autres langues sont prises en charge.
  • Conforme à l’IA responsable. Garde-fous efficaces intégrés au modèle, et couche de sécurité supplémentaire avec l’option safe_mode.

Et les attributs de Mistral Large (2407) sont les suivants :

  • Conception par nature. Prend en charge des dizaines de langues, notamment l’anglais, le français, l’allemand, l’espagnol et l’italien.
  • Maîtrise du codage. Formé sur plus de 80 langages de code, notamment Python, Java, C, C++, JavaScript et Bash. Également formé sur des langages plus spécifiques tels que Swift et Fortran.
  • Centré sur l'agent. Possède des fonctionnalités d’Agent avec l’appel de fonction native et sortie JSON.
  • Raisonnement avancé. Démontre des capacités mathématiques et de raisonnement de pointe.

Important

Cette fonctionnalité est actuellement disponible en préversion publique. Cette préversion est fournie sans contrat de niveau de service et n’est pas recommandée pour les charges de travail de production. Certaines fonctionnalités peuvent être limitées ou non prises en charge.

Pour plus d’informations, consultez Conditions d’Utilisation Supplémentaires relatives aux Évaluations Microsoft Azure.

Déployer la famille de modèles Mistral en tant que API serverless

Certains modèles du catalogue de modèles peuvent être déployés en tant qu’API serverless avec facturation avec paiement à l’utilisation. Ce type de déploiement permet de consommer des modèles en tant qu’API sans les héberger sur votre abonnement, tout en conservant la sécurité et la conformité de l’entreprise dont les organisations ont besoin. Cette option de déploiement ne nécessite pas de quota à partir de votre abonnement.

Mistral Large (2402), Mistral Large (2407), Mistral Small et Mistral Nemo peuvent être déployés en tant qu’API serverless avec paiement à l’utilisation et sont proposés par Mistral AI via la Place de marché Microsoft Azure. Mistral AI peut changer ou mettre à jour les conditions d’utilisation et les tarifs de ces modèles.

Prérequis

  • Un abonnement Azure avec un moyen de paiement valide. Les abonnements Azure gratuits ou d’essai ne fonctionnent pas. Si vous ne disposez pas d’un abonnement Azure, commencez par créer un compte Azure payant.

  • Un espace de travail Azure Machine Learning. Si vous n’avez pas d’espace de travail, suivez les étapes décrites dans l’article Démarrage rapide : Créer des ressources d’espace de travail pour en créer un. L’offre de déploiement de modèle avec API serverless pour les modèles éligibles dans la famille Mistral est disponible uniquement dans les espaces de travail créés dans ces régions :

    • USA Est
    • USA Est 2
    • Centre-Nord des États-Unis
    • États-Unis - partie centrale méridionale
    • USA Ouest
    • USA Ouest 3
    • Suède Centre

    Pour obtenir la liste des régions disponibles pour chacun des modèles prenant en charge les déploiements de points de terminaison d’API serverless, consultez Disponibilité des régions pour les modèles dans les points de terminaison d’API serverless

  • Les contrôles d’accès en fonction du rôle Azure (Azure RBAC) sont utilisés pour accorder l’accès aux opérations dans Azure Machine Learning. Pour effectuer les étapes décrites dans cet article, votre compte d’utilisateur doit avoir le Rôle de développeur Azure AI sur le groupe de ressources. Pour plus d’informations sur les autorisations, consultez Gérer l’accès à un espace de travail Azure Machine Learning.

Créer un déploiement

Les étapes suivantes démontrent le déploiement de Mistral Large (2402), mais vous pouvez utiliser les mêmes étapes pour déployer Mistral Nemo ou n’importe quel modèle Mistral Premium en remplaçant le nom du modèle.

Pour créer un déploiement :

  1. Accédez à Azure Machine Learning Studio.

  2. Sélectionnez l’espace de travail dans lequel vous voulez déployer votre modèle. Pour utiliser l’offre de déploiement de modèle d’API serverless, votre espace de travail doit appartenir à l’une des régions répertoriées dans les Prérequis.

  3. Choisissez le modèle à déployer, par exemple le modèle Mistral Large (2402), dans le catalogue de modèles.

    Vous pouvez également lancer le déploiement en accédant à votre espace de travail et en sélectionnant Points de terminaison>Points de terminaison serverless>Créer.

  4. Sur la page de présentation du modèle dans le catalogue de modèles, sélectionnez Déployer pour ouvrir la fenêtre de déploiement d’API serverless pour le modèle.

  5. Cochez la case pour confirmer que vous avez pris connaissance de la stratégie d’achat Microsoft.

    Capture d’écran montrant comment déployer un modèle en tant qu’API serverless.

  6. Dans l’Assistant Déploiement, sélectionnez le lien vers les Conditions d’utilisation de la Place de marché Azure pour en savoir plus sur les conditions d’utilisation.

  7. Vous pouvez également sélectionner l’onglet Tarification et conditions pour en savoir plus sur la tarification du modèle sélectionné.

  8. Si c’est la première fois que vous déployez le modèle dans l’espace de travail, vous devez souscrire votre espace de travail à l’offre particulière (par exemple Mistral Large (2402)). Cette étape nécessite que votre compte dispose des autorisations de rôle de Développeur Azure AI dans le Groupe de ressources, comme mentionné dans les prérequis. Chaque espace de travail a de son propre abonnement à l’offre particulière de la Place de marché Azure, ce qui vous permet de contrôler et de surveiller les dépenses. Sélectionnez S’abonner et se Déployer. Vous ne pouvez actuellement avoir qu’un seul déploiement pour chaque modèle au sein d’un espace de travail.

  9. Une fois que vous souscrivez l’espace de travail à l’offre particulière de la Place de marché Azure, les déploiements suivants de la même offre dans le même espace de travail ne nécessitent pas de s’abonner à nouveau. Si ce scénario s’applique à vous, vous verrez une option Continuer à déployer à sélectionner.

    Capture d’écran montrant un espace de travail déjà abonné à l’offre.

  10. Donnez un nom au déploiement. Ce nom va faire partie de l’URL de l’API de déploiement. Cette URL doit être unique dans chaque région Azure.

    Capture d’écran montrant comment indiquer le nom du déploiement à créer.

  11. Sélectionnez Déployer. Attendez que le déploiement soit terminé : vous êtes alors redirigé vers la page des points de terminaison serverless.

  12. Sélectionnez le point de terminaison pour ouvrir sa page Détails.

  13. Sélectionnez l’onglet Test pour commencer à interagir avec le modèle.

  14. Vous pouvez toujours trouver les détails, l’URL et les clés d’accès du point de terminaison en accédant à Espace de travail>Points de terminaison>Points de terminaison serverless.

Pour en savoir plus sur la facturation des modèles Mistral déployés en tant qu’API serverless avec facturation basée sur les jetons de paiement à l’utilisation, consultez Considérations relatives au coût et au quota pour les familles de modèles Mistral déployés en tant que service.

Consommer la famille de modèles Mistral en tant que service

Vous pouvez consommer les modèles Mistral à l’aide de l’API de conversation.

  1. Dans l’espace de travail, sélectionnez Points de terminaison>Points de terminaison serverless.
  2. Recherchez et sélectionnez le déploiement que vous avez créé.
  3. Copiez l’URL de la Cible et les valeurs de jeton de la Clé.
  4. Effectuez une requête API en utilisant l’API Inférence du modèle Azure AI sur la route /chat/completions ou l’API Mistral Chat native sur /v1/chat/completions.

Pour plus d’informations sur l’utilisation des API, consultez la section Référence.

Informations de référence pour la famille Mistral des modèles déployés en tant que service

Les modèles Mistral acceptent l’API Inférence de modèle Azure AI sur la route /chat/completions et l’API Mistral Chat native sur /v1/chat/completions.

API Inférence de modèle Azure AI

Le schéma API Inférence du modèle Azure AI est disponible dans l’article référence de saisie semi-automatique des conversations et une spécification OpenAPI peut être obtenue à partir du point de terminaison lui-même.

API Mistral Chat

Utilisez la méthode POST pour envoyer la requête à l’itinéraire /v1/chat/completions :

Requête

POST /v1/chat/completions HTTP/1.1
Host: <DEPLOYMENT_URI>
Authorization: Bearer <TOKEN>
Content-type: application/json

Schéma de requête

La charge utile est une chaîne au format JSON contenant les paramètres suivants :

Clé Type Default Description
messages string Aucune valeur par défaut. Cette valeur doit être spécifiée. Le message ou l’historique des messages à utiliser pour envoyer une invite au modèle.
stream boolean False La diffusion en continu permet aux jetons générés d’être envoyés en tant qu’événements envoyés par le serveur uniquement chaque fois qu’ils sont disponibles.
max_tokens integer 8192 Nombre maximal de jetons à générer dans la saisie semi-automatique. Le nombre de jetons de votre invite plus max_tokens ne peut pas dépasser la longueur du contexte du modèle.
top_p float 1 Alternative à l’échantillonnage avec la température, appelée échantillonnage de noyau, où le modèle considère les résultats des jetons avec la masse de probabilité top_p. Par conséquent, 0,1 signifie que seuls les jetons comprenant la masse de probabilité supérieure de 10 % sont considérés. Nous vous recommandons généralement de modifier top_pou temperature, mais pas les deux.
temperature float 1 Température d’échantillonnage à utiliser, entre 0 et 2. Les valeurs plus élevées signifient que les exemples de modèle sont plus larges que la distribution des jetons. Zéro signifie un échantillonnage gourmand. Nous vous recommandons de modifier ce paramètre ou top_p, mais pas les deux.
ignore_eos boolean False Indique s’il faut ignorer le jeton EOS et continuer à générer des jetons après la génération du jeton EOS.
safe_prompt boolean False Injecter ou pas une invite de sécurité avant toutes les conversations.

L’objet messages contient les champs suivants :

Clé Type Value
content string Contenu du message. Le contenu est requis pour tous les messages.
role string Rôle de l’auteur du message. Valeurs possibles : system, user ou assistant.

Exemple de requête

Corps

{
    "messages":
    [
        { 
        "role": "system", 
        "content": "You are a helpful assistant that translates English to Italian."
        },
        {
        "role": "user", 
        "content": "Translate the following sentence from English to Italian: I love programming."
        }
    ],
    "temperature": 0.8,
    "max_tokens": 512,
}

Schéma de réponse

La charge utile de réponse est un dictionnaire avec les champs suivants.

Clé Type Description
id string Identificateur unique de la saisie semi-automatique.
choices array Liste des choix d’achèvement générés pour les messages d’entrée.
created integer Horodatage Unix (en secondes) de la création de l’achèvement.
model string La model_id utilisée pour l’achèvement.
object string Le type d’objet, qui est toujours chat.completion.
usage object Statistiques d’utilisation pour la demande d’achèvement.

Conseil

En mode streaming, pour chaque segment de réponse, finish_reason est toujours null, sauf à partir du dernier qui est arrêté par une charge utile [DONE]. Dans chaque objet choices , la clé de messages est modifiée par delta.

L’objet choices est un dictionnaire avec les champs suivants.

Clé Type Description
index integer Index de choix. Quand best_of> 1, l’index de ce tableau peut ne pas être dans l’ordre, et ne pas être de 0 à n-1.
messages ou delta string La saisie semi-automatique de conversation entraîne objet messages. Lorsque le mode de diffusion en continu est utilisé, la clé delta est utilisée.
finish_reason string La raison pour laquelle le modèle a cessé de générer des jetons :
- stop : le modèle a atteint un point d’arrêt naturel ou une séquence d’arrêt fournie.
- length : si le nombre maximal de jetons a été atteint.
- content_filter : quand RAI modère et que CMP force la modération
- content_filter_error : une erreur lors de la modération, et n’a pas pu prendre de décision sur la réponse
- null : réponse de l’API toujours en cours ou incomplète.
logprobs object Probabilités de journal des jetons générés dans le texte de sortie.

L’objet usage est un dictionnaire avec les champs suivants.

Clé Type Value
prompt_tokens integer Nombre de jetons dans l’invite.
completion_tokens integer Nombre de jetons générés lors de la saisie semi-automatique.
total_tokens integer Nombre total de jetons.

L’objet logprobs est un dictionnaire avec les champs suivants :

Clé Type Value
text_offsets array de integers Position ou index de chaque jeton dans la sortie d’achèvement.
token_logprobs array de float logprobs sélectionnés dans le dictionnaire dans un tableau top_logprobs.
tokens array de string Jetons sélectionnés.
top_logprobs array de dictionary Tableau de dictionnaires. Dans chaque dictionnaire, la clé est le jeton et la valeur est la prob.

Exemple de réponse

Le code JSON suivant est un exemple de réponse :

{
    "id": "12345678-1234-1234-1234-abcdefghijkl",
    "object": "chat.completion",
    "created": 2012359,
    "model": "",
    "choices": [
        {
            "index": 0,
            "finish_reason": "stop",
            "message": {
                "role": "assistant",
                "content": "Sure, I\'d be happy to help! The translation of ""I love programming"" from English to Italian is:\n\n""Amo la programmazione.""\n\nHere\'s a breakdown of the translation:\n\n* ""I love"" in English becomes ""Amo"" in Italian.\n* ""programming"" in English becomes ""la programmazione"" in Italian.\n\nI hope that helps! Let me know if you have any other sentences you\'d like me to translate."
            }
        }
    ],
    "usage": {
        "prompt_tokens": 10,
        "total_tokens": 40,
        "completion_tokens": 30
    }
}

Autres exemples d’inférence

Type d’échantillon Exemple de Notebook
CLI utilisant les requêtes web CURL et Python webrequests.ipynb
Kit de développement logiciel (SDK) OpenAI (expérimental) openaisdk.ipynb
LangChain langchain.ipynb
Mistral AI mistralai.ipynb
LiteLLM litellm.ipynb

Coûts et quotas

Considérations relatives aux coûts et aux quotas pour la famille Mistral des modèles déployés en tant que service

Les modèles Mistral déployés en tant que service sont proposés par Mistral AI via la Place de marché Azure et sont intégrés à Azure Machine Learning studio pour pouvoir y être utilisés. Vous trouverez la tarification de la Place de marché Azure lors du déploiement des modèles.

Chaque fois qu’un espace de travail s’abonne à une offre de modèle donnée provenant de la Place de marché Azure, une nouvelle ressource est créée pour suivre les coûts associés à sa consommation. La même ressource est utilisée pour suivre les coûts associés à l’inférence; plusieurs compteurs sont cependant disponibles pour suivre chaque scénario indépendamment.

Pour plus d’informations sur le suivi des coûts, consultez Surveiller les coûts des modèles proposés via la Place de marché Azure.

Le quota est géré par déploiement. Chaque déploiement a une limite de débit de 200 000 jetons par minute et 1 000 requêtes d’API par minute. Toutefois, nous limitons actuellement à un déploiement par modèle par espace de travail. Contactez le Support Microsoft Azure si les limites de débit actuelles ne suffisent pas pour vos scénarios.

Filtrage du contenu

Les modèles déployés en tant que service avec paiement à l’utilisation sont protégés par Azure AI Sécurité du Contenu. Avec Azure AI Sécurité du Contenu activé, l’invite et la complétion sont soumises à un ensemble de modèles de classification visant à détecter et à empêcher la production d’un contenu nuisible. 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 exécutions de sortie. En savoir plus sur Azure AI Sécurité du Contenu.