Obecnie wielu klientów AWS buduje na nich gotowe do zastosowania w przedsiębiorstwach platformy uczenia maszynowego (ML). Elastyczna usługa Amazon Kubernetes (Amazon EKS) za pomocą Kubeflow w AWS (dystrybucja Kubeflow specyficzna dla AWS) w wielu przypadkach użycia, w tym widzenia komputerowego, rozumienia języka naturalnego, tłumaczenia mowy i modelowania finansowego.
Z najnowsza wersja otwartego oprogramowania Kubeflow v1.6.1, społeczność Kubeflow nadal wspiera tę masową adaptację Kubeflow do przypadków użycia w przedsiębiorstwach. Najnowsza wersja zawiera wiele nowych, ekscytujących funkcji, takich jak obsługa Kubernetes v1.22, połączony zestaw Python SDK dla PyTorch, MXNet, MPI, XGBoost w rozproszonym operatorze szkoleniowym Kubeflow, nowe ClusterServingRuntime i ServingRuntime CRD do obsługi modeli i wiele innych.
Wkład AWS do Kubeflow wraz z niedawnym uruchomieniem Kubeflow na AWS 1.6.1 obsługuje wszystkie funkcje Kubeflow typu open source i obejmuje wiele nowych integracji z wysoce zoptymalizowanymi, natywnymi dla chmury, gotowymi do zastosowania w przedsiębiorstwach usługami AWS, które pomogą Ci zbudować wysoce niezawodne, bezpieczne, przenośne i skalowalne systemy uczenia maszynowego.
W tym poście omawiamy nowe funkcje Kubeflow w AWS v1.6.1 i podkreślamy trzy ważne integracje, które zostały połączone na jednej platformie, aby zaoferować:
- Infrastruktura jako kod (IaaC) rozwiązanie jednym kliknięciem, które automatyzuje kompleksową instalację Kubeflow, w tym tworzenie klastra EKS
- Obsługa szkoleń rozproszonych nt Amazon Sage Maker za pomocą Operatorzy Amazon SageMaker dla Kubernetes (ACK) i Komponenty SageMaker dla potoków Kubeflow i lokalnie na Kubernetes przy użyciu Operatorzy szkolenia Kubeflow. Wielu klientów korzysta z tej możliwości do tworzenia hybrydowych architektur uczenia maszynowego, w których wykorzystują zarówno obliczenia Kubernetes w fazie eksperymentów, jak i SageMaker do uruchamiania obciążeń na skalę produkcyjną.
- Ulepszone monitorowanie i obserwowalność obciążeń ML, w tym Amazon EKS, metryki Kubeflow i dzienniki aplikacji przy użyciu Prometheus, Grafana i Amazon Cloud Watch integracje
Przypadek użycia w tym blogu skupi się w szczególności na integracji SageMaker z Kubeflow na AWS, którą można dodać do istniejących przepływów pracy Kubernetes, umożliwiając budowanie hybrydowych architektur uczenia maszynowego.
Kubeflow w AWS
Kubeflow w AWS 1.6.1 zapewnia przejrzystą ścieżkę korzystania z Kubeflow, dodając następujące usługi AWS do istniejących możliwości:
- Integracja SageMaker z Kubeflow w celu uruchamiania hybrydowych przepływów pracy ML przy użyciu SageMaker Operators for Kubernetes (ACK) i SageMaker Components for Kubeflow Pipelines.
- Opcje zautomatyzowanego wdrażania zostały ulepszone i uproszczone przy użyciu skryptów Kustomize i wykresów Helm.
- Dodano obsługę wdrożenia Infrastructure as Code (IaC) jednym kliknięciem dla Kubeflow na AWS przy użyciu Terraform dla wszystkich dostępnych opcje wdrażania. Ten skrypt automatyzuje tworzenie następujących zasobów AWS:
- Wsparcie dla Prywatny link AWS dla Amazon S3, umożliwiając użytkownikom regionu niekomercyjnego łączenie się z ich odpowiednimi punktami końcowymi S3.
- Dodano integrację z Usługa zarządzana przez Amazon dla Prometheusa (AMP) i Grafana zarządzana przez Amazon do monitorowania metryk za pomocą Kubeflow na AWS.
- Zaktualizowano kontenery serwerów notebooków Kubeflow o najnowsze obrazy kontenerów głębokiego uczenia oparte na TensorFlow 2.10.0 i PyTorch 1.12.1.
- Integracja z pakietami DLC AWS w celu uruchamiania rozproszonego trening i wnioskowanie obciążenia.
Poniższy diagram architektury to szybki przegląd wszystkich integracji usług (w tym wspomnianych już), które są dostępne dla kontroli Kubeflow i komponentów płaszczyzny danych w Kubeflow na AWS. Płaszczyzna kontrolna Kubeflow jest instalowana na Amazon EKS, która jest zarządzaną usługą kontenerową używaną do uruchamiania i skalowania aplikacji Kubernetes w chmurze. Te integracje usług AWS umożliwiają oddzielenie krytycznych części płaszczyzny kontrolnej Kubeflow od Kubernetes, zapewniając bezpieczny, skalowalny, odporny i zoptymalizowany pod względem kosztów projekt. Aby uzyskać więcej informacji na temat wartości, jaką te integracje usług dodają w stosunku do rozwiązania Kubeflow typu open source, zapoznaj się z artykułem Twórz i wdrażaj skalowalny system uczenia maszynowego na Kubernetes za pomocą Kubeflow na AWS.
Omówmy bardziej szczegółowo, w jaki sposób kluczowe funkcje Kubeflow w AWS 1.6.1 mogą być pomocne dla Twojej organizacji.
Kubeflow w szczegółach funkcji AWS
W wersji Kubeflow 1.6.1 staraliśmy się zapewnić lepsze narzędzia dla różnego rodzaju klientów, które ułatwią rozpoczęcie korzystania z Kubeflow bez względu na wybrane opcje. Te narzędzia stanowią dobry punkt wyjścia i można je modyfikować, aby dokładnie odpowiadały Twoim potrzebom.
Opcje wdrażania
Zapewniamy różne opcje wdrażania dla różnych przypadków użycia klientów. Tutaj możesz wybrać, z którymi usługami AWS chcesz zintegrować swoje wdrożenie Kubeflow. Jeśli zdecydujesz się później zmienić opcje wdrażania, zalecamy wykonanie nowej instalacji dla nowego wdrożenia. Dostępne są następujące opcje wdrażania:
Jeśli chcesz wdrożyć Kubeflow z minimalnymi zmianami, rozważ wanilia opcja wdrożenia. Wszystkie dostępne opcje wdrażania można zainstalować za pomocą Kustomize, Helm lub Terraform.
Oferujemy również różne wdrożenia dodatkowe, które można zainstalować na dowolnej z poniższych opcji wdrażania:
Opcje instalacji
Po podjęciu decyzji, która opcja wdrożenia najlepiej odpowiada Twoim potrzebom, możesz wybrać sposób instalacji tych wdrożeń. Starając się służyć zarówno ekspertom, jak i nowicjuszom, oferujemy różne poziomy automatyzacji i konfiguracji.
Opcja 1: Terraform (IAC)
Spowoduje to utworzenie klastra EKS i wszystkich powiązanych zasobów infrastruktury AWS, a następnie wdrożenie Kubeflow w jednym poleceniu przy użyciu Terraform. Wewnętrznie wykorzystuje to plany EKS i wykresy Helm.
Ta opcja ma następujące zalety:
- Zapewnia przedsiębiorstwom elastyczność w zakresie wdrażania Amazon EKS i Kubeflow za pomocą jednego polecenia bez konieczności martwienia się o określone konfiguracje komponentów Kubeflow. To ogromnie pomoże przyspieszyć ocenę technologii, prototypowanie i cykl rozwoju produktu, zapewniając elastyczność w korzystaniu z modułów terraform i modyfikowaniu ich w celu spełnienia wszelkich potrzeb specyficznych dla projektu.
- Wiele organizacji, dla których Terraform stanowi centrum strategii chmurowej, może teraz korzystać z rozwiązania Kubeflow na platformie AWS Terraform, aby osiągnąć swoje cele związane z chmurą.
Opcja 2: Wykresy Kustomize lub Helm:
Ta opcja umożliwia wdrożenie Kubeflow w dwuetapowym procesie:
- Twórz zasoby AWS, takie jak Amazon EKS, Amazon RDS, Amazon S3 i Amazon Cognito, za pomocą zautomatyzowanych skryptów zawartych w dystrybucji AWS lub ręcznie postępując zgodnie z krok-po-kroku.
- Zainstaluj wdrożenia Kubeflow za pomocą wykresów Helm lub Kustomize.
Ta opcja ma następujące zalety:
- Głównym celem tej opcji instalacji jest zapewnienie konfiguracji Kubernetes związanych z Kubeflow. Dlatego możesz utworzyć lub przenieść istniejące klastry EKS lub dowolne powiązane zasoby AWS, takie jak Amazon RDS, Amazon S3 i Amazon Cognito, oraz skonfigurować je i zarządzać nimi do pracy z Kubeflow na AWS.
- Łatwiej jest przejść z manifestu Kustomize Kubeflow typu open source do dystrybucji AWS Kubeflow.
Poniższy diagram ilustruje architektury obu opcji.
Integracja z SageMakerem
SageMaker to w pełni zarządzana usługa zaprojektowana i zoptymalizowana specjalnie do zarządzania przepływami pracy ML. Eliminuje niezróżnicowane ciężkie zarządzanie infrastrukturą i eliminuje potrzebę inwestowania w IT i DevOps w celu zarządzania klastrami w celu budowania modeli ML, szkolenia i wnioskowania.
Wielu klientów AWS, którzy mają wymagania dotyczące przenośności lub lokalne standardowe ograniczenia, używa Amazon EKS do konfigurowania powtarzalnych potoków ML obsługujących obciążenia szkoleniowe i wnioskowania. Wymaga to jednak od programistów napisania niestandardowego kodu w celu optymalizacji podstawowej infrastruktury uczenia maszynowego, zapewnienia wysokiej dostępności i niezawodności oraz zgodności z odpowiednimi wymogami bezpieczeństwa i przepisami. Dlatego ci klienci chcą używać SageMaker do zoptymalizowanej pod względem kosztów i zarządzanej infrastruktury do szkolenia modeli i wdrożeń oraz nadal używać Kubernetes do orkiestracji i potoków ML, aby zachować standaryzację i przenośność.
Aby zaspokoić tę potrzebę, AWS umożliwia trenowanie, dostrajanie i wdrażanie modeli w SageMaker z Amazon EKS przy użyciu następujących dwóch opcji:
- Amazon SageMaker ACK Operators dla Kubernetes, które są oparte na Kontrolery AWS dla Kubernetes (ACK). ACK to strategia AWS, która wprowadza standaryzację do budowania niestandardowych kontrolerów Kubernetes, które umożliwiają użytkownikom Kubernetes udostępnianie zasobów AWS, takich jak bazy danych lub kolejki komunikatów, po prostu za pomocą interfejsu API Kubernetes. SageMaker ACK Operators ułatwiają programistom ML i analitykom danych, którzy używają Kubernetes jako swojej płaszczyzny kontrolnej, trenowanie, dostrajanie i wdrażanie modeli ML w SageMaker bez konieczności logowania się do konsoli SageMaker.
- Połączenia Komponenty SageMaker dla rurociągów Kubeflow, które pozwalają zintegrować SageMaker z przenośnością i orkiestracją Kubeflow Pipelines. Dzięki komponentom SageMaker każde zadanie w przepływie pracy potoku jest uruchamiane w SageMaker zamiast w lokalnym klastrze Kubernetes. Pozwala to na tworzenie i monitorowanie natywnych zadań szkoleniowych SageMaker, dostrajanie, wdrażanie punktów końcowych i transformację wsadową z potoków Kubeflow, umożliwiając w ten sposób przeniesienie pełnych obliczeń, w tym zadań przetwarzania danych i zadań szkoleniowych, z klastra Kubernetes do usługi zarządzanej SageMaker zoptymalizowanej pod kątem uczenia maszynowego.
Począwszy od Kubeflow na AWS v1.6.1, wszystkie dostępne opcje wdrażania Kubeflow domyślnie łączą obie opcje integracji Amazon SageMaker na jednej platformie. Oznacza to, że możesz teraz przesyłać zadania SageMaker przy użyciu operatorów SageMaker ACK z samego serwera Kubeflow Notebook, przesyłając niestandardowy zasób SageMaker lub z etapu potoku Kubeflow przy użyciu komponentów SageMaker.
Istnieją dwie wersje SageMaker Components – Boto3 (AWS SDK for AWS SDK for Python) komponenty oparte na wersji 1 i komponenty SageMaker Operator for K8s (ACK) oparte na wersji 2. Nowe komponenty SageMaker w wersji 2 obsługują najnowsze interfejsy szkoleniowe SageMaker i będziemy nadal dodawać więcej funkcji SageMaker do tej wersji komponentu. Masz jednak swobodę łączenia komponentów Sagemaker w wersji 2 do celów szkoleniowych i wersji 1 w przypadku innych funkcji SageMaker, takich jak strojenie hiperparametrów, zadania przetwarzania, hosting i wiele innych.
Integracja z Prometheusem i Grafaną
Prometheus to narzędzie do agregacji metryk typu open source, które można skonfigurować do uruchamiania w klastrach Kubernetes. Podczas działania w klastrach Kubernetes główny serwer Prometheus okresowo usuwa punkty końcowe podów.
Komponenty Kubeflow, takie jak Kubeflow Pipelines (KFP) i Notebook, emitują metryki Prometheus, aby umożliwić monitorowanie zasobów komponentów, takich jak liczba uruchomionych eksperymentów lub liczba notatników.
Metryki te mogą być agregowane przez serwer Prometheus działający w klastrze Kubernetes i przeszukiwane przy użyciu Prometheus Query Language (PromQL). Aby uzyskać więcej informacji na temat funkcji obsługiwanych przez Prometheus, sprawdź Dokumentacja Prometeusza.
Dystrybucja Kubeflow w AWS zapewnia obsługę integracji z następującymi usługami zarządzanymi AWS:
- Amazon Managed Prometheus (AMP), czyli Prometheuskompatybilna usługa monitorowania infrastruktury kontenerów i metryk aplikacji dla kontenerów, która ułatwia klientom bezpieczne monitorowanie środowisk kontenerów na dużą skalę. Korzystając z AMP, możesz wizualizować, analizować i alarmować swoje metryki, dzienniki i ślady zebrane z wielu źródeł danych w swoim systemie obserwowalności, w tym AWS, zewnętrznych niezależnych dostawców oprogramowania i innych zasobów w całym portfolio IT.
- Amazon Managed Grafana, w pełni zarządzana i bezpieczna usługa wizualizacji danych oparta na open source grafana projekt, który umożliwia klientom natychmiastowe wyszukiwanie, korelowanie i wizualizację metryk operacyjnych, dzienników i śladów dla ich aplikacji z wielu źródeł danych. Amazon Managed Grafana odciąża zarządzanie operacyjne Grafana poprzez automatyczne skalowanie infrastruktury obliczeniowej i bazy danych wraz ze wzrostem wymagań użytkowania, dzięki automatycznym aktualizacjom wersji i łataniu zabezpieczeń.
Dystrybucja Kubeflow na platformie AWS zapewnia obsługę integracji Amazon Managed Service for Prometheus i Amazon Managed Grafana w celu ułatwienia bezpiecznego pozyskiwania i wizualizacji wskaźników Prometheus na dużą skalę.
Następujące metryki są przetwarzane i można je wizualizować:
- Metryki emitowane z komponentów Kubeflow, takich jak Kubeflow Pipelines i serwer Notebook
- KubeFlow metryki płaszczyzny kontrolnej
Aby skonfigurować Amazon Managed Service dla Prometheus i Amazon Managed Grafana dla klastra Kubeflow, zapoznaj się z Użyj Prometheus, Amazon Managed Service for Prometheus i Amazon Managed Grafana do monitorowania wskaźników za pomocą Kubeflow na AWS.
Omówienie rozwiązania
W tym przypadku używamy waniliowego wdrożenia Kubeflow przy użyciu opcji instalacji Terraform. Po zakończeniu instalacji logujemy się do dashboardu Kubeflow. Z pulpitu nawigacyjnego uruchamiamy serwer notebooków Kubeflow Jupyter w celu zbudowania potoku Kubeflow, który wykorzystuje SageMaker do uruchamiania rozproszonego szkolenia dla modelu klasyfikacji obrazów i punktu końcowego SageMaker do wdrażania modelu.
Wymagania wstępne
Upewnij się, że spełniasz następujące wymagania wstępne:
- Masz Konto AWS.
- Upewnij się, że jesteś w
us-west-2
Region do uruchomienia tego przykładu. - Użyj Google Chrome do interakcji z Konsola zarządzania AWS i Kubeflow.
- Upewnij się, że Twoje konto ma limit typów zasobów SageMaker Training dla ml.p3.2xlarge zwiększony do 2 za pomocą konsoli limitów usług.
- Opcjonalnie możesz użyć Chmura AWS9, zintegrowane środowisko programistyczne (IDE) oparte na chmurze, które umożliwia wykonywanie wszystkich prac z poziomu przeglądarki internetowej. Aby uzyskać instrukcje dotyczące konfiguracji, zobacz Skonfiguruj IDE Cloud9. Wybierz Ubuntu Server 18.04 jako platformę w ustawieniach AWS Cloud9.Następnie ze środowiska AWS Cloud9 wybierz znak plus i otwórz nowy terminal.
Konfigurujesz również plik Interfejs wiersza poleceń AWS (AWS CLI). Aby to zrobić, potrzebujesz identyfikatora klucza dostępu i tajnego klucza dostępu typu an AWS Zarządzanie tożsamością i dostępem (JESTEM) użytkownik konto z uprawnieniami administracyjnymi (dołącz istniejącą zarządzaną politykę) i dostępem programistycznym. Zobacz następujący kod:
Sprawdź uprawnienia, których cloud9 będzie używać do wywoływania zasobów AWS.
Sprawdź na podstawie poniższych danych wyjściowych, czy widzisz arn użytkownika administratora, którego skonfigurowałeś w profilu AWS CLI. W tym przykładzie jest to „użytkownik kubeflow”
Zainstaluj Amazon EKS i Kubeflow na AWS
Aby zainstalować Amazon EKS i Kubeflow na AWS, wykonaj następujące kroki:
- Skonfiguruj swoje środowisko do wdrażania Kubeflow na AWS:
- Wdróż podstawową wersję Kubeflow na AWS i powiązane zasoby AWS, takie jak EKS, używając Terraform. Należy pamiętać, że woluminy EBS używane w grupie węzłów EKS nie są domyślnie szyfrowane:
Skonfiguruj uprawnienia Kubeflow
- Dodaj uprawnienia do poda notebooka i poda komponentu Pipeline, aby wykonywać wywołania api SageMaker, S3 i IAM za pomocą
kubeflow_iam_permissions.sh
skrypt. - Utwórz rolę wykonawczą SageMaker, aby umożliwić zadaniu szkoleniowemu SageMaker dostęp do zestawu danych szkoleniowych z usługi S3 za pomocą
sagemaker_role.sh
skrypt.
Uzyskaj dostęp do pulpitu nawigacyjnego Kubeflow
Aby uzyskać dostęp do pulpitu nawigacyjnego Kubeflow, wykonaj następujące czynności:
- Możesz uruchomić dashboard Kubeflow lokalnie w środowisku Cloud9 bez ujawniania swoich adresów URL w publicznym Internecie, uruchamiając poniższe polecenia.
- Dodaj Podgląd uruchomionej aplikacji.
- Wybierz ikonę w rogu pulpitu nawigacyjnego Kubeflow, aby otworzyć go jako oddzielną kartę w przeglądarce Chrome.
- Wprowadź domyślne poświadczenia (
user@example.com/12341234
), aby zalogować się do pulpitu nawigacyjnego Kubeflow.
Skonfiguruj Kubeflow w środowisku AWS
Po zalogowaniu się do pulpitu nawigacyjnego Kubeflow upewnij się, że masz odpowiednią przestrzeń nazw (kubeflow-user-example-com
) wybrany. Wykonaj następujące kroki, aby skonfigurować środowisko Kubeflow w AWS:
- W panelu Kubeflow wybierz Notebooki w okienku nawigacji.
- Dodaj Nowy notatnik.
- W razie zamówieenia projektu Imię, wchodzić
aws-nb
. - W razie zamówieenia projektu Obraz kwitów Jupyter, wybierz obraz
jupyter-pytorch:1.12.0-cpu-py38-ubuntu20.04-ec2-2022-09-20
(ostatni dostępnyjupyter-pytorch
obraz DLC). - W razie zamówieenia projektu CPU, wchodzić
1
. - W razie zamówieenia projektu Pamięć, wchodzić
5
. - W razie zamówieenia projektu GPU, zostaw jako żaden.
- Nie wprowadzaj żadnych zmian do Workspace i Woluminy danych działy.
- Wybierz Zezwól na dostęp do potoków Kubeflow Konfiguracje sekcję i wybierz opcję Uruchom.
- Sprawdź, czy Twój notes został pomyślnie utworzony (może to potrwać kilka minut).
- Dodaj Skontaktuj się aby zalogować się do JupyterLab.
- Sklonuj repozytorium, wprowadzając
https://github.com/aws-samples/eks-kubeflow-cloudformation-quick-start.git
Sklonuj repozytorium pole. - Dodaj Clone.
Uruchom rozproszony przykład szkoleniowy
Po skonfigurowaniu notatnika Jupyter możesz uruchomić całe demo, wykonując następujące wysokopoziomowe kroki z folderu eks-kubeflow-cloudformation-quick-start/workshop/pytorch-distributed-training
w sklonowanym repozytorium:
- Uruchom skrypt szkoleniowy PyTorch Distributed Data Parallel (DDP). – Zapoznaj się ze skryptem szkoleniowym PyTorch DDP
cifar10-distributed-gpu-final.py
, który obejmuje przykładową konwolucyjną sieć neuronową i logikę do dystrybucji szkolenia w wielowęzłowym klastrze CPU i GPU. - Utwórz potok Kubeflow – Uruchom notatnik
STEP1.0_create_pipeline_k8s_sagemaker.ipynb
aby utworzyć potok, który uruchamia i wdraża modele w SageMaker. Upewnij się, że zainstalowałeś bibliotekę SageMaker jako część pierwszej komórki notatnika i zrestartuj jądro przed uruchomieniem pozostałych komórek notatnika. - Wywołaj punkt końcowy SageMaker – Uruchom notatnik
STEP1.1_invoke_sagemaker_endpoint.ipynb
aby wywołać i przetestować punkt końcowy wnioskowania o modelu SageMaker utworzony w poprzednim notatniku.
W kolejnych sekcjach szczegółowo omawiamy każdy z tych kroków.
Uruchom skrypt szkoleniowy PyTorch DDP
W ramach szkolenia rozproszonego trenujemy model klasyfikacji stworzony przez prostą splotową sieć neuronową działającą na zbiorze danych CIFAR10. Skrypt szkoleniowy cifar10-distributed-gpu-final.py
zawiera tylko biblioteki open-source i jest kompatybilny do uruchamiania zarówno w klastrach szkoleniowych Kubernetes, jak i SageMaker na urządzeniach GPU lub instancjach CPU. Przyjrzyjmy się kilku ważnym aspektom skryptu szkoleniowego, zanim uruchomimy nasze przykłady zeszytów.
Używamy torch.distributed
moduł, który zawiera obsługę PyTorch i prymitywy komunikacji dla wieloprocesowej równoległości między węzłami w klastrze:
Tworzymy prosty model klasyfikacji obrazów przy użyciu kombinacji warstw konwolucyjnych, maksymalnych pul i liniowych, do których a relu
funkcja aktywacji jest stosowana w podaniu do przodu treningu modelu:
Jeśli klaster szkoleniowy ma procesory GPU, skrypt uruchamia szkolenie na urządzeniach CUDA, a zmienna device przechowuje domyślne urządzenie CUDA:
Zanim uruchomisz rozproszone szkolenie przy użyciu PyTorch DistributedDataParallel
aby uruchomić przetwarzanie rozproszone na wielu węzłach, musisz zainicjować środowisko rozproszone, wywołując init_process_group
. Jest to inicjowane na każdym komputerze klastra szkoleniowego.
Tworzymy wystąpienie modelu klasyfikatora i kopiujemy go na urządzenie docelowe. Jeśli szkolenie rozproszone jest włączone w wielu węzłach, DistributedDataParallel
class jest używany jako obiekt opakowujący wokół obiektu modelu, co umożliwia synchroniczne szkolenie rozproszone na wielu komputerach. Dane wejściowe są dzielone na wymiar partii, a replika modelu jest umieszczana na każdej maszynie i każdym urządzeniu. Zobacz następujący kod:
Utwórz potok Kubeflow
Notebook wykorzystuje tzw Pakiet SDK potoków Kubeflow oraz dostarczony zestaw pakietów języka Python do określania i uruchamiania potoków przepływu pracy ML. W ramach tego zestawu SDK używamy dekoratora pakietów języka specyficznego dla domeny (DSL). dsl.pipeline
, który ozdabia funkcje Pythona w celu zwrócenia potoku.
Potok Kubeflow wykorzystuje komponent SageMaker V2 do przesyłania szkoleń do SageMaker przy użyciu SageMaker ACK Operators. Tworzenie i wdrażanie modeli SageMaker wykorzystuje komponent SageMaker V1, który jest komponentem SageMaker opartym na Boto3. W tym przykładzie używamy kombinacji obu komponentów, aby zademonstrować elastyczność wyboru.
- Załaduj komponenty SageMaker, używając następującego kodu:
W poniższym kodzie tworzymy potok Kubeflow, w którym przeprowadzamy rozproszone szkolenie SageMaker przy użyciu dwóch
ml.p3.2xlarge
instancje:Po zdefiniowaniu potoku możesz skompilować potok do specyfikacji Argo YAML za pomocą pakietu Kubeflow Pipelines SDK
kfp.compiler
pakiet. Ten potok można uruchomić przy użyciu klienta Kubeflow Pipelines SDK, który wywołuje punkt końcowy usługi Pipelines i przekazuje odpowiednie nagłówki uwierzytelniania bezpośrednio z notesu. Zobacz następujący kod: - Wybierz Uruchom szczegóły link pod ostatnią komórką, aby wyświetlić potok Kubeflow. Poniższy zrzut ekranu pokazuje szczegóły naszego potoku dla komponentu szkolenia i wdrażania SageMaker.
- Wybierz etap szkolenia i na Dzienniki wybierz link Logi CloudWatch, aby uzyskać dostęp do logów SageMaker.
Poniższy zrzut ekranu przedstawia logi CloudWatch dla każdej z dwóch instancji ml.p3.2xlarge. - Wybierz dowolną grupę, aby zobaczyć dzienniki.
- Przechwyć punkt końcowy SageMaker, wybierając Sagemaker – wdrożenie modelu krok i kopiowanie
endpoint_name
wyjściowa wartość artefaktu.
Wywołaj punkt końcowy SageMaker
Notatnik STEP1.1_invoke_sagemaker_endpoint.ipynb
wywołuje punkt końcowy wnioskowania SageMaker utworzony w poprzednim kroku. Upewnij się, że zaktualizowałeś nazwę punktu końcowego:
Sprzątać
Aby wyczyścić zasoby, wykonaj następujące kroki:
- Uruchom następujące polecenia w AWS Cloud9, aby usunąć zasoby AWS:
- Usuń rolę IAM „
sagemakerrole
” używając następującego polecenia AWS CLI: - Usuń punkt końcowy SageMaker za pomocą następującego polecenia AWS CLI:
Podsumowanie
W tym poście podkreśliliśmy wartość, jaką Kubeflow w AWS 1.6.1 zapewnia dzięki natywnym integracjom usług zarządzanych przez AWS w celu zaspokojenia potrzeb przypadków użycia sztucznej inteligencji i uczenia maszynowego na poziomie przedsiębiorstwa. Możesz wybrać spośród kilku opcji wdrażania, aby zainstalować Kubeflow na AWS z różnymi integracjami usług przy użyciu Terraform, Kustomize lub Helm. Przypadek użycia w tym poście zademonstrował integrację Kubeflow z SageMaker, która używa zarządzanego klastra szkoleniowego SageMaker do uruchamiania rozproszonego szkolenia dla modelu klasyfikacji obrazu i punktu końcowego SageMaker do wdrażania modelu.
Udostępniliśmy również a przykładowy przykład potoku który wykorzystuje najnowsze komponenty SageMaker; możesz uruchomić to bezpośrednio z pulpitu nawigacyjnego Kubeflow. Ten potok wymaga Dane Amazona S3 i SageMaker wykonanie roli IAM jako wymagane dane wejściowe.
Aby rozpocząć korzystanie z Kubeflow w AWS, zapoznaj się z dostępnymi opcjami wdrażania zintegrowanego z AWS w Kubeflow w AWS. Możesz śledzić Repozytorium AWS Labs do śledzenia wszystkich wkładów AWS do Kubeflow. Możesz nas również znaleźć na Kanał Kubeflow #AWS Slack; Twoja opinia pomoże nam ustalić priorytety dla kolejnych funkcji, które wniosą wkład do projektu Kubeflow.
O autorach
Kanwaljit Khurmi jest starszym architektem rozwiązań w Amazon Web Services. Współpracuje z klientami AWS, zapewniając wskazówki i pomoc techniczną, pomagając im podnieść wartość ich rozwiązań podczas korzystania z AWS. Kanwaljit specjalizuje się w pomaganiu klientom w aplikacjach konteneryzowanych i uczących się maszynowo.
Kartika Kalamadiego jest inżynierem rozwoju oprogramowania w Amazon AI. Obecnie koncentruje się na projektach open source Kubernetes Machine Learning, takich jak Kubeflow i AWS SageMaker Controller dla k8s. W wolnym czasie lubię grać w gry komputerowe i bawić się VR na silniku Unity.
Rahula Kharse’a jest inżynierem rozwoju oprogramowania w Amazon Web Services. Jego praca koncentruje się na integracji usług AWS z kontenerowymi platformami ML Ops open source w celu poprawy ich skalowalności, niezawodności i bezpieczeństwa. Oprócz skupiania się na żądaniach klientów dotyczących funkcji, Rahul lubi także eksperymentować z najnowszymi osiągnięciami technologicznymi w tej dziedzinie.
- Zaawansowane (300)
- AI
- ai sztuka
- generator sztuki ai
- masz robota
- Amazon Sage Maker
- sztuczna inteligencja
- certyfikacja sztucznej inteligencji
- sztuczna inteligencja w bankowości
- robot sztucznej inteligencji
- roboty sztucznej inteligencji
- oprogramowanie sztucznej inteligencji
- Uczenie maszynowe AWS
- blockchain
- konferencja blockchain ai
- pomysłowość
- sztuczna inteligencja konwersacyjna
- konferencja kryptograficzna
- Dall's
- głęboka nauka
- google to
- KubeFlow
- uczenie maszynowe
- plato
- Platon Ai
- Analiza danych Platona
- Gra Platona
- PlatoDane
- platogaming
- skala ai
- składnia
- zefirnet