Buduj i trenuj modele ML przy użyciu architektury siatki danych na AWS: Część 2 PlatoBlockchain Data Intelligence. Wyszukiwanie pionowe. AI.

Buduj i trenuj modele ML przy użyciu architektury siatki danych w AWS: część 2

Jest to druga część serii, która przedstawia cykl życia uczenia maszynowego (ML) za pomocą wzorca projektowania siatki danych dla dużego przedsiębiorstwa z wieloma liniami biznesowymi (LOB) i Centrum Doskonałości (CoE) dla analityki i ML.

In część 1, zajęliśmy się personą stewarda danych i zaprezentowaliśmy konfigurację siatki danych z wieloma kontami producentów i konsumentów danych AWS. Aby uzyskać przegląd kontekstu biznesowego i kroki, aby skonfigurować siatkę danych z Formacja AWS Lake i zarejestrować produkt danych, patrz część 1.

W tym poście zwracamy się do zespołu analityki i platformy ML jako konsumenta w siatce danych. Zespół platformy tworzy środowisko ML dla analityków danych i pomaga im uzyskać dostęp do niezbędnych produktów danych w siatce danych. Analitycy danych w tym zespole używają Amazon Sage Maker budowa i szkolenie modelu predykcji ryzyka kredytowego z wykorzystaniem produktu danych o wspólnym ryzyku kredytowym z LoB bankowości konsumenckiej.

Kod tego przykładu jest dostępny na GitHub.

Konsument Analytics i ML w architekturze siatki danych

Przypomnijmy architekturę wysokiego poziomu, która wyróżnia kluczowe komponenty architektury siatki danych.

W bloku producenta danych 1 (po lewej) znajduje się etap przetwarzania danych zapewniający, że udostępniane dane są dobrze kwalifikowane i nadzorowane. Centralny blok zarządzania danymi 2 (w środku) działa jako scentralizowany katalog danych z metadanymi różnych zarejestrowanych produktów danych. Blok konsumenta danych 3 (po prawej) żąda dostępu do zestawów danych z katalogu centralnego oraz wysyła zapytania i przetwarza dane w celu budowania i trenowania modeli ML.

Dzięki SageMaker naukowcy zajmujący się danymi i programiści w ML CoE mogą szybko i łatwo tworzyć i trenować modele ML, a następnie bezpośrednio wdrażać je w hostowanym środowisku gotowym do produkcji. SageMaker zapewnia łatwy dostęp do źródeł danych w celu ich eksploracji i analizy, a także zapewnia wspólne algorytmy i struktury ML, które są zoptymalizowane pod kątem wydajnej pracy z bardzo dużymi danymi w środowisku rozproszonym. Rozpoczęcie pracy jest łatwe Studio Amazon SageMaker, internetowe zintegrowane środowisko programistyczne (IDE), uzupełniając domenę SageMaker Proces wdrażania. Aby uzyskać więcej informacji, zapoznaj się z Przewodnik dla programistów Amazon SageMaker.

Wykorzystanie produktu danych przez analityków i ML CoE

Poniższy diagram architektury opisuje kroki wymagane przez analityka i konsumenta usługi ML CoE, aby uzyskać dostęp do zarejestrowanego produktu danych w centralnym katalogu danych i przetworzyć dane w celu zbudowania i przeszkolenia modelu ML.

Buduj i trenuj modele ML przy użyciu architektury siatki danych na AWS: Część 2 PlatoBlockchain Data Intelligence. Wyszukiwanie pionowe. AI.

