Installer et exécuter des conteneurs Docker pour l’API Détecteur d’anomalies

Important

À partir du 20 septembre 2023, vous ne pourrez plus créer de nouvelles ressources pour le Détecteur d'anomalies. Le service Détecteur d'anomalies sera mis hors service le 1er octobre 2026.

Remarque

L’emplacement de l’image du conteneur a été modifié récemment. Lisez cet article pour voir l’emplacement mis à jour pour ce conteneur.

Les conteneurs vous permettent d’utiliser l’API Détecteur d’anomalies dans votre propre environnement. Les conteneurs conviennent particulièrement bien à certaines exigences de sécurité et de gouvernance des données. Dans cet article, vous allez apprendre à télécharger, installer et exécuter un conteneur Détecteur d'anomalies.

Détecteur d’anomalies offre un conteneur Docker pour l’utilisation locale de l’API. Utilisez le conteneur pour :

  • Utiliser les algorithmes de Détecteur d’anomalies sur vos données
  • Surveiller les données de diffusion en continu et détecter les anomalies en temps réel.
  • Détecter les anomalies tout au long de votre jeu de données par lots.
  • Détecter les points de changement de tendance dans votre jeu de données par lots.
  • Ajuster la sensibilité de l’algorithme de détection des anomalies pour mieux ajuster vos données.

Pour plus d’informations sur l’API, consultez :

Si vous n’avez pas d’abonnement Azure, créez un compte gratuit avant de commencer.

Prérequis

L’utilisation des conteneurs Détecteur d’anomalies est soumise aux prérequis suivants :

Obligatoire Objectif
Moteur Docker Vous avez besoin d’un moteur Docker installé sur un ordinateur hôte. Docker fournit des packages qui configurent l’environnement Docker sur macOS, Windows et Linux. Pour apprendre les principes de base de Docker et des conteneurs, consultez la vue d’ensemble de Docker.

Vous devez configurer Docker pour permettre aux conteneurs de se connecter à Azure et de lui envoyer des données de facturation.

Sur Windows, vous devez également configurer Docker pour prendre en charge les conteneurs Linux.

Bonne connaissance de Docker Vous devez avoir une compréhension élémentaire des concepts Docker, notamment les registres, référentiels, conteneurs et images conteneurs, ainsi qu’une maîtrise des commandes docker de base.
Ressource Détecteur d’anomalies Pour pouvoir utiliser ces conteneurs, vous devez avoir :

une ressource Détecteur d'anomalies d’Azure afin d’obtenir la clé API et l’URI du point de terminaison associés. Les deux valeurs disponibles dans les pages Clés et Vue d’ensemble de Détecteur d’anomalies du Portail Azure sont nécessaires pour le démarrage du conteneur.

{API_KEY} : L’une des deux clés de ressource disponibles à la page Clés

{ENDPOINT_URI} : Le point de terminaison tel qu'il est fourni à la pageVue d’ensemble

Collecter les paramètres obligatoires

Trois paramètres principaux sont obligatoires pour tous les conteneurs Azure AI. Les termes du contrat de licence logiciel Microsoft doivent être présents avec la valeur Accepter. Un URI de point de terminaison et une clé API sont également nécessaires.

URI de point de terminaison

La valeur {ENDPOINT_URI} est disponible sur la page Vue d’ensemble du portail Azure de la ressource Azure AI Services correspondante. Accédez à la page Vue d’ensemble, puis pointez sur le point de terminaison pour afficher une icône Copier dans le Presse-papiers. Copiez et utilisez le point de terminaison si nécessaire.

Screenshot that shows gathering the endpoint URI for later use.

Clés

La valeur {API_KEY} est utilisée pour démarrer le conteneur et est disponible sur la page Clés de la ressource Azure AI Services correspondante sur le portail Azure. Accédez à la page Clés, puis sélectionnez l’icône Copier dans le Presse-papiers.

Screenshot that shows getting one of the two keys for later use.

Important

