Modele i algorytmy Amazon SageMaker JumpStart są teraz dostępne za pośrednictwem API PlatoBlockchain Data Intelligence. Wyszukiwanie pionowe. AI.

Modele i algorytmy Amazon SageMaker JumpStart są teraz dostępne przez API

W grudniu 2020, AWS ogłosiło powszechną dostępność of Amazon SageMaker JumpStart, zdolność Amazon Sage Maker który pomaga szybko i łatwo rozpocząć pracę z uczeniem maszynowym (ML). JumpStart zapewnia dostrajanie jednym kliknięciem i wdrażanie szerokiej gamy wstępnie przeszkolonych modeli w popularnych zadaniach ML, a także wybór kompleksowych rozwiązań, które rozwiązują typowe problemy biznesowe. Te funkcje eliminują konieczność podnoszenia ciężarów na każdym etapie procesu ML, ułatwiając opracowywanie modeli wysokiej jakości i skracając czas wdrażania.

Wcześniej cała zawartość JumpStart była dostępna tylko przez Studio Amazon SageMaker, który zapewnia przyjazny dla użytkownika interfejs graficzny do interakcji z funkcją. Dziś z radością ogłaszamy wprowadzenie łatwego w użyciu Interfejsy API JumpStart jako rozszerzenie SageMaker Python SDK. Te interfejsy API umożliwiają programistyczne wdrażanie i dostrajanie szerokiej gamy wstępnie wytrenowanych modeli obsługiwanych przez JumpStart we własnych zestawach danych. To uruchomienie odblokowuje wykorzystanie funkcji JumpStart w przepływach pracy kodu, potokach MLOps i wszędzie tam, gdzie komunikujesz się z SageMaker za pośrednictwem SDK.

W tym poście przedstawiamy aktualizację bieżącego stanu funkcji JumpStart i poprowadzimy Cię przez proces użytkowania interfejsu API JumpStart z przykładowym przypadkiem użycia.

Przegląd programu JumpStart

JumpStart to wieloaspektowy produkt, który oferuje różne możliwości, które ułatwiają szybkie rozpoczęcie pracy z ML w programie SageMaker. W chwili pisania tego tekstu JumpStart umożliwia wykonanie następujących czynności:

  • Wdrażaj wstępnie wytrenowane modele do typowych zadań ML – JumpStart umożliwia rozwiązywanie typowych zadań ML bez wysiłku programistycznego, zapewniając łatwe wdrażanie modeli wstępnie wytrenowanych na publicznie dostępnych dużych zestawach danych. Społeczność badawcza ML włożyła wiele wysiłku w publiczne udostępnienie do użytku większości niedawno opracowanych modeli. JumpStart zawiera kolekcję ponad 300 modeli, obejmującą 15 najpopularniejszych zadań ML, takich jak wykrywanie obiektów, klasyfikacja tekstu i generowanie tekstu, dzięki czemu korzystanie z nich jest łatwe dla początkujących. Modele te pochodzą z popularnych koncentratorów modeli, takich jak TensorFlow, PyTorch, Hugging Face i MXNet Hub.
  • Dostosuj wstępnie wytrenowane modele – JumpStart umożliwia precyzyjne dostrojenie wstępnie wytrenowanych modeli bez konieczności pisania własnego algorytmu treningowego. W ML umiejętność transferu wiedzy wyuczonej w jednej domenie do innej nazywa się przenieś naukę. Możesz użyć uczenia transferu do tworzenia dokładnych modeli na mniejszych zestawach danych, przy znacznie niższych kosztach uczenia niż te związane z uczeniem oryginalnego modelu od podstaw. JumpStart zawiera również popularne algorytmy szkoleniowe oparte na LightGBM, CatBoost, XGBoost i Scikit-learn, które można trenować od podstaw pod kątem regresji i klasyfikacji danych tabelarycznych.
  • Korzystaj z gotowych rozwiązań – JumpStart zapewnia zestaw 17 gotowych rozwiązań do typowych przypadków użycia ML, takich jak prognozowanie popytu oraz aplikacje przemysłowe i finansowe, które można wdrożyć za pomocą kilku kliknięć. Rozwiązania to kompleksowe aplikacje ML, które łączą różne usługi AWS w celu rozwiązania określonego biznesowego przypadku użycia. Oni używają Tworzenie chmury AWS szablony i architektury referencyjne do szybkiego wdrażania, co oznacza, że ​​można je w pełni dostosować.
  • Użyj przykładów z notatników dla algorytmów SageMaker – SageMaker zapewnia pakiet wbudowane algorytmy aby pomóc naukowcom danych i praktykom ML w szybkim rozpoczęciu szkolenia i wdrażania modeli ML. JumpStart udostępnia przykładowe notesy, których można użyć do szybkiego wykorzystania tych algorytmów.
  • Skorzystaj z filmów szkoleniowych i blogów – JumpStart udostępnia również liczne posty na blogu i filmy, które uczą, jak korzystać z różnych funkcji w SageMaker.

