Twórz projekty Amazon SageMaker z potokami CI/CD do budowania obrazów

Węzeł źródłowy: 1876821

Projekty Amazon SageMaker jest Katalog usług AWS udostępniane produkty, które umożliwiają łatwe tworzenie kompleksowych rozwiązań w zakresie uczenia maszynowego (ML). Projekty SageMaker dają organizacjom możliwość korzystania z szablonów, które ładują rozwiązania ML dla użytkowników, aby przyspieszyć czas rozpoczęcia programowania ML.

Możesz teraz używać projektów SageMaker do zarządzania niestandardowymi zależnościami za pomocą potoku ciągłej integracji i ciągłego dostarczania obrazu (CI/CD), który jest dostępny jako własny szablon w witrynie Studio Amazon SageMaker. Ta nowa funkcja zapewnia programistom elastyczność w aktualizowaniu obrazów używanych do uczenia, przetwarzania i wnioskowania poprzez zmianę plików kontenerów w repozytoriach kontroli źródła projektu, co automatycznie uruchamia potok tworzenia obrazów. Szablon wykorzystuje Zatwierdzenie kodu AWS jako repozytorium kodu. Nowo utworzone obrazy można wykorzystać w formacie a Potok SageMaker do przetwarzania, uczenia i wnioskowania.

Nowe opcje szablonów są teraz dostępne za pośrednictwem pakietu SageMaker Python SDK lub w środowisku Studio IDE, jak pokazano na poniższym zrzucie ekranu.

Nowy szablon wykorzystuje AWS Code Pipeline do tworzenia i przesyłania obrazów Amazon ECR a następnie uruchom potok SageMaker, który trenuje model i rejestruje go w pliku Rejestr modeli SageMaker. Po umieszczeniu modelu w rejestrze modelu status modelu można zaktualizować do zatwierdzonego, co wyzwala proces wdrażania modelu za pośrednictwem CodePipeline.

Omówienie rozwiązania

Poniższy diagram architektoniczny nie obejmuje repozytoriów CodeCommit dla kodu budowania modelu i wdrażania modelu. W nowym szablonie nacisk położony jest na funkcje budowania wizerunku.

Używamy nowego szablonu projektu MLOps do budowania obrazu CI/CD w celu udostępnienia i skonfigurowania następujących zasobów, które zostaną omówione bardziej szczegółowo w dalszej części tego wpisu:

  • Repozytoria kodu SageMaker – Szablon projektu tworzy zestaw pięciu repozytoriów CodeCommit. Trzy z tych repozytoriów zawierają kod do tworzenia obrazów używanych do przetwarzania, uczenia i wnioskowania. Zawierają kod początkowy, który możesz zmienić, aby dostosować swój obraz. Istnieje repozytorium kodu szkoleniowego modelu korzystającego z potoku SageMaker oraz repozytorium kodu wdrażania modelu wykorzystującego Tworzenie chmury AWS i CodePipeline. Za pomocą interfejsu użytkownika możesz wybrać obrazy, które chcesz zbudować w ramach potoku CI/CD, i zostaną utworzone tylko te repozytoria.
  • Repozytoria Amazon ECR – Tworzone są repozytoria Amazon ECR do celów uczenia, przetwarzania i wnioskowania.
  • Wyzwalacze budowania i wdrażania modelu - Most zdarzeń Amazona tworzone są reguły w celu uruchomienia potoku CodePipeline budowania modelu na podstawie zmian stanu Amazon ECR. Automatyzuje to proces wyzwalania potoku SageMaker, gdy nowe wersje kontenerów są budowane i przesyłane do Amazon ECR. Potok CodePipeline wdrażania modelu jest skonfigurowany tak, aby był wyzwalany przez EventBridge, gdy stan modelu w rejestrze modeli zmieni się na zatwierdzony.
  • Łyżka MLOps S3 - An Usługa Amazon Simple Storage Wiadro (Amazon S3) dla potoku MLOps jest używane do danych wejściowych i artefaktów Twojego projektu i potoku.

Całość czynności związanych z udostępnianiem i konfiguracją wymaganych do skonfigurowania kompleksowego potoku CI/CD przy użyciu tych zasobów jest automatycznie wykonywana przez projekty SageMaker.

Teraz, gdy omówiliśmy, jak działa nowa funkcja, przejrzyjmy jednorazowe zadania konfiguracyjne, a następnie skorzystaj z nowych szablonów.

Utwórz nowy projekt SageMaker

Aby utworzyć projekt SageMaker, wykonaj następujące kroki:

  1. W konsoli Studio wybierz Zasoby SageMaker.
  2. Z menu rozwijanego wybierz Projekty.
  3. Dodaj Utwórz projekt.
  4. W razie zamówieenia projektu Szablony projektów SageMakerwybierz Szablon MLOps do budowania obrazu, budowania modelu i wdrażania modelu.
  5. Dodaj Wybierz szablon projektu.
  6. Aby skonfigurować proces budowania obrazu, musisz podać kilka parametrów:
    1. Uwzględnij potok tworzenia obrazu przetwarzania – Generuje to infrastrukturę CI/CD służącą do przetwarzania obrazu. Obejmuje to potok CodePipeline, zadanie CodeBuild, repozytorium Amazon ECR i obraz SageMaker.
    2. Uwzględnij potok tworzenia obrazu wnioskowania – Generuje to infrastrukturę CI/CD budującą obraz na potrzeby obrazu wnioskowanego. Obejmuje to potok CodePipeline, zadanie CodeBuild, repozytorium Amazon ECR i obraz SageMaker.
    3. Uwzględnij potok tworzenia obrazu szkoleniowego – Generuje to obraz budujący infrastrukturę CI/CD dla obrazu szkoleniowego. Obejmuje to potok CodePipeline, zadanie CodeBuild, repozytorium Amazon ECR i obraz SageMaker.
    4. Typ środowiska – Typ środowiska używanego przez CodeBuild podczas budowania obrazu.
    5. Typ obliczeniowy – Wartość typu obliczeń dla środowiska kompilacji używanego przez CodeBuild.
    6. Nazwa tagu kontenera – Znacznik obrazu kontenera. To jest tag Dockera, a nie tag AWS.
  7. Dodaj Utwórz projekt.

