Configurer AutoML pour entraîner des modèles de vision par ordinateur avec Python (v1)

S’APPLIQUE À :Kit de développement logiciel (SDK) Python azureml v1

Important

Certaines des commandes Azure CLI de cet article utilisent l’extension azure-cli-ml, ou v1, pour Azure Machine Learning. La prise en charge de l’extension v1 se termine le 30 septembre 2025. Vous pourrez installer et utiliser l’extension v1 jusqu’à cette date.

Nous vous recommandons de passer à l’extension ml, ou v2, avant le 30 septembre 2025. Pour plus d’informations sur l’extension v2, consultez Extension Azure ML CLI et le SDK Python v2.

Important

Cette fonctionnalité est actuellement disponible en préversion publique. Cette préversion est fournie sans contrat de niveau de service. 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.

Dans cet article, vous allez apprendre à entraîner des modèles de vision par ordinateur sur des données d’image avec le ML automatisé du kit SDK Python Azure Machine Learning.

Le ML automatisé prend en charge l’entraînement de modèles pour les tâches de vision par ordinateur telles que la classification d’images, la détection d’objets et la segmentation d’instances. La création de modèles AutoML pour les tâches de vision par ordinateur est actuellement prise en charge via le kit SDK Python Azure Machine Learning. Les exécutions, modèles et sorties des expérimentations sont accessibles dans l’interface utilisateur du studio Azure Machine Learning. En savoir plus sur le ML automatisé pour les tâches de vision par ordinateur sur les données d’image.

Notes

Le ML automatisé pour les tâches de vision par ordinateur est disponible uniquement via le kit SDK Python Azure Machine Learning.

Prérequis

Sélectionner votre type de tâche

Le ML automatisé pour les images prend en charge les types de tâches suivants :

Type de tâche Syntaxe de la configuration d’AutoMLImage
classification d’image ImageTask.IMAGE_CLASSIFICATION
classification d’images multi-étiquette ImageTask.IMAGE_CLASSIFICATION_MULTILABEL
détection d’objets image ImageTask.IMAGE_OBJECT_DETECTION
segmentation d’instances d’image ImageTask.IMAGE_INSTANCE_SEGMENTATION

Ce type de tâche est un paramètre obligatoire et est transmis à l’aide du paramètre task d’AutoMLImageConfig.

Par exemple :

from azureml.train.automl import AutoMLImageConfig
from azureml.automl.core.shared.constants import ImageTask
automl_image_config = AutoMLImageConfig(task=ImageTask.IMAGE_OBJECT_DETECTION)

Données de formation et de validation

Pour générer des modèles de vision par ordinateur, vous devez apporter les données d’image étiquetées comme entrées pour l’entraînement de modèles sous la forme d’un TabularDataset Azure Machine Learning. Vous pouvez utiliser soit un TabularDataset que vous avez exporté à partir d’un projet d’étiquetage de données, soit créer un nouveau TabularDataset avec vos données d’entraînement étiquetées.

Si vos données d’entraînement sont dans un autre format (par exemple, pascal VOC ou COCO), vous pouvez appliquer les scripts d’assistance inclus avec les exemples de notebook pour convertir les données en JSONL. En savoir plus sur la préparation des données pour les tâches de vision par ordinateur avec le ML automatisé.

Avertissement

La création de TabularDatasets à partir de données au format JSONL n’est prise en charge qu’avec le kit SDK pour cette fonctionnalité. La création du jeu de données via l’interface utilisateur n’est pas prise en charge pour l’instant. Pour l’instant, l’interface utilisateur ne reconnaît pas le type de données StreamInfo (utilisé pour les URL d’images au format JSONL).

Notes

Le jeu de données d’entraînement doit comporter au moins 10 images afin de pouvoir envoyer une exécution AutoML.

Exemples de schémas JSONL

La structure du TabularDataset dépend de la tâche en cours. Pour les types de tâche de vision par ordinateur, elle comprend les champs suivants :

Champ Description
image_url Contient le chemin du fichier comme objet StreamInfo
image_details Les informations de métadonnées d’image se composent de la hauteur, de la largeur et du format. Ce champ est facultatif et peut donc exister ou pas.
label Représentation JSON de l’étiquette de l’image, en fonction du type de tâche.

