Amazon Sage Maker to w pełni zarządzana usługa uczenia maszynowego (ML). Dzięki SageMaker analitycy danych i programiści mogą szybko i łatwo budować i trenować modele ML, a następnie bezpośrednio wdrażać je w gotowym do produkcji środowisku hostowanym. Sagemaker zapewnia zintegrowaną instancję notatnika Jupyter do tworzenia, zapewniającą łatwy dostęp do źródeł danych w celu eksploracji i analizy, dzięki czemu nie musisz zarządzać serwerami. Zapewnia również popularne algorytmy uczenia maszynowego, które są zoptymalizowane pod kątem wydajnego działania w przypadku bardzo dużych danych w środowisku rozproszonym.
SageMaker wymaga, aby dane szkoleniowe dla modelu ML były obecne w Amazon Simple Storage Service (Amazon S3), Amazon Elastic File System (Amazon EFS) lub Amazon FSx for Luster (więcej informacji zawiera Access Training Data). Aby wytrenować model przy użyciu danych przechowywanych poza trzema obsługiwanymi usługami magazynowania, dane muszą najpierw zostać pozyskane do jednej z tych usług (zwykle Amazon S3). Wymaga to zbudowania potoku danych (przy użyciu narzędzi takich jak Pogromca danych Amazon SageMaker), aby przenieść dane do Amazon S3. Jednak takie podejście może stwarzać wyzwania związane z zarządzaniem danymi w zakresie zarządzania cyklem życia tego nośnika danych, tworzenia kontroli dostępu, audytu danych itd., a wszystko to w celu przygotowania danych szkoleniowych na czas trwania zadania szkoleniowego. W takich sytuacjach może być pożądane, aby dane były dostępne dla SageMaker na efemerycznych nośnikach pamięci dołączonych do efemerycznych instancji szkoleniowych bez pośredniego przechowywania danych w Amazon S3.
Ten post pokazuje, jak to zrobić za pomocą Snowflake jako źródło danych i pobierając dane bezpośrednio z Snowflake do instancji zadania SageMaker Training.
Omówienie rozwiązania
Używamy Zbiór danych mieszkaniowych w Kalifornii jako zestaw danych szkoleniowych dla tego postu i wytrenuj model ML, aby przewidywać medianę wartości domu dla każdej dzielnicy. Dodajemy te dane do Snowflake jako nową tabelę. Tworzymy niestandardowy kontener szkoleniowy, który pobiera dane bezpośrednio z tabeli Snowflake do instancji szkoleniowej, zamiast najpierw pobierać dane do zasobnika S3. Po pobraniu danych do instancji szkoleniowej niestandardowy skrypt szkoleniowy wykonuje zadania przygotowania danych, a następnie trenuje model ML przy użyciu Estymator XGBoost. Cały kod dla tego posta jest dostępny w GitHub repo.
Poniższy rysunek przedstawia architekturę wysokiego poziomu proponowanego rozwiązania do używania Snowflake jako źródła danych do uczenia modeli ML za pomocą SageMaker.
Kroki przepływu pracy są następujące:
- Skonfiguruj notatnik SageMaker i AWS Zarządzanie tożsamością i dostępem (IAM) z odpowiednimi uprawnieniami, aby umożliwić dostęp SageMaker Rejestr elastycznego pojemnika Amazon (Amazon ECR), Secrets Manager i inne usługi w ramach Twojego konta AWS.
- Przechowuj poświadczenia konta Snowflake w AWS Secrets Manager.
- Pozyskuj dane z tabeli na swoim koncie Snowflake.
- Utwórz niestandardowy obraz kontenera do szkolenia modeli ML i prześlij go do Amazon ECR.
- Uruchom zadanie SageMaker Training do trenowania modelu ML. Instancja szkoleniowa pobiera poświadczenia płatka śniegu z programu Secrets Manager, a następnie używa tych poświadczeń do bezpośredniego pobrania zestawu danych z płatka śniegu. Jest to krok, który eliminuje konieczność wcześniejszego pobrania danych do zasobnika S3.
- Przeszkolony model ML jest przechowywany w zasobniku S3.
Wymagania wstępne
Aby wdrożyć rozwiązanie podane w tym poście, powinieneś mieć plik Konto AWS, A Konto płatka śniegu i znajomość SageMakera.
Skonfiguruj notatnik SageMaker i rolę IAM
Używamy AWS CloudFormation do stworzenia notatnika SageMaker o nazwie aws-aiml-blogpost-sagemaker-snowflake-example
i rola IAM o nazwie SageMakerSnowFlakeExample
, Wybierać Uruchom stos dla regionu, w którym chcesz rozmieścić zasoby.
Przechowuj poświadczenia Snowflake w Secrets Manager
Przechowuj dane uwierzytelniające płatka śniegu jako sekret w Menedżerze sekretów. Aby uzyskać instrukcje dotyczące tworzenia wpisu tajnego, zobacz Create an AWS Secrets Manager secret
.
- Nazwij sekret
snowflake_credentials
. Jest to wymagane, ponieważ kod wsnowflake-load-dataset.ipynb
oczekuje, że sekret będzie tak się nazywał. - Utwórz klucz tajny jako parę klucz-wartość z dwoma kluczami:
- nazwa użytkownika – Twoja nazwa użytkownika Snowflake.
- password – Hasło powiązane z Twoją nazwą użytkownika Snowflake.
Pozyskuj dane z tabeli na swoim koncie Snowflake
Aby pozyskać dane, wykonaj następujące kroki:
- W konsoli SageMaker wybierz Notebooki w okienku nawigacji.
- Wybierz notatnik aws-aiml-blogpost-sagemaker-snowflake-example i wybierz Otwórz JupyterLab.
- Dodaj
snowflake-load-dataset.ipynb
aby otworzyć go w JupyterLab. Ten notatnik pochłonie Zbiór danych mieszkaniowych w Kalifornii do stołu Snowflake. - W notatniku edytuj zawartość następującej komórki, aby zastąpić wartości zastępcze wartościami pasującymi do Twojego konta płatka śniegu:
- W menu Uruchom wybierz Uruchom wszystkie komórki aby uruchomić kod w tym notatniku. Spowoduje to pobranie zestawu danych lokalnie do notesu, a następnie pobranie go do tabeli Snowflake.
Poniższy fragment kodu w notesie pozyskuje zestaw danych do płatka śniegu. Zobacz snowflake-load-dataset.ipynb
notatnik dla pełnego kodu.
- Zamknij notatnik po uruchomieniu wszystkich komórek bez żadnych błędów. Twoje dane są teraz dostępne w Snowflake. Poniższy zrzut ekranu pokazuje
california_housing
tabela utworzona w Snowflake.
Uruchom sagemaker-snowflake-example.ipynb
notatnik
Ten notatnik tworzy niestandardowy kontener szkoleniowy z połączeniem Snowflake, wyodrębnia dane z Snowflake do efemerycznego magazynu instancji szkoleniowej bez umieszczania ich w Amazon S3 i przeprowadza na danych model szkolenia Distributed Data Parallel (DDP) XGBoost. Szkolenie DDP nie jest wymagane do szkolenia modeli na tak małym zbiorze danych; jest on zawarty tutaj, aby zilustrować kolejną niedawno wydaną funkcję SageMaker.
Utwórz niestandardowy kontener na potrzeby szkolenia
Teraz tworzymy niestandardowy kontener dla zadania szkolenia modelu ML. Pamiętaj, że do utworzenia kontenera Docker wymagane są uprawnienia administratora. Ten notatnik SageMaker został wdrożony z włączonym dostępem administratora. Jeśli zasady organizacji Twojej firmy nie zezwalają na dostęp administratora do zasobów w chmurze, możesz użyć następujących plików Docker i skryptów powłoki, aby zbudować kontener Docker w innym miejscu (na przykład na swoim laptopie), a następnie przesłać go do Amazon ECR. Korzystamy z kontenera opartego na obrazie kontenera SageMaker XGBoost 246618743249.dkr.ecr.us-west-2.amazonaws.com/sagemaker-xgboost:1.5-1
z następującymi dodatkami:
- Połączenia Złącze płatka śniegu dla Pythona aby pobrać dane z tabeli Snowflake do instancji szkoleniowej.
- Skrypt w języku Python do łączenia się z Secrets Manager w celu pobrania poświadczeń Snowflake.
Korzystanie z łącznika Snowflake i skryptu w języku Python zapewnia, że użytkownicy korzystający z tego obrazu kontenera na potrzeby szkolenia modelu uczenia maszynowego nie muszą pisać tego kodu w ramach swojego skryptu szkoleniowego i mogą korzystać z tej funkcji, która jest już dla nich dostępna.
Poniżej znajduje się plik Docker dla kontenera szkoleniowego:
Obraz kontenera jest tworzony i przesyłany do Amazon ECR. Ten obraz jest używany do uczenia modelu ML.
Wytrenuj model ML za pomocą zadania szkoleniowego SageMaker
Po pomyślnym utworzeniu obrazu kontenera i przesłaniu go do Amazon ECR możemy zacząć używać go do szkolenia modeli.
- Tworzymy zestaw skryptów Pythona do pobierania danych z Snowflake przy użyciu Złącze płatka śniegu dla Pythona, przygotuj dane, a następnie użyj
XGBoost Regressor
trenować model ML. Jest to etap pobierania danych bezpośrednio do instancji szkoleniowej, który pozwala uniknąć konieczności używania Amazon S3 jako pośredniego magazynu danych szkoleniowych. - Ułatwiamy szkolenie w zakresie rozproszonych danych równoległych, ponieważ kod szkoleniowy pobiera losowy podzbiór danych, tak aby każda instancja szkoleniowa pobierała taką samą ilość danych z płatka śniegu. Na przykład, jeśli istnieją dwa węzły szkoleniowe, każdy węzeł pobiera losową próbkę 50% wierszy w tabeli Snowflake. Zobacz następujący kod:
- Następnie dostarczamy skrypt szkoleniowy do SageMaker SDK
Estimator
wraz z katalogiem źródłowym, aby wszystkie tworzone przez nas skrypty mogły zostać dostarczone do kontenera szkoleniowego, gdy zadanie szkoleniowe jest uruchamiane przy użyciuEstimator.fit
metoda:Aby uzyskać więcej informacji, zobacz Przygotuj skrypt szkoleniowy Scikit-Learn.
- Po zakończeniu szkolenia modelu wyszkolony model jest dostępny jako plik
model.tar.gz
plik w domyślnym zasobniku SageMaker dla regionu:
Możesz teraz wdrożyć przeszkolony model do uzyskiwania wnioskowania na temat nowych danych! Aby uzyskać instrukcje, patrz Utwórz punkt końcowy i wdróż swój model.
Sprzątać
Aby uniknąć naliczania przyszłych opłat, usuń zasoby. Możesz to zrobić, usuwając szablon CloudFormation używany do tworzenia roli IAM i notatnika SageMaker.
Będziesz musiał ręcznie usunąć zasoby Snowflake z konsoli Snowflake.
Wnioski
W tym poście pokazaliśmy, jak pobrać dane przechowywane w tabeli Snowflake do instancji zadania SageMaker Training i wytrenować model XGBoost przy użyciu niestandardowego kontenera szkoleniowego. Takie podejście pozwala nam bezpośrednio zintegrować Snowflake jako źródło danych z notebookiem SageMaker bez umieszczania danych w Amazon S3.
Zachęcamy do pogłębienia wiedzy poprzez eksplorację Zestaw SDK Amazon SageMaker dla Pythona i zbudowanie rozwiązania przy użyciu przykładowej implementacji podanej w tym poście oraz zbioru danych odpowiedniego dla Twojej firmy. Jeśli masz pytania lub sugestie, zostaw komentarz.
O autorach
Amit Arora jest architektem specjalizującym się w AI i ML w Amazon Web Services, pomagając klientom korporacyjnym w korzystaniu z usług uczenia maszynowego opartych na chmurze w celu szybkiego skalowania ich innowacji. Jest także adiunktem w programie MS Data Science and Analytics na Uniwersytecie Georgetown w Waszyngtonie
Divya Muralidharan jest architektem rozwiązań w Amazon Web Services. Pasjonuje się pomaganiem klientom korporacyjnym w rozwiązywaniu problemów biznesowych za pomocą technologii. Ma tytuł magistra informatyki uzyskany w Rochester Institute of Technology. Poza biurem spędza czas na gotowaniu, śpiewaniu i uprawie roślin.
Siergiej Ermolin jest głównym architektem rozwiązań AIML w AWS. Wcześniej był architektem rozwiązań programowych do głębokiego uczenia się, analiz i technologii big data w firmie Intel. Siergiej, weteran Doliny Krzemowej z pasją do uczenia maszynowego i sztucznej inteligencji, interesuje się sieciami neuronowymi od czasów sprzed ery GPU, kiedy używał ich do przewidywania starzenia się kryształów kwarcu i cezowych zegarów atomowych w firmie Hewlett-Packard. Sergey posiada certyfikat MSEE i CS ze Stanford oraz tytuł licencjata z fizyki i inżynierii mechanicznej z California State University w Sacramento. Poza pracą Siergiej lubi winiarstwo, jazdę na nartach, jazdę na rowerze, żeglarstwo i nurkowanie. Siergiej jest także pilotem-wolontariuszem Anioł Lot.
- Dystrybucja treści i PR oparta na SEO. Uzyskaj wzmocnienie już dziś.
- Platoblockchain. Web3 Inteligencja Metaverse. Wzmocniona wiedza. Dostęp tutaj.
- Źródło: https://aws.amazon.com/blogs/machine-learning/use-snowflake-as-a-data-source-to-train-ml-models-with-amazon-sagemaker/
- :Jest
- $W GÓRĘ
- 1
- 10
- 7
- 8
- a
- O nas
- dostęp
- dostępny
- Konto
- wzbogacenie
- Po
- przed
- Starzenie się
- AI
- AIML
- Algorytmy
- Wszystkie kategorie
- pozwala
- już
- Amazonka
- Amazona FSx
- Amazon Sage Maker
- Amazon Web Services
- ilość
- analiza
- analityka
- i
- Inne
- podejście
- właściwy
- architektura
- SĄ
- sztuczny
- sztuczna inteligencja
- AS
- powiązany
- At
- audytu
- autoring
- dostępny
- AWS
- Tworzenie chmury AWS
- baza
- na podstawie
- BE
- bo
- Duży
- Big Data
- budować
- Budowanie
- wybudowany
- biznes
- by
- California
- nazywa
- CAN
- Komórki
- świadectwo
- wyzwanie
- Opłaty
- Dodaj
- Sprzątanie
- Zegary
- Chmura
- kod
- Kolumna
- kolumny
- komentarz
- wspólny
- kompletny
- komputer
- Computer Science
- Skontaktuj się
- połączenie
- Konsola
- Pojemnik
- zawiera
- treść
- kontroli
- Stwórz
- stworzony
- tworzy
- Tworzenie
- Listy uwierzytelniające
- zwyczaj
- Klientów
- dane
- zarządzanie danymi
- Przygotowywanie danych
- nauka danych
- przechowywanie danych
- data i godzina
- Dni
- DDP
- Decydowanie
- głęboko
- głęboka nauka
- Domyślnie
- Stopień
- rozwijać
- wdrażane
- deweloperzy
- bezpośrednio
- dystrybuowane
- dzielnica
- Doker
- nie
- pobieranie
- pliki do pobrania
- każdy
- z łatwością
- skutecznie
- bądź
- eliminuje
- gdzie indziej
- włączony
- zachęcać
- Punkt końcowy
- Inżynieria
- zapewnia
- Enterprise
- Środowisko
- błąd
- przykład
- wykonać
- istnieje
- oczekuje
- eksploracja
- Exploring
- Wyciągi
- niezwykle
- ułatwiać
- sprawiedliwy
- Znajomość
- Cecha
- Postać
- filet
- finał
- i terminów, a
- dopasować
- następujący
- następujący sposób
- W razie zamówieenia projektu
- od
- pełny
- w pełni
- Funkcjonalność
- przyszłość
- otrzymać
- miejsce
- GitHub
- będzie
- Rozwój
- Have
- mający
- pomoc
- tutaj
- na wysokim szczeblu
- posiada
- hostowane
- gospodarze
- dom
- obudowa
- W jaki sposób
- How To
- Jednak
- HTML
- HTTPS
- tożsamość
- obraz
- wdrożenia
- realizacja
- importować
- in
- zawierać
- włączony
- wskaźnik
- Informacja
- innowacje
- zainstalować
- przykład
- Instytut
- instrukcje
- integrować
- zintegrowany
- Intel
- Inteligencja
- zainteresowany
- IT
- Praca
- Klawisze
- laptopa
- duży
- Nazwisko
- UCZYĆ SIĘ
- nauka
- Pozostawiać
- wifecycwe
- ln
- lokalnie
- maszyna
- uczenie maszynowe
- zarządzanie
- zarządzane
- i konserwacjami
- kierownik
- zarządzający
- ręcznie
- dopasowywanie
- mechaniczny
- Media
- średni
- Menu
- metoda
- ML
- model
- modele
- jeszcze
- ruch
- MS
- Nazwa
- Nawigacja
- Potrzebować
- wymagania
- sieci
- sieci neuronowe
- Nowości
- Następny
- węzeł
- węzły
- notatnik
- numer
- przedmiot
- of
- Biurowe
- on
- ONE
- koncepcja
- zoptymalizowane
- zamówienie
- organizacja
- Inne
- zewnętrzne
- pakiet
- pandy
- chleb
- Parallel
- część
- pasja
- namiętny
- Hasło
- wykonuje
- uprawnienia
- Fizyka
- pilot
- rurociąg
- zastępczy
- Rośliny
- plato
- Analiza danych Platona
- PlatoDane
- polityka
- zaludniony
- Post
- przewidzieć
- Przygotować
- teraźniejszość
- poprzednio
- Główny
- problemy
- Program
- zaproponowane
- zapewniać
- pod warunkiem,
- zapewnia
- cel
- Naciskać
- popychany
- Python
- pytania
- szybko
- przypadkowy
- szybko
- raczej
- Czytaj
- niedawno
- dokumentacja
- zmniejsza
- region
- wydany
- obsługi produkcji rolnej, która zastąpiła
- reprezentuje
- wymagany
- Wymaga
- Zasoby
- powrót
- Rola
- korzeń
- RZĄD
- run
- Sacramento
- sagemaker
- żeglarstwo
- Zapisz
- Skala
- nauka
- Naukowcy
- nauka-scikit
- skrypty
- Sdk
- Tajemnica
- Serwery
- usługa
- Usługi
- zestaw
- Shape
- Powłoka
- powinien
- Targi
- znaczący
- Krzem
- Silicon Valley
- Prosty
- ponieważ
- sytuacje
- mały
- So
- Tworzenie
- rozwiązanie
- Rozwiązania
- ROZWIĄZANIA
- Źródło
- Źródła
- Typ przestrzeni
- specjalista
- inscenizacja
- początek
- Stan
- Zestawienie sprzedaży
- Ewolucja krok po kroku
- Cel
- przechowywanie
- przechowywany
- podsieci
- Z powodzeniem
- taki
- wsparcie
- Utrzymany
- system
- stół
- zadania
- Technologies
- Technologia
- szablon
- REGULAMIN
- że
- Połączenia
- Źródło
- ich
- Im
- Te
- trzy
- Przez
- czas
- do
- narzędzia
- Kwota produktów:
- Pociąg
- przeszkolony
- Trening
- pociągi
- zazwyczaj
- uniwersytet
- Aktualizacja
- us
- posługiwać się
- Użytkownik
- Użytkownicy
- Dolina
- wartość
- Wartości
- weteran
- wolontariusz
- Waszyngton
- Droga..
- sieć
- usługi internetowe
- który
- KIM
- będzie
- w
- w ciągu
- bez
- Praca
- napisać
- XGBoost
- You
- Twój
- zefirnet