Przepływ pracy składa się z następujących elementów:

  1. Zarządca danych producenta zapewnia dostęp na koncie centralnym do bazy danych i tabeli do konta konsumenta. Baza danych jest teraz odzwierciedlana jako udostępniona baza danych na koncie konsumenta.
  2. Administrator konsumenta tworzy łącze zasobu na koncie konsumenta do bazy danych udostępnianej przez konto centralne. Poniższy zrzut ekranu pokazuje przykład na koncie klienta, z rl_credit-card będąc linkiem do zasobów credit-card Baza danych.
    Buduj i trenuj modele ML przy użyciu architektury siatki danych na AWS: Część 2 PlatoBlockchain Data Intelligence. Wyszukiwanie pionowe. AI.
    Buduj i trenuj modele ML przy użyciu architektury siatki danych na AWS: Część 2 PlatoBlockchain Data Intelligence. Wyszukiwanie pionowe. AI.
  3. Administrator klienta zapewnia Studio AWS Zarządzanie tożsamością i dostępem Dostęp do roli wykonywania (IAM) do połączonej bazy danych zasobów i tabeli zidentyfikowanej w tagu Lake Formation. W poniższym przykładzie administrator klienta przydzielony do roli wykonawczej SageMaker ma uprawnienia dostępu rl_credit-card oraz tabelę spełniającą wyrażenie znacznika Lake Formation.
    Buduj i trenuj modele ML przy użyciu architektury siatki danych na AWS: Część 2 PlatoBlockchain Data Intelligence. Wyszukiwanie pionowe. AI.
  4. Po przypisaniu roli wykonawczej naukowcy ds. danych w SageMaker mogą używać Amazonka Atena do wysyłania zapytań do tabeli za pośrednictwem bazy danych łączy zasobów w Lake Formation.
    1. Do eksploracji danych mogą używać notatników Studio do przetwarzania danych za pomocą interaktywnych zapytań za pośrednictwem Athena.
    2. W przypadku przetwarzania danych i inżynierii funkcji mogą uruchamiać zadania przetwarzania SageMaker ze źródłem danych Athena i przesyłać wyniki z powrotem do Usługa Amazon Simple Storage (Amazonka S3).
    3. Po przetworzeniu danych i udostępnieniu ich w Amazon S3 na koncie ML CoE, analitycy danych mogą używać zadań szkoleniowych SageMaker do trenowania modeli i Rurociągi SageMaker do automatyzacji procesów tworzenia modeli.
    4. Analitycy danych mogą również używać rejestru modeli SageMaker do rejestrowania modeli.

Eksploracja danych

Poniższy diagram ilustruje przepływ pracy eksploracji danych na koncie konsumenta danych.

Buduj i trenuj modele ML przy użyciu architektury siatki danych na AWS: Część 2 PlatoBlockchain Data Intelligence. Wyszukiwanie pionowe. AI.

Konsument zaczyna od zapytania o próbkę danych z credit_risk stół z Ateną w zeszycie Studio. Podczas wyszukiwania danych przez Athena wyniki pośrednie są również zapisywane w Amazon S3. Możesz użyć Biblioteka AWS Data Wrangler aby uruchomić zapytanie w Athenie w notatniku Studio w celu eksploracji danych. Poniższy przykład kodu pokazuje jak zapytać Atenę aby pobrać wyniki jako ramkę danych do eksploracji danych:

df= wr.athena.read_sql_query('SELECT * FROM credit_card LIMIT 10;', database="rl_credit-card", ctas_approach=False)

Teraz, gdy masz podzbiór danych jako ramkę danych, możesz rozpocząć eksplorację danych i zobaczyć, jakie aktualizacje inżynierii funkcji są potrzebne do uczenia modelu. Przykład eksploracji danych przedstawia poniższy zrzut ekranu.

Buduj i trenuj modele ML przy użyciu architektury siatki danych na AWS: Część 2 PlatoBlockchain Data Intelligence. Wyszukiwanie pionowe. AI.

Podczas wykonywania zapytania do bazy danych można wyświetlić dzienniki dostępu z konsoli Lake Formation, jak pokazano na poniższym zrzucie ekranu. Te dzienniki zawierają informacje o tym, kto lub która usługa korzystała z usługi Lake Formation, w tym o roli uprawnień i czasie dostępu. Zrzut ekranu pokazuje dziennik dotyczący dostępu SageMakera do stołu credit_risk w kleju AWS przez Athena. W dzienniku możesz zobaczyć dodatkowy kontekst kontroli zawierający identyfikator zapytania zgodny z identyfikatorem zapytania w Athena.

