Zbuduj rozwiązanie dla komputerowego klasyfikatora zmian skórnych przy użyciu Amazon SageMaker Pipelines PlatoBlockchain Data Intelligence. Wyszukiwanie pionowe. AI.

Zbuduj rozwiązanie dla komputerowego klasyfikatora zmian skórnych przy użyciu Amazon SageMaker Pipelines

Rurociągi Amazon SageMaker to usługa ciągłej integracji i ciągłego dostarczania (CI/CD) przeznaczona do przypadków użycia uczenia maszynowego (ML). Możesz go używać do tworzenia, automatyzacji i zarządzania kompleksowymi przepływami pracy ML. Rozwiązuje wyzwanie orkiestracji każdego etapu procesu ML, co wymaga czasu, wysiłku i zasobów. Aby ułatwić korzystanie z niego, dostępnych jest wiele szablonów, które można dostosować do własnych potrzeb.

W pełni zarządzane usługi analizy obrazu i wideo również przyspieszyły przyjęcie rozwiązań wizji komputerowej. AWS oferuje przeszkoloną i w pełni zarządzaną usługę AWS AI o nazwie Amazon Rekognition które można zintegrować z aplikacjami wizji komputerowej za pomocą wywołań API i nie wymagają doświadczenia w ML. Musisz tylko dostarczyć obraz do Interfejs API rozpoznawania Amazon i może identyfikować wymagane obiekty zgodnie z wcześniej zdefiniowanymi etykietami. Możliwe jest również dostarczenie niestandardowych etykiet dostosowanych do konkretnego przypadku użycia i zbudowanie niestandardowego modelu wizji komputerowej z niewielkim lub zerowym zapotrzebowaniem na specjalistyczną wiedzę z zakresu ML.

W tym poście zajmujemy się konkretnym problemem widzenia komputerowego: klasyfikacją zmian skórnych i używamy Pipelines, dostosowując istniejący szablon i dostosowując go do tego zadania. Dokładna klasyfikacja zmian skórnych może pomóc we wczesnej diagnozie chorób nowotworowych. Jest to jednak trudne zadanie w medycynie, ponieważ istnieje duże podobieństwo między różnymi rodzajami zmian skórnych. Pipelines pozwala nam korzystać z różnych istniejących modeli i algorytmów oraz tworzyć kompleksowy potok produkcyjny przy minimalnym nakładzie pracy i czasu.

Omówienie rozwiązania

W tym poście budujemy kompleksowy rurociąg przy użyciu Pipelines do klasyfikowania obrazów dermatoskopowych typowych zmian barwnikowych skóry. Używamy Studio Amazon SageMaker szablon projektu Szablon MLOps do budowania, szkolenia i wdrażania modeli a kod w dalszej części Repozytorium GitHub. Wynikową architekturę pokazano na poniższym rysunku.

Do tego potoku używamy zestawu danych HAM10000 („Human Against Machine with 10000 training images”), który składa się z 10,015 XNUMX obrazów dermatoskopowych. Zadaniem jest wieloklasowa klasyfikacja w zakresie widzenia komputerowego. Ten zestaw danych przedstawia sześć najważniejszych kategorii diagnostycznych w dziedzinie zmian barwnikowych: rogowacenie słoneczne i rak śródnabłonkowy lub choroba Bowena (akiec), rak podstawnokomórkowy (bcc), łagodne zmiany rogowaciejące (soczewkowate lub łojotokowe i liszajowo-płaskie rogowacenia, bkl), włókniak skóry (df), czerniak (mel), znamiona melanocytowe (nv) oraz zmian naczyniowych (naczyniaki, naczyniakokeratomy, ziarniniaki ropne i krwotoki, vasc).

Dla formatu danych wejściowych modelu używamy RecordIO format. Jest to kompaktowy format, który przechowuje dane obrazu razem w celu ciągłego czytania, a tym samym szybszego i bardziej wydajnego treningu. Ponadto jednym z wyzwań związanych z używaniem zestawu danych HAM10000 jest nierównowaga klas. Poniższa tabela ilustruje rozkład klas.

