Klienci AWS polegają na Infrastructure as Code (IaC), aby projektować, rozwijać i zarządzać swoją infrastrukturą chmurową. IaC zapewnia, że infrastruktura i usługi klienta są spójne, skalowalne i powtarzalne, przy jednoczesnym zachowaniu najlepszych praktyk w obszarze działań rozwojowych (DevOps).
Jednym z możliwych podejść do zarządzania infrastrukturą i usługami AWS za pomocą IaC jest: Terraform, który pozwala programistom organizować swoją infrastrukturę w moduły kodu wielokrotnego użytku. Ten aspekt nabiera coraz większego znaczenia w obszarze uczenia maszynowego (ML). Opracowywanie potoków ML i zarządzanie nimi, w tym trenowanie i wnioskowanie za pomocą Terraform jako IaC, umożliwia łatwe skalowanie dla wielu przypadków użycia ML lub regionów bez konieczności tworzenia infrastruktury od podstaw. Ponadto zapewnia spójność infrastruktury (na przykład typ i rozmiar wystąpienia) na potrzeby uczenia i wnioskowania w różnych implementacjach potoku ML. Dzięki temu możesz kierować żądania i ruch przychodzący do różnych Amazon Sage Maker punkty końcowe.
W tym poście pokazujemy, jak wdrożyć i zarządzać potokami ML za pomocą Terraform i Amazon SageMaker.
Omówienie rozwiązania
Ten post zawiera kod i prowadzi przez kroki niezbędne do wdrożenia infrastruktury AWS dla potoków ML za pomocą Terraform do uczenia modeli i wnioskowania przy użyciu Amazon SageMaker. Potok ML jest zarządzany przez Funkcje kroków AWS do organizowania różnych kroków zaimplementowanych w potoku ML, jak pokazano na poniższym rysunku.
Funkcje krokowe uruchamiają się i AWS Lambda funkcja, generująca unikalny identyfikator pracy, który jest następnie używany podczas rozpoczynania pracy szkoleniowej SageMaker. Step Functions tworzy również model, konfigurację punktu końcowego i punkt końcowy używany do wnioskowania. Dodatkowe zasoby obejmują:
- AWS Zarządzanie tożsamością i dostępem (IAM) role i zasady dołączone do zasobów w celu umożliwienia interakcji z innymi zasobami
- Usługa Amazon Simple Storage (Amazon S3) zasobniki do danych treningowych i danych wyjściowych modelu
- An Rejestr elastycznego pojemnika Amazon (Amazon ECR) repozytorium dla Doker obraz zawierający logikę uczenia i wnioskowania
Kod związany z ML do uczenia i wnioskowania z obrazem Dockera opiera się głównie na istniejącej pracy w poniższych Repozytorium GitHub.
Poniższy diagram ilustruje architekturę rozwiązania:
Przeprowadzimy Cię przez następujące etapy wysokiego poziomu:
- Wdróż swoją infrastrukturę AWS za pomocą Terraform.
- Prześlij swój obraz Docker do Amazon ECR.
- Uruchom potok ML.
- Wywołaj swój punkt końcowy.
Struktura repozytorium
Repozytorium zawierające kod i dane użyte w tym poście znajdziesz poniżej Repozytorium GitHub.
Repozytorium zawiera następujące katalogi:
/terraform
– Składa się z następujących podfolderów:./infrastructure
– Zawiera plik main.tf wywołujący moduł potoku ML, oprócz deklaracji zmiennych, których używamy do wdrażania infrastruktury./ml-pipeline-module
– Zawiera moduł potoku Terraform ML, który możemy ponownie wykorzystać
/src
– Składa się z następujących podfolderów:./container
– Zawiera przykładowy kod do szkolenia i wnioskowania z definicjami dla obrazu Docker./lambda_function
– Zawiera kod Pythona do generowania konfiguracji funkcji Lambda, takich jak unikalny identyfikator zadania dla zadania szkoleniowego SageMaker
/data
– Zawiera następujący plik:./iris.csv
– Zawiera dane do trenowania modelu ML
Wymagania wstępne
W tej instrukcji należy spełnić następujące wymagania wstępne:
- Konto AWS
- Terraform wersja 0.13.5 lub nowsza
- Interfejs wiersza poleceń AWS (AWS CLI) wersja 2
- Python 3.7 lub nowszy
- Doker
Wdróż infrastrukturę AWS z Terraform
Aby wdrożyć potok ML, musisz dostosować kilka zmiennych i nazw do swoich potrzeb. Kod tego kroku znajduje się w /terraform
katalogiem.
Podczas inicjalizacji po raz pierwszy otwórz plik terraform/infrastructure/terraform.tfvars
i dostosuj zmienną! Nazwa Projektu do nazwy Twojego projektu, oprócz zmiennej region jeśli chcesz wdrożyć w innym regionie. Możesz także zmienić dodatkowe zmienne, takie jak typy instancji do uczenia i wnioskowania.
Następnie użyj następujących poleceń, aby wdrożyć infrastrukturę za pomocą Terraform:
Sprawdź wyniki i upewnij się, że zaplanowane zasoby pojawiają się poprawnie, i potwierdź tak na etapie aplikowania, jeśli wszystko jest w porządku. Następnie przejdź do konsoli Amazon ECR (lub sprawdź dane wyjściowe Terraform w terminalu) i uzyskaj adres URL repozytorium ECR utworzonego za pomocą Terraform.
Dane wyjściowe powinny wyglądać podobnie do następujących wyświetlanych danych wyjściowych, w tym adres URL repozytorium ECR:
Prześlij swój obraz Dockera do Amazon ECR
Aby potok ML i SageMaker mogły trenować i udostępniać punkt końcowy SageMaker w celu wnioskowania, należy dostarczyć obraz platformy Docker i przechowywać go w Amazon ECR. Możesz znaleźć przykład w katalogu src/container
. Jeśli już zastosowałeś infrastrukturę AWS z poprzedniego kroku, możesz wypchnąć obraz Docker zgodnie z opisem. Po opracowaniu obrazu Docker możesz wykonać następujące czynności i przekazać go do Amazon ECR (dostosuj adres URL Amazon ECR do swoich potrzeb):
Jeśli już zastosowałeś infrastrukturę AWS z Terraform, możesz przesłać zmiany kodu i obrazu Docker bezpośrednio do Amazon ECR bez ponownego wdrażania za pośrednictwem Terraform.
Uruchom potok ML
Aby trenować i uruchamiać potok ML, przejdź do konsoli Step Functions i rozpocznij implementację. Możesz sprawdzić postęp każdego kroku w wizualizacji maszyny stanowej. Możesz także sprawdzić postęp zadania szkoleniowego SageMaker i stan punktu końcowego SageMaker.
Po pomyślnym uruchomieniu maszyny stanów w Step Functions można zobaczyć, że punkt końcowy programu SageMaker został utworzony. W konsoli SageMaker wybierz Wnioskowanie w okienku nawigacji, a następnie Punkty końcowe. Poczekaj, aż status zmieni się na InService.
Wywołaj swój punkt końcowy
Aby wywołać punkt końcowy (w tym przykładzie dla zestawu danych tęczówki), możesz użyć następującego skryptu Pythona z AWS SDK dla Pythona (Boto3). Możesz to zrobić z notatnika SageMaker lub osadzić następujący fragment kodu w funkcji Lambda:
Sprzątać
Infrastrukturę utworzoną przez Terraform można zniszczyć za pomocą polecenia terraform destroy, ale najpierw należy usunąć dane i pliki z zasobników S3. Co więcej, punkt końcowy SageMaker (lub wiele punktów końcowych SageMaker, jeśli jest uruchamiany wiele razy) jest tworzony za pomocą funkcji Step Functions i nie jest zarządzany przez Terraform. Oznacza to, że wdrożenie ma miejsce podczas uruchamiania potoku ML z funkcjami kroków. Dlatego upewnij się, że usuniesz punkt końcowy SageMaker lub punkty końcowe utworzone za pomocą potoku Step Functions ML, aby uniknąć niepotrzebnych kosztów. Wykonaj następujące kroki:
- W konsoli Amazon S3 usuń zestaw danych z zasobnika szkoleniowego S3.
- Usuń wszystkie modele wytrenowane za pomocą potoku ML w zasobniku modeli S3, za pomocą konsoli Amazon S3 lub interfejsu AWS CLI.
- Zniszcz infrastrukturę stworzoną przez Terraform:
- Usuń punkty końcowe SageMaker, konfigurację punktów końcowych i modele utworzone za pomocą funkcji krokowych w konsoli SageMaker lub za pośrednictwem interfejsu AWS CLI.
Wnioski
Gratulacje! Wdrożyłeś potok ML przy użyciu SageMaker z Terraform. To przykładowe rozwiązanie pokazuje, jak łatwo wdrożyć infrastrukturę i usługi AWS dla potoków ML w sposób wielokrotnego użytku. Umożliwia to skalowanie dla wielu przypadków użycia lub regionów oraz umożliwia trenowanie i wdrażanie modeli ML za pomocą jednego kliknięcia w spójny sposób. Ponadto można wielokrotnie uruchamiać potok ML, na przykład, gdy dostępne są nowe dane lub chcesz zmienić kod algorytmu. Możesz także wybrać kierowanie żądań lub ruchu do różnych punktów końcowych SageMaker.
Zachęcam do zapoznania się z dodawaniem funkcji bezpieczeństwa i przyjęciem najlepszych praktyk w zakresie bezpieczeństwa zgodnie z Twoimi potrzebami i potencjalnymi standardami firmy. Ponadto osadzenie tego rozwiązania w potokach CI/CD zapewni dodatkowe możliwości w zakresie przyjmowania i ustanawiania najlepszych praktyk i standardów DevOps zgodnie z Twoimi wymaganiami.
O autorze
Olivera Zollikofera jest analitykiem danych w Amazon Web Services. Umożliwia globalnym klientom korporacyjnym tworzenie, szkolenie i wdrażanie modeli uczenia maszynowego, a także zarządzanie cyklem życia modelu ML za pomocą MLOps. Ponadto buduje i architekci powiązane rozwiązania chmurowe.
- Coinsmart. Najlepsza w Europie giełda bitcoinów i kryptowalut.
- Platoblockchain. Web3 Inteligencja Metaverse. Wzmocniona wiedza. DARMOWY DOSTĘP.
- CryptoJastrząb. Radar Altcoin. Bezpłatna wersja próbna.
- Źródło: https://aws.amazon.com/blogs/machine-learning/deploy-and-manage-machine-learning-pipelines-with-terraform-using-amazon-sagemaker/
- "
- 100
- 7
- dostęp
- Stosownie
- w poprzek
- działania
- dodatek
- Dodatkowy
- algorytm
- Wszystkie kategorie
- już
- Amazonka
- Amazon Web Services
- Inne
- podejście
- architektura
- POWIERZCHNIA
- dostępny
- AWS
- jest
- BEST
- Najlepsze praktyki
- ciało
- granica
- budować
- Buduje
- możliwości
- Etui
- CD
- zmiana
- Dodaj
- Chmura
- infrastruktura chmurowa
- kod
- sukcesy firma
- systemu
- Konsola
- Pojemnik
- zawiera
- Koszty:
- stworzony
- tworzy
- klient
- Klientów
- dane
- naukowiec danych
- rozwijać
- wdrażane
- wdrażanie
- Wdrożenie
- opisane
- Wnętrze
- zniszczyć
- zniszczony
- rozwijać
- rozwinięty
- deweloperzy
- rozwijanie
- oprogramowania
- różne
- bezpośrednio
- Doker
- z łatwością
- umożliwiać
- zachęcać
- Punkt końcowy
- Enterprise
- wszystko
- przykład
- Przede wszystkim system został opracowany
- odkryj
- Moda
- Korzyści
- Postać
- i terminów, a
- pierwszy raz
- obserwuj
- następujący
- funkcjonować
- dalej
- generujący
- Globalne
- mający
- W jaki sposób
- How To
- HTTPS
- tożsamość
- obraz
- realizacja
- realizowane
- znaczenie
- zawierać
- obejmuje
- Włącznie z
- coraz bardziej
- Infrastruktura
- wkład
- wzajemne oddziaływanie
- IT
- Praca
- firmy
- nauka
- Linia
- maszyna
- uczenie maszynowe
- zarządzanie
- zarządzane
- zarządzający
- ML
- model
- modele
- wielokrotność
- Nazwy
- Nawigacja
- niezbędny
- notatnik
- koncepcja
- operacje
- zamówienie
- Inne
- polityka
- możliwy
- potencjał
- projekt
- zapewniać
- zapewnia
- składnica
- zażądać
- wywołań
- wymagania
- Zasoby
- odpowiedź
- Trasa
- run
- bieganie
- skalowalny
- Skala
- Naukowiec
- Sdk
- bezpieczeństwo
- Usługi
- podobny
- Prosty
- Rozmiar
- solidny
- rozwiązanie
- Rozwiązania
- STAGE
- standardy
- początek
- rozpocznie
- Stan
- Rynek
- przechowywanie
- sklep
- Z powodzeniem
- terminal
- w związku z tym
- Przez
- czas
- ruch drogowy
- Trening
- wyjątkowy
- posługiwać się
- wyobrażanie sobie
- czekać
- sieć
- usługi internetowe
- Podczas
- bez
- Praca