Ces clés d’abonnement sont utilisées pour accéder à votre API Azure AI Services. Ne partagez pas vos clés. Stockez-les en toute sécurité. Par exemple, utilisez Azure Key Vault. Nous vous recommandons également de regénérer ces clés régulièrement. Une seule clé est nécessaire pour effectuer un appel d’API. Lors de la régénération de la première clé, vous pouvez utiliser la deuxième clé pour un accès continu au service.

L’ordinateur hôte

L’hôte est un ordinateur x64 qui exécute le conteneur Docker. Il peut s’agir d’un ordinateur local ou d’un service d’hébergement Docker dans Azure, comme :

Exigences et suggestions relatives au conteneur

Le tableau suivant décrit la quantité minimale et recommandée de cœurs de processeur et de mémoire à allouer pour le conteneur Détecteur d’anomalies.

Requêtes par seconde (RPS) Minimum Recommandé
10 RPS 4 cœurs, 1 Go de mémoire 8 cœurs, 2 Go de mémoire
20 RPS 8 cœurs, 2 Go de mémoire 16 cœurs, 4 Go de mémoire

Chaque cœur doit être cadencé à au moins 2,6 gigahertz (GHz).

Le nombre de cœurs et la quantité de mémoire correspondent aux paramètres --cpus et --memory qui sont utilisés dans le cadre de la commande docker run.

Obtenir l’image conteneur avec docker pull

L’image conteneur Détecteur d’anomalies se trouve dans le registre de conteneurs mcr.microsoft.com. Elle réside dans le référentiel azure-cognitive-services/decision et se nomme anomaly-detector. Le nom complet de l’image conteneur est mcr.microsoft.com/azure-cognitive-services/decision/anomaly-detector.

Pour utiliser la dernière version du conteneur, vous pouvez utiliser l’étiquette latest. Vous trouverez aussi la liste complète des étiquettes d’image sur MCR.

Utilisez la commande docker pull pour télécharger une image conteneur.

Conteneur Référentiel
cognitive-services-anomaly-detector mcr.microsoft.com/azure-cognitive-services/decision/anomaly-detector:latest

Conseil

Quand vous utilisez docker pull, faites particulièrement attention à la casse du registre de conteneurs, du référentiel, du nom de l’image conteneur et de l’étiquette correspondante. Ils respectent la casse.

Conseil

Vous pouvez utiliser la commande docker images pour lister vos images conteneurs téléchargées. Par exemple, la commande suivante liste l’ID, le référentiel et la balise de chaque image conteneur téléchargée dans un tableau :

docker images --format "table {{.ID}}\t{{.Repository}}\t{{.Tag}}"

IMAGE ID         REPOSITORY                TAG
<image-id>       <repository-path/name>    <tag-name>

Commande docker pull du conteneur Détecteur d’anomalies

docker pull mcr.microsoft.com/azure-cognitive-services/anomaly-detector:latest

Comment utiliser le conteneur

Une fois que le conteneur est sur l’ordinateur hôte, appliquez la procédure suivante pour travailler avec le conteneur.

  1. Exécutez le conteneur avec les paramètres de facturation requis. D’autres exemples de commande docker run sont disponibles.
  2. Interrogez le point de terminaison de prédiction du conteneur.

Exécuter le conteneur avec docker run

Utilisez la commande docker run pour exécuter le conteneur. Consultez Collecter les paramètres obligatoires pour plus d’informations sur la façon d’obtenir les valeurs {ENDPOINT_URI} et {API_KEY}.

Exemples de la commande docker run sont disponibles.

docker run --rm -it -p 5000:5000 --memory 4g --cpus 1 \
mcr.microsoft.com/azure-cognitive-services/decision/anomaly-detector:latest \
Eula=accept \
Billing={ENDPOINT_URI} \
ApiKey={API_KEY}

Cette commande :

  • Exécute un conteneur Détecteur d’anomalies à partir de l’image conteneur
  • Alloue un cœur de processeur et 4 gigaoctets (Go) de mémoire.
  • Expose le port TCP 5000 et alloue un pseudo-TTY pour le conteneur
  • Supprime automatiquement le conteneur après sa fermeture. L’image conteneur est toujours disponible sur l’ordinateur hôte.

Important

