Uruchom automatyczne dostrajanie modeli za pomocą Amazon SageMaker JumpStart PlatoBlockchain Data Intelligence. Wyszukiwanie pionowe. AI.

Uruchom automatyczne dostrajanie modeli za pomocą Amazon SageMaker JumpStart

W grudniu 2020 AWS ogłosił ogólna dostępność Amazon SageMaker JumpStart, zdolność Amazon Sage Maker który pomaga szybko i łatwo rozpocząć pracę z uczeniem maszynowym (ML). W marcu 2022 r. również ogłosił wsparcie dla API w JumpStart. 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 tworzenie modeli wysokiej jakości i skracając czas wdrażania.

W tym poście pokazujemy, jak uruchomić automatyczne dostrajanie modeli za pomocą JumpStart.

Automatyczne dostrajanie modelu SageMaker

Tradycyjnie inżynierowie ML wdrażają metodę prób i błędów, aby znaleźć odpowiedni zestaw hiperparametrów. Próba i błąd obejmują uruchamianie wielu zadań sekwencyjnie lub równolegle podczas udostępniania zasobów potrzebnych do uruchomienia eksperymentu.

Z Automatyczne dostrajanie modelu SageMaker, inżynierowie ML i analitycy danych mogą odciążyć czasochłonne zadanie optymalizacji swojego modelu i pozwolić SageMakerowi na przeprowadzenie eksperymentów. SageMaker wykorzystuje elastyczność platformy AWS do wydajnego i jednoczesnego uruchamiania wielu symulacji treningowych na zbiorze danych i znajdowania najlepszych hiperparametrów dla modelu.

Automatyczne dostrajanie modelu SageMaker znajduje najlepszą wersję modelu, uruchamiając wiele zadań szkoleniowych na zestawie danych przy użyciu algorytmu i zakresy hiperparametrów, które określisz. Następnie wybiera wartości hiperparametrów, które skutkują modelem, który działa najlepiej, mierzonym przez a metryczny że wybierasz.

Automatyczne strojenie modeli wykorzystuje albo Bayesian (domyślnie) lub przypadkowy strategia wyszukiwania, aby znaleźć najlepsze wartości dla hiperparametrów. Wyszukiwanie bayesowskie traktuje dostrajanie hiperparametrów jak a regresja problem. Wybierając najlepsze hiperparametry do następnej pracy szkoleniowej, bierze pod uwagę wszystko, co do tej pory wie o problemie i pozwala algorytmowi wykorzystać najbardziej znane wyniki.

W tym poście używamy domyślnej strategii wyszukiwania Bayesa, aby zademonstrować kroki związane z uruchomieniem automatycznego dostrajania modelu za pomocą JumpStart przy użyciu LekkiGBM model.

JumpStart obsługuje obecnie 10 przykładowych notebooków z automatycznym dostrajaniem modeli. 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 Wstępnie przeszkolone modele Obsługuje niestandardowy zbiór 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
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
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

Omówienie rozwiązania

Ten techniczny przepływ pracy zawiera przegląd różnych funkcji Amazon Sagemaker i kroków potrzebnych do automatycznego dostrojenia modelu JumpStart.

Uruchom automatyczne dostrajanie modeli za pomocą Amazon SageMaker JumpStart PlatoBlockchain Data Intelligence. Wyszukiwanie pionowe. AI.

W kolejnych sekcjach przedstawiamy krok po kroku, jak uruchomić automatyczne dostrajanie modelu za pomocą JumpStart przy użyciu algorytmu LightGBM. Zapewniamy akompaniament notatnik dla tego przewodnika.

Przechodzimy przez następujące etapy wysokiego poziomu:

  1. Pobierz wstępnie przeszkolony model JumpStart i kontener obrazów.
  2. Ustaw hiperparametry statyczne.
  3. Zdefiniuj przestrajalne zakresy hiperparametrów.
  4. Zainicjuj automatyczne strojenie modelu.
  5. Uruchom zadanie strojenia.
  6. Wdróż najlepszy model w punkcie końcowym.

Pobierz wstępnie wytrenowany model JumpStart i kontener obrazów

