Création d'une ressource d'algorithme - Amazon SageMaker

Création d'une ressource d'algorithme

Afin de créer une ressource d'algorithme que vous utiliserez pour exécuter des tâches d'entraînement dans Amazon SageMaker et les publier sur AWS Marketplace, spécifiez les informations suivantes :

  • Les conteneurs Docker qui contiennent le code d'entraînement et, éventuellement, d'inférence.

  • La configuration des données d'entrée attendues par votre algorithme pour la formation.

  • Les hyperparamètres pris en charge par votre algorithme.

  • Les métriques envoyées par votre algorithme à Amazon CloudWatch durant les tâches d'entraînement.

  • Les types d'instances pris en charge par votre algorithme pour la formation et l'inférence, et l'information relative à la prise en charge ou non de la formation distribuée sur plusieurs instances.

  • Les profils de validation, qui sont des tâches d'entraînement utilisées par SageMaker pour tester le code d'entraînement de votre algorithme, et des tâches de transformation par lots exécutées par SageMaker pour tester le code d'inférence de votre algorithme.

    Pour garantir aux acheteurs et aux vendeurs le bon fonctionnement des produits dans SageMaker, vous êtes tenu de valider vos algorithmes avant de les répertorier sur AWS Marketplace. Vous pouvez répertorier des produits sur AWS Marketplace uniquement si la validation aboutit. Pour valider vos algorithmes, SageMaker utilise votre profil de validation et des exemples de données afin d'exécuter les tâches de validation suivantes :

    1. Création d'une tâche d'entraînement dans votre compte pour vérifier que votre image d'entraînement fonctionne avec SageMaker.

    2. Si vous avez inclus le code d'inférence dans l'algorithme, créer un modèle dans votre compte à l'aide de l'image d'inférence de l'algorithme et des artefacts de modèles produits par la tâche d'entraînement.

    3. Si vous avez inclus le code d'inférence dans votre algorithme, créez une tâche de transformation dans votre compte à l'aide du modèle pour vérifier que votre image d'inférence fonctionne avec SageMaker.

    Lorsque vous répertoriez votre produit sur AWS Marketplace, les entrées et sorties de ce processus de validation sont conservées et liées à votre produit. Elles sont mises à la disposition de vos acheteurs. Les acheteurs peuvent ainsi mieux comprendre et évaluer le produit avant de l'acheter. Par exemple, les acheteurs peuvent examiner les données d'entrée que vous avez utilisées, les sorties générées et les journaux et métriques émis par votre code. Il leur sera d'autant plus facile d'évaluer votre produit si votre spécification de validation est exhaustive.

    Note

    Dans votre profil de validation, fournissez uniquement les données que vous souhaitez exposer publiquement.

    La validation peut durer plusieurs heures. Pour consulter le statut des tâches dans votre compte, dans la console SageMaker, consultez les pages Training jobs (Tâches d'entraînement) et Transform jobs (Tâches de transformation). En cas d'échec de la validation, vous pouvez accéder aux rapports d'analyse et de validation depuis la console SageMaker. Si des problèmes sont détectés, vous devrez recréer l'algorithme.

    Note

    Pour publier votre algorithme sur AWS Marketplace, au moins un profil de validation est requis.

Vous pouvez créer un algorithme à l'aide de la console SageMaker ou de l'API SageMaker.

Création d'une ressource d'algorithme (console)

Pour créer une ressource d'algorithme (console)

  1. Ouvrez la console SageMaker à l'adresse https://console.aws.amazon.com/sagemaker/.

  2. Cliquez sur Algorithmes, puis sur Create algorithm (Créer un algorithme).

  3. Sur la page Training specifications (Spécifications d'entraînement), fournissez les informations suivantes :

    1. Nommez votre algorithme dans le champ Nom de l'algorithme. Le nom de l'algorithme doit être unique dans votre compte et dans la région AWS. Il doit comporter entre 1 et 64 caractères. Les caractères valides sont : a-z, A-Z, 0-9 et le trait d'union (-).

    2. Décrivez votre algorithme. Cette description s'affiche dans la console SageMaker et sur AWS Marketplace.

    3. Sous Training image (Image d'entraînement), saisissez le chemin d'accès dans Amazon ECR où votre conteneur d'entraînement est stocké.

    4. Sous Support distributed training (Prendre en charge l'entraînement distribué), choisissez Oui si votre algorithme prend en charge l'entraînement sur plusieurs instances. Sinon, choisissez Non.

    5. Sous Support instance types for training (Prendre en charge les types d'instances pour l'entraînement), choisissez les types d'instances pris en charge par votre algorithme.

    6. Sous Channel spécification (Spécification des canaux), spécifiez jusqu'à 8 canaux de données d'entrée pour votre algorithme. Par exemple, vous pouvez spécifier les trois canaux d'entrée nommés train, validation et test. Pour chaque canal, spécifiez les informations suivantes :

      1. Sous Nom du canal, tapez un nom pour le canal. Il doit comporter entre 1 et 64 caractères. Les caractères valides sont : a-z, A-Z, 0-9 et le trait d'union (-).

      2. Pour exiger le canal lié à votre algorithme, choisissez Channel required (Canal obligatoire).

      3. Décrivez le canal.

      4. Sous Supported input modes (Modes d'entrée pris en charge), choisissez Pipe mode (Mode Tube) si votre algorithme prend en charge le streaming des données d'entrée et File mode (Mode Fichier) si votre algorithme prend en charge le téléchargement des données d'entrée en tant que fichier. Vous pouvez choisir les deux modes.

      5. Sous Supported content types (Types de contenu pris en charge), saisissez le type MIME attendu par votre algorithme pour les données d'entrée.

      6. Sous Supported compression type (Type de compression pris en charge), choisissez Gzip si votre algorithme prend en charge la compression gzip. Sinon, sélectionnez None (Aucun).

      7. Choisissez Ajouter canal pour ajouter un autre canal d'entrée de données ou Suivant si vous avez terminé l'ajout de canaux.

  4. Sur la page Tuning specifications (Spécifications de réglage), fournissez les informations suivantes :

    1. Sous Hyperparameter specification (Spécification d'hyperparamètre), spécifiez les hyperparamètres pris en charge par votre algorithme en modifiant l'objet JSON. Pour chaque hyperparamètre pris en charge par votre algorithme, construisez un bloc JSON similaire à ce qui suit :

      { "DefaultValue": "5", "Description": "The first hyperparameter", "IsRequired": true, "IsTunable": false, "Name": "intRange", "Range": { "IntegerParameterRangeSpecification": { "MaxValue": "10", "MinValue": "1" }, "Type": "Integer" }

      Dans l'objet JSON, précisez ce qui suit :

      1. Pour DefaultValue, spécifiez une valeur par défaut de l'hyperparamètre, le cas échéant.

      2. Pour Description, décrivez l'hyperparamètre.

      3. Pour IsRequired, indiquez si l'hyperparamètre est obligatoire.

      4. Pour IsTunable, spécifiez true si cet hyperparamètre peut être ajusté lorsqu'un utilisateur exécute une tâche de réglage des hyperparamètres reposant sur cet algorithme. Pour plus d'informations, consultez Réglage de modèle automatique avec SageMaker.

      5. Pour Name, spécifiez un nom pour l'hyperparamètre.

      6. Pour Range, spécifiez l'une des valeurs suivantes :

        • IntegerParameterRangeSpecification - les valeurs de l'hyperparamètre sont des nombres entiers. Spécifiez les valeurs minimum et maximum de l'hyperparamètre.

        • ContinuousParameterRangeSpecification - les valeurs de l'hyperparamètre sont des valeurs à virgule flottante. Spécifiez les valeurs minimum et maximum de l'hyperparamètre.

        • CategoricalParameterRangeSpecification - les valeurs de l'hyperparamètre sont des valeurs catégorielles. Spécifiez une liste de toutes les valeurs possibles.

      7. Pour Type, spécifiez Integer, Continuous ou Categorical. La valeur doit correspondre au type de Range que vous avez spécifié.

    2. Sous Metric definitions (Définitions de métriques), spécifiez les métriques d'entraînement que votre algorithme doit émettre. SageMaker utilise l'expression régulière que vous spécifiez pour rechercher les métriques en analysant les journaux de votre conteneur d'entraînement durant l'entraînement. Les utilisateurs peuvent afficher ces métriques lorsqu'ils exécutent des tâches d'entraînement avec votre algorithme ; ils peuvent contrôler et représenter graphiquement les métriques dans Amazon CloudWatch. Pour plus d'informations, consultez Surveillance et analyse des tâches d'entraînement à l'aide de métriques Amazon CloudWatch. Pour chaque métrique, indiquez les informations suivantes :

      1. Sous Nom de métrique, nommez la métrique.

      2. Sous Regex, saisissez l'expression régulière utilisée par SageMaker pour analyser les journaux d'entraînement afin de rechercher la valeur de la métrique.

      3. Sous Objective metric support (Prise en charge de la métrique d'objectif), choisissez Oui si cette métrique peut être utilisée comme métrique d'objectif pour une tâche de réglage d'hyperparamètre. Pour plus d'informations, consultez Réglage de modèle automatique avec SageMaker.

      4. Choisissez Ajouter une métrique pour ajouter une autre métrique ou Suivant si vous avez terminé l'ajout de métriques.

  5. Sur la page Inference specifications (Spécifications de l'inférence), fournissez les informations suivantes si votre algorithme prend en charge l'inférence :

    1. Sous Container definition (Définition du conteneur), saisissez le chemin d'accès dans Amazon ECR où votre conteneur d'inférence est stocké.

    2. Sous Container DNS host name (Nom d'hôte DNS du conteneur), tapez le nom d'un hôte DNS pour votre image.

    3. Sous Supported instance types for real-time inference (Types d'instances pris en charge pour l'inférence en temps réel), choisissez les types d'instances pris en charge par votre algorithme pour les modèles déployés comme points de terminaison hébergés dans SageMaker. Pour plus d'informations, consultez Déploiement d'un modèle sur les services d'hébergement SageMaker.

    4. Sous Supported instance types for batch transform jobs (Types d'instances pris en charge pour les tâches de transformation par lots), choisissez les types d'instances pris en charge par votre algorithme pour les tâches de transformation par lots. Pour plus d'informations, consultez Obtenir des inférences pour un ensemble de données tout entier à l'aide de la transformation par lots.

    5. Sous Supported content types (Types de contenu pris en charge), saisissez le type de données d'entrée attendu par votre algorithme pour les demandes d'inférence.

    6. Sous Supported response MIME types (Types MIME de réponse pris en charge), tapez les types MIME que votre algorithme prend en charge pour les réponses d'inférence.

    7. Choisissez Suivant.

  6. Sur la page Validation specifications (Spécifications de validation), spécifiez les informations ci-dessous :

    1. Sous Publish this algorithm on AWS Marketplace (Publier cet algorithme), choisissez Oui pour publier l'algorithme sur AWS Marketplace.

    2. Sous Validate this algorithm (Valider cet algorithme), choisissez Yes (Oui) pour que SageMaker exécute les tâches d'entraînement et/ou les tâches de transformation par lots que vous spécifiez afin de tester le code d'entraînement et/ou d'inférence de votre algorithme.

      Note

      Pour pouvoir le publier sur AWS Marketplace, votre algorithme doit avoir été validé.

    3. Sous IAM role (Rôle IAM), choisissez un rôle IAM qui détient les autorisations requises pour exécuter les tâches d'entraînement et les tâches de transformation par lots dans SageMaker, ou choisissez Create a new role (Créer un rôle) afin que SageMaker crée un rôle avec la politique gérée AmazonSageMakerFullAccess attachée. Pour plus d'informations, consultez Rôles SageMaker.

    4. Sous Validation profile (Profil de validation), spécifiez ce qui suit :

      • Un nom pour le profil de validation.

      • Une définition de tâche d'entraînement. Il s'agit d'un bloc JSON qui décrit une tâche d'entraînement. Ce paramètre a le même format que le paramètre d'entrée TrainingJobDefinition de l'API CreateAlgorithm.

      • Une définition de tâche de transformation. Il s'agit d'un bloc JSON qui décrit une tâche de transformation par lots. Ce paramètre a le même format que le paramètre d'entrée TransformJobDefinition de l'API CreateAlgorithm.

    5. Choisissez Create algorithm (Créer un algorithme).

Création d'une ressource d'algorithme (API)

Pour créer une ressource d'algorithme à l'aide de l'API SageMaker, appelez l'API CreateAlgorithm.