Vous devez spécifier les options Eula, Billing et ApiKey pour exécuter le conteneur, sinon il ne démarrera pas. Pour plus d'informations, consultez Facturation.

Exécution de plusieurs conteneurs sur le même hôte

Si vous envisagez d’exécuter plusieurs conteneurs avec les ports exposés, veillez à exécuter chaque conteneur avec un port différent. Par exemple, exécutez le premier conteneur sur le port 5000 et le second conteneur sur le port 5001.

Remplacez <container-registry> et <container-name> par les valeurs des conteneurs que vous utilisez. Ils n’ont pas besoin d’être le même conteneur. Vous pouvez avoir le conteneur Détecteur d’anomalies et le conteneur LUIS qui s’exécutent ensemble sur l’HÔTE, ou plusieurs conteneurs Détecteur d’anomalies qui s’exécutent.

Exécutez le premier conteneur sur le port hôte 5000.

docker run --rm -it -p 5000:5000 --memory 4g --cpus 1 \
<container-registry>/microsoft/<container-name> \
Eula=accept \
Billing={ENDPOINT_URI} \
ApiKey={API_KEY}

Exécutez le deuxième conteneur sur le port hôte 5001.

docker run --rm -it -p 5001:5000 --memory 4g --cpus 1 \
<container-registry>/microsoft/<container-name> \
Eula=accept \
Billing={ENDPOINT_URI} \
ApiKey={API_KEY}

Tous les conteneurs suivants doivent être sur un port différent.

Interroger le point de terminaison de prédiction du conteneur

Le conteneur fournit des API de point de terminaison de prédiction de requête basées sur REST.

Utilisez l’hôte, http://localhost:5000, pour les API de conteneur.

Valider l’exécution d’un conteneur

Il existe plusieurs façons de confirmer que le conteneur s’exécute. Recherchez l’adresse IP externe et le port exposé du conteneur en question, puis ouvrez le navigateur web de votre choix. Utilisez les différentes URL de requête suivantes pour vérifier que le conteneur est en cours d’exécution. Les exemples d’URL de requête listés ici sont http://localhost:5000, mais votre conteneur spécifique peut varier. Veillez à vous fier à l’adresse IP externe de votre conteneur et au port exposé.

URL de la demande Objectif
http://localhost:5000/ Le conteneur fournit une page d’accueil.
http://localhost:5000/ready Demandée avec la fonction d’extraction, cette URL permet de vérifier que le conteneur est prêt à accepter une requête sur le modèle. Cette requête peut être utilisée pour les probes liveness et readiness de Kubernetes.
http://localhost:5000/status Également demandée avec la fonction d’extraction, cette URL permet de vérifier si la clé API servant à démarrer le conteneur est valide sans provoquer de requête de point de terminaison. Cette requête peut être utilisée pour les probes liveness et readiness de Kubernetes.
http://localhost:5000/swagger Le conteneur fournit un ensemble complet de documentation pour les points de terminaison et une fonctionnalité Essayer. Avec cette fonctionnalité, vous pouvez entrer vos paramètres dans un formulaire HTML basé sur le web, et constituer la requête sans avoir à écrire du code. Une fois la requête retournée, un exemple de commande CURL est fourni pour illustrer les en-têtes HTTP, et le format du corps qui est nécessaire.

Container's home page

Arrêter le conteneur

Pour arrêter le conteneur, dans l’environnement de ligne de commande où le conteneur est en cours d’exécution, sélectionnez Ctrl+C.

Dépannage

Si vous exécutez le conteneur avec un montage de sortie et la journalisation activée, il génère des fichiers journaux qui sont utiles pour résoudre les problèmes qui se produisent lors du démarrage ou de l’exécution du conteneur.

Conseil

Pour plus d’informations et de conseils sur la résolution des problèmes, consultez les questions fréquentes (FAQ) sur les conteneurs Azure AI.

Si vous avez des difficultés à exécuter un conteneur Azure AI services, vous pouvez essayer d’utiliser le conteneur de diagnostics Microsoft. Utilisez ce conteneur pour diagnostiquer dans votre environnement de déploiement les erreurs courantes pouvant nuire au bon fonctionnement des conteneurs Azure AI.