JumpStart akceptuje niestandardowe ustawienia VPC i klucze szyfrowania KMS, dzięki czemu można bezpiecznie korzystać z dostępnych modeli i rozwiązań w środowisku przedsiębiorstwa. Możesz przekazać swoje ustawienia bezpieczeństwa do JumpStart w SageMaker Studio lub za pomocą SageMaker Python SDK.

Zadania ML obsługiwane przez JumpStart i przykładowe notatniki w interfejsie API

JumpStart obsługuje obecnie 15 najpopularniejszych zadań ML; 13 z nich to zadania oparte na wizji i NLP, z których 8 obsługuje dostrajanie bez kodu. Obsługuje również cztery popularne algorytmy do modelowania danych tabelarycznych. Zadania i łącza do ich przykładowych notesów podsumowano w poniższej tabeli.

Zadanie Wnioskowanie ze wstępnie wytrenowanymi modelami Szkolenie na niestandardowym zbiorze danych Obsługiwane frameworki Przykładowe notebooki
Klasyfikacja obrazu tak tak PyTorch i TensorFlow Wprowadzenie do programu JumpStart — klasyfikacja obrazów
Wykrywanie obiektów tak tak PyTorch, TensorFlow, MXNet Wprowadzenie do JumpStart – wykrywanie obiektów
Segmentacja semantyczna tak tak Sieć MX Wprowadzenie do JumpStart – segmentacja semantyczna
Segmentacja instancji tak Nie Sieć MX Wprowadzenie do JumpStart – segmentacja instancji
Osadzanie obrazu tak Nie TensorFlow i MXNet Wprowadzenie do JumpStart — osadzanie obrazów
Klasyfikacja tekstu tak tak TensorFlow Wprowadzenie do JumpStart – klasyfikacja tekstu
Klasyfikacja par zdań tak tak TensorFlow, przytulająca twarz Wprowadzenie do JumpStart – klasyfikacja par zdań
Odpowiadanie na pytania tak tak PyTorch Wprowadzenie do programu JumpStart – odpowiadanie na pytania
Rozpoznawanie nazwanych jednostek tak Nie Przytulanie Twarzy Wprowadzenie do JumpStart – Rozpoznawanie nazwanych jednostek
Podsumowanie tekstu tak Nie Przytulanie Twarzy Wprowadzenie do JumpStart – podsumowanie tekstu
Generowanie tekstu tak Nie Przytulanie Twarzy Wprowadzenie do JumpStart – generowanie tekstu
Tłumaczenie maszynowe tak Nie Przytulanie Twarzy Wprowadzenie do JumpStart – Tłumaczenie maszynowe
Osadzanie tekstu tak Nie TensorFlow i MXNet Wprowadzenie do JumpStart – Osadzanie tekstu
Klasyfikacja tabelaryczna tak tak LightGBM, CatBoost, XGBoost, uczenie liniowe Wprowadzenie do JumpStart – klasyfikacja tabelaryczna – LightGBM, CatBoost
Wprowadzenie do JumpStart — klasyfikacja tabelaryczna — XGBoost, uczenie liniowe
Regresja tabelaryczna tak tak LightGBM, CatBoost, XGBoost, uczenie liniowe Wprowadzenie do JumpStart – Regresja tabelaryczna – LightGBM, CatBoost
Wprowadzenie do JumpStart – Regresja tabelaryczna – XGBoost, Linear Learner