Buduj i trenuj modele ML przy użyciu architektury siatki danych na AWS: Część 2 PlatoBlockchain Data Intelligence. Wyszukiwanie pionowe. AI.

Poniższy zrzut ekranu przedstawia identyfikator przebiegu zapytania Athena, który jest zgodny z identyfikatorem zapytania z poprzedniego dziennika. Pokazuje dane, do których uzyskano dostęp za pomocą zapytania SQL. Możesz zobaczyć, jakie dane zostały przeszukane, przechodząc do konsoli Athena, wybierając Ostatnie zapytania kartę, a następnie wyszukaj identyfikator uruchomienia, który pasuje do identyfikatora zapytania z dodatkowego kontekstu inspekcji.

Buduj i trenuj modele ML przy użyciu architektury siatki danych na AWS: Część 2 PlatoBlockchain Data Intelligence. Wyszukiwanie pionowe. AI.

Przetwarzanie danych

Po eksploracji danych możesz chcieć wstępnie przetworzyć cały duży zestaw danych na potrzeby inżynierii funkcji przed uczeniem modelu. Poniższy diagram ilustruje procedurę przetwarzania danych.

Buduj i trenuj modele ML przy użyciu architektury siatki danych na AWS: Część 2 PlatoBlockchain Data Intelligence. Wyszukiwanie pionowe. AI.

W tym przykładzie używamy zadania przetwarzania SageMaker, w którym definiujemy definicję zestawu danych Athena. Zadanie przetwarzania wysyła zapytanie do danych za pośrednictwem Athena i wykorzystuje skrypt do podziału danych na zestawy danych treningowych, testowych i walidacyjnych. Wyniki zadania przetwarzania są zapisywane w Amazon S3. Aby dowiedzieć się, jak skonfigurować zadanie przetwarzania za pomocą Athena, zobacz Użyj Amazon Athena w pracy przetwarzania z Amazon SageMaker.

W tym przykładzie możesz użyć Pythona SDK do wyzwolenia zadania przetwarzania za pomocą frameworka Scikit-learn. Przed uruchomieniem możesz skonfigurować parametr wejść aby uzyskać dane wejściowe za pośrednictwem definicji zestawu danych Athena, jak pokazano w poniższym kodzie. Zestaw danych zawiera lokalizację pobierania wyników z Ateny do kontenera przetwarzania oraz konfigurację zapytania SQL. Po zakończeniu zadania przetwarzania wyniki są zapisywane w Amazon S3.

AthenaDataset = AthenaDatasetDefinition (
  catalog = 'AwsDataCatalog', 
  database = 'rl_credit-card', 
  query_string = 'SELECT * FROM "rl_credit-card"."credit_card""',                                
  output_s3_uri = 's3://sagemaker-us-east-1-********7363/athenaqueries/', 
  work_group = 'primary', 
  output_format = 'PARQUET')

dataSet = DatasetDefinition(
  athena_dataset_definition = AthenaDataset, 
  local_path='/opt/ml/processing/input/dataset.parquet')


sklearn_processor.run(
    code="processing/preprocessor.py",
    inputs=[ProcessingInput(
      input_name="dataset", 
      destination="/opt/ml/processing/input", 
      dataset_definition=dataSet)],
    outputs=[
        ProcessingOutput(
            output_name="train_data", source="/opt/ml/processing/train", destination=train_data_path
        ),
        ProcessingOutput(
            output_name="val_data", source="/opt/ml/processing/val", destination=val_data_path
        ),
        ProcessingOutput(
            output_name="model", source="/opt/ml/processing/model", destination=model_path
        ),
        ProcessingOutput(
            output_name="test_data", source="/opt/ml/processing/test", destination=test_data_path
        ),
    ],
    arguments=["--train-test-split-ratio", "0.2"],
    logs=False,
)

Trening modeli i rejestracja modeli

Po wstępnym przetworzeniu danych możesz trenować model za pomocą wstępnie przetworzonych danych zapisanych w Amazon S3. Poniższy diagram ilustruje proces uczenia modelu i rejestracji.