W tej sekcji wybieramy model klasyfikacji LightGBM do dostrojenia. Używamy typu instancji ml.m5.xlarge, na którym uruchamiany jest model. Następnie pobieramy trenujący kontener platformy Docker, źródło algorytmu szkoleniowego i wstępnie wytrenowany model. Zobacz następujący kod:

training_instance_type = "ml.m5.xlarge" # Retrieve the docker image
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
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
)

Ustaw hiperparametry statyczne

Teraz pobieramy domyślne hiperparametry dla tego modelu LightGBM, wstępnie skonfigurowane przez JumpStart. Zastępujemy również num_boost_round hiperparametr z wartością niestandardową.

# Retrieve the default hyper-parameters for fine-tuning the model
hyperparameters = hyperparameters.retrieve_default(
    model_id=train_model_id, model_version=train_model_version
)
# [Optional] Override default hyperparameters with custom values

Zdefiniuj przestrajalne zakresy hiperparametrów

Następnie definiujemy zakresy hiperparametrów jako zoptymalizowany przez automatyczne strojenie modelu. Definiujemy nazwę hiperparametru zgodnie z oczekiwaniami modelu, a następnie zakresy wartości do wypróbowania dla tego hiperparametru. Automatyczne strojenie modelu losuje próbki (równe max_jobs parametru) z przestrzeni hiperparametrów, przy użyciu techniki zwanej przeszukiwaniem bayesowskim. Dla każdej narysowanej próbki hiperparametru tuner tworzy zadanie szkoleniowe w celu oceny modelu z tą konfiguracją. Zobacz następujący kod:

hyperparameter_ranges = {
    "learning_rate": ContinuousParameter(1e-4, 1, scaling_type="Logarithmic"),
    "num_boost_round": IntegerParameter(2, 30),
    "early_stopping_rounds": IntegerParameter(2, 30),
    "num_leaves": IntegerParameter(10, 50),
    "feature_fraction": ContinuousParameter(0, 1),
    "bagging_fraction": ContinuousParameter(0, 1),
    "bagging_freq": IntegerParameter(1, 10),
    "max_depth": IntegerParameter(5, 30),
    "min_data_in_leaf": IntegerParameter(5, 50),
}

Zainicjuj automatyczne strojenie modelu

Zaczynamy od stworzenia Taksator obiekt ze wszystkimi wymaganymi zasobami, które definiują zadanie szkoleniowe, takimi jak wstępnie wytrenowany model, obraz szkoleniowy i skrypt szkoleniowy. Następnie definiujemy a HyperparametrTuner obiekt do interakcji z interfejsami API dostrajania hiperparametrów SageMaker.

Połączenia HyperparameterTuner przyjmuje jako parametry obiekt Estimator, metrykę docelową, na podstawie której ustalany jest najlepszy zestaw hiperparametrów, całkowitą liczbę zadań szkoleniowych (max_jobs), aby rozpocząć zadanie dostrajania hiperparametrów, i maksymalną liczbę równoległych zadań uczenia do uruchomienia (max_parallel_jobs). Zadania szkoleniowe są uruchamiane z algorytmem LightGBM i wartościami hiperparametrów, które mają minimum mlogloss wybrano metrykę. Aby uzyskać więcej informacji na temat konfigurowania automatycznego dostrajania modelu, zobacz Najlepsze praktyki dotyczące dostrajania hiperparametrów.

# Create SageMaker Estimator instance
tabular_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",
    instance_count=1,
    instance_type=training_instance_type,
    max_run=360000,
    hyperparameters=hyperparameters,
    output_path=s3_output_location,
) tuner = HyperparameterTuner(
    estimator=tabular_estimator,
    objective_metric_name="multi_logloss",
    hyperparameter_ranges=hyperparameter_ranges,
    metric_definitions=[{"Name": "multi_logloss", "Regex": "multi_logloss: ([0-9\.]+)"}],
    strategy="Bayesian",
    max_jobs=10,
    max_parallel_jobs=2,
    objective_type="Minimize",
    base_tuning_job_name=training_job_name,
)