Klasa Akiec Bcc BKL df mel nv naczyniopochodny
Liczba obrazów 327 514 1099 115 1113 6705 142
Kwota produktów: 10015

Aby rozwiązać ten problem, rozszerzamy zestaw danych za pomocą losowych przekształceń (takich jak kadrowanie, odwracanie, odbijanie lustrzane i obracanie), aby wszystkie klasy miały w przybliżeniu taką samą liczbę obrazów.

Ten etap przetwarzania wstępnego używa MXNet i OpenCV, dlatego używa gotowego obrazu kontenera MXNet. Pozostałe zależności są instalowane za pomocą requirements.txt plik. Jeśli chcesz utworzyć i używać niestandardowego obrazu, zapoznaj się z Twórz projekty Amazon SageMaker z potokami CI/CD do budowania obrazów.

Na etapie uczenia używamy estymatora dostępnego z wbudowanego w SageMaker obrazu Docker Scikit do klasyfikacji obrazów i ustawiamy parametry w następujący sposób:

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)

Aby uzyskać więcej informacji na temat obrazu kontenera, zobacz Algorytm klasyfikacji obrazów.

Utwórz projekt Studio

Aby uzyskać szczegółowe instrukcje dotyczące konfiguracji programu Studio, zobacz Włączenie do domeny Amazon SageMaker za pomocą szybkiej konfiguracji. Aby stworzyć swój projekt, wykonaj następujące kroki:

  1. W Studio wybierz Projekty menu na Zasoby SageMaker menu.
    Zbuduj rozwiązanie dla komputerowego klasyfikatora zmian skórnych przy użyciu Amazon SageMaker Pipelines PlatoBlockchain Data Intelligence. Wyszukiwanie pionowe. AI.
    Na stronie projektów możesz uruchomić wstępnie skonfigurowany szablon SageMaker MLOps.
  2. Dodaj Szablon MLOps do budowania modelu, szkolenia i wdrażania.
  3. Dodaj Wybierz szablon projektu.
    Zbuduj rozwiązanie dla komputerowego klasyfikatora zmian skórnych przy użyciu Amazon SageMaker Pipelines PlatoBlockchain Data Intelligence. Wyszukiwanie pionowe. AI.
  4. Wpisz nazwę projektu i krótki opis.
  5. Dodaj Utwórz projekt.

Stworzenie projektu zajmuje kilka minut.

Przygotuj zbiór danych

Aby przygotować zestaw danych, wykonaj następujące kroki:

  1. Iść do Harvard Data Verse.
  2. Dodaj Dostęp do zbioru danychi zapoznaj się z licencją Creative Commons Uznanie autorstwa-Użycie niekomercyjne 4.0 Międzynarodowa licencja publiczna.
  3. Jeśli akceptujesz licencję, wybierz Kod pocztowy w oryginalnym formacie i pobierz plik ZIP.
  4. Tworzenie Usługa Amazon Simple Storage (Amazon S3) i wybierz nazwę zaczynającą się od sagemaker (pozwala to SageMakerowi na dostęp do wiadra bez żadnych dodatkowych uprawnień).
  5. Możesz włączyć rejestrowanie dostępu i szyfrowanie, aby uzyskać najlepsze praktyki bezpieczeństwa.
  6. Prześlij dataverse_files.zip do wiadra.
  7. Zapisz ścieżkę zasobnika S3 do późniejszego użycia.
  8. Zanotuj nazwę zasobnika, w którym przechowujesz dane, oraz nazwy kolejnych folderów, których użyjesz później.

Przygotuj się do wstępnego przetwarzania danych

Ponieważ w naszym kroku przetwarzania wstępnego używamy MXNet i OpenCV, używamy gotowego obrazu platformy Docker MXNet i instalujemy pozostałe zależności za pomocą requirements.txt plik. Aby to zrobić, musisz go skopiować i wkleić pod pipelines/skin sagemaker--modelbuild magazyn. Dodatkowo dodaj MANIFEST.in plik na tym samym poziomie co setup.py, aby powiedzieć Pythonowi, aby dołączył requirements.txt plik. Więcej informacji na temat MANIFEST.w, odnosić się do Dołączanie plików do dystrybucji źródłowych za pomocą MANIFEST.in. Oba pliki można znaleźć w Repozytorium GitHub.

