Uruchamiaj notatniki jako zadania wsadowe w Amazon SageMaker Studio Lab PlatoBlockchain Data Intelligence. Wyszukiwanie pionowe. AI.

Uruchamiaj notatniki jako zadania wsadowe w Amazon SageMaker Studio Lab

Ostatnio, Studio Amazon SageMaker uruchomiła łatwy sposób uruchamiania notatników jako zadań wsadowych, które mogą być uruchamiane zgodnie z cyklicznym harmonogramem. Laboratorium Amazon SageMaker Studio obsługuje również tę funkcję, umożliwiając uruchamianie notatników opracowanych w SageMaker Studio Lab na koncie AWS. Dzięki temu możesz szybko skalować eksperymenty uczenia maszynowego (ML) z większymi zestawami danych i potężniejszymi instancjami, bez konieczności uczenia się czegoś nowego lub zmiany jednego wiersza kodu.

W tym poście przeprowadzimy Cię przez jednorazowe wymagania wstępne dotyczące połączenia środowiska Studio Lab z kontem AWS. Następnie przeprowadzimy Cię przez kolejne kroki, aby uruchomić notesy jako zadanie wsadowe z Studio Lab.

Omówienie rozwiązania

Studio Lab zawiera to samo rozszerzenie co Studio, które jest oparte na rozszerzeniu typu open source Jupyter dla zaplanowane zeszyty. To rozszerzenie ma dodatkowe parametry specyficzne dla platformy AWS, takie jak typ obliczeń. W Studio Lab zaplanowany notatnik jest najpierw kopiowany do pliku Usługa Amazon Simple Storage (Amazon S3) na swoim koncie AWS, a następnie uruchom w zaplanowanym czasie z wybranym typem obliczeń. Po zakończeniu zadania dane wyjściowe są zapisywane w zasobniku S3, a obliczenia AWS są całkowicie zatrzymywane, co zapobiega bieżącym kosztom.

Wymagania wstępne

Aby korzystać z zadań notesu Studio Lab, potrzebujesz dostępu administracyjnego do konta AWS, z którym chcesz się połączyć (lub pomocy osoby z tym dostępem). W dalszej części tego wpisu zakładamy, że jesteś administratorem AWS, jeśli tak nie jest, poproś swojego administratora lub właściciela konta o omówienie z tobą tych kroków.

Utwórz rolę wykonawczą SageMaker

Musimy upewnić się, że konto AWS ma AWS Zarządzanie tożsamością i dostępem (IAM) Rola wykonawcza SageMaker. Ta rola jest używana przez zasoby SageMaker na koncie i zapewnia dostęp z SageMaker do innych zasobów na koncie AWS. W naszym przypadku nasze zadania notatnika działają z tymi uprawnieniami. Jeśli SageMaker był wcześniej używany na tym koncie, rola może już istnieć, ale może nie mieć wszystkich wymaganych uprawnień. Więc chodźmy dalej i stwórzmy nowy.

Poniższe kroki należy wykonać tylko raz, niezależnie od tego, ile środowisk SageMaker Studio Lab będzie miało dostęp do tego konta AWS.

  1. W konsoli IAM wybierz role w okienku nawigacji.
  2. Dodaj Utwórz rolę.
  3. W razie zamówieenia projektu Zaufany typ podmiotu, Wybierz Usługa AWS.
  4. W razie zamówieenia projektu Przypadki użycia dla innych usług AWSwybierz SageMaker.
  5. Wybierz SageMaker – Wykonanie.
  6. Dodaj Następna.
  7. Przejrzyj uprawnienia, a następnie wybierz Następna.Uruchamiaj notatniki jako zadania wsadowe w Amazon SageMaker Studio Lab PlatoBlockchain Data Intelligence. Wyszukiwanie pionowe. AI.
  8. W razie zamówieenia projektu Nazwa roliwpisz nazwę (dla tego postu używamy sagemaker-execution-role-notebook-jobs).
  9. Dodaj Utwórz rolę.
  10. Zanotuj rolę ARN.

Rola ARN będzie miała format arn:aws:iam::[account-number]:role/service-role/[role-name] i jest wymagany w konfiguracji Studio Lab.

Utwórz użytkownika IAM

Aby środowisko Studio Lab miało dostęp do AWS, musimy utworzyć użytkownika IAM w AWS i nadać mu niezbędne uprawnienia. Następnie musimy utworzyć zestaw kluczy dostępu dla tego użytkownika i udostępnić je środowisku Studio Lab.

Ten krok należy powtórzyć dla każdego środowiska SageMaker Studio Lab, które będzie miało dostęp do tego konta AWS.

