Erstellen Sie mithilfe von Amazon SageMaker Pipelines PlatoBlockchain Data Intelligence eine Lösung für einen Computer-Vision-Klassifizierer für Hautläsionen. Vertikale Suche. Ai.

Erstellen Sie mithilfe von Amazon SageMaker-Pipelines eine Lösung für einen Computer-Vision-Klassifizierer für Hautläsionen

Amazon SageMaker-Pipelines ist ein Dienst für kontinuierliche Integration und kontinuierliche Bereitstellung (CI/CD), der für Anwendungsfälle des maschinellen Lernens (ML) entwickelt wurde. Sie können damit End-to-End-ML-Workflows erstellen, automatisieren und verwalten. Es bewältigt die Herausforderung, jeden Schritt eines ML-Prozesses zu orchestrieren, was Zeit, Mühe und Ressourcen erfordert. Um die Verwendung zu erleichtern, stehen mehrere Vorlagen zur Verfügung, die Sie an Ihre Bedürfnisse anpassen können.

Vollständig verwaltete Bild- und Videoanalysedienste haben auch die Einführung von Computer-Vision-Lösungen beschleunigt. AWS bietet einen vortrainierten und vollständig verwalteten AWS-KI-Service namens Amazon-Anerkennung die über API-Aufrufe in Computer-Vision-Anwendungen integriert werden können und keine ML-Erfahrung erfordern. Sie müssen nur ein Bild zur Verfügung stellen Amazon Rekognition-API und es kann die erforderlichen Objekte anhand vordefinierter Labels identifizieren. Es ist auch möglich, benutzerdefinierte Labels speziell für Ihren Anwendungsfall bereitzustellen und ein benutzerdefiniertes Computer-Vision-Modell mit wenig bis gar keinem Overhead-Bedarf an ML-Expertise zu erstellen.

In diesem Beitrag behandeln wir ein spezifisches Computer-Vision-Problem: die Klassifizierung von Hautläsionen, und verwenden Pipelines, indem wir eine vorhandene Vorlage anpassen und auf diese Aufgabe zuschneiden. Eine genaue Klassifizierung von Hautläsionen kann bei der Früherkennung von Krebserkrankungen helfen. Im medizinischen Bereich ist dies jedoch eine herausfordernde Aufgabe, da es eine große Ähnlichkeit zwischen verschiedenen Arten von Hautläsionen gibt. Pipelines ermöglicht es uns, eine Vielzahl bestehender Modelle und Algorithmen zu nutzen und mit minimalem Aufwand und Zeit eine durchgängige Produktionspipeline einzurichten.

Lösungsüberblick

In diesem Beitrag bauen wir eine End-to-End-Pipeline mit Pipelines auf, um dermatoskopische Bilder von häufigen pigmentierten Hautläsionen zu klassifizieren. Wir benutzen das Amazon SageMaker-Studio Projektvorlage MLOps-Vorlage zum Erstellen, Trainieren und Bereitstellen von Modellen und der Code im Folgenden GitHub-Repository. Die resultierende Architektur ist in der folgenden Abbildung dargestellt.

Für diese Pipeline verwenden wir den Datensatz HAM10000 („Human Against Machine with 10000 training images“), der aus 10,015 dermatoskopischen Bildern besteht. Die Aufgabenstellung ist eine Mehrklassenklassifikation im Bereich Computer Vision. Dieser Datensatz bildet sechs der wichtigsten diagnostischen Kategorien im Bereich der pigmentierten Läsionen ab: Aktinische Keratosen und intraepitheliales Karzinom oder Morbus Bowen (akiec), Basalzellkarzinom (bcc), gutartige Keratose-ähnliche Läsionen (solare Lentigines oder seborrhoische Keratosen und Lichen planus-ähnliche Keratosen, bkl), Dermatofibrom (df), Melanom (mel), melanozytäre Nävi (nv) und vaskuläre Läsionen (Angiome, Angiokeratome, pyogene Granulome und Blutungen, vasc).

Als Format für die Eingabe des Modells verwenden wir die RecordIO Format. Dies ist ein kompaktes Format, das Bilddaten für ein kontinuierliches Lesen und damit ein schnelleres und effizienteres Training zusammen speichert. Darüber hinaus ist eine der Herausforderungen bei der Verwendung des HAM10000-Datensatzes das Klassenungleichgewicht. Die folgende Tabelle veranschaulicht die Klassenverteilung.