Zmień szablon potoków

Aby zaktualizować szablon Pipelines, wykonaj następujące czynności:

  1. Utwórz folder w domyślnym zasobniku.
  2. Upewnij się, że rola wykonawcza Studio ma dostęp do zasobnika domyślnego oraz zasobnika zawierającego zbiór danych.
  3. Z listy projektów wybierz ten, który właśnie utworzyłeś.
  4. Na Repozytoria wybierz hiperłącza, aby lokalnie sklonować Zatwierdzenie kodu AWS repozytoria do lokalnej instancji Studio.
    Zbuduj rozwiązanie dla komputerowego klasyfikatora zmian skórnych przy użyciu Amazon SageMaker Pipelines PlatoBlockchain Data Intelligence. Wyszukiwanie pionowe. AI.
  5. Nawiguj do pipelines katalog wewnątrz sagemaker--modelbuild katalogu i zmień nazwę abalone katalog do skin.
  6. Otwórz codebuild-buildspec.yml Plik w sagemaker--modelbuild katalogu i zmodyfikuj ścieżkę potoku uruchamiania z run-pipeline —module-name pipelines.abalone.pipeline (wiersz 15) na następujące:
    run-pipeline --module-name pipelines.skin.pipeline 

  7. Zapisz plik.
  8. Zastąp pliki pipelines.py, preprocess.pyi evaluate.py w katalogu potoków z plikami z Repozytorium GitHub.
    Zbuduj rozwiązanie dla komputerowego klasyfikatora zmian skórnych przy użyciu Amazon SageMaker Pipelines PlatoBlockchain Data Intelligence. Wyszukiwanie pionowe. AI.
  9. Zaktualizuj preprocess.py plik (linie 183-186) z lokalizacją S3 (SKIN_CANCER_BUCKET) i nazwę folderu (SKIN_CANCER_BUCKET_PATH) gdzie przesłałeś dataverse_files.zip archiwum:
    1. skin_cancer_bucket=””
    2. skin_cancer_bucket_path=””
    3. skin_cancer_files=””
    4. skin_cancer_files_ext=””

W poprzednim przykładzie zbiór danych byłby przechowywany pod s3://monai-bucket-skin-cancer/skin_cancer_bucket_prefix/dataverse_files.zip.

Zbuduj rozwiązanie dla komputerowego klasyfikatora zmian skórnych przy użyciu Amazon SageMaker Pipelines PlatoBlockchain Data Intelligence. Wyszukiwanie pionowe. AI.

Uruchom potok

Wypchnięcie zatwierdzonych zmian do repozytorium CodeCommit (wykonane na karcie kontroli źródła Studio) wyzwala nowe uruchomienie potoku, ponieważ Most zdarzeń Amazona monitory zdarzeń dla zatwierdzeń. Możemy monitorować przebieg, wybierając potok wewnątrz projektu SageMaker. Poniższy zrzut ekranu przedstawia przykład potoku, który został pomyślnie uruchomiony.