Należy pamiętać, że administratorzy i właściciele kont AWS powinni zapewnić przestrzeganie w jak największym stopniu dobrze zaprojektowanych praktyk bezpieczeństwa. Na przykład uprawnienia użytkowników powinny być zawsze ograniczone, a klucze dostępu powinny być regularnie zmieniane, aby zminimalizować wpływ naruszenia poświadczeń.

Na tym blogu pokazujemy, jak używać AmazonSageMakerFullAccess zarządzana polityka. Ta polityka zapewnia szeroki dostęp do Amazon SageMaker, który może wykraczać poza to, co jest wymagane. Szczegóły dot AmazonSageMakerFullAccess można znaleźć tutaj.

Chociaż Studio Lab stosuje zabezpieczenia korporacyjne, należy zauważyć, że poświadczenia użytkownika Studio Lab nie stanowią części Twojego konta AWS, a zatem na przykład nie podlegają Twoim hasłom AWS ani zasadom MFA.

Aby maksymalnie ograniczyć zakres uprawnień, tworzymy profil użytkownika specjalnie dla tego dostępu.

  1. W konsoli IAM wybierz użytkownicy w okienku nawigacji.
  2. Dodaj Dodaj użytkowników.
  3. W razie zamówieenia projektu nazwa użytkownika, wprowadź nazwę. Dobrą praktyką jest używanie nazwy powiązanej z konkretną osobą, która będzie korzystać z tego konta; pomaga to w przeglądaniu dzienników kontroli.
  4. W razie zamówieenia projektu Wybierz typ dostępu do AWS, Wybierz Klucz dostępu – Dostęp programistyczny.
  5. Dodaj Dalej: Uprawnienia.Uruchamiaj notatniki jako zadania wsadowe w Amazon SageMaker Studio Lab PlatoBlockchain Data Intelligence. Wyszukiwanie pionowe. AI.
  6. Dodaj Dołącz istniejące zasady bezpośrednio.
  7. Wyszukaj i wybierz AmazonSageMakerFullAccess.Uruchamiaj notatniki jako zadania wsadowe w Amazon SageMaker Studio Lab PlatoBlockchain Data Intelligence. Wyszukiwanie pionowe. AI.
  8. Wyszukaj i wybierz AmazonEventBridgeFullAccess.Uruchamiaj notatniki jako zadania wsadowe w Amazon SageMaker Studio Lab PlatoBlockchain Data Intelligence. Wyszukiwanie pionowe. AI.
  9. Dodaj Dalej: Tagi.
  10. Dodaj Dalej: Przejrzyj.
  11. Potwierdź swoje zasady, a następnie wybierz Stwórz użytkownika.Uruchamiaj notatniki jako zadania wsadowe w Amazon SageMaker Studio Lab PlatoBlockchain Data Intelligence. Wyszukiwanie pionowe. AI.Ostatnia strona procesu tworzenia użytkownika powinna zawierać klucze dostępu użytkownika. Pozostaw tę kartę otwartą, ponieważ nie możemy tu wrócić, a potrzebujemy tych informacji.
  12. Otwórz nową kartę przeglądarki w Studio Lab.
  13. Na filet menu, wybierz Nowy program uruchamiający, A następnie wybierz terminal.Uruchamiaj notatniki jako zadania wsadowe w Amazon SageMaker Studio Lab PlatoBlockchain Data Intelligence. Wyszukiwanie pionowe. AI.
  14. W wierszu polecenia wprowadź następujący kod:
    aws configure

  15. Wpisz następujący kod:
    1. Wprowadź wartości ze strony konsoli IAM dla identyfikatora klucza dostępu i tajnego klucza dostępu.
    2. W razie zamówieenia projektu Default region name, wchodzić us-west-2.
    3. Pozostawiać Default output format as text.
      (studiolab) studio-lab-user@default:~$ aws configure 
      AWS Access Key ID []: 01234567890
      AWS Secret Access Key []: ABCDEFG1234567890ABCDEFG
      Default region name []: us-west-2
      Default output format [text]: 
      
      (studiolab) studio-lab-user@default:~$

Gratulacje, Twoje środowisko Studio Lab powinno być teraz skonfigurowane do uzyskiwania dostępu do konta AWS. Aby przetestować połączenie, wydaj następującą komendę:

aws sts get-caller-identity

To polecenie powinno zwrócić szczegółowe informacje o użytkowniku IAM skonfigurowanym do używania.

Utwórz zadanie notatnika

