Créez une solution pour un classificateur de lésions cutanées en vision par ordinateur à l'aide d'Amazon SageMaker Pipelines PlatoBlockchain Data Intelligence. Recherche verticale. Aï.

Créer une solution pour un classificateur de lésions cutanées par vision par ordinateur à l'aide d'Amazon SageMaker Pipelines

Pipelines Amazon SageMaker est un service d'intégration continue et de livraison continue (CI/CD) conçu pour les cas d'utilisation d'apprentissage automatique (ML). Vous pouvez l'utiliser pour créer, automatiser et gérer des workflows ML de bout en bout. Il relève le défi d'orchestrer chaque étape d'un processus de ML, ce qui nécessite du temps, des efforts et des ressources. Pour faciliter son utilisation, plusieurs modèles sont disponibles que vous pouvez personnaliser selon vos besoins.

Des services d'analyse d'images et de vidéos entièrement gérés ont également accéléré l'adoption de solutions de vision par ordinateur. AWS propose un service d'IA AWS préformé et entièrement géré appelé Amazon Reconnaissance qui peuvent être intégrés dans des applications de vision par ordinateur à l'aide d'appels d'API et ne nécessitent aucune expérience en ML. Il vous suffit de fournir une image au API de reconnaissance Amazon et il peut identifier les objets requis selon des étiquettes prédéfinies. Il est également possible de fournir des étiquettes personnalisées spécifiques à votre cas d'utilisation et de créer un modèle de vision par ordinateur personnalisé avec peu ou pas de frais généraux nécessitant une expertise en ML.

Dans cet article, nous abordons un problème spécifique de vision par ordinateur : la classification des lésions cutanées et utilisons Pipelines en personnalisant un modèle existant et en l'adaptant à cette tâche. Une classification précise des lésions cutanées peut aider au diagnostic précoce des maladies cancéreuses. Cependant, c'est une tâche difficile dans le domaine médical, car il existe une grande similitude entre les différents types de lésions cutanées. Les pipelines nous permettent de tirer parti d'une variété de modèles et d'algorithmes existants et d'établir un pipeline de production de bout en bout avec un minimum d'effort et de temps.

Vue d'ensemble de la solution

Dans cet article, nous construisons un pipeline de bout en bout à l'aide de pipelines pour classer les images dermatoscopiques des lésions cutanées pigmentées courantes. Nous utilisons le Amazon SageMakerStudio modèle de projet Modèle MLOps pour la création, la formation et le déploiement de modèles et le code dans la suite GitHub référentiel. L'architecture résultante est illustrée dans la figure suivante.

Pour ce pipeline, nous utilisons l'ensemble de données HAM10000 ("Human Against Machine with 10000 training images"), qui se compose de 10,015 XNUMX images dermatoscopiques. La tâche à accomplir est une classification multi-classes dans le domaine de la vision par ordinateur. Cet ensemble de données décrit six des catégories diagnostiques les plus importantes dans le domaine des lésions pigmentées : les kératoses actiniques et le carcinome intraépithélial ou la maladie de Bowen (akiec), carcinome basocellulaire (bcc), lésions bénignes de type kératose (lentigos solaires ou kératoses séborrhéiques et kératoses de type lichen plan, bkl), dermatofibrome (df), mélanome (mel), naevus mélanocytaires (nv), et des lésions vasculaires (angiomes, angiokératomes, granulomes pyogéniques et hémorragies, vasc).

Pour le format d'entrée du modèle, nous utilisons le RecordIO format. Il s'agit d'un format compact qui stocke les données d'image ensemble pour une lecture continue et donc une formation plus rapide et plus efficace. De plus, l'un des défis de l'utilisation de l'ensemble de données HAM10000 est le déséquilibre des classes. Le tableau suivant illustre la répartition des classes.

Classe akiec bcc inclus df miel nv vasque
Nombre d'images 327 514 1099 115 1113 6705 142
Total 10015