W zależności od zadania przykładowe notesy połączone w powyższej tabeli mogą prowadzić użytkownika po wszystkich lub podzbiorze następujących procesów:

  • Wybierz wstępnie przeszkolony model obsługiwany przez JumpStart do konkretnego zadania.
  • Hostuj wstępnie wytrenowany model, uzyskuj z niego prognozy w czasie rzeczywistym i odpowiednio wyświetlaj wyniki.
  • Dostosuj wstępnie wytrenowany model za pomocą własnego wyboru hiperparametrów i zastosuj go do wnioskowania.

Dostosuj i wdróż model wykrywania obiektów za pomocą interfejsów API JumpStart

W poniższych sekcjach zapewniamy przewodnik krok po kroku, jak używać nowych interfejsów API JumpStart w reprezentatywnym zadaniu wykrywania obiektów. Pokazujemy, jak używać wstępnie wytrenowanego modelu wykrywania obiektów do identyfikowania obiektów z predefiniowanego zestawu klas na obrazie z ramkami ograniczającymi. Na koniec pokazujemy, jak dostroić wstępnie wytrenowany model we własnym zbiorze danych, aby wykrywać obiekty na obrazach, które są specyficzne dla Twoich potrzeb biznesowych, po prostu wprowadzając własne dane. Zapewniamy dołączony notatnik do tego przewodnika.

Przechodzimy przez następujące etapy wysokiego poziomu:

  1. Uruchom wnioskowanie na wstępnie wytrenowanym modelu.
    1. Pobierz artefakty JumpStart i wdróż punkt końcowy.
    2. Przeprowadź zapytanie do punktu końcowego, przeanalizuj odpowiedź i wyświetl prognozy modelu.
  2. Dostosuj wstępnie wytrenowany model we własnym zestawie danych.
    1. Odzyskaj artefakty szkoleniowe.
    2. Uruchom szkolenie.

Uruchom wnioskowanie na wstępnie wytrenowanym modelu

W tej sekcji wybieramy odpowiedni wstępnie wytrenowany model w JumpStart, wdrażamy ten model w punkcie końcowym programu SageMaker i pokazujemy, jak uruchomić wnioskowanie na wdrożonym punkcie końcowym. Wszystkie kroki są dostępne w towarzyszący notatnik Jupyter.

Odzyskaj artefakty JumpStart i wdróż punkt końcowy

SageMaker to platforma oparta na kontenerach Docker. JumpStart korzysta z dostępnej platformy specyficznej Kontenery do głębokiego uczenia SageMaker (DLC). Pobieramy wszelkie dodatkowe pakiety, a także skrypty do obsługi szkolenia i wnioskowania dla wybranego zadania. Na koniec wytrenowane artefakty modelu są pobierane osobno za pomocą model_uris, co zapewnia elastyczność platformy. Możesz użyć dowolnej liczby modeli wstępnie wytrenowanych dla tego samego zadania za pomocą jednego skryptu uczącego lub wnioskowania. Zobacz następujący kod:

infer_model_id, infer_model_version = "pytorch-od-nvidia-ssd", "*" # Retrieve the inference docker container uri. This is the base container PyTorch image for the model selected above. deploy_image_uri = image_uris.retrieve(region=None, framework=None, image_scope="inference",model_id=infer_model_id, model_version=infer_model_version, instance_type=inference_instance_type) # Retrieve the inference script uri. This includes all dependencies and scripts for model loading, inference handling etc.
deploy_source_uri = script_uris.retrieve(model_id=infer_model_id, model_version=infer_model_version, script_scope="inference") # Retrieve the base model uri. This includes the pre-trained nvidia-ssd model and parameters.
base_model_uri = model_uris.retrieve(model_id=infer_model_id, model_version=infer_model_version, model_scope="inference")

