Notatniki Jupyter są bardzo preferowane przez analityków danych ze względu na ich zdolność do interaktywnego przetwarzania danych, tworzenia modeli uczenia maszynowego i testowania tych modeli poprzez wyciąganie wniosków na danych. Istnieją jednak scenariusze, w których badacze danych mogą preferować przejście z interaktywnego programowania na notebookach do zadań wsadowych. Przykłady takich przypadków użycia obejmują skalowanie zadania inżynierii funkcji, które zostało wcześniej przetestowane na małym przykładowym zestawie danych w małej instancji notebooka, uruchamianie nocnych raportów w celu uzyskania wglądu w metryki biznesowe oraz ponowne szkolenie modeli uczenia maszynowego zgodnie z harmonogramem w miarę udostępniania nowych danych.
Migracja z programowania interaktywnego na notatnikach do zadań wsadowych wymagała skopiowania fragmentów kodu z notatnika do skryptu, spakowania skryptu wraz ze wszystkimi jego zależnościami do kontenera i zaplanowania uruchomienia kontenera. Aby wielokrotnie uruchamiać to zadanie zgodnie z harmonogramem, trzeba było skonfigurować, skonfigurować i nadzorować infrastrukturę chmury w celu automatyzacji wdrożeń, co skutkowało odwróceniem cennego czasu od podstawowych działań związanych z rozwojem analityki danych.
Aby uprościć proces przechodzenia z notatników interaktywnych do zadań wsadowych, w grudniu 2022 r. Studio Amazon SageMaker i Laboratorium studyjne wprowadzono możliwość uruchamiania notatników jako zaplanowanych zadań przy użyciu przepływów pracy opartych na notatnikach. Możesz teraz używać tych samych możliwości do uruchamiania notatników Jupyter z dowolnego środowiska JupyterLab, takiego jak Amazon Sage Maker instancje notatników i JupyterLab działające na komputerze lokalnym. SageMaker udostępnia rozszerzenie typu open source, które można zainstalować w dowolnym środowisku JupyterLab i używać do uruchamiania notatników jako zadań tymczasowych i zgodnie z harmonogramem.
W tym poście pokażemy, jak uruchomić notatniki z lokalnego środowiska JupyterLab jako zaplanowane zadania notatników w SageMaker.
Omówienie rozwiązania
Architekturę rozwiązania do planowania zadań notatnika z dowolnego środowiska JupyterLab pokazano na poniższym diagramie. Rozszerzenie SageMaker oczekuje, że środowisko JupyterLab będzie miało prawidłowe poświadczenia AWS i uprawnienia do planowania zadań notatnika. Omawiamy kroki konfigurowania poświadczeń i AWS Zarządzanie tożsamością i dostępem (IAM) w dalszej części tego posta. Oprócz użytkownika IAM i przyjętej roli planującej sesję, musisz także zapewnić rolę dla instancji zadania notatnika, która będzie miała przyjmować dostęp do twoich danych w Usługa Amazon Simple Storage (Amazon S3) lub połączyć się z Amazon EMR klastry według potrzeb.
W poniższych sekcjach pokażemy, jak skonfigurować architekturę i zainstalować rozszerzenie typu open source, uruchomić notatnik z konfiguracjami domyślnymi, a także użyć zaawansowanych parametrów do uruchomienia notatnika z ustawieniami niestandardowymi.
Wymagania wstępne
W tym poście zakładamy, że środowisko JupyterLab jest hostowane lokalnie. Możesz wykonać te same kroki instalacji również w przypadku środowiska hostowanego w chmurze.
W poniższych krokach założono, że masz już prawidłowe środowisko Python 3 i JupyterLab (to rozszerzenie działa z JupyterLab v3.0 lub nowszą).
Instalacja Interfejs wiersza poleceń AWS (AWS CLI), jeśli jeszcze go nie masz zainstalowanego. Widzieć Instalowanie lub aktualizowanie najnowszej wersji AWS CLI po instrukcje.
Skonfiguruj poświadczenia uprawnień
Aby przesłać zadania notesu SageMaker, potrzebujesz użytkownika uprawnień lub aktywnej sesji roli uprawnień. Aby skonfigurować poświadczenia IAM, możesz skonfigurować interfejs AWS CLI przy użyciu poświadczeń AWS dla użytkownika IAM lub przyjąć rolę IAM. Aby uzyskać instrukcje dotyczące konfigurowania poświadczeń, zobacz Konfigurowanie interfejsu wiersza polecenia AWS. Podmiot zabezpieczeń IAM (użytkownik lub zakładana rola) potrzebuje następujących uprawnień, aby planować zadania notatnika. Aby dodać polisę do swojego podmiotu zabezpieczeń, zobacz Dodawanie uprawnień tożsamości IAM.
Jeśli zadania Twojego notebooka muszą być szyfrowane za pomocą zarządzanych przez klienta Usługa zarządzania kluczami AWS (AWS KMS), dodaj instrukcję zezwalającą również na dostęp do AWS KMS. Aby zapoznać się z przykładową polityką, zobacz Zainstaluj zasady i uprawnienia dla lokalnych środowisk Jupyter.
Skonfiguruj rolę uprawnień dla instancji zadania notatnika
SageMaker wymaga roli IAM do uruchamiania zadań w imieniu użytkownika, np. uruchamiania zadania notatnika. Ta rola powinna mieć dostęp do zasobów niezbędnych notatnikowi do wykonania zadania, takich jak dostęp do danych w Amazon S3.
Rozszerzenie harmonogramu automatycznie wyszukuje role IAM na koncie AWS z prefiksem SagemakerJupyterScheduler
do uruchamiania zadań notebooka.
Aby utworzyć rolę IAM, utwórz rolę wykonawczą dla Amazon SageMaker z AmazonSageMakerFullAccess
polityka. Nazwij rolę SagemakerJupyterSchedulerDemo
lub podaj nazwę z oczekiwanym przedrostkiem.
Po utworzeniu roli na stronie Relacje zaufania kartę, wybierz Edytuj politykę zaufania. Zastąp istniejącą politykę zaufania następującą polityką:
Połączenia AmazonSageMakerFullAccess
zasady są dość liberalne i są ogólnie preferowane w przypadku eksperymentów i rozpoczynania pracy z SageMaker. Zdecydowanie zachęcamy do utworzenia zasad o minimalnym zakresie dla wszelkich przyszłych obciążeń zgodnie z najlepszymi praktykami w zakresie bezpieczeństwa w zakresie uprawnień. Aby zapoznać się z minimalnym zestawem uprawnień wymaganych dla zadania notesu, zobacz Zainstaluj zasady i uprawnienia dla lokalnych środowisk Jupyter.
Zainstaluj rozszerzenie
Otwórz terminal na komputerze lokalnym i zainstaluj rozszerzenie, uruchamiając następującą komendę:
Po uruchomieniu tego polecenia możesz uruchomić JupyterLab, uruchamiając jupyter lab.
Jeśli instalujesz rozszerzenie z poziomu terminala JupyterLab, zrestartuj serwer Jupyter, aby załadować rozszerzenie. Możesz ponownie uruchomić serwer Jupyter, wybierając zamknąć na filet menu z JupyterLab i uruchamiając JupyterLab z wiersza poleceń, uruchamiając jupyter lab
.
Prześlij zadanie z notesu
Po zainstalowaniu rozszerzenia w środowisku można uruchomić dowolny samodzielny notatnik jako zadanie tymczasowe. Prześlijmy prosty notatnik „Witaj, świecie” do uruchomienia jako zaplanowane zadanie.
- Na filet menu, wybierz Nowości i Notatnik.
- Wprowadź następującą treść:
Po pomyślnym zainstalowaniu rozszerzenia zobaczysz na nim ikonę planowania notatnika.
- Wybierz ikonę, aby utworzyć zadanie notatnika.
Alternatywnie możesz kliknąć notatnik prawym przyciskiem myszy w eksploratorze plików i wybrać Utwórz zadanie notatnika.
- Podaj nazwę zadania, plik wejściowy, typ obliczeń i dodatkowe parametry.
- Pozostałe ustawienia pozostaw domyślne i wybieraj Utwórz.
Po zaplanowaniu zadania nastąpi przekierowanie do Praca z notebookiem na której możesz wyświetlić listę zadań notatnika i ich stan, a także wyświetlić dane wyjściowe notatnika i dzienniki po zakończeniu zadania. Dostęp do tego okna zadań notesu można także uzyskać z poziomu programu uruchamiającego, jak pokazano na poniższym zrzucie ekranu.
Zaawansowane konfiguracje
Z lokalnych zasobów obliczeniowych notebooki automatycznie działają na obrazie języka Python SageMaker Base, który jest oficjalnym obrazem Pythona 3.8 z Docker Hub z dołączonym Boto3 i interfejsem CLI AWS. W rzeczywistych przypadkach badacze danych muszą zainstalować określone pakiety lub platformy dla swoich notatników. Powtarzalne środowisko można uzyskać na trzy sposoby:
- W najprostszej opcji możesz zainstalować pakiety i frameworki bezpośrednio w pierwszej komórce swojego notatnika.
- Możesz także podać skrypt inicjujący w pliku Dodatkowe funkcje sekcji, wskazując na skrypt bash w lokalnej pamięci masowej, który jest uruchamiany przez zadanie notatnika podczas uruchamiania notatnika. W poniższej sekcji pokazujemy przykład użycia skryptów inicjujących do instalacji pakietów.
- Wreszcie, jeśli chcesz maksymalnej elastyczności w konfigurowaniu środowiska uruchomieniowego, możesz zbudować własny niestandardowy obraz za pomocą jądra Python3, wypchnij obraz do Rejestr elastycznego pojemnika Amazon (Amazon ECR) i podaj identyfikator URI obrazu ECR do zadania notebooka w obszarze Dodatkowe funkcje. Obraz ECR powinien spełniać wymagania dotyczące obrazów SageMaker, jak wyszczególniono w Niestandardowe specyfikacje obrazu SageMaker.
Ponadto Twoje przedsiębiorstwo może skonfigurować zabezpieczenia, takie jak uruchamianie zadań w trybie bez Internetu w ramach Amazon VPC, używanie niestandardowej roli o najniższych uprawnieniach dla zadania i wymuszanie szyfrowania. Możesz określić takie konfiguracje dla zadań notesu w pliku Dodatkowe funkcje sekcja również. Aby zapoznać się ze szczegółową listą zaawansowanych konfiguracji, zobacz Dodatkowe funkcje.
Dodaj skrypt inicjujący
Aby zaprezentować skrypt inicjujący, uruchamiamy teraz przykładowy notatnik dla zadań notesu programu Studio dostępnych w witrynie GitHub. Aby uruchomić ten notatnik, musisz zainstalować wymagane pakiety za pomocą skryptu inicjującego. Wykonaj następujące kroki:
- Na terminalu JupyterLab uruchom następujące polecenie, aby pobrać plik:
- Na filet menu, wybierz Nowości i Plik tekstowy.
- Wprowadź następującą zawartość do swojego pliku i zapisz plik pod nazwą
init-script.sh
: - Dodaj
scheduled-example.ipynb
z eksploratora plików, aby otworzyć notatnik. - Wybierz ikonę zadania notatnika, aby zaplanować notatnik, i rozwiń Dodatkowe funkcje
- W razie zamówieenia projektu Lokalizacja skryptu inicjującego, wprowadź pełną ścieżkę skryptu.
Opcjonalnie możesz także dostosować foldery wejściowe i wyjściowe S3 do swojego zadania w notatniku. SageMaker tworzy folder wejściowy w określonej lokalizacji S3 do przechowywania plików wejściowych i tworzy folder wyjściowy S3, w którym przechowywane są dane wyjściowe notatnika. Tutaj możesz określić szyfrowanie, rolę uprawnień i konfiguracje VPC. Widzieć Ograniczenia i rozważania w przypadku niestandardowego obrazu i specyfikacji VPC.
- Na razie po prostu zaktualizuj skrypt inicjujący, wybierz Biegnij teraz dla harmonogramu i wybierz Stwórz.
Po zakończeniu zadania możesz wyświetlić notatnik z wynikami i dziennikiem wyjściowym poniżej Pliki wyjściowe, jak pokazano na poniższym zrzucie ekranu. W dzienniku wyjściowym powinien być widoczny skrypt inicjujący uruchamiany przed uruchomieniem notatnika.
Aby jeszcze bardziej dostosować środowisko pracy notesu, możesz użyć własnego obrazu, podając identyfikator URI ECR niestandardowego obrazu. Jeśli przynosisz własny obraz, upewnij się, że podczas budowania obrazu zainstalowałeś jądro Python3. Aby zapoznać się z przykładowym plikiem Dockerfile, który może uruchomić notatnik przy użyciu TensorFlow, zobacz następujący kod:
Wnioski
W tym poście pokazaliśmy, jak uruchomić notatniki z dowolnego środowiska JupyterLab hostowanego lokalnie jako zadania szkoleniowe SageMaker, korzystając z rozszerzenia harmonogramu SageMaker Jupyter. Możliwość uruchamiania notatników w sposób bezmyślny i zgodnie z harmonogramem znacznie ogranicza niezróżnicowane, ciężkie prace wykonywane przez analityków danych, takie jak refaktoryzacja notatników do skryptów Pythona, konfigurowanie Most zdarzeń Amazona wyzwalacze zdarzeń i tworzenie AWS Lambda funkcje lub potoki SageMaker, aby rozpocząć zadania szkoleniowe. Zadania notesu SageMaker są uruchamiane na żądanie, więc płacisz tylko za czas działania notatnika i możesz skorzystać z rozszerzenia zadań notatnika, aby w dowolnym momencie wyświetlić wyniki pracy notatnika ze środowiska JupyterLab. Zachęcamy do wypróbowania zaplanowanych zadań notebooka i połączenia się z Społeczność uczenia maszynowego i sztucznej inteligencji w serwisie re:Post o opinię!
O autorach
Bhadrinath Pani jest inżynierem ds. rozwoju oprogramowania w Amazon Web Services, pracującym nad interaktywnymi produktami ML Amazon SageMaker, z ponad 12-letnim doświadczeniem w tworzeniu oprogramowania w takich dziedzinach, jak motoryzacja, IoT, AR/VR i wizja komputerowa. Obecnie jego głównym celem jest rozwój narzędzi uczenia maszynowego mających na celu uproszczenie doświadczenia analityków danych. W wolnym czasie lubi spędzać czas z rodziną i odkrywać piękno północno-zachodniego Pacyfiku.
Durga Sury jest Architektem Rozwiązań ML w zespole Amazon SageMaker Service SA. Jej pasją jest udostępnianie uczenia maszynowego wszystkim. W ciągu 4 lat pracy w AWS pomogła skonfigurować platformy AI/ML dla klientów korporacyjnych. Kiedy nie pracuje, uwielbia przejażdżki motocyklem, kryminały i długie spacery ze swoim 5-letnim husky.
- Dystrybucja treści i PR oparta na SEO. Uzyskaj wzmocnienie już dziś.
- PlatoAiStream. Analiza danych Web3. Wiedza wzmocniona. Dostęp tutaj.
- Wybijanie przyszłości w Adryenn Ashley. Dostęp tutaj.
- Kupuj i sprzedawaj akcje spółek PRE-IPO z PREIPO®. Dostęp tutaj.
- Źródło: https://aws.amazon.com/blogs/machine-learning/schedule-your-notebooks-from-any-jupyterlab-environment-using-the-amazon-sagemaker-jupyterlab-extension/
- :ma
- :Jest
- :Gdzie
- $W GÓRĘ
- 100
- 12
- 202
- 2022
- 7
- 77
- 8
- a
- zdolność
- Zdolny
- O nas
- dostęp
- Dostęp do danych
- dostępny
- zgodność
- Konto
- Osiągać
- w poprzek
- Działania
- aktywny
- zajęcia
- Dodaj
- dodatek
- Dodatkowy
- zaawansowany
- Po
- AI
- AI / ML
- wymierzony
- Wszystkie kategorie
- dopuszczać
- Pozwalać
- już
- również
- Amazonka
- Amazon Sage Maker
- Amazon Web Services
- an
- i
- każdy
- AR / VR
- architektura
- SĄ
- AS
- przypuszczalny
- At
- zautomatyzować
- automatycznie
- motoryzacyjny
- dostępny
- z dala
- AWS
- baza
- bash
- BE
- Uroda
- staje się
- zanim
- jest
- BEST
- Najlepsze praktyki
- Blokować
- Bringing
- budować
- Budowanie
- biznes
- by
- CAN
- Etui
- Dodaj
- Wybierając
- Chmura
- infrastruktura chmurowa
- kod
- COM
- społeczność
- kompletny
- obliczać
- komputer
- Wizja komputerowa
- warunek
- konfiguracje
- Skontaktuj się
- Pojemnik
- treść
- rdzeń
- Stwórz
- stworzony
- tworzy
- Tworzenie
- Listy uwierzytelniające
- Obecnie
- zwyczaj
- klient
- Klientów
- dostosować
- dane
- nauka danych
- grudzień
- Domyślnie
- Kreowanie
- wdrożenia
- szczegółowe
- rozwijanie
- oprogramowania
- bezpośrednio
- dyskutować
- Wyświetlacz
- Dywersja
- Doker
- domeny
- nie
- na dół
- pobieranie
- efekt
- zachęcać
- szyfrowane
- szyfrowanie
- Egzekwowanie
- inżynier
- Inżynieria
- zapewnić
- Wchodzę
- Enterprise
- klienci korporacyjni
- Środowisko
- środowiska
- Eter (ETH)
- wydarzenie
- wydarzenia
- wszyscy
- przykład
- przykłady
- egzekucja
- Przede wszystkim system został opracowany
- Rozszerzać
- spodziewany
- oczekuje
- doświadczenie
- badacz
- Exploring
- rozbudowa
- dość
- członków Twojej rodziny
- Cecha
- filet
- Akta
- i terminów, a
- Elastyczność
- Skupiać
- obserwuj
- następujący
- W razie zamówieenia projektu
- Ramy
- Darmowy
- od
- pełny
- Funkcje
- dalej
- przyszłość
- Wzrost
- ogólnie
- miejsce
- bardzo
- miał
- Have
- he
- ciężki
- ciężkie podnoszenie
- pomoc
- pomógł
- jej
- tutaj
- wyższy
- wysoko
- jego
- hostowane
- W jaki sposób
- How To
- Jednak
- HTML
- http
- HTTPS
- Piasta
- IAM
- ICON
- tożsamość
- if
- obraz
- zdjęcia
- importować
- in
- zawierać
- włączony
- Infrastruktura
- wkład
- spostrzeżenia
- zainstalować
- instalacja
- zainstalowany
- Instalacja
- przykład
- instrukcje
- interaktywne
- najnowszych
- wprowadzono
- Internet przedmiotów
- IT
- JEGO
- Praca
- Oferty pracy
- Klawisz
- Klawisze
- laboratorium
- później
- firmy
- nauka
- Modernizacja
- lubić
- Linia
- Lista
- Katalogowany
- załadować
- miejscowy
- lokalnie
- lokalizacja
- log
- długo
- WYGLĄD
- kocha
- maszyna
- uczenie maszynowe
- Główny
- Dokonywanie
- zarządzane
- i konserwacjami
- sposób
- matplotlib
- maksymalny
- Może..
- Menu
- Metryka
- może
- minimum
- ML
- Moda
- modele
- motocykl
- przeniesienie
- Tajemnica
- Nazwa
- Potrzebować
- potrzebne
- wymagania
- Nowości
- notatnik
- laptopy
- już dziś
- tępy
- of
- urzędnik
- on
- tylko
- koncepcja
- open source
- Option
- or
- wydajność
- koniec
- nadzorować
- własny
- Pacyfik
- pakiet
- Pakiety
- pandy
- parametry
- namiętny
- ścieżka
- Zapłacić
- uprawnienia
- Platformy
- plato
- Analiza danych Platona
- PlatoDane
- polityka
- polityka
- Post
- praktyki
- woleć
- Korzystny
- poprzednio
- Główny
- wygląda tak
- Produkty
- zapewniać
- zapewnia
- Naciskać
- Python
- RE
- Prawdziwy świat
- zmniejsza
- Relacje
- pozostały
- WIELOKROTNIE
- obsługi produkcji rolnej, która zastąpiła
- Raporty
- wymagany
- wymagania
- Wymaga
- Zasób
- Zasoby
- wynikły
- przekwalifikowanie
- Kliknij prawym przyciskiem myszy
- Rola
- role
- run
- bieganie
- działa
- SA
- sagemaker
- Rurociągi SageMaker
- taki sam
- Przykładowy zbiór danych
- Zapisz
- skalowaniem
- scenariusze
- rozkład
- zaplanowane
- Zaplanowane zadania
- szeregowanie
- nauka
- Naukowcy
- skrypty
- Szukaj
- Sekcja
- działy
- bezpieczeństwo
- widzieć
- usługa
- Usługi
- Sesja
- zestaw
- ustawienie
- w panelu ustawień
- ona
- powinien
- pokazać
- prezentacja
- pokazał
- pokazane
- Prosty
- upraszczać
- upraszczanie
- po prostu
- mały
- So
- Tworzenie
- rozwoju oprogramowania
- rozwiązanie
- Rozwiązania
- specyficzny
- Specyfikacje
- określony
- Spędzanie
- początek
- rozpoczęty
- Startowy
- rozpocznie
- Zestawienie sprzedaży
- Rynek
- Cel
- przechowywanie
- sklep
- przechowywany
- strongly
- studio
- Zatwierdź
- Z powodzeniem
- taki
- zespół
- tensorflow
- terminal
- test
- że
- Połączenia
- ich
- Tam.
- Te
- to
- trzy
- Przez
- czas
- do
- narzędzia
- Trening
- przejście
- prawdziwy
- Zaufaj
- próbować
- rodzaj
- dla
- Aktualizacja
- aktualizowanie
- URI
- posługiwać się
- używany
- Użytkownik
- za pomocą
- Cenny
- wersja
- Zobacz i wysłuchaj
- wizja
- chcieć
- była
- sposoby
- we
- sieć
- usługi internetowe
- DOBRZE
- jeśli chodzi o komunikację i motywację
- który
- w
- w ciągu
- przepływów pracy
- pracujący
- działa
- lat
- ty
- Twój
- zefirnet