Zaženite samodejno prilagajanje modela z Amazon SageMaker JumpStart PlatoBlockchain Data Intelligence. Navpično iskanje. Ai.

Zaženite samodejno prilagajanje modela z Amazon SageMaker JumpStart

Decembra 2020 je AWS razglasitve splošna razpoložljivost Amazon SageMaker JumpStart, zmožnost Amazon SageMaker ki vam pomaga hitro in enostavno začeti s strojnim učenjem (ML). Marca 2022 tudi mi razglasitve podpora za API-je v JumpStartu. JumpStart zagotavlja fino nastavitev in uvajanje široke palete vnaprej usposobljenih modelov v priljubljenih nalogah ML z enim klikom, kot tudi izbor celovitih rešitev, ki rešujejo pogoste poslovne težave. Te funkcije odstranjujejo težko delo pri vsakem koraku procesa ML, kar olajša razvoj visokokakovostnih modelov in skrajša čas do uvajanja.

V tej objavi prikazujemo, kako zagnati samodejno uravnavanje modela z JumpStart.

Samodejno prilagajanje modela SageMaker

Tradicionalno inženirji ML izvajajo metodo poskusov in napak, da bi našli pravi niz hiperparametrov. Poskus in napaka vključuje izvajanje več opravil zaporedno ali vzporedno, medtem ko zagotavlja vire, potrebne za izvajanje poskusa.

z Samodejno prilagajanje modela SageMaker, lahko inženirji ML in podatkovni znanstveniki razbremenijo zamudno nalogo optimizacije svojega modela in SageMakerju prepustijo izvajanje eksperimentov. SageMaker izkorišča elastičnost platforme AWS za učinkovito in sočasno izvajanje več simulacij usposabljanja na naboru podatkov in iskanje najboljših hiperparametrov za model.

Samodejno prilagajanje modela SageMaker najde najboljšo različico modela tako, da izvaja številna učna opravila na vašem naboru podatkov z uporabo algoritma in območja hiperparametrov, ki jih podate. Nato izbere vrednosti hiperparametrov, ki povzročijo model, ki deluje najbolje, kot je izmerjeno z a meritev ki ga izberete.

Samodejna nastavitev modela uporablja bodisi a Bajezijski (privzeto) ali a naključno strategijo iskanja za iskanje najboljših vrednosti za hiperparametre. Bayesovo iskanje obravnava nastavitev hiperparametrov kot a regresija problem. Pri izbiri najboljših hiperparametrov za naslednjo učno nalogo upošteva vse, kar do zdaj ve o problemu, in omogoči algoritmu, da izkoristi najbolj znane rezultate.

V tej objavi uporabljamo privzeto Bayesovo iskalno strategijo, da prikažemo korake, vključene v izvajanje samodejnega prilagajanja modela z JumpStart z uporabo LightGBM model.

JumpStart trenutno podpira 10 primerov prenosnikov s samodejnim prilagajanjem modela. Podpira tudi štiri priljubljene algoritme za tabelarično modeliranje podatkov. Naloge in povezave do njihovih vzorčnih zvezkov so povzete v naslednji tabeli.

Naloga Predhodno usposobljeni modeli Podpira nabor podatkov po meri Podprta ogrodja Primeri zvezkov
Razvrstitev slik ja ja PyTorch, TensorFlow Uvod v JumpStart – klasifikacija slik
Zaznavanje objektov ja ja PyTorch, TensorFlow, MXNet Uvod v JumpStart – zaznavanje predmetov
Semantična segmentacija ja ja MX Net Uvod v JumpStart – Semantična segmentacija
Razvrstitev besedil ja ja TensorFlow Uvod v JumpStart – Klasifikacija besedila
Klasifikacija stavčnih parov ja ja TensorFlow, objemajoči obraz Uvod v JumpStart – Klasifikacija stavčnih parov
Vprašanje Odgovor ja ja PyTorch Uvod v JumpStart – odgovarjanje na vprašanja
Tabelarična klasifikacija ja ja LightGBM, CatBoost, XGBoost, Linearni učenec Uvod v JumpStart – Tabelarična klasifikacija – LightGBM, CatBoost
Uvod v JumpStart – tabelarična klasifikacija – XGBoost, linearni učenec
Tabelarična regresija ja ja LightGBM, CatBoost, XGBoost, Linearni učenec Uvod v JumpStart – Tabularna regresija – LightGBM, CatBoost
Uvod v JumpStart – Tabelarno regresijo – XGBoost, Linearni učenec