W poprzednim kodzie mówimy tunerowi, aby przeprowadził co najwyżej 10 eksperymentów (max_jobs) i tylko dwa równoczesne eksperymenty na raz (max_parallel_jobs). Oba te parametry pozwalają kontrolować koszty i czas szkolenia.

Uruchom zadanie strojenia

Aby uruchomić zadanie strojenia SageMaker, wywołujemy metodę dopasowania obiektu dostrajania hiperparametrów i przekazujemy Usługa Amazon Simple Storage (Amazon S3) ścieżka danych treningowych:

tuner.fit({"training": training_dataset_s3_path}, logs=True)

Podczas gdy automatyczne dostrajanie modeli wyszukuje najlepsze hiperparametry, możesz monitorować ich postęp w konsoli SageMaker lub w Amazon Cloud Watch. Po zakończeniu szkolenia dostrojone artefakty najlepszego modelu są przesyłane do lokalizacji wyjściowej Amazon S3 określonej w konfiguracji szkolenia.

Wdróż najlepszy model w punkcie końcowym

Po zakończeniu strojenia najlepszy model został wybrany i zapisany w Amazon S3. Teraz możemy wdrożyć ten model, wywołując metodę wdrażania HyperparameterTuner obiekt i przekazanie wymaganych parametrów, takich jak liczba instancji, które mają być użyte dla utworzonego punktu końcowego, ich typ, obraz do wdrożenia i skrypt do uruchomienia:

tuner.deploy(
    initial_instance_count=1,
    instance_type=inference_instance_type,
    entry_point="inference.py",
    image_uri=deploy_image_uri,
    source_dir=deploy_source_uri,
    endpoint_name=endpoint_name,
    enable_network_isolation=True
)

Możemy teraz przetestować utworzony punkt końcowy, wykonując żądania wnioskowania. Możesz śledzić resztę procesu w załączonym notatnik.

Wnioski

Dzięki automatycznemu dostrajaniu modelu w programie SageMaker możesz znaleźć najlepszą wersję swojego modelu, uruchamiając zadania szkoleniowe na dostarczonym zestawie danych za pomocą jednego z obsługiwanych algorytmów. Automatyczne dostrajanie modelu umożliwia skrócenie czasu dostrajania modelu poprzez automatyczne wyszukiwanie najlepszej konfiguracji hiperparametrów w określonych zakresach hiperparametrów.

W tym poście pokazaliśmy wartość uruchamiania automatycznego dostrajania modelu na wstępnie wytrenowanym modelu JumpStart przy użyciu interfejsów API SageMaker. Wykorzystaliśmy algorytm LightGBM i zdefiniowaliśmy maksymalnie 10 zadań szkoleniowych. Udostępniliśmy również łącza do przykładowych notatników prezentujących struktury ML, które obsługują optymalizację modelu JumpStart.

Aby uzyskać więcej informacji na temat optymalizacji modelu JumpStart z automatycznym dostrajaniem modelu, zapoznaj się z naszym przykładem notatnik.


O autorze

Uruchom automatyczne dostrajanie modeli za pomocą Amazon SageMaker JumpStart PlatoBlockchain Data Intelligence. Wyszukiwanie pionowe. AI.Douga Mbaya jest architektem Senior Partner Solution specjalizującym się w danych i analityce. Doug ściśle współpracuje z partnerami AWS, pomagając im zintegrować dane i rozwiązania analityczne w chmurze.

Uruchom automatyczne dostrajanie modeli za pomocą Amazon SageMaker JumpStart PlatoBlockchain Data Intelligence. Wyszukiwanie pionowe. AI.Kruthi Dżajasimha Rao jest architektem rozwiązań partnerskich w zespole Scale-PSA. Kruthi przeprowadza walidacje techniczne dla Partnerów, umożliwiając im postęp na ścieżce Partnera.

Uruchom automatyczne dostrajanie modeli za pomocą Amazon SageMaker JumpStart PlatoBlockchain Data Intelligence. Wyszukiwanie pionowe. AI.Giannisa Mitropoulosa jest inżynierem oprogramowania w firmie SageMaker Automatyczne dostrajanie modelu.

Uruchom automatyczne dostrajanie modeli za pomocą Amazon SageMaker JumpStart 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