Następnie wrzucamy zasoby do Mędrzec Modelka instancję i wdrożyć punkt końcowy:

# Create the SageMaker model instance
model = Model(image_uri=deploy_image_uri, source_dir=deploy_source_uri, model_data=base_model_uri, entry_point="inference.py", role=aws_role, predictor_cls=Predictor, name=endpoint_name) # deploy the Model. Note that we need to pass Predictor class when we deploy model through Model class for being able to run inference through the sagemaker API.
base_model_predictor = model.deploy(initial_instance_count=1, instance_type=inference_instance_type, predictor_cls=Predictor, endpoint_name=endpoint_name)

Wdrażanie punktu końcowego może potrwać kilka minut.

Zapytaj o punkt końcowy, przeanalizuj odpowiedź i wyświetl prognozy

Aby uzyskać wnioski z wdrożonego modelu, obraz wejściowy musi być dostarczony w formacie binarnym wraz z typem akceptacji. W programie JumpStart można zdefiniować liczbę zwracanych ramek ograniczających. W poniższym fragmencie kodu przewidujemy dziesięć ramek ograniczających na obraz poprzez dołączenie ;n_predictions=10 do Accept. Aby przewidzieć xx boxy, możesz to zmienić na ;n_predictions=xx lub uzyskaj wszystkie przewidywane pola, pomijając ;n_predictions=xx całkowicie.

def query(model_predictor, image_file_name): with open(image_file_name, "rb") as file: input_img_rb = file.read() return model_predictor.predict(input_img_rb,{ "ContentType": "application/x-image", "Accept": "application/json;verbose;n_predictions=10"}) query_response = query(base_model_predictor, Naxos_Taverna)

Poniższy fragment kodu daje wgląd w to, jak wygląda wykrywanie obiektów. Wizualizowane jest prawdopodobieństwo przewidywane dla każdej klasy obiektów wraz z jej obwiednią. Używamy parse_response i display_predictions funkcje pomocnicze, które są zdefiniowane w załączonym notatnik.

normalized_boxes, classes_names, confidences = parse_response(query_response)
display_predictions(Naxos_Taverna, normalized_boxes, classes_names, confidences)

Poniższy zrzut ekranu przedstawia dane wyjściowe obrazu z etykietami przewidywania i obwiedniami.

Modele i algorytmy Amazon SageMaker JumpStart są teraz dostępne za pośrednictwem API PlatoBlockchain Data Intelligence. Wyszukiwanie pionowe. AI.

Dostosuj wstępnie wytrenowany model we własnym zbiorze danych

Istniejące modele wykrywania obiektów w JumpStart są wstępnie przeszkolone w zestawach danych COCO lub VOC. Jeśli jednak musisz zidentyfikować klasy obiektów, które nie istnieją w oryginalnym zestawie danych przedtreningowych, musisz dostroić model w nowym zestawie danych, który zawiera te nowe typy obiektów. Na przykład, jeśli musisz zidentyfikować przybory kuchenne i przeprowadzić wnioskowanie na wdrożonym wstępnie wytrenowanym modelu SSD, model nie rozpoznaje żadnych cech nowych typów obrazów, a zatem dane wyjściowe są nieprawidłowe.

W tej sekcji pokazujemy, jak łatwo jest dostroić wstępnie wytrenowany model w celu wykrywania nowych klas obiektów za pomocą interfejsów API JumpStart. Pełny przykład kodu z większą ilością szczegółów jest dostępny w towarzyszący notatnik.

Odzyskaj artefakty szkoleniowe

Artefakty uczenia są podobne do artefaktów wnioskowania omówionych w poprzedniej sekcji. Szkolenie wymaga podstawowego kontenera Docker, a mianowicie kontenera MXNet w poniższym przykładowym kodzie. Wszelkie dodatkowe pakiety wymagane do szkolenia są zawarte w skryptach szkoleniowych w train_sourcer_uri. Wstępnie wytrenowany model i jego parametry są pakowane osobno.