Pregled rešitev

Ta tehnični potek dela daje pregled različnih funkcij in korakov Amazon Sagemaker, ki so potrebni za samodejno nastavitev modela JumpStart.

Zaženite samodejno prilagajanje modela z Amazon SageMaker JumpStart PlatoBlockchain Data Intelligence. Navpično iskanje. Ai.

V naslednjih razdelkih nudimo korak za korakom navodila za zagon samodejnega prilagajanja modela z JumpStart z uporabo algoritma LightGBM. Zagotavljamo spremstvo prenosnik za ta sprehod.

Sprehodimo se skozi naslednje korake na visoki ravni:

  1. Pridobite vsebnik JumpStart predhodno usposobljenega modela in slik.
  2. Nastavite statične hiperparametre.
  3. Določite nastavljive razpone hiperparametrov.
  4. Inicializirajte samodejno nastavitev modela.
  5. Zaženite uglaševanje.
  6. Razmestite najboljši model na končno točko.

Pridobite vsebnik JumpStart predhodno usposobljenega modela in slik

V tem razdelku izberemo klasifikacijski model LightGBM za natančno nastavitev. Uporabljamo vrsto instance ml.m5.xlarge, na kateri se izvaja model. Nato pridobimo vadbeni vsebnik Docker, vir vadbenega algoritma in vnaprej usposobljen model. Oglejte si naslednjo kodo:

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
)

Nastavite statične hiperparametre

Zdaj pridobimo privzete hiperparametre za ta model LightGBM, kot jih je vnaprej konfiguriral JumpStart. Prav tako preglasimo num_boost_round hiperparameter z vrednostjo po meri.

# 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

Določite nastavljive razpone hiperparametrov

Nato definiramo obsege hiperparametrov optimiziran s samodejnim prilagajanjem modela. Definiramo ime hiperparametra, kot pričakuje model, nato pa obsege vrednosti, ki jih je treba preizkusiti za ta hiperparameter. Samodejna nastavitev modela črpa vzorce (enake max_jobs parameter) iz prostora hiperparametrov z uporabo tehnike, imenovane Bayesovo iskanje. Za vsak narisan vzorec hiperparametrov uglaševalec ustvari učno opravilo za ovrednotenje modela s to konfiguracijo. Oglejte si naslednjo kodo:

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),
}

Inicializirajte samodejno nastavitev modela

Začnemo z ustvarjanjem Ocenjevalnik objekt z vsemi zahtevanimi sredstvi, ki opredeljujejo opravilo usposabljanja, kot so vnaprej pripravljeni model, slika usposabljanja in skript usposabljanja. Nato definiramo a HyperparameterTuner predmet za interakcijo z API-ji za nastavitev hiperparametrov SageMaker.

O HyperparameterTuner sprejme kot parametre objekt Estimator, ciljno metriko, na podlagi katere se določi najboljši niz hiperparametrov, skupno število delovnih mest za usposabljanje (max_jobs), da se začne za opravilo prilagajanja hiperparametrov, in največje število vzporednih učnih opravil, ki se izvajajo (max_parallel_jobs). Usposabljanje se izvaja z algoritmom LightGBM in hiperparametri, ki imajo minimalne vrednosti mlogloss izbrana metrika. Za več informacij o konfiguraciji samodejnega prilagajanja modela glejte Najboljše prakse za prilagajanje hiperparametrov.

# 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,
)

V prejšnji kodi rečemo sprejemniku, naj izvede največ 10 poskusov (max_jobs) in samo dva sočasna poskusa hkrati (max_parallel_jobs). Oba parametra ohranjata vaše stroške in čas usposabljanja pod nadzorom.