Voici un exemple de fichier JSONL pour la classification d’images :

{
      "image_url": "AmlDatastore://image_data/Image_01.png",
      "image_details":
      {
          "format": "png",
          "width": "2230px",
          "height": "4356px"
      },
      "label": "cat"
  }
  {
      "image_url": "AmlDatastore://image_data/Image_02.jpeg",
      "image_details":
      {
          "format": "jpeg",
          "width": "3456px",
          "height": "3467px"
      },
      "label": "dog"
  }

Le code suivant est un exemple de fichier JSONL pour la détection d’objets :

{
    "image_url": "AmlDatastore://image_data/Image_01.png",
    "image_details":
    {
        "format": "png",
        "width": "2230px",
        "height": "4356px"
    },
    "label":
    {
        "label": "cat",
        "topX": "1",
        "topY": "0",
        "bottomX": "0",
        "bottomY": "1",
        "isCrowd": "true",
    }
}
{
    "image_url": "AmlDatastore://image_data/Image_02.png",
    "image_details":
    {
        "format": "jpeg",
        "width": "1230px",
        "height": "2356px"
    },
    "label":
    {
        "label": "dog",
        "topX": "0",
        "topY": "1",
        "bottomX": "0",
        "bottomY": "1",
        "isCrowd": "false",
    }
}

Consommer les données

Une fois que vos données sont au format JSONL, vous pouvez créer un TabularDataset avec le code suivant :

ws = Workspace.from_config()
ds = ws.get_default_datastore()
from azureml.core import Dataset

training_dataset = Dataset.Tabular.from_json_lines_files(
        path=ds.path('odFridgeObjects/odFridgeObjects.jsonl'),
        set_column_types={'image_url': DataType.to_stream(ds.workspace)})
training_dataset = training_dataset.register(workspace=ws, name=training_dataset_name)

Le ML automatisé n’impose aucune contrainte sur la taille des données d’entraînement ou de validation pour les tâches de vision par ordinateur. La taille maximale d’un jeu de données est seulement limitée par la couche de stockage derrière le jeu de données (par exemple, le magasin d’objets blob). Il n’y a aucun nombre minimal d’images ou d’étiquettes. Toutefois, nous vous recommandons de commencer avec un minimum de 10-15 échantillons par étiquette pour vous assurer que le modèle de sortie est suffisamment entraîné. Plus le nombre total d’étiquettes/classes est élevé, plus vous avez besoin d’échantillons par étiquette.

Les données d’entraînement sont obligatoires et passées à l’aide du paramètre training_data. Vous pouvez éventuellement spécifier un autre TabularDataset comme jeu de données de validation à utiliser pour votre modèle avec le paramètre validation_data d’AutoMLImageConfig. Si aucun jeu de données de validation n’est spécifié, 20 % de vos données d’entraînement sont utilisées pour la validation par défaut, sauf si vous passez l’argument validation_size avec une valeur différente.

Par exemple :

from azureml.train.automl import AutoMLImageConfig
automl_image_config = AutoMLImageConfig(training_data=training_dataset)

Capacité de calcul pour exécuter l’expérience

Fournissez une cible de calcul pour le ML automatisé afin de procéder à l’entraînement des modèles. Les modèles du ML automatisé pour les tâches de vision par ordinateur requièrent des références SKU GPU et prennent en charge les familles NC et ND. Nous recommandons d’utiliser la série NCsv3 (avec v100 GPU) pour accélérer l’entraînement. Une cible de calcul avec une référence SKU de machine virtuelle multi-GPU utilise plusieurs GPU pour également accélérer l’entraînement. De plus, lorsque vous configurez une cible de calcul avec plusieurs nœuds, vous pouvez procéder à un entraînement plus rapide des modèles via le parallélisme lors du réglage des hyperparamètres de votre modèle.

Notes

Si vous utilisez une instance de calcul comme cible de calcul, vérifiez que plusieurs travaux AutoML ne sont pas exécutés en même temps. Vérifiez également que la valeur max_concurrent_iterations est définie sur 1 dans vos ressources d’expérience.