Buduj i trenuj modele ML przy użyciu architektury siatki danych na AWS: Część 2 PlatoBlockchain Data Intelligence. Wyszukiwanie pionowe. AI.

W przypadku zadań eksploracji danych i przetwarzania SageMaker można pobrać dane z siatki danych za pośrednictwem Athena. Chociaż interfejs API SageMaker Training nie zawiera parametru do konfiguracji źródła danych Athena, możesz wysyłać zapytania do danych za pośrednictwem Athena w samym skrypcie szkoleniowym.

W tym przykładzie wstępnie przetworzone dane są teraz dostępne w Amazon S3 i mogą być używane bezpośrednio do trenowania modelu XGBoost w trybie skryptu SageMaker. Możesz podać skrypt, hiperparametry, typ wystąpienia i wszystkie dodatkowe parametry potrzebne do pomyślnego uczenia modelu. Możesz uruchomić estymator SageMaker za pomocą danych uczących i walidacyjnych w Amazon S3. Po zakończeniu szkolenia modelu można zarejestrować model w rejestrze modeli programu SageMaker w celu śledzenia eksperymentu i wdrażania na koncie produkcyjnym.

estimator = XGBoost(
    entry_point=entry_point,
    source_dir=source_dir,
    output_path=output_path,
    code_location=code_location,
    hyperparameters=hyperparameters,
    instance_type="ml.c5.xlarge",
    instance_count=1,
    framework_version="0.90-2",
    py_version="py3",
    role=role,
)

inputs = {"train": train_input_data, "validation": val_input_data}

estimator.fit(inputs, job_name=job_name)

Następne kroki

Możesz wprowadzać przyrostowe aktualizacje rozwiązania, aby spełnić wymagania dotyczące aktualizacji danych i ponownego szkolenia modelu, automatycznego usuwania danych pośrednich w Amazon S3 oraz integracji magazynu funkcji. Omówimy każdy z nich bardziej szczegółowo w kolejnych sekcjach.

Aktualizacje danych i wyzwalacze ponownego uczenia modelu

Poniższy diagram ilustruje proces aktualizacji danych uczących i wyzwalania ponownego uczenia modelu.

Buduj i trenuj modele ML przy użyciu architektury siatki danych na AWS: Część 2 PlatoBlockchain Data Intelligence. Wyszukiwanie pionowe. AI.

Proces obejmuje następujące kroki:

  1. Producent danych regularnie aktualizuje produkt danych przy użyciu nowego schematu lub dodatkowych danych.
  2. Po ponownym zarejestrowaniu produktu danych w centralnym katalogu danych generuje to Amazon Cloud Watch wydarzenie z formacji Lake.
  3. Zdarzenie CloudWatch wyzwala AWS Lambda funkcja synchronizacji zaktualizowanego produktu danych z kontem klienta. Możesz użyć tego wyzwalacza, aby odzwierciedlić zmiany danych, wykonując następujące czynności:
    1. Uruchom ponownie robota indeksującego AWS Glue.
    2. Uruchom ponowne uczenie modelu, jeśli dane przekroczą określony próg.

Aby uzyskać więcej informacji na temat konfigurowania potoku wdrażania SageMaker MLOps w celu wykrywania dryfu, zapoznaj się z Wykrywanie dryfu Amazon SageMaker Repozytorium GitHub.

Automatyczne usuwanie danych pośrednich w Amazon S3

Możesz automatycznie usuwać dane pośrednie generowane przez zapytania Athena i przechowywane w Amazon S3 na koncie konsumenta w regularnych odstępach czasu za pomocą reguł cyklu życia obiektów S3. Aby uzyskać więcej informacji, zobacz Zarządzanie cyklem życia pamięci masowej.

Integracja ze sklepem funkcji SageMaker