Klasse akiec bcc bkl df Honig nv Mistel
Anzahl der Bilder 327 514 1099 115 1113 6705 142
Gesamt 10015

Um dieses Problem zu lösen, erweitern wir den Datensatz mit zufälligen Transformationen (z. B. Zuschneiden, Spiegeln, Spiegeln und Drehen), damit alle Klassen ungefähr dieselbe Anzahl von Bildern haben.

Dieser Vorverarbeitungsschritt verwendet MXNet und OpenCV und verwendet daher ein vorgefertigtes MXNet-Container-Image. Die restlichen Abhängigkeiten werden mit a installiert requirements.txt Datei. Wenn Sie ein benutzerdefiniertes Image erstellen und verwenden möchten, finden Sie weitere Informationen unter Erstellen Sie Amazon SageMaker-Projekte mit Image-Building-CI/CD-Pipelines.

Für den Trainingsschritt verwenden wir den Schätzer, der über das in SageMaker integrierte Scikit-Docker-Image für die Image-Klassifizierung verfügbar ist, und legen die Parameter wie folgt fest:

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)

Weitere Einzelheiten zum Container-Image finden Sie unter Bildklassifizierungsalgorithmus.

Erstellen Sie ein Studio-Projekt

Ausführliche Anweisungen zum Einrichten von Studio finden Sie unter Integrieren Sie die Amazon SageMaker-Domäne mithilfe der Schnelleinrichtung. Führen Sie die folgenden Schritte aus, um Ihr Projekt zu erstellen:

  1. Wählen Sie in Studio die aus Projekte Menü auf der SageMaker-Ressourcen Menü.
    Erstellen Sie mithilfe von Amazon SageMaker Pipelines PlatoBlockchain Data Intelligence eine Lösung für einen Computer-Vision-Klassifizierer für Hautläsionen. Vertikale Suche. Ai.
    Auf der Projektseite können Sie eine vorkonfigurierte SageMaker-MLOps-Vorlage starten.
  2. Auswählen MLOps-Vorlage für Modellbildung, Schulung und Bereitstellung.
  3. Auswählen Projektvorlage auswählen.
    Erstellen Sie mithilfe von Amazon SageMaker Pipelines PlatoBlockchain Data Intelligence eine Lösung für einen Computer-Vision-Klassifizierer für Hautläsionen. Vertikale Suche. Ai.
  4. Geben Sie einen Projektnamen und eine kurze Beschreibung ein.
  5. Auswählen Projekt anlegen.

Das Erstellen des Projekts dauert einige Minuten.

Bereiten Sie den Datensatz vor

Führen Sie die folgenden Schritte aus, um das Dataset vorzubereiten:

  1. Gehen Sie zu Harvard DataVerse.
  2. Auswählen Zugriffsdatensatz, und überprüfen Sie die Lizenz Creative Commons Attribution-NonCommercial 4.0 International Public License.
  3. Wenn Sie die Lizenz akzeptieren, wählen Sie Originalformat ZIP und laden Sie die ZIP-Datei herunter.
  4. Erstellen Sie ein Amazon Simple Storage-Service (Amazon S3) Bucket und wählen Sie einen Namen, der mit beginnt sagemaker (Dadurch kann SageMaker ohne zusätzliche Berechtigungen auf den Bucket zugreifen).
  5. Sie können die Zugriffsprotokollierung und Verschlüsselung für bewährte Sicherheitsverfahren aktivieren.
  6. Hochladen dataverse_files.zip zum Eimer.
  7. Speichern Sie den S3-Bucket-Pfad zur späteren Verwendung.
  8. Notieren Sie sich den Namen des Buckets, in dem Sie die Daten gespeichert haben, und die Namen aller nachfolgenden Ordner, um sie später zu verwenden.

Bereiten Sie die Datenvorverarbeitung vor

Da wir MXNet und OpenCV in unserem Vorverarbeitungsschritt verwenden, verwenden wir ein vorgefertigtes MXNet-Docker-Image und installieren die verbleibenden Abhängigkeiten mithilfe der requirements.txt Datei. Dazu müssen Sie es kopieren und unter einfügen pipelines/skin der sagemaker--modelbuild Repository. Ergänzen Sie zusätzlich die MANIFEST.in Datei auf der gleichen Ebene wie setup.py, um Python anzuweisen, die einzuschließen requirements.txt Datei. Für weitere Informationen über MANIFEST.in, beziehen auf Einschließen von Dateien in Quelldistributionen mit MANIFEST.in. Beide Dateien befinden sich in der GitHub-Repository.