Pour résoudre ce problème, nous augmentons l'ensemble de données à l'aide de transformations aléatoires (telles que le recadrage, le retournement, la mise en miroir et la rotation) pour avoir toutes les classes avec approximativement le même nombre d'images.

Cette étape de prétraitement utilise MXNet et OpenCV, elle utilise donc une image de conteneur MXNet prédéfinie. Le reste des dépendances est installé à l'aide d'un requirements.txt dossier. Si vous souhaitez créer et utiliser une image personnalisée, reportez-vous à Créez des projets Amazon SageMaker avec des pipelines CI/CD de création d'images.

Pour l'étape de formation, nous utilisons l'estimateur disponible à partir de l'image Scikit Docker intégrée de SageMaker pour la classification des images et définissons les paramètres comme suit :

hyperparameters = {
        "num_layers": 18,
        "use_pretrained_model": 1,
        "augmentation_type": 'crop_color_transform',
        "image_shape": '3,224,224', 
        "num_classes": 7,
        "num_training_samples": 29311, 
        "mini_batch_size": 8,
        "epochs": 5, 
        "learning_rate": 0.00001,
        "precision_dtype": 'float32'
    }

    estimator_config = {
        "hyperparameters": hyperparameters,
        "image_uri": training_image,
        "role": role,
        "instance_count": 1,
        "instance_type": "ml.p3.2xlarge",
        "volume_size": 100,
        "max_run": 360000,
        "output_path": "s3://{bucket}/{base_job_prefix}/training_jobs",
    }
    
    image_classifier = sagemaker.estimator.Estimator(**estimator_config)

Pour plus de détails sur l'image du conteneur, reportez-vous à Algorithme de classification d'images.

Créer un projet Studio

Pour obtenir des instructions détaillées sur la configuration de Studio, reportez-vous à Intégration au domaine Amazon SageMaker à l'aide de la configuration rapide. Pour créer votre projet, procédez comme suit :

  1. Dans Studio, choisissez le Projets menu sur le Ressources SageMaker menu.
    Créez une solution pour un classificateur de lésions cutanées en vision par ordinateur à l'aide d'Amazon SageMaker Pipelines PlatoBlockchain Data Intelligence. Recherche verticale. Aï.
    Sur la page des projets, vous pouvez lancer un modèle MLOps SageMaker préconfiguré.
  2. Selectionnez Modèle MLOps pour la création, la formation et le déploiement de modèles.
  3. Selectionnez Sélectionnez un modèle de projet.
    Créez une solution pour un classificateur de lésions cutanées en vision par ordinateur à l'aide d'Amazon SageMaker Pipelines PlatoBlockchain Data Intelligence. Recherche verticale. Aï.
  4. Entrez un nom de projet et une courte description.
  5. Selectionnez Créer un projet.

Le projet prend quelques minutes pour être créé.

Préparer le jeu de données