Pojawi się komunikat wskazujący, że SageMaker udostępnia i konfiguruje zasoby.

Po zakończeniu projektu otrzymasz komunikat o pomyślnym zakończeniu.

Twój projekt jest teraz wymieniony na liście Projekty lista.

  1. Klonuj każde repozytorium, wybierając klon repozytorium… w interfejsie Studio.

Ten szablon projektu tworzy pięć repozytoriów CodeCommit:

  • sagemaker-image-building-cicd-demo-project-p-1jrh7jnlz3lx-processing-imagebuild
  • sagemaker-image-building-cicd-demo-project-p-1jrh7jnlz3lx-inference-imagebuild
  • sagemaker-image-building-cicd-demo-project-p-1jrh7jnlz3lx-modelbuild
  • sagemaker-image-building-cicd-demo-project-p-1jrh7jnlz3lx-training-imagebuild
  • sagemaker-image-building-cicd-demo-project-p-1jrh7jnlz3lx-modeldeploy

Po sklonowaniu wszystkich pięciu repozytoriów stają się one dostępne w interfejsie użytkownika Studio.

Repozytorium budowania wizerunku

W tym przykładzie wygenerowaliśmy wszystkie trzy repozytoria służące do tworzenia obrazów. W tej sekcji możesz zobaczyć strukturę repozytorium i dowiedzieć się, jak można je zaktualizować, aby spełniało Twoje niestandardowe wymagania.

Każde z repozytoriów tworzenia obrazów ma tę samą strukturę, jak pokazano na poniższym zrzucie ekranu.

Obraz utworzony w tym repozytorium jest prostym obrazem XGBoost, ale zgodnie z tą strukturą plik Dockerfile można zaktualizować, aby dopasować go do przypadku użycia, nad którym pracujesz. The codebuild-buildspec.yml plik służy do skonfigurowania CodeBuild, aby można było zbudować obraz i przesłać go do Amazon ECR.

Możesz przejść do konsoli CodeBuild, aby zobaczyć status skompilowanych obrazów.

Potoki CodePipeline powiązane z każdym repozytorium działają automatycznie podczas tworzenia projektu. Nowe kompilacje są wyzwalane, gdy zmiany są wypychane do repozytorium. Obrazy możesz zobaczyć na konsoli Amazon ECR.

Kiedy nowy kod jest przesyłany do dowolnego repozytorium tworzenia obrazów, rozpoczyna się projekt CodeBuild, po czym tworzona jest nowa wersja obrazu i przekazywana do Amazon ECR. Tworzony jest zestaw reguł EventBridge w celu automatyzacji każdego etapu przepływu pracy ML. W tym nowym szablonie tworzona jest reguła w EventBridge, która uruchamia potok budowania modelu, gdy nowa wersja kontenera jest przekazywana do Amazon ECR.

Docelowy potok budowania modelu rozpoczyna uruchamianie potoku SageMaker.

Zaktualizuj plik Dockerfile

W tej sekcji pokazujemy, jak aktualizacja pliku Dockerfile w jednym z repozytoriów uruchamia proces CodeBuild, który tworzy i wypycha nową wersję obrazu do Amazon ECR oraz uruchamiany potok ML.

  1. Zaktualizuj plik Dockerfile.
  2. Wciśnij kod do CodeCommit.
  3. Przejdź do CodeBuild, aby sprawdzić, czy tworzona jest nowa wersja obrazu.

Poniższe zrzuty ekranu zawierają dzienniki etapu CodeBuild, który kompiluje się do kontenera przy użyciu zaktualizowanego pliku Dockerfile wypchniętego do repozytorium.

Wersja obrazu przesyłana do Amazon ECR uruchamia potok SageMaker w repozytorium kompilacji modelu.

Model można przeglądać i zatwierdzać w rejestrze modeli, podobnie jak w przypadku innych szablonów MLOps w SageMaker Studio.

Podsumowanie

W tym poście omówiliśmy nowy szablon projektu SageMaker MLOps do budowania obrazu CI/CD. Dzięki strukturze udostępnionej w szablonie możesz modyfikować pliki Dockerfile, aby dopasować je do swojego przypadku użycia, utworzyć niestandardowy szablon z większą liczbą repozytoriów tworzenia obrazów lub utworzyć niestandardowe reguły automatycznego wyzwalania potoku. Wypróbuj i daj nam znać, jeśli masz jakieś pytania, w sekcji komentarzy!


O autorze

Kirita Thadaki jest Architektem Rozwiązań ML pracującym w zespole Amazon SageMaker Service SA. Przed dołączeniem do AWS Kirit pracował w start-upach zajmujących się sztuczną inteligencją na wczesnym etapie rozwoju, a następnie doradzał na różnych stanowiskach w badaniach nad sztuczną inteligencją, MLOps i kierownictwie technicznym.

Źródło: https://aws.amazon.com/blogs/machine-learning/create-amazon-sagemaker-projects-with-image-building-ci-cd-pipelines/

Znak czasu:

Więcej z Blog dotyczący uczenia maszynowego AWS