Ändern Sie die Pipelines-Vorlage

Führen Sie die folgenden Schritte aus, um die Pipelines-Vorlage zu aktualisieren:

  1. Erstellen Sie einen Ordner im Standard-Bucket.
  2. Stellen Sie sicher, dass die Studio-Ausführungsrolle Zugriff auf den Standard-Bucket sowie auf den Bucket hat, der das Dataset enthält.
  3. Wählen Sie aus der Liste der Projekte dasjenige aus, das Sie gerade erstellt haben.
  4. Auf dem Aufbewahrungsorte Wählen Sie auf der Registerkarte die Hyperlinks aus, um die Datei lokal zu klonen AWS-CodeCommit Repositorys zu Ihrer lokalen Studio-Instanz.
    Erstellen Sie mithilfe von Amazon SageMaker Pipelines PlatoBlockchain Data Intelligence eine Lösung für einen Computer-Vision-Klassifizierer für Hautläsionen. Vertikale Suche. Ai.
  5. Navigieren Sie zu der pipelines Verzeichnis innerhalb der sagemaker--modelbuild Verzeichnis und benenne es um abalone Verzeichnis zu skin.
  6. Öffnen Sie den Microsoft Store auf Ihrem Windows-PC. codebuild-buildspec.yml Datei in das sagemaker--modelbuild Verzeichnis und ändern Sie den Pfad der Ausführungspipeline von run-pipeline —module-name pipelines.abalone.pipeline (Zeile 15) zu Folgendem:
    run-pipeline --module-name pipelines.skin.pipeline 

  7. Speichern Sie die Datei.
  8. Ersetzen Sie die Dateien pipelines.py, preprocess.pyund evaluate.py im Pipelines-Verzeichnis mit den Dateien aus der GitHub-Repository.
    Erstellen Sie mithilfe von Amazon SageMaker Pipelines PlatoBlockchain Data Intelligence eine Lösung für einen Computer-Vision-Klassifizierer für Hautläsionen. Vertikale Suche. Ai.
  9. Aktualisieren Sie die preprocess.py Datei (Zeile 183-186) mit dem S3-Speicherort (SKIN_CANCER_BUCKET) und Ordnername (SKIN_CANCER_BUCKET_PATH) wo du die hochgeladen hast dataverse_files.zip Archiv:
    1. skin_cancer_bucket=””
    2. skin_cancer_bucket_path=””
    3. skin_cancer_files=””
    4. skin_cancer_files_ext=””

Im vorherigen Beispiel würde das Dataset gespeichert unter s3://monai-bucket-skin-cancer/skin_cancer_bucket_prefix/dataverse_files.zip.

Erstellen Sie mithilfe von Amazon SageMaker Pipelines PlatoBlockchain Data Intelligence eine Lösung für einen Computer-Vision-Klassifizierer für Hautläsionen. Vertikale Suche. Ai.

Lösen Sie eine Pipelineausführung aus

Durch Pushen festgeschriebener Änderungen an das CodeCommit-Repository (durchgeführt auf der Registerkarte Studio-Quellcodeverwaltung) wird eine neue Pipelineausführung ausgelöst, da eine Amazon EventBridge Ereignismonitore für Commits. Wir können die Ausführung überwachen, indem wir die Pipeline innerhalb des SageMaker-Projekts auswählen. Der folgende Screenshot zeigt ein Beispiel für eine erfolgreich ausgeführte Pipeline.