Zbuduj rozwiązanie dla komputerowego klasyfikatora zmian skórnych przy użyciu Amazon SageMaker Pipelines PlatoBlockchain Data Intelligence. Wyszukiwanie pionowe. AI.

  1. Aby zatwierdzić zmiany, przejdź do sekcji Git w lewym okienku.
  2. Przeprowadź wszystkie istotne zmiany. Nie musisz śledzić -checkpoint plik. Możesz dodać wpis do .gitignore plik z *checkpoint.* ignorować je.
  3. Zatwierdź zmiany, podając podsumowanie oraz swoje imię i nazwisko oraz adres e-mail.
  4. Wciśnij zmiany.
  5. Wróć do projektu i wybierz Rurociągi
  6. Jeśli wybierzesz potoki w toku, pojawią się kroki potoku.
    Umożliwia to monitorowanie aktualnie wykonywanego kroku. Pojawienie się potoku może potrwać kilka minut. Aby potok zaczął działać, kroki zdefiniowane w CI/CD codebuild-buildspec.yml muszą działać pomyślnie. Aby sprawdzić stan tych kroków, możesz użyć Tworzenie kodu AWS. Aby uzyskać więcej informacji, zobacz Tworzenie kodu AWS (AMS SSPS).
  7. Po zakończeniu potoku wróć do strony projektu i wybierz Grupy modeli , aby sprawdzić metadane dołączone do artefaktów modelu.
  8. Jeśli wszystko wygląda dobrze, wybierz Status zakładka i ręcznie zatwierdź model. Domyślnie ModelApprovalStatus jest ustawione na PendingManualApproval. Jeśli nasz model ma dokładność większą niż 60%, jest dodawany do rejestru modeli, ale nie jest wdrażany do momentu zakończenia ręcznego zatwierdzenia.
  9. Nawiguj do Punkty końcowe w konsoli SageMaker, gdzie można zobaczyć tworzony pomostowy punkt końcowy. Po kilku minutach punkt końcowy zostanie wyświetlony z InService stan.
  10. Aby wdrożyć punkt końcowy w środowisku produkcyjnym, na CodePipeline konsoli, wybierz sagemaker--modeldeploy obecnie w toku.
  11. Na koniec DeployStaging fazy, musisz ręcznie zatwierdzić wdrożenie.

Po tym kroku możesz zobaczyć, jak produkcyjny punkt końcowy jest wdrażany w SageMaker Punkty końcowe strona. Po chwili punkt końcowy wyświetla się jako InService.

Zbuduj rozwiązanie dla komputerowego klasyfikatora zmian skórnych przy użyciu Amazon SageMaker Pipelines PlatoBlockchain Data Intelligence. Wyszukiwanie pionowe. AI.

Sprzątać

Możesz łatwo wyczyścić wszystkie zasoby utworzone przez projekt SageMaker.

  1. W okienku nawigacji w Studio wybierz Zasoby SageMaker.
  2. Dodaj Projekty z rozwijanego menu i wybierz swój projekt.
  3. Na Akcje menu, wybierz Usuń aby usunąć wszystkie powiązane zasoby.

Zbuduj rozwiązanie dla komputerowego klasyfikatora zmian skórnych przy użyciu Amazon SageMaker Pipelines PlatoBlockchain Data Intelligence. Wyszukiwanie pionowe. AI.

Wyniki i kolejne kroki

Z powodzeniem wykorzystaliśmy Pipelines do stworzenia kompleksowej struktury MLOps do klasyfikacji zmian skórnych przy użyciu wbudowanego modelu w zestawie danych HAM10000. Dla parametrów podanych w repozytorium uzyskaliśmy na zbiorze testowym następujące wyniki.

metryczny Detaliczność Odwołanie Wynik F1
wartość 0.643 0.8 0.713

Możesz dalej pracować nad poprawą wydajności modelu, dostrajając jego hiperparametry, dodając więcej przekształceń w celu rozszerzenia danych lub używając innych metod, takich jak syntetyczna technika nadpróbkowania mniejszości (SMOTE) lub generatywne sieci przeciwstawne (GAN). Co więcej, możesz użyć własnego modelu lub algorytmu do uczenia, korzystając z wbudowanych obrazów platformy SageMaker Docker lub dostosowując własny kontener do pracy w programie SageMaker. Aby uzyskać więcej informacji, zobacz Używanie kontenerów Docker z SageMaker.