La cible de calcul est un paramètre obligatoire et est passée à l’aide du paramètre compute_target d’AutoMLImageConfig. Par exemple :

from azureml.train.automl import AutoMLImageConfig
automl_image_config = AutoMLImageConfig(compute_target=compute_target)

Configurer les algorithmes et les hyperparamètres du modèle

Avec la prise en charge des tâches de vision par ordinateur, vous pouvez contrôler l’algorithme du modèle et balayer les hyperparamètres. Ces algorithmes et hyperparamètres du modèle sont passés comme espace de paramètres pour le balayage.

L’algorithme du modèle est obligatoire et est passé via le paramètre model_name. Vous pouvez spécifier un seul model_name ou choisir entre plusieurs.

Algorithmes de modèle pris en charge

Le tableau suivant récapitule les modèles pris en charge pour chaque tâche de vision par ordinateur.

Tâche Algorithmes de modèle Syntaxe des littéraux de chaîne
default_model* indiqué par *
Classification d’images
(multi-classe et multi-étiquette)
MobileNet : modèles légers pour applications mobiles
ResNet : réseaux résiduels
ResNeSt : réseaux d’attention partagée
SE-ResNeXt50 : réseaux de compression et excitation (Squeeze-and-Excitation)
ViT : réseaux de transformateurs de vision
mobilenetv2
resnet18
resnet34
resnet50
resnet101
resnet152
resnest50
resnest101
seresnext
vits16r224 (petit)
vitb16r224* (base)
vitl16r224 (grand)
Détection d’objets YOLOv5 : modèle de détection d’objets monophase
Faster RCNN ResNet FPN : modèles de détection d’objets double-phase
RetinaNet ResNet FPN : résolution du déséquilibre de classes avec la perte focale

Remarque : Reportez-vous à l’hyperparamètre model_size pour les tailles de modèle YOLOv5.
yolov5*
fasterrcnn_resnet18_fpn
fasterrcnn_resnet34_fpn
fasterrcnn_resnet50_fpn
fasterrcnn_resnet101_fpn
fasterrcnn_resnet152_fpn
retinanet_resnet50_fpn
Segmentation d’instances MaskRCNN ResNet FPN maskrcnn_resnet18_fpn
maskrcnn_resnet34_fpn
maskrcnn_resnet50_fpn*
maskrcnn_resnet101_fpn
maskrcnn_resnet152_fpn
maskrcnn_resnet50_fpn

En plus du contrôle de l’algorithme du modèle, vous pouvez également régler les hyperparamètres utilisés pour l’entraînement du modèle. Même si un grand nombre des hyperparamètres exposés sont indépendants du modèle, il existe des cas où les hyperparamètres sont spécifiques à une tâche ou à un modèle. En savoir plus sur les hyperparamètres disponibles pour ces instances.

Augmentation des données

En général, les performances des modèles Deep Learning peuvent souvent s’améliorer avec davantage de données. L’augmentation des données est une technique pratique pour amplifier la taille des données et la variabilité d’un jeu de données, ce qui permet d’empêcher le surajustement et d’améliorer la capacité de généralisation du modèle sur les données non vues. Le ML automatisé applique différentes techniques d’augmentation des données en fonction de la tâche de vision par ordinateur, avant d’alimenter les images d’entrée dans le modèle. Actuellement, il n’y a pas d’hyperparamètre exposé pour contrôler les augmentations de données.

Tâche Jeu de données impacté Technique(s) d’augmentation des données appliquée(s)
Classification d’images (multi-classe et multi-étiquette) Formation


Validation et test
Redimensionnement et rognage aléatoires, retournement horizontal, variation des couleurs (luminosité, contraste, saturation et teinte), normalisation avec la moyenne et l’écart type d’ImageNet au niveau canal


Redimensionnement, rognage central, normalisation
Détection d’objets, segmentation d’instances Formation

Validation et test
Rognage aléatoire autour des cadres englobants, développement, retournement horizontal, normalisation, redimensionnement