Erstellen Sie mithilfe von Amazon SageMaker Pipelines PlatoBlockchain Data Intelligence eine Lösung für einen Computer-Vision-Klassifizierer für Hautläsionen. Vertikale Suche. Ai.

  1. Um die Änderungen zu übernehmen, navigieren Sie im linken Bereich zum Git-Abschnitt.
  2. Stellen Sie alle relevanten Änderungen bereit. Sie müssen den Überblick nicht behalten -checkpoint Datei. Sie können einen Eintrag hinzufügen .gitignore Datei mit *checkpoint.* sie zu ignorieren.
  3. Bestätigen Sie die Änderungen, indem Sie eine Zusammenfassung sowie Ihren Namen und eine E-Mail-Adresse angeben.
  4. Drücken Sie die Änderungen.
  5. Navigieren Sie zurück zum Projekt und wählen Sie die aus Pipelines .
  6. Wenn Sie die laufenden Pipelines auswählen, werden die Schritte der Pipeline angezeigt.
    Auf diese Weise können Sie den gerade ausgeführten Schritt überwachen. Es kann einige Minuten dauern, bis die Pipeline angezeigt wird. Damit die Pipeline ausgeführt werden kann, müssen die in CI/CD definierten Schritte ausgeführt werden codebuild-buildspec.yml erfolgreich laufen müssen. Um den Status dieser Schritte zu überprüfen, können Sie verwenden AWS CodeBuild. Weitere Informationen finden Sie unter AWS CodeBuild (AMS-SSPS).
  7. Wenn die Pipeline abgeschlossen ist, gehen Sie zurück zur Projektseite und wählen Sie die aus Modellgruppen Registerkarte, um die an die Modellartefakte angehängten Metadaten zu überprüfen.
  8. Wenn alles gut aussieht, wählen Sie die Status aktualisieren Registerkarte und genehmigen Sie das Modell manuell ModelApprovalStatus eingestellt ist PendingManualApproval. Wenn unser Modell eine Genauigkeit von mehr als 60% aufweist, wird es der Modellregistrierung hinzugefügt, jedoch erst bereitgestellt, wenn die manuelle Genehmigung abgeschlossen ist.
  9. Navigieren Sie zu der Endpunkte Seite auf der SageMaker-Konsole, auf der Sie sehen können, wie ein Staging-Endpunkt erstellt wird. Nach einigen Minuten wird der Endpunkt mit aufgelistet InService Status.
  10. Um den Endpunkt in der Produktion bereitzustellen, auf der CodePipeline Konsole, wählen Sie die sagemaker--modeldeploy Pipeline, die derzeit in Bearbeitung ist.
  11. Am Ende der DeployStaging Phase müssen Sie die Bereitstellung manuell genehmigen.

Nach diesem Schritt können Sie sehen, wie der Produktionsendpunkt auf SageMaker bereitgestellt wird Endpunkte Seite. Nach einer Weile wird der Endpunkt als angezeigt InService.

Erstellen Sie mithilfe von Amazon SageMaker Pipelines PlatoBlockchain Data Intelligence eine Lösung für einen Computer-Vision-Klassifizierer für Hautläsionen. Vertikale Suche. Ai.

Aufräumen

Sie können alle vom SageMaker-Projekt erstellten Ressourcen einfach bereinigen.

  1. Wählen Sie im Navigationsbereich in Studio SageMaker-Ressourcen.
  2. Auswählen Projekte aus dem Dropdown-Menü und wählen Sie Ihr Projekt aus.
  3. Auf dem Aktionen Menü, wählen Sie Löschen um alle zugehörigen Ressourcen zu löschen.

Erstellen Sie mithilfe von Amazon SageMaker Pipelines PlatoBlockchain Data Intelligence eine Lösung für einen Computer-Vision-Klassifizierer für Hautläsionen. Vertikale Suche. Ai.

Ergebnisse und nächste Schritte

Wir haben Pipelines erfolgreich eingesetzt, um ein End-to-End-MLOps-Framework für die Klassifizierung von Hautläsionen mithilfe eines integrierten Modells auf dem HAM10000-Datensatz zu erstellen. Für die im Repository bereitgestellten Parameter haben wir auf dem Testset die folgenden Ergebnisse erhalten.

Metrisch Präzision Erinnern F1-Punktzahl
Wert 0.643 0.8 0.713

Sie können weiter an der Verbesserung der Leistung des Modells arbeiten, indem Sie seine Hyperparameter optimieren, weitere Transformationen zur Datenerweiterung hinzufügen oder andere Methoden wie Synthetic Minority Oversampling Technique (SMOTE) oder Generative Adversarial Networks (GANs) verwenden. Darüber hinaus können Sie Ihr eigenes Modell oder Ihren eigenen Algorithmus für das Training verwenden, indem Sie integrierte SageMaker-Docker-Images verwenden oder Ihren eigenen Container für die Arbeit mit SageMaker anpassen. Weitere Einzelheiten finden Sie unter Docker-Container mit SageMaker verwenden.