Możesz także dodać dodatkowe funkcje do swojego potoku. Jeśli chcesz uwzględnić monitorowanie, możesz wybrać Szablon MLOps do budowania modeli, szkolenia, wdrażania i monitorowania szablon podczas tworzenia projektu SageMaker. Powstała architektura ma dodatkowy krok monitorowania. Lub jeśli masz istniejące repozytorium Git innej firmy, możesz z niego skorzystać, wybierając Szablon MLOps do budowania modeli, szkolenia i wdrażania z repozytoriami Git innych firm przy użyciu Jenkins projekt i dostarczanie informacji dla repozytoriów budowania i wdrażania modeli. Pozwala to na wykorzystanie dowolnego istniejącego kodu i oszczędza czas i wysiłek związany z integracją między SageMaker i Git. Jednak w przypadku tej opcji a AWS Code Star wymagane jest połączenie.

Wnioski

W tym poście pokazaliśmy, jak stworzyć kompleksowy przepływ pracy ML przy użyciu Studio i automatycznych potoków. Przepływ pracy obejmuje pobieranie zestawu danych, przechowywanie go w miejscu dostępnym dla modelu ML, konfigurowanie obrazu kontenera do wstępnego przetwarzania, a następnie modyfikowanie kodu wzorcowego w celu dostosowania do takiego obrazu. Następnie pokazaliśmy, jak wyzwolić potok, kroki, które wykonuje potok i jak one działają. Omówiliśmy również, jak monitorować wydajność modelu i wdrażać model w punkcie końcowym.

Większość z tych zadań wykonaliśmy w Studio, które działa jako wszechstronne środowisko ML IDE i przyspiesza rozwój i wdrażanie takich modeli.

To rozwiązanie nie jest związane z zadaniem klasyfikacji skóry. Można go rozszerzyć na dowolne zadanie klasyfikacji lub regresji za pomocą dowolnego z wbudowanych algorytmów programu SageMaker lub wstępnie wytrenowanych modeli.


O autorach

Zbuduj rozwiązanie dla komputerowego klasyfikatora zmian skórnych przy użyciu Amazon SageMaker Pipelines PlatoBlockchain Data Intelligence. Wyszukiwanie pionowe. AI. Mariem Kthiri jest konsultantem AI/ML w AWS Professional Services Globals i jest częścią zespołu Health Care and Life Science (HCLS). Pasjonuje się budowaniem rozwiązań ML dla różnych problemów i zawsze chętnie korzysta z nowych możliwości i inicjatyw. Mieszka w Monachium w Niemczech i lubi podróżować i odkrywać inne części świata.

Zbuduj rozwiązanie dla komputerowego klasyfikatora zmian skórnych przy użyciu Amazon SageMaker Pipelines PlatoBlockchain Data Intelligence. Wyszukiwanie pionowe. AI.Yassine Zaafouri jest konsultantem AI/ML w ramach Professional Services w AWS. Umożliwia globalnym klientom korporacyjnym tworzenie i wdrażanie rozwiązań AI/ML w chmurze, aby sprostać wyzwaniom biznesowym. W wolnym czasie lubi grać i oglądać sport oraz podróżować po świecie.

Zbuduj rozwiązanie dla komputerowego klasyfikatora zmian skórnych przy użyciu Amazon SageMaker Pipelines PlatoBlockchain Data Intelligence. Wyszukiwanie pionowe. AI.Fotinosa Kyriakidesa jest inżynierem AI/ML w zakresie usług profesjonalnych w AWS. Pasjonuje go wykorzystywanie technologii do dostarczania wartości klientom i osiągania wyników biznesowych. Baza w Londynie, w wolnym czasie lubi biegać i odkrywać.

Zbuduj rozwiązanie dla komputerowego klasyfikatora zmian skórnych przy użyciu Amazon SageMaker Pipelines PlatoBlockchain Data Intelligence. Wyszukiwanie pionowe. AI.Anna Zapaiszczykowa był konsultantem ProServe w AI/ML oraz członkiem Amazon Healthcare TFC. Pasjonuje się technologią i wpływem, jaki może ona wywrzeć na opiekę zdrowotną. Jej doświadczenie obejmuje tworzenie rozwiązań MLOps i opartych na sztucznej inteligencji rozwiązań problemów klientów w różnych dziedzinach, takich jak ubezpieczenia, motoryzacja i opieka zdrowotna.

Znak czasu:

Więcej z Uczenie maszynowe AWS