Zaženite uglaševanje

Za zagon opravila za uravnavanje SageMaker pokličemo metodo prileganja objekta uglaševalnika hiperparametrov in posredujemo Preprosta storitev shranjevanja Amazon (Amazon S3) pot podatkov o usposabljanju:

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

Medtem ko samodejno prilagajanje modela išče najboljše hiperparametre, lahko spremljate njihov napredek na konzoli SageMaker ali na amazoncloudwatch. Ko je usposabljanje končano, se natančno nastavljeni artefakti najboljšega modela naložijo na izhodno lokacijo Amazon S3, določeno v konfiguraciji usposabljanja.

Razmestite najboljši model na končno točko

Ko je uglaševanje končano, je najboljši model izbran in shranjen v Amazon S3. Zdaj lahko razmestimo ta model tako, da pokličemo metodo razmestitve HyperparameterTuner objekt in posredovanje potrebnih parametrov, kot je število primerkov, ki jih je treba uporabiti za ustvarjeno končno točko, njihov tip, slika, ki jo je treba namestiti, in skript za izvajanje:

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
)

Zdaj lahko preizkusimo ustvarjeno končno točko tako, da podamo zahteve za sklepanje. Preostali postopek lahko spremljate v priloženem prenosnik.

zaključek

S samodejnim uravnavanjem modela v SageMakerju lahko poiščete najboljšo različico svojega modela tako, da izvedete izobraževalna opravila na ponujenem nizu podatkov z enim od podprtih algoritmov. Samodejno prilagajanje modela vam omogoča, da skrajšate čas za prilagajanje modela s samodejnim iskanjem najboljše konfiguracije hiperparametrov znotraj obsegov hiperparametrov, ki jih podate.

V tej objavi smo pokazali vrednost izvajanja samodejnega uglaševanja modela na vnaprej usposobljenem modelu JumpStart z uporabo API-jev SageMaker. Uporabili smo algoritem LightGBM in definirali največ 10 izobraževalnih delovnih mest. Zagotovili smo tudi povezave do primerov zvezkov, ki prikazujejo ogrodja ML, ki podpirajo optimizacijo modela JumpStart.

Za več podrobnosti o tem, kako optimizirati model JumpStart s samodejnim prilagajanjem modela, glejte naš primer prenosnik.


O Author

Zaženite samodejno prilagajanje modela z Amazon SageMaker JumpStart PlatoBlockchain Data Intelligence. Navpično iskanje. Ai.Doug Mbaya je višji partnerski arhitekt rešitve s poudarkom na podatkih in analitiki. Doug tesno sodeluje s partnerji AWS in jim pomaga pri integraciji podatkovne in analitične rešitve v oblaku.

Zaženite samodejno prilagajanje modela z Amazon SageMaker JumpStart PlatoBlockchain Data Intelligence. Navpično iskanje. Ai.Kruthi Jayasimha Rao je arhitekt partnerskih rešitev v ekipi Scale-PSA. Kruthi izvaja tehnične validacije za partnerje, ki jim omogočajo napredovanje na partnerski poti.

Zaženite samodejno prilagajanje modela z Amazon SageMaker JumpStart PlatoBlockchain Data Intelligence. Navpično iskanje. Ai.Giannis Mitropoulos je inženir za razvoj programske opreme za SageMaker Samodejno prilagajanje modela.

Zaženite samodejno prilagajanje modela z Amazon SageMaker JumpStart PlatoBlockchain Data Intelligence. Navpično iskanje. Ai.Dr. Ashish Khetan je višji aplikativni znanstvenik z Amazon SageMaker JumpStart in Vgrajeni algoritmi Amazon SageMaker in pomaga pri razvoju algoritmov strojnega učenja. Je aktiven raziskovalec strojnega učenja in statističnega sklepanja ter je objavil veliko člankov na konferencah NeurIPS, ICML, ICLR, JMLR in ACL.

Časovni žig:

Več od Strojno učenje AWS