Zadania notatników są tworzone przy użyciu notatników Jupyter w Studio Lab. Jeśli notatnik działa w Studio Lab, może działać jako zadanie notatnika (z większą ilością zasobów i dostępem do usług AWS). Jest jednak kilka rzeczy, na które należy zwrócić uwagę.

Jeśli masz zainstalowane pakiety, aby Twój notatnik działał, dodaj polecenia, aby załadować te pakiety w komórce u góry notatnika. Używając symbolu & na początku każdej linii, kod zostanie wysłany do wiersza poleceń w celu uruchomienia. W poniższym przykładzie pierwsza komórka używa pip do zainstalowania bibliotek PyTorch:

%%capture
%pip install torch
%pip install torchvision

Uruchamiaj notatniki jako zadania wsadowe w Amazon SageMaker Studio Lab PlatoBlockchain Data Intelligence. Wyszukiwanie pionowe. AI.

Nasz notatnik wygeneruje przeszkolony model PyTorch. Za pomocą naszego zwykłego kodu zapisujemy model w systemie plików w Studio Labs.

Kiedy uruchamiamy to jako zadanie notatnika, musimy zapisać model w miejscu, w którym będziemy mogli później uzyskać do niego dostęp. Najprostszym sposobem na to jest zapisanie modelu w Amazon S3. Stworzyliśmy wiadro S3, aby zapisać nasze modele i użyć innej komórki wiersza poleceń, aby skopiować obiekt do wiadra.

Uruchamiaj notatniki jako zadania wsadowe w Amazon SageMaker Studio Lab PlatoBlockchain Data Intelligence. Wyszukiwanie pionowe. AI. Uruchamiaj notatniki jako zadania wsadowe w Amazon SageMaker Studio Lab PlatoBlockchain Data Intelligence. Wyszukiwanie pionowe. AI.

Używamy Interfejs wiersza poleceń AWS (AWS CLI) tutaj, aby skopiować obiekt. Mogliśmy również skorzystać z tzw AWS SDK dla Pythona (Boto3) gdybyśmy chcieli mieć bardziej wyrafinowaną lub zautomatyzowaną kontrolę nazwy pliku. Na razie upewnimy się, że zmieniamy nazwę pliku przy każdym uruchomieniu notatnika, aby modele nie zostały nadpisane.