train_model_id, train_model_version, train_scope = "mxnet-od-ssd-512-vgg16-atrous-coco","*","training"
training_instance_type = "ml.p2.xlarge" # Retrieve the docker image. This is the base container MXNet image for the model selected above. train_image_uri = image_uris.retrieve(region=None, framework=None, model_id=train_model_id, model_version=train_model_version, image_scope=train_scope,instance_type=training_instance_type) # Retrieve the training script and dependencies. This contains all the necessary files including data processing, model training etc.
train_source_uri = script_uris.retrieve(model_id=train_model_id, model_version=train_model_version, script_scope=train_scope) # Retrieve the pre-trained model tarball to further fine-tune
train_model_uri = model_uris.retrieve(
model_id=train_model_id, model_version=train_model_version, model_scope=train_scope)

Uruchom szkolenie

Aby uruchomić szkolenie, po prostu przekazujemy wymagane artefakty wraz z kilkoma dodatkowymi parametrami do a Estymator SageMakera i zadzwoń do .fit funkcjonować:

# Create SageMaker Estimator instance
od_estimator = Estimator( role=aws_role, image_uri=train_image_uri, source_dir=train_source_uri, model_uri=train_model_uri, entry_point="transfer_learning.py", # Entry-point file in source_dir and present in train_source_uri. instance_count=1, instance_type=training_instance_type, max_run=360000, hyperparameters=hyperparameters, output_path=s3_output_location,
) # Launch a SageMaker Training job by passing s3 path of the training data
od_estimator.fit({"training": training_dataset_s3_path}, logs=True)

Podczas uczenia się algorytmu możesz monitorować jego postęp w notatniku SageMaker, w którym uruchamiasz sam kod, lub w Amazon Cloud Watch. Po zakończeniu szkolenia artefakty dostrojonego modelu są przesyłane do Usługa Amazon Simple Storage (Amazon S3) lokalizacja wyjściowa określona w konfiguracji szkolenia. Możesz teraz wdrożyć model w taki sam sposób, jak model wstępnie przeszkolony. Możesz śledzić resztę procesu w towarzyszący notatnik.

Wnioski

W tym poście opisaliśmy wartość nowo wydanych interfejsów API JumpStart i jak z nich korzystać. Udostępniliśmy linki do 17 przykładowych notatników dla różnych zadań ML obsługiwanych w JumpStart i przeprowadziliśmy Cię przez notatnik wykrywania obiektów.

Czekamy na kontakt z Państwem podczas eksperymentowania z JumpStart.


O autorach

Modele i algorytmy Amazon SageMaker JumpStart są teraz dostępne za pośrednictwem API PlatoBlockchain Data Intelligence. Wyszukiwanie pionowe. AI.Dr Vivek Madan jest naukowcem w zespole Amazon SageMaker JumpStart. Uzyskał doktorat na Uniwersytecie Illinois w Urbana-Champaign i był badaczem podoktoranckim w Georgia Tech. Jest aktywnym badaczem uczenia maszynowego i projektowania algorytmów, publikował artykuły na konferencjach EMNLP, ICLR, COLT, FOCS i SODA.

Modele i algorytmy Amazon SageMaker JumpStart są teraz dostępne za pośrednictwem API PlatoBlockchain Data Intelligence. Wyszukiwanie pionowe. AI.Joao Moura jest specjalistą ds. rozwiązań AI/ML w Amazon Web Services. Koncentruje się głównie na przypadkach użycia NLP i pomaga klientom zoptymalizować szkolenie i wdrażanie modelu Deep Learning.

Modele i algorytmy Amazon SageMaker JumpStart są teraz dostępne za pośrednictwem API PlatoBlockchain Data Intelligence. Wyszukiwanie pionowe. AI.Dr Ashish Khetan jest Starszym Naukowcem Stosowanym z Amazon SageMaker JumpStart i Wbudowane algorytmy Amazon SageMaker i pomaga rozwijać algorytmy uczenia maszynowego. Jest aktywnym badaczem uczenia maszynowego i wnioskowania statystycznego oraz opublikował wiele artykułów na konferencjach NeurIPS, ICML, ICLR, JMLR i ACL.

Znak czasu:

Więcej z Uczenie maszynowe AWS