Pour préparer l'ensemble de données, procédez comme suit :

  1. Cliquez sur Vers de données de Harvard.
  2. Selectionnez Accéder à l'ensemble de données, et consultez la licence Creative Commons Attribution-NonCommercial 4.0 International Public License.
  3. Si vous acceptez la licence, choisissez Format d'origine Zip et téléchargez le fichier ZIP.
  4. Créer un Service de stockage simple Amazon (Amazon S3) compartiment et choisissez un nom commençant par sagemaker (cela permet à SageMaker d'accéder au compartiment sans aucune autorisation supplémentaire).
  5. Vous pouvez activer la journalisation des accès et le chiffrement pour les meilleures pratiques de sécurité.
  6. Téléchargement dataverse_files.zip au seau.
  7. Enregistrez le chemin du compartiment S3 pour une utilisation ultérieure.
  8. Notez le nom du compartiment dans lequel vous avez stocké les données et les noms des dossiers suivants, à utiliser ultérieurement.

Préparer le prétraitement des données

Parce que nous utilisons MXNet et OpenCV dans notre étape de prétraitement, nous utilisons une image MXNet Docker pré-construite et installons les dépendances restantes à l'aide du requirements.txt dossier. Pour ce faire, vous devez le copier et le coller sous pipelines/skin dans l' sagemaker--modelbuild dépôt. De plus, ajoutez le MANIFEST.in déposer au même niveau que setup.py, pour dire à Python d'inclure le requirements.txt dossier. Pour plus d'informations sur MANIFESTE.in, faire référence à Inclure des fichiers dans les distributions source avec MANIFEST.in. Les deux fichiers se trouvent dans le GitHub référentiel.

Modifier le modèle de pipelines

Pour mettre à jour le modèle Pipelines, procédez comme suit :

  1. Créez un dossier dans le compartiment par défaut.
  2. Assurez-vous que le rôle d'exécution Studio a accès au bucket par défaut ainsi qu'au bucket contenant l'ensemble de données.
  3. Dans la liste des projets, choisissez celui que vous venez de créer.
  4. Sur le Dépôts onglet, choisissez les hyperliens pour cloner localement le Code AWSCommit dépôts à votre instance Studio locale.
    Créez une solution pour un classificateur de lésions cutanées en vision par ordinateur à l'aide d'Amazon SageMaker Pipelines PlatoBlockchain Data Intelligence. Recherche verticale. Aï.
  5. Accédez à la pipelines répertoire à l'intérieur du sagemaker--modelbuild répertoire et renommez le abalone répertoire à skin.
  6. Ouvrez le codebuild-buildspec.yml déposer dans le sagemaker--modelbuild répertoire et modifiez le chemin d'accès du pipeline d'exécution à partir de run-pipeline —module-name pipelines.abalone.pipeline (ligne 15) à ce qui suit :
    run-pipeline --module-name pipelines.skin.pipeline 

  7. Enregistrez le fichier.
  8. Remplacer les fichiers pipelines.py, preprocess.py, et evaluate.py dans le répertoire pipelines avec les fichiers du GitHub référentiel.
    Créez une solution pour un classificateur de lésions cutanées en vision par ordinateur à l'aide d'Amazon SageMaker Pipelines PlatoBlockchain Data Intelligence. Recherche verticale. Aï.
  9. Mettre à jour le preprocess.py fichier (lignes 183-186) avec l'emplacement S3 (SKIN_CANCER_BUCKET) et le nom du dossier (SKIN_CANCER_BUCKET_PATH) où vous avez téléchargé le dataverse_files.zip archiver:
    1. skin_cancer_bucket=””
    2. skin_cancer_bucket_path=””
    3. skin_cancer_files=””
    4. skin_cancer_files_ext=””

Dans l'exemple précédent, le jeu de données serait stocké sous s3://monai-bucket-skin-cancer/skin_cancer_bucket_prefix/dataverse_files.zip.

Créez une solution pour un classificateur de lésions cutanées en vision par ordinateur à l'aide d'Amazon SageMaker Pipelines PlatoBlockchain Data Intelligence. Recherche verticale. Aï.

Déclencher une exécution de pipeline

La transmission des modifications validées au référentiel CodeCommit (effectuée dans l'onglet de contrôle de source de Studio) déclenche une nouvelle exécution du pipeline, car un Amazon Event Bridge moniteurs d'événements pour les commits. Nous pouvons surveiller l'exécution en choisissant le pipeline dans le projet SageMaker. La capture d'écran suivante montre un exemple de pipeline qui s'est exécuté avec succès.

Créez une solution pour un classificateur de lésions cutanées en vision par ordinateur à l'aide d'Amazon SageMaker Pipelines PlatoBlockchain Data Intelligence. Recherche verticale. Aï.

  1. Pour valider les modifications, accédez à la section Git dans le volet de gauche.
  2. Mettez en scène tous les changements pertinents. Vous n'avez pas besoin de garder une trace de -checkpoint dossier. Vous pouvez ajouter une entrée au .gitignore fichier avec *checkpoint.* les ignorer.
  3. Validez les modifications en fournissant un résumé ainsi que votre nom et une adresse e-mail.
  4. Poussez les changements.
  5. Revenez au projet et choisissez le Pipelines .
  6. Si vous choisissez les pipelines en cours, les étapes du pipeline apparaissent.
    Cela vous permet de surveiller l'étape en cours d'exécution. L'affichage du pipeline peut prendre quelques minutes. Pour que le pipeline commence à s'exécuter, les étapes définies dans CI/CD codebuild-buildspec.yml doivent fonctionner avec succès. Pour vérifier l'état de ces étapes, vous pouvez utiliser Création de code AWS. Pour plus d'informations, reportez-vous à AWS CodeBuild (AMSSSPS).
  7. Lorsque le pipeline est terminé, revenez à la page du projet et choisissez le Groupes de modèles pour inspecter les métadonnées attachées aux artefacts du modèle.
  8. Si tout semble bon, choisissez le Mise à jour Statut onglet et approuver manuellement le modèle. La valeur par défaut ModelApprovalStatus est fixé à PendingManualApproval. Si notre modèle a une précision supérieure à 60%, il est ajouté au registre des modèles, mais n'est pas déployé tant que l'approbation manuelle n'est pas terminée.
  9. Accédez à la Endpoints page sur la console SageMaker, où vous pouvez voir un point de terminaison intermédiaire en cours de création.Après quelques minutes, le point de terminaison est répertorié avec le InService état.
  10. Pour déployer le point de terminaison en production, sur le CodePipeline console, choisissez la sagemaker--modeldeploy pipeline actuellement en cours.
  11. A la fin de l' DeployStaging phase, vous devez approuver manuellement le déploiement.

Après cette étape, vous pouvez voir le point de terminaison de production en cours de déploiement sur SageMaker Endpoints page. Au bout d'un moment, le point de terminaison s'affiche sous la forme InService.

Créez une solution pour un classificateur de lésions cutanées en vision par ordinateur à l'aide d'Amazon SageMaker Pipelines PlatoBlockchain Data Intelligence. Recherche verticale. Aï.

Nettoyer

Vous pouvez facilement nettoyer toutes les ressources créées par le projet SageMaker.

  1. Dans le volet de navigation de Studio, choisissez Ressources SageMaker.
  2. Selectionnez Projets dans le menu déroulant et choisissez votre projet.
  3. Sur le Actions menu, choisissez Supprimer pour supprimer toutes les ressources associées.

Créez une solution pour un classificateur de lésions cutanées en vision par ordinateur à l'aide d'Amazon SageMaker Pipelines PlatoBlockchain Data Intelligence. Recherche verticale. Aï.

Résultats et prochaines étapes

Nous avons utilisé avec succès Pipelines pour créer un cadre MLOps de bout en bout pour la classification des lésions cutanées à l'aide d'un modèle intégré sur l'ensemble de données HAM10000. Pour les paramètres fournis dans le référentiel, nous avons obtenu les résultats suivants sur le jeu de test.

Métrique La précision Rappeler Score F1
Valeur 0.643 0.8 0.713

Vous pouvez continuer à améliorer les performances du modèle en affinant ses hyperparamètres, en ajoutant davantage de transformations pour l'augmentation des données ou en utilisant d'autres méthodes, telles que la technique de suréchantillonnage synthétique des minorités (SMOTE) ou les réseaux antagonistes génératifs (GAN). De plus, vous pouvez utiliser votre propre modèle ou algorithme pour la formation en utilisant des images SageMaker Docker intégrées ou en adaptant votre propre conteneur pour qu'il fonctionne sur SageMaker. Pour plus de détails, reportez-vous à Utiliser des conteneurs Docker avec SageMaker.

Vous pouvez également ajouter des fonctionnalités supplémentaires à votre pipeline. Si vous souhaitez inclure la surveillance, vous pouvez choisir le Modèle MLOps pour la création de modèles, la formation, le déploiement et la surveillance modèle lors de la création du projet SageMaker. L'architecture résultante comporte une étape de surveillance supplémentaire. Ou si vous avez un référentiel Git tiers existant, vous pouvez l'utiliser en choisissant le Modèle MLOps pour la création de modèles, la formation et le déploiement avec des référentiels Git tiers à l'aide de Jenkins projet et fournir des informations pour les référentiels de création et de déploiement de modèles. Cela vous permet d'utiliser n'importe quel code existant et vous fait gagner du temps ou des efforts sur l'intégration entre SageMaker et Git. Cependant, pour cette option, un AWS Code Star connexion est nécessaire.

Conclusion

Dans cet article, nous avons montré comment créer un flux de travail ML de bout en bout à l'aide de Studio et de pipelines automatisés. Le flux de travail comprend l'obtention de l'ensemble de données, son stockage dans un endroit accessible au modèle ML, la configuration d'une image de conteneur pour le prétraitement, puis la modification du code passe-partout pour accueillir cette image. Ensuite, nous avons montré comment déclencher le pipeline, les étapes suivies par le pipeline et leur fonctionnement. Nous avons également expliqué comment surveiller les performances du modèle et déployer le modèle sur un point de terminaison.

Nous avons effectué la plupart de ces tâches dans Studio, qui agit comme un IDE ML complet et accélère le développement et le déploiement de ces modèles.

Cette solution n'est pas liée à la tâche de classification de la peau. Vous pouvez l'étendre à n'importe quelle tâche de classification ou de régression à l'aide de l'un des algorithmes intégrés SageMaker ou des modèles pré-formés.


À propos des auteurs

Créez une solution pour un classificateur de lésions cutanées en vision par ordinateur à l'aide d'Amazon SageMaker Pipelines PlatoBlockchain Data Intelligence. Recherche verticale. Aï. Mariem Kthiri est consultant en IA/ML chez AWS Professional Services Globals et fait partie de l'équipe Health Care and Life Science (HCLS). Elle est passionnée par la création de solutions ML pour divers problèmes et toujours désireuse de saisir de nouvelles opportunités et initiatives. Elle vit à Munich, en Allemagne, et aime voyager et découvrir d'autres parties du monde.

Créez une solution pour un classificateur de lésions cutanées en vision par ordinateur à l'aide d'Amazon SageMaker Pipelines PlatoBlockchain Data Intelligence. Recherche verticale. Aï.Yassine Zaafouri est consultant IA/ML au sein des services professionnels d'AWS. Il permet aux entreprises clientes mondiales de créer et de déployer des solutions d'IA/ML dans le cloud pour surmonter leurs défis commerciaux. Dans ses temps libres, il aime jouer et regarder des sports et voyager à travers le monde.

Créez une solution pour un classificateur de lésions cutanées en vision par ordinateur à l'aide d'Amazon SageMaker Pipelines PlatoBlockchain Data Intelligence. Recherche verticale. Aï.Fotinos Kyriakides est ingénieur IA/ML au sein des services professionnels d'AWS. Il est passionné par l'utilisation de la technologie pour apporter de la valeur aux clients et obtenir des résultats commerciaux. Basé à Londres, dans ses temps libres, il aime courir et explorer.

Créez une solution pour un classificateur de lésions cutanées en vision par ordinateur à l'aide d'Amazon SageMaker Pipelines PlatoBlockchain Data Intelligence. Recherche verticale. Aï.Anna Zapaichtchykova était consultant ProServe en IA/ML et membre d'Amazon Healthcare TFC. Elle est passionnée par la technologie et l'impact qu'elle peut avoir sur les soins de santé. Son expérience est dans la création de solutions MLOps et basées sur l'IA pour résoudre les problèmes des clients dans divers domaines tels que l'assurance, l'automobile et la santé.

Horodatage:

Plus de Apprentissage automatique AWS