Teraz jesteśmy gotowi do utworzenia zadania notatnika.

  1. Wybierz (kliknij prawym przyciskiem myszy) nazwę notatnika, a następnie wybierz Utwórz zadanie notatnika.Uruchamiaj notatniki jako zadania wsadowe w Amazon SageMaker Studio Lab PlatoBlockchain Data Intelligence. Wyszukiwanie pionowe. AI.
    Jeśli brakuje tej opcji menu, może być konieczne odświeżenie środowiska Studio Lab. Aby to zrobić, otwórz Terminal z programu uruchamiającego i uruchom następujący kod:
    conda deactivate && conda env remove —name studiolab

  2. Następnie uruchom ponownie instancję JupyterLab, wybierając Laboratorium Amazon SageMaker Studio z górnego menu, a następnie wybierz Uruchom ponownie JupyterLab.Alternatywnie przejdź do strony projektu, zamknij i ponownie uruchom środowisko wykonawcze.
  3. Na Utwórz pracę strona dla Typ obliczeniowy, wybierz typ obliczeń, który pasuje do Twojej pracy.

    Aby uzyskać więcej informacji na temat różnych typów mocy obliczeniowej, w tym kosztów, zobacz Cennik Amazon SageMaker (wybierać Ceny na żądanie i przejdź do Trening patka. Może być również konieczne sprawdzenie dostępności przydziału typu obliczeniowego na koncie AWS. Aby uzyskać więcej informacji na temat przydziałów usług, zobacz: Limity usługi AWS.W tym przykładzie wybraliśmy instancję ml.p3.2xlarge, która oferuje 8 procesorów wirtualnych, 61 GB pamięci i procesor graficzny Tesla V100.Uruchamiaj notatniki jako zadania wsadowe w Amazon SageMaker Studio Lab PlatoBlockchain Data Intelligence. Wyszukiwanie pionowe. AI.

    Jeśli na tej stronie nie ma żadnych ostrzeżeń, powinieneś być gotowy do pracy. Jeśli są ostrzeżenia, sprawdź, czy określona jest poprawna rola ARN Dodatkowe funkcje. Ta rola powinna pasować do ARN utworzonej wcześniej roli wykonawczej SageMaker. ARN jest w formacie arn:aws:iam::[account-number]:role/service-role/[role-name].

    W środku dostępne są inne opcje Dodatkowe funkcje; na przykład możesz wybrać konkretny obraz i jądro, które mogą już mieć potrzebną konfigurację bez konieczności instalowania dodatkowych bibliotek.

  4. Jeśli chcesz uruchamiać ten notes zgodnie z harmonogramem, wybierz Działaj zgodnie z harmonogramem i określ, jak często zadanie ma być uruchamiane.Uruchamiaj notatniki jako zadania wsadowe w Amazon SageMaker Studio Lab PlatoBlockchain Data Intelligence. Wyszukiwanie pionowe. AI.Chcemy, aby ten notatnik działał raz, więc wybieramy Biegnij teraz.
  5. Dodaj Stwórz.
    Uruchamiaj notatniki jako zadania wsadowe w Amazon SageMaker Studio Lab PlatoBlockchain Data Intelligence. Wyszukiwanie pionowe. AI.

Lista zadań notebooka

Połączenia Praca z notebookiem zawiera listę wszystkich aktualnie uruchomionych zadań i tych, które były uruchamiane w przeszłości. Możesz znaleźć tę listę w Launcherze (wybierz, filet, Nowy program uruchamiający), następnie wybierz Praca z notebookiem Inne

Uruchamiaj notatniki jako zadania wsadowe w Amazon SageMaker Studio Lab PlatoBlockchain Data Intelligence. Wyszukiwanie pionowe. AI.

Po zakończeniu zadania notatnika zobaczysz zmianę stanu na Completed (Użyj Przeładować opcja w razie potrzeby). Następnie możesz wybrać ikonę pobierania, aby uzyskać dostęp do plików wyjściowych.

Uruchamiaj notatniki jako zadania wsadowe w Amazon SageMaker Studio Lab PlatoBlockchain Data Intelligence. Wyszukiwanie pionowe. AI.

Po pobraniu plików możesz przejrzeć notatnik wraz z danymi wyjściowymi kodu i dziennikiem danych wyjściowych. W naszym przypadku, ponieważ dodaliśmy kod do czasu uruchomienia komórki szkoleniowej, możemy zobaczyć, jak długo trwało zadanie szkoleniowe — 16 minut i 21 sekund, czyli znacznie szybciej niż w przypadku uruchomienia kodu w Studio Lab (1 godzina , 38 minut, 55 sekund). W rzeczywistości cały notebook działał w 1,231 sekund (nieco ponad 20 minut) za cenę poniżej 1.30 USD (USD).

Uruchamiaj notatniki jako zadania wsadowe w Amazon SageMaker Studio Lab PlatoBlockchain Data Intelligence. Wyszukiwanie pionowe. AI.

W może teraz zwiększyć liczbę epok i dostosować hiperparametry, aby poprawić wartość utraty modelu, i przesłać kolejne zadanie notatnika.

Wnioski

W tym poście pokazaliśmy, jak używać zadań notatnika Studio Lab do skalowania kodu opracowanego w Studio Lab i uruchamiania go z większą ilością zasobów na koncie AWS.

Dodając poświadczenia AWS do naszego środowiska Studio Lab, nie tylko możemy uzyskiwać dostęp do zadań notatnika, ale możemy również uzyskiwać dostęp do innych zasobów z konta AWS bezpośrednio z naszych notatników Studio Lab. Spójrz na AWS SDK dla Pythona.

Ta dodatkowa funkcja Studio Lab znosi ograniczenia rodzajów i rozmiarów projektów, które możesz osiągnąć. Daj nam znać, co budujesz dzięki tej nowej funkcji!


O autorach

Uruchamiaj notatniki jako zadania wsadowe w Amazon SageMaker Studio Lab PlatoBlockchain Data Intelligence. Wyszukiwanie pionowe. AI.Mike'a Chambersa jest rzecznikiem programistów ds. sztucznej inteligencji i uczenia maszynowego w AWS. Ostatnie 7 lat spędził pomagając budowniczym w nauce chmury, bezpieczeństwa i ML. Pochodzący z Wielkiej Brytanii Mike jest pasjonatem picia herbaty i konstruktorem klocków Lego.

Uruchamiaj notatniki jako zadania wsadowe w Amazon SageMaker Studio Lab PlatoBlockchain Data Intelligence. Wyszukiwanie pionowe. AI. Michele Monclova jest głównym menedżerem produktu w AWS w zespole SageMaker. Jest rodowitym nowojorczykiem i weteranem Doliny Krzemowej. Pasjonuje się innowacjami, które poprawiają jakość naszego życia.

Znak czasu:

Więcej z Uczenie maszynowe AWS