Normalisation, redimensionnement
Détection d’objets avec yolov5 Formation

Validation et test
Mise en mosaïque, affinité aléatoire (rotation, translation, mise à l’échelle, inclinaison), retournement horizontal


Redimensionnement des cadres

Configurer les paramètres de votre expérience

Avant de faire un grand balayage pour rechercher les modèles et hyperparamètres optimaux, nous vous recommandons de tester les valeurs par défaut pour obtenir une première base de référence. Ensuite, vous pouvez explorer plusieurs hyperparamètres pour le même modèle avant de faire un balayage sur plusieurs modèles et leurs paramètres. De cette façon, vous pouvez utiliser une approche plus itérative parce qu’avec plusieurs modèles et plusieurs hyperparamètres pour chacun, l’espace de recherche augmente de manière exponentielle et vous avez besoin de plus d’itérations pour trouver des configurations optimales.

Si vous souhaitez utiliser les valeurs par défaut des hyperparamètres pour un algorithme donné (par exemple, yolov5), vous pouvez spécifier que la configuration de votre image AutoML s’exécute comme suit :

from azureml.train.automl import AutoMLImageConfig
from azureml.train.hyperdrive import GridParameterSampling, choice
from azureml.automl.core.shared.constants import ImageTask

automl_image_config_yolov5 = AutoMLImageConfig(task=ImageTask.IMAGE_OBJECT_DETECTION,
                                               compute_target=compute_target,
                                               training_data=training_dataset,
                                               validation_data=validation_dataset,
                                               hyperparameter_sampling=GridParameterSampling({'model_name': choice('yolov5')}),
                                               iterations=1)

Une fois que vous avez créé un modèle de référence, vous voudrez peut-être optimiser les performances du modèle dans le but de faire un balayage sur l’espace de l’algorithme et des hyperparamètres du modèle. Vous pouvez utiliser l’exemple de configuration suivant pour balayer les hyperparamètres de chaque algorithme, en choisissant à partir d’une plage de valeurs pour learning_rate, optimizer, lr_scheduler, etc., afin de générer un modèle avec la métrique principale optimale. Si les valeurs d’hyperparamètres ne sont pas spécifiées, les valeurs par défaut sont utilisées pour l’algorithme spécifié.

Métrique principale

La métrique principale utilisée pour l’optimisation du modèle et le réglage des hyperparamètres dépend du type de tâche. L’utilisation d’autres valeurs de métriques principales n’est pas prise en charge actuellement.

  • accuracy pour IMAGE_CLASSIFICATION
  • iou pour IMAGE_CLASSIFICATION_MULTILABEL
  • mean_average_precision pour IMAGE_OBJECT_DETECTION
  • mean_average_precision pour IMAGE_INSTANCE_SEGMENTATION

Budget pour les expériences

Vous pouvez éventuellement spécifier le budget temps maximal pour votre expérience de vision AutoML avec experiment_timeout_hours, durée en heures avant l’arrêt de l’expérience. Si aucune durée n’est spécifiée, le délai d’expiration par défaut de l’expérience est de sept jours (maximum 60 jours).

Balayage des hyperparamètres pour votre modèle

Lors de l’entraînement des modèles de vision par ordinateur, les performances des modèles dépendent beaucoup des valeurs d’hyperparamètre sélectionnées. Souvent, vous voudrez probablement régler les hyperparamètres pour obtenir des performances optimales. Avec la prise en charge des tâches de vision par ordinateur dans le ML automatisé, vous pouvez balayer les hyperparamètres pour trouver les paramètres optimaux pour votre modèle. Cette fonctionnalité applique les fonctions de réglage des hyperparamètres dans Azure Machine Learning. Apprenez à régler les hyperparamètres.

Définir l’espace de recherche de paramètres

Vous pouvez définir les algorithmes et les hyperparamètres des modèles pour balayer l’espace de paramètres.

Méthodes d’échantillonnage pour le balayage

Lors du balayage des hyperparamètres, vous devez spécifier la méthode d’échantillonnage à utiliser pour balayer l’espace de paramètres défini. Actuellement, les méthodes d’échantillonnage suivantes sont prises en charge avec le paramètre hyperparameter_sampling :