Sklep z funkcjami SageMaker jest specjalnie stworzony dla ML i może przechowywać, odkrywać i udostępniać wybrane funkcje używane w przepływach pracy szkolenia i przewidywania. Magazyn funkcji może działać jako scentralizowany interfejs między różnymi zespołami producentów danych i LoB, umożliwiając wykrywanie funkcji i ponowne wykorzystanie przez wielu konsumentów. Magazyn funkcji może działać jako alternatywa dla centralnego katalogu danych w opisanej wcześniej architekturze siatki danych. Aby uzyskać więcej informacji na temat wzorców architektury dla wielu kont, zobacz Włącz ponowne wykorzystanie funkcji na kontach i zespołach za pomocą Amazon SageMaker Feature Store.

Wnioski

W tej dwuczęściowej serii pokazaliśmy, jak można budować i trenować modele ML za pomocą wielokontowej architektury siatki danych w AWS. Opisaliśmy wymagania typowej organizacji świadczącej usługi finansowe z wieloma LoBs i ML CoE oraz zilustrowaliśmy architekturę rozwiązania za pomocą Lake Formation i SageMaker. Posłużyliśmy się przykładem produktu danych ryzyka kredytowego zarejestrowanego w Lake Formation przez LoB bankowości konsumenckiej i udostępnionego przez zespół ML CoE w celu przeszkolenia modelu ML ryzyka kredytowego za pomocą SageMaker.

Każde konto producenta danych definiuje produkty danych, które są nadzorowane przez osoby, które rozumieją dane oraz ich kontrolę dostępu, użycie i ograniczenia. Produkty danych i korzystające z nich domeny aplikacji są ze sobą połączone, tworząc siatkę danych. Architektura siatki danych umożliwia zespołom ML wykrywanie i dostęp do tych wyselekcjonowanych produktów danych.

Lake Formation umożliwia wielokontowy dostęp do metadanych wykazu danych i danych źródłowych. Za pomocą usługi Lake Formation można utworzyć wielokontową architekturę siatki danych. SageMaker zapewnia platformę ML z kluczowymi funkcjami związanymi z zarządzaniem danymi, eksperymentowaniem z nauką o danych, szkoleniem modeli, hostingiem modeli, automatyzacją przepływu pracy i potokami CI/CD na potrzeby produkcji. Możesz skonfigurować jedno lub więcej środowisk analitycznych i ML CoE, aby budować i trenować modele z produktami danych zarejestrowanymi na wielu kontach w siatce danych.

Wypróbuj Tworzenie chmury AWS szablony i kod z przykładu składnica zacząć.


O autorach

Buduj i trenuj modele ML przy użyciu architektury siatki danych na AWS: Część 2 PlatoBlockchain Data Intelligence. Wyszukiwanie pionowe. AI.Karima Hammoudy jest specjalistą ds. architekta rozwiązań analitycznych w AWS z pasją do integracji danych, analizy danych i BI. Współpracuje z klientami AWS, projektując i budując rozwiązania analityczne, które przyczyniają się do rozwoju ich biznesu. W wolnym czasie lubi oglądać telewizyjne filmy dokumentalne i grać z synem w gry wideo.

Buduj i trenuj modele ML przy użyciu architektury siatki danych na AWS: Część 2 PlatoBlockchain Data Intelligence. Wyszukiwanie pionowe. AI.Hasana Poonawala jest starszym architektem rozwiązań AI/ML w AWS, Hasan pomaga klientom projektować i wdrażać aplikacje do uczenia maszynowego w produkcji na AWS. Posiada ponad 12-letnie doświadczenie zawodowe jako data scientist, praktyk uczenia maszynowego i programista. W wolnym czasie Hasan uwielbia poznawać przyrodę i spędzać czas z przyjaciółmi i rodziną.

Buduj i trenuj modele ML przy użyciu architektury siatki danych na AWS: Część 2 PlatoBlockchain Data Intelligence. Wyszukiwanie pionowe. AI.Benoit de Patoul jest specjalistą ds. rozwiązań AI/ML w AWS. Pomaga klientom udzielając wskazówek i pomocy technicznej w budowaniu rozwiązań związanych z AI/ML z wykorzystaniem AWS. W wolnym czasie lubi grać na pianinie i spędzać czas z przyjaciółmi.

Znak czasu:

Więcej z Uczenie maszynowe AWS