Sie können Ihrer Pipeline auch zusätzliche Funktionen hinzufügen. Wenn Sie die Überwachung einschließen möchten, können Sie die auswählen MLOps-Vorlage für Modellerstellung, Training, Bereitstellung und Überwachung Vorlage beim Erstellen des SageMaker-Projekts. Die resultierende Architektur hat einen zusätzlichen Überwachungsschritt. Wenn Sie über ein vorhandenes Git-Repository eines Drittanbieters verfügen, können Sie es verwenden, indem Sie das auswählen MLOps-Vorlage für Modellerstellung, Training und Bereitstellung mit Git-Repositories von Drittanbietern unter Verwendung von Jenkins Projekt und Bereitstellung von Informationen sowohl für Repositories zur Modellerstellung als auch zur Modellbereitstellung. Dadurch können Sie jeden vorhandenen Code verwenden und sparen Zeit und Aufwand bei der Integration zwischen SageMaker und Git. Für diese Option ist jedoch a AWS CodeStar Verbindung erforderlich.

Zusammenfassung

In diesem Beitrag haben wir gezeigt, wie Sie mit Studio und automatisierten Pipelines einen End-to-End-ML-Workflow erstellen. Der Workflow umfasst das Abrufen des Datasets, das Speichern an einem Ort, auf den das ML-Modell zugreifen kann, das Konfigurieren eines Container-Images für die Vorverarbeitung und das anschließende Ändern des Boilerplate-Codes, um dieses Image aufzunehmen. Dann haben wir gezeigt, wie die Pipeline ausgelöst wird, welche Schritte die Pipeline befolgt und wie sie funktionieren. Wir haben auch besprochen, wie die Modellleistung überwacht und das Modell auf einem Endpunkt bereitgestellt wird.

Wir haben die meisten dieser Aufgaben in Studio ausgeführt, das als allumfassende ML-IDE fungiert und die Entwicklung und Bereitstellung solcher Modelle beschleunigt.

Diese Lösung ist nicht an die Hautklassifikationsaufgabe gebunden. Sie können es auf jede beliebige Klassifizierungs- oder Regressionsaufgabe erweitern, indem Sie einen der in SageMaker integrierten Algorithmen oder vorab trainierte Modelle verwenden.


Über die Autoren

Erstellen Sie mithilfe von Amazon SageMaker Pipelines PlatoBlockchain Data Intelligence eine Lösung für einen Computer-Vision-Klassifizierer für Hautläsionen. Vertikale Suche. Ai. Mariem Kthiri ist KI/ML-Berater bei AWS Professional Services Globals und Teil des Health Care and Life Science (HCLS)-Teams. Sie ist leidenschaftlich daran interessiert, ML-Lösungen für verschiedene Probleme zu entwickeln, und ist immer bestrebt, neue Möglichkeiten und Initiativen zu ergreifen. Sie lebt in München, Deutschland und reist und entdeckt gerne andere Teile der Welt.

Erstellen Sie mithilfe von Amazon SageMaker Pipelines PlatoBlockchain Data Intelligence eine Lösung für einen Computer-Vision-Klassifizierer für Hautläsionen. Vertikale Suche. Ai.Yassine Zaafouri ist AI/ML-Berater bei Professional Services bei AWS. Er ermöglicht es globalen Unternehmenskunden, KI/ML-Lösungen in der Cloud zu erstellen und bereitzustellen, um ihre geschäftlichen Herausforderungen zu meistern. In seiner Freizeit spielt und schaut er gerne Sport und reist um die Welt.

Erstellen Sie mithilfe von Amazon SageMaker Pipelines PlatoBlockchain Data Intelligence eine Lösung für einen Computer-Vision-Klassifizierer für Hautläsionen. Vertikale Suche. Ai.Fotinos Kyriakides ist ein AI/ML-Ingenieur bei Professional Services in AWS. Er ist leidenschaftlich daran interessiert, die Technologie einzusetzen, um Kunden einen Mehrwert zu bieten und Geschäftsergebnisse zu erzielen. Er lebt in London, in seiner Freizeit läuft und erkundet er gerne.

Erstellen Sie mithilfe von Amazon SageMaker Pipelines PlatoBlockchain Data Intelligence eine Lösung für einen Computer-Vision-Klassifizierer für Hautläsionen. Vertikale Suche. Ai.Anna Zapaishchykova war ProServe-Berater für AI/ML und Mitglied von Amazon Healthcare TFC. Sie interessiert sich leidenschaftlich für Technologie und die Auswirkungen, die sie auf das Gesundheitswesen haben kann. Ihr Hintergrund liegt in der Entwicklung von MLOps- und KI-gestützten Lösungen für Kundenprobleme in einer Vielzahl von Bereichen wie Versicherungen, Automobil und Gesundheitswesen.

Zeitstempel:

Mehr von AWS Maschinelles Lernen