Notes

Seul les échantillonnages aléatoire et par grille prennent actuellement en charge les espaces conditionnels d’hyperparamètres.

Stratégies d’arrêt anticipé

Vous pouvez arrêter automatiquement les exécutions peu performantes avec une stratégie d’arrêt anticipé. Un arrêt anticipé améliore l’efficacité du calcul, en sauvant des ressources de calcul qui auraient autrement été consacrées à des configurations moins prometteuses. Le ML automatisé pour les images prend en charge les stratégies d’arrêt anticipé suivantes avec le paramètre early_termination_policy. Si aucune stratégie d’arrêt n’est spécifiée, toutes les configurations sont exécutées jusqu’à la fin.

Découvrez plus en détail comment configurer la stratégie d’arrêt anticipé pour votre balayage d’hyperparamètres.

Ressources pour le balayage

Vous pouvez contrôler les ressources consacrées à votre balayage d’hyperparamètres en spécifiant iterations et max_concurrent_iterations pour le balayage.

Paramètre Détail
iterations Paramètre obligatoire pour le nombre maximal de configurations à balayer. Doit être un entier compris entre 1 et 1000. Lorsque vous explorez juste les hyperparamètres par défaut d’un algorithme de modèle donné, affectez la valeur 1 à ce paramètre.
max_concurrent_iterations Nombre maximal d’exécutions pouvant se dérouler simultanément. En l’absence de spécification, toutes les exécutions s’exécutent en parallèle. En cas de spécification, doit être un entier compris entre 1 et 100.

REMARQUE : Le nombre d’exécutions simultanées est limité par les ressources disponibles dans la cible de calcul spécifiée. Vérifiez que la cible de calcul dispose des ressources nécessaires à l’accès concurrentiel souhaité.

Notes

Pour obtenir un exemple complet de configuration de balayage, reportez-vous à ce tutoriel.

Arguments

Vous pouvez passer en tant qu’arguments des paramètres fixes qui ne changent pas pendant le balayage de l’espace de paramètres. Les arguments sont passés dans les paires nom-valeur et le nom doit être préfixé avec un double tiret.

from azureml.train.automl import AutoMLImageConfig
arguments = ["--early_stopping", 1, "--evaluation_frequency", 2]
automl_image_config = AutoMLImageConfig(arguments=arguments)

Entraînement incrémentiel (facultatif)

Une fois l’exécution d’entraînement terminée, vous avez la possibilité d’effectuer un apprentissage supplémentaire du modèle en chargeant le point de contrôle du modèle formé. Vous pouvez utiliser le même jeu de données ou un jeu différent pour un entraînement incrémentiel.

Deux options sont disponibles pour l’entraînement incrémentiel. Vous pouvez :

  • Transmettre l’ID d’exécution à partir duquel vous voulez charger le point de contrôle.
  • Transmettre les points de contrôle via un FileDataset.

Passer le point de contrôle via l’ID d’exécution

Pour trouver l’ID d’exécution à partir du modèle souhaité, vous pouvez utiliser le code suivant.

# find a run id to get a model checkpoint from
target_checkpoint_run = automl_image_run.get_best_child()

Pour passer un point de contrôle via l’ID d’exécution, vous devez utiliser le paramètre checkpoint_run_id.

automl_image_config = AutoMLImageConfig(task='image-object-detection',
                                        compute_target=compute_target,
                                        training_data=training_dataset,
                                        validation_data=validation_dataset,
                                        checkpoint_run_id= target_checkpoint_run.id,
                                        primary_metric='mean_average_precision',
                                        **tuning_settings)

automl_image_run = experiment.submit(automl_image_config)
automl_image_run.wait_for_completion(wait_post_processing=True)

Passer le point de contrôle via FileDataset

Pour passer un point de contrôle via un FileDataset, vous devez utiliser les paramètrescheckpoint_dataset_id et checkpoint_filename.

# download the checkpoint from the previous run
model_name = "outputs/model.pt"
model_local = "checkpoints/model_yolo.pt"
target_checkpoint_run.download_file(name=model_name, output_file_path=model_local)