Pour obtenir le conteneur, utilisez la commande docker pull suivante :

docker pull mcr.microsoft.com/azure-cognitive-services/diagnostic

Exécutez ensuite le conteneur. Remplacez {ENDPOINT_URI} par votre point de terminaison et {API_KEY} par la clé de votre ressource :

docker run --rm mcr.microsoft.com/azure-cognitive-services/diagnostic \
eula=accept \
Billing={ENDPOINT_URI} \
ApiKey={API_KEY}

Le conteneur teste la connectivité réseau avec le point de terminaison de facturation.

Facturation

Les conteneurs du Détecteur d’anomalies envoient les informations de facturation à Azure, en utilisant une ressource Détecteur d’anomalie sur votre compte Azure.

Les requêtes sur le conteneur sont facturées au niveau tarifaire de la ressource Azure utilisée pour le paramètre ApiKey.

La licence des conteneurs Azure AI Services ne vous permet pas de les exécuter sans les connecter au point de terminaison du compteur ou de la facturation. Vous devez configurer les conteneurs de manière à ce qu’ils communiquent les informations de facturation au point de terminaison de facturation à tout moment. Les conteneurs Azure AI Services n’envoient pas de données client, telles que l’image ou le texte analysé, à Microsoft.

Connexion à Azure

Le conteneur a besoin des valeurs d’arguments de facturation pour s’exécuter. Ces valeurs permettent au conteneur de se connecter au point de terminaison de facturation. Le conteneur crée des rapports sur l’utilisation toutes les 10 à 15 minutes. Si le conteneur ne se connecte pas à Azure dans la fenêtre de temps imparti, il continue de s’exécuter, mais ne traite pas les requêtes tant que le point de terminaison de facturation n’est pas restauré. Une tentative de connexion est effectuée 10 fois, toutes les 10 à 15 minutes. S’il ne parvient pas à se connecter au point de terminaison de facturation au cours de ces 10 essais, le conteneur cesse de traiter les demandes. Pour obtenir un exemple des informations envoyées à Microsoft en lien avec la facturation, consultez le Forum aux questions sur le conteneur Azure AI Services.

Arguments de facturation

La commande docker run démarre le conteneur quand les trois options suivantes ont des valeurs valides :

Option Description
ApiKey Clé API de la ressource Azure AI Services utilisée pour le suivi des informations de facturation.
La valeur de cette option doit être définie sur une clé API pour la ressource provisionnée spécifiée dans Billing.
Billing Le point de terminaison de la ressource Azure AI Services utilisée pour le suivi des informations de facturation.
La valeur de cette option doit être définie sur l’URI de point de terminaison d’une ressource Azure provisionnée.
Eula Indique que vous avez accepté la licence pour le conteneur.
La valeur de cette option doit être définie sur accepter.

Pour plus d’informations sur ces options, consultez Configurer des conteneurs.

Résumé

Dans cet article, vous avez découvert les concepts et le workflow du téléchargement, de l’installation et de l’exécution des conteneurs Détecteur d’anomalies. En résumé :

  • Détecteur d’anomalies fournit un conteneur Linux pour Docker, encapsulant la détection d’anomalies par lots ou en continu, l’inférence de plage attendue et le réglage de la sensibilité.
  • Les images de conteneurs sont téléchargées à partir d’un registre Azure Container Registry privé pour obtenir des conteneurs.
  • Les images conteneurs s’exécutent dans Docker.
  • Vous pouvez utiliser l’API REST ou le Kit de développement logiciel (SDK) pour appeler des opérations dans les conteneurs Détecteur d’anomalies en spécifiant l’URI hôte du conteneur.
  • Vous devez spécifier les informations de facturation lors de l’instanciation d’un conteneur.

Important

La licence ne prévoit pas que les conteneurs Azure AI services soient exécutés sans être connectés à Azure à des fins de contrôle. Les clients doivent configurer les conteneurs de manière à ce qu’ils communiquent les informations de facturation au service de contrôle à tout moment. Les conteneurs Azure AI n’envoient pas les données des clients (comme les données de série chronologique analysées) à Microsoft.

Étapes suivantes