# upload the checkpoint to the blob store
ds.upload(src_dir="checkpoints", target_path='checkpoints')

# create a FileDatset for the checkpoint and register it with your workspace
ds_path = ds.path('checkpoints/model_yolo.pt')
checkpoint_yolo = Dataset.File.from_files(path=ds_path)
checkpoint_yolo = checkpoint_yolo.register(workspace=ws, name='yolo_checkpoint')

automl_image_config = AutoMLImageConfig(task='image-object-detection',
                                        compute_target=compute_target,
                                        training_data=training_dataset,
                                        validation_data=validation_dataset,
                                        checkpoint_dataset_id= checkpoint_yolo.id,
                                        checkpoint_filename='model_yolo.pt',
                                        primary_metric='mean_average_precision',
                                        **tuning_settings)

automl_image_run = experiment.submit(automl_image_config)
automl_image_run.wait_for_completion(wait_post_processing=True)

Soumettre l’exécution

Une fois votre objet AutoMLImageConfig prêt, vous pouvez soumettre l’expérience.

ws = Workspace.from_config()
experiment = Experiment(ws, "Tutorial-automl-image-object-detection")
automl_image_run = experiment.submit(automl_image_config)

Sorties et métriques d’évaluation

Les exécutions d’entraînement ML automatisées génèrent des fichiers de modèle de sortie, des mesures d’évaluation, des journaux et des artefacts de déploiement, comme le fichier de scoring et le fichier d’environnement, que vous pouvez consulter sous l’onglet des sorties, journaux et métriques des exécutions enfants.

Conseil

Regardez comment accéder aux résultats des tâches à partir de la section Consulter les résultats des exécutions.

Pour obtenir des définitions et des exemples des graphiques et métriques de performances fournis pour chaque exécution, consultez Évaluer les résultats de l’expérience de Machine Learning automatisé.

Inscrire et déployer un modèle

Une fois l’exécution terminée, vous pouvez enregistrer le modèle qui a été créé à partir de la meilleure exécution (configuration qui a généré la meilleure métrique principale).

best_child_run = automl_image_run.get_best_child()
model_name = best_child_run.properties['model_name']
model = best_child_run.register_model(model_name = model_name, model_path='outputs/model.pt')

Après avoir enregistré le modèle que vous voulez utiliser, vous pouvez le déployer en tant que service web sur ACI (Azure Container Instances) ou AKS (Azure Kubernetes Service). ACI est l’option idéale pour tester les déploiements, tandis qu’AKS est mieux adapté à une utilisation en production à grande échelle.

Cet exemple déploie le modèle en tant que service web dans AKS. Pour déployer dans AKS, commencez par créer un cluster de calcul AKS ou utilisez un cluster AKS existant. Vous pouvez utiliser l’une des références SKU de machine virtuelle GPU ou CPU pour votre cluster de déploiement.


from azureml.core.compute import ComputeTarget, AksCompute
from azureml.exceptions import ComputeTargetException

# Choose a name for your cluster
aks_name = "cluster-aks-gpu"

# Check to see if the cluster already exists
try:
    aks_target = ComputeTarget(workspace=ws, name=aks_name)
    print('Found existing compute target')
except ComputeTargetException:
    print('Creating a new compute target...')
    # Provision AKS cluster with GPU machine
    prov_config = AksCompute.provisioning_configuration(vm_size="STANDARD_NC6", 
                                                        location="eastus2")
    # Create the cluster
    aks_target = ComputeTarget.create(workspace=ws, 
                                      name=aks_name, 
                                      provisioning_configuration=prov_config)
    aks_target.wait_for_completion(show_output=True)

Ensuite, vous pouvez définir la configuration d’inférence qui décrit comment configurer le service web contenant votre modèle. Vous pouvez utiliser le script de scoring et l’environnement de l’exécution d’entraînement dans votre configuration d’inférence.

from azureml.core.model import InferenceConfig

best_child_run.download_file('outputs/scoring_file_v_1_0_0.py', output_file_path='score.py')
environment = best_child_run.get_environment()
inference_config = InferenceConfig(entry_script='score.py', environment=environment)

Vous pouvez ensuite déployer le modèle en tant que service web AKS.

# Deploy the model from the best run as an AKS web service
from azureml.core.webservice import AksWebservice
from azureml.core.webservice import Webservice
from azureml.core.model import Model
from azureml.core.environment import Environment

aks_config = AksWebservice.deploy_configuration(autoscale_enabled=True,                                                    
                                                cpu_cores=1,
                                                memory_gb=50,
                                                enable_app_insights=True)

aks_service = Model.deploy(ws,
                           models=[model],
                           inference_config=inference_config,
                           deployment_config=aks_config,
                           deployment_target=aks_target,
                           name='automl-image-test',
                           overwrite=True)
aks_service.wait_for_deployment(show_output=True)
print(aks_service.state)

Vous pouvez aussi déployer le modèle à partir de l’interface utilisateur du studio Azure Machine Learning. Accédez au modèle que vous souhaitez déployer sous l’onglet Modèles de l’exécution du ML automatisé et sélectionnez Déployer.

Select model from the automl runs in studio UI

Vous pouvez configurer le nom du point de terminaison du déploiement du modèle et le cluster d’inférence à utiliser pour le déploiement de votre modèle dans le volet Déployer un modèle.

Deploy configuration

Mettre à jour la configuration de l’inférence

À l’étape précédente, nous avons téléchargé le fichier de scoring outputs/scoring_file_v_1_0_0.py du meilleur modèle dans un fichier score.py local et nous l’avons utilisé pour créer un objet InferenceConfig. Ce script peut être modifié pour changer les paramètres d’inférence spécifiques au modèle si nécessaire, une fois qu’il a été téléchargé et avant de créer InferenceConfig. Par exemple, c’est la section de code qui initialise le modèle dans le fichier de scoring :

...
def init():
    ...
    try:
        logger.info("Loading model from path: {}.".format(model_path))
        model_settings = {...}
        model = load_model(TASK_TYPE, model_path, **model_settings)
        logger.info("Loading successful.")
    except Exception as e:
        logging_utilities.log_traceback(e, logger)
        raise
...

Chacune des tâches (et certains modèles) a un ensemble de paramètres dans le dictionnaire model_settings. Par défaut, nous utilisons les mêmes valeurs pour les paramètres qui ont été utilisés pendant l’entraînement et la validation. En fonction du comportement dont nous avons besoin lors de l’utilisation du modèle pour l’inférence, nous pouvons changer ces paramètres. Vous trouverez ci-dessous une liste de paramètres pour chaque type de tâche et modèle.

Tâche Nom du paramètre Default
Classification d’images (multi-classe et multi-étiquette) valid_resize_size
valid_crop_size
256
224
Détection d’objets min_size
max_size
box_score_thresh
nms_iou_thresh
box_detections_per_img
600
1333
0.3
0.5
100
Détection d’objets avec yolov5 img_size
model_size
box_score_thresh
nms_iou_thresh
640
moyenne
0.1
0.5
Segmentation d’instances min_size
max_size
box_score_thresh
nms_iou_thresh
box_detections_per_img
mask_pixel_score_threshold
max_number_of_polygon_points
export_as_image
image_type
600
1333
0.3
0.5
100
0.5
100
False
JPG

Pour obtenir une description détaillée des hyperparamètres spécifiques aux tâches, consultez Hyperparamètres pour les tâches de vision par ordinateur dans AutoML.

Si vous souhaitez utiliser la mise en mosaïque et contrôler son comportement, les paramètres suivants sont disponibles : tile_grid_size, tile_overlap_ratio et tile_predictions_nms_thresh. Pour plus d’informations sur ces paramètres, consultez Entraîner un modèle de détection de petits objets avec AutoML.

Exemples de notebooks

Passez en revue les exemples de code détaillé et les cas d’usage disponibles dans le dépôt GitHub d’exemples de blocs-notes pour le Machine Learning automatisé. Vérifiez les dossiers avec le préfixe « image- » pour obtenir des exemples propres à la création de modèles de vision par ordinateur.

Étapes suivantes