Modeli in algoritmi Amazon SageMaker JumpStart so zdaj na voljo prek API PlatoBlockchain Data Intelligence. Navpično iskanje. Ai.

Modeli in algoritmi Amazon SageMaker JumpStart so zdaj na voljo prek API-ja

Decembra 2020 je dr. AWS je objavil splošno razpoložljivost of Amazon SageMaker JumpStart, zmožnost Amazon SageMaker ki vam pomaga hitro in enostavno začeti s strojnim učenjem (ML). 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 odpravljajo težko delo pri vsakem koraku procesa ML, kar olajša razvoj visokokakovostnih modelov in skrajša čas do uvajanja.

Prej je bila vsa vsebina JumpStart na voljo samo prek Amazon SageMaker Studio, ki zagotavlja a uporabniku prijazen grafični vmesnik za interakcijo s funkcijo. Danes z veseljem oznanjamo začetek enostavnega za uporabo API-ji JumpStart kot razširitev SDK-ja SageMaker Python. Ti API-ji vam omogočajo programsko uvajanje in natančno nastavitev široke izbire predhodno usposobljenih modelov, ki jih podpira JumpStart, na vaših lastnih nizih podatkov. Ta zagon odklene uporabo zmožnosti JumpStart v delovnih tokovih kode, cevovodih MLOps in povsod drugje, kjer komunicirate s SageMakerjem prek SDK.

V tej objavi nudimo posodobitev trenutnega stanja zmožnosti JumpStart in vas vodimo skozi tok uporabe API-ja JumpStart s primerom uporabe.

JumpStart pregled

JumpStart je večplasten izdelek, ki vključuje različne zmožnosti, ki vam pomagajo hitro začeti uporabljati ML na SageMakerju. V času pisanja vam JumpStart omogoča naslednje:

  • Razmestite vnaprej usposobljene modele za pogoste naloge ML – JumpStart vam omogoča reševanje pogostih nalog ML brez razvojnih naporov z zagotavljanjem enostavne uvedbe modelov, vnaprej usposobljenih na javno dostopnih velikih zbirkah podatkov. Raziskovalna skupnost ML je vložila veliko truda v to, da je večina nedavno razvitih modelov postala javno dostopna za uporabo. JumpStart gosti zbirko več kot 300 modelov, ki zajemajo 15 najbolj priljubljenih nalog ML, kot so zaznavanje predmetov, klasifikacija besedila in generiranje besedila, kar začetnikom olajša njihovo uporabo. Ti modeli so vzeti iz priljubljenih središč modelov, kot so TensorFlow, PyTorch, Hugging Face in MXNet Hub.
  • Natančno prilagodite vnaprej usposobljene modele – JumpStart vam omogoča natančno nastavitev vnaprej pripravljenih modelov brez potrebe po pisanju lastnega algoritma za usposabljanje. V ML se imenuje sposobnost prenosa znanja, pridobljenega na enem področju, na drugo področje transferno učenje. Učenje prenosa lahko uporabite za izdelavo natančnih modelov na svojih manjših naborih podatkov z veliko nižjimi stroški usposabljanja kot tisti, ki so vključeni v usposabljanje izvirnega modela iz nič. JumpStart vključuje tudi priljubljene algoritme za usposabljanje, ki temeljijo na LightGBM, CatBoost, XGBoost in Scikit-learn, ki jih lahko trenirate od začetka za tabelarično regresijo in klasifikacijo podatkov.
  • Uporabite vnaprej izdelane rešitve – JumpStart ponuja niz 17 vnaprej pripravljenih rešitev za pogoste primere uporabe ML, kot so napovedovanje povpraševanja ter industrijske in finančne aplikacije, ki jih lahko uvedete z le nekaj kliki. Rešitve so aplikacije ML od konca do konca, ki združujejo različne storitve AWS za rešitev določenega primera poslovne uporabe. Uporabljajo Oblikovanje oblaka AWS predloge in referenčne arhitekture za hitro uvajanje, kar pomeni, da so popolnoma prilagodljivi.
  • Uporabite primere zvezkov za algoritme SageMaker – SageMaker ponuja zbirko vgrajeni algoritmi za pomoč podatkovnim znanstvenikom in praktikom ML, da hitro začnejo z usposabljanjem in uvajanjem modelov ML. JumpStart ponuja vzorčne zvezke, ki jih lahko uporabite za hitro uporabo teh algoritmov.
  • Izkoristite videoposnetke za usposabljanje in bloge – JumpStart ponuja tudi številne objave v spletnem dnevniku in videoposnetke, ki vas učijo, kako uporabljati različne funkcije znotraj SageMakerja.

JumpStart sprejema nastavitve VPC po meri in ključe za šifriranje KMS, tako da lahko varno uporabljate razpoložljive modele in rešitve v okolju vašega podjetja. Svoje varnostne nastavitve lahko posredujete JumpStartu znotraj SageMaker Studio ali prek SDK SageMaker Python.

Naloge ML, ki jih podpira JumpStart, in primeri zvezkov API

JumpStart trenutno podpira 15 najbolj priljubljenih nalog ML; 13 od njih je nalog, ki temeljijo na viziji in NLP, od tega jih 8 podpira fino uravnavanje brez kode. Podpira tudi štiri priljubljene algoritme za tabelarično modeliranje podatkov. Naloge in povezave do njihovih vzorčnih zvezkov so povzete v naslednji tabeli.

Naloga Sklepanje z vnaprej usposobljenimi modeli Usposabljanje o naboru 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
Segmentacija primerka ja št MX Net Uvod v JumpStart – Segmentacija primerkov
Vdelava slik ja št TensorFlow, MXNet Uvod v JumpStart – vdelava slik
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
Priznavanje imenovanega subjekta ja št Objemni obraz Uvod v JumpStart – prepoznavanje imenovanih entitet
Povzetek besedila ja št Objemni obraz Uvod v JumpStart – povzemanje besedila
Ustvarjanje besedila ja št Objemni obraz Uvod v JumpStart – generiranje besedila
Strojni prevod ja št Objemni obraz Uvod v JumpStart – strojno prevajanje
Vdelava besedila ja št TensorFlow, MXNet Uvod v JumpStart – vdelava besedila
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

Odvisno od naloge vas lahko vzorčni zvezki, povezani v prejšnji tabeli, vodijo pri vseh ali podnaboru naslednjih procesov:

  • Za svojo posebno nalogo izberite model, ki ga podpira JumpStart.
  • Gostite vnaprej usposobljen model, pridobite napovedi iz njega v realnem času in ustrezno prikažite rezultate.
  • Natančno nastavite vnaprej usposobljen model z lastnim izborom hiperparametrov in ga uporabite za sklepanje.

Natančno prilagodite in uvedite model zaznavanja objektov z API-ji JumpStart

V naslednjih razdelkih nudimo korak za korakom navodila za uporabo novih API-jev JumpStart pri reprezentativni nalogi zaznavanja objektov. Pokažemo, kako uporabiti vnaprej usposobljen model zaznavanja objektov za prepoznavanje predmetov iz vnaprej določenega nabora razredov na sliki z omejevalnimi okvirji. Nazadnje pokažemo, kako natančno prilagoditi predhodno usposobljen model na lastnem naboru podatkov za zaznavanje predmetov na slikah, ki so specifične za vaše poslovne potrebe, preprosto tako, da vnesete svoje podatke. Nudimo spremljajoči zvezek za ta sprehod.

Sprehodimo se skozi naslednje korake na visoki ravni:

  1. Zaženite sklepanje na predhodno usposobljenem modelu.
    1. Pridobite artefakte JumpStart in razmestite končno točko.
    2. Izvedite poizvedbo po končni točki, razčlenite odgovor in prikažite napovedi modela.
  2. Natančno prilagodite vnaprej usposobljeni model na svojem naboru podatkov.
    1. Pridobite artefakte usposabljanja.
    2. Tekaški trening.

Zaženite sklepanje na predhodno usposobljenem modelu

V tem razdelku izberemo ustrezen vnaprej usposobljen model v JumpStartu, razmestimo ta model na končno točko SageMaker in pokažemo, kako izvajati sklepanje na razporejeni končni točki. Vsi koraki so na voljo v priloženi Jupyterjev zvezek.

Pridobite artefakte JumpStart in razmestite končno točko

SageMaker je platforma, ki temelji na vsebnikih Docker. JumpStart uporablja razpoložljivo specifično ogrodje Vsebniki za globoko učenje SageMaker (DLC-ji). Pridobimo morebitne dodatne pakete, kot tudi skripte za izvajanje usposabljanja in sklepanja za izbrano nalogo. Na koncu se vnaprej pripravljeni artefakti modela pridobijo ločeno model_uris, ki platformi zagotavlja prilagodljivost. Z enim skriptom za usposabljanje ali sklepanje lahko uporabite poljubno število modelov, vnaprej usposobljenih za isto nalogo. Oglejte si naslednjo kodo:

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")

Nato vire vnesemo v a Model SageMaker in uvesti končno točko:

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

Uvedba končne točke lahko traja nekaj minut.

Izvedite poizvedbo po končni točki, razčlenite odgovor in prikažite predvidevanja

Če želite pridobiti sklepe iz razporejenega modela, je treba vhodno sliko predložiti v binarni obliki skupaj s sprejetim tipom. V JumpStartu lahko določite število vrnjenih omejevalnih okvirjev. V naslednjem delčku kode z dodajanjem predvidevamo deset omejevalnih okvirjev na sliko ;n_predictions=10 do Accept. Če želite predvideti xx boxes, ga lahko spremenite v ;n_predictions=xx , ali pridobite vsa predvidena polja tako, da jih izpustite ;n_predictions=xx popolnoma.

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)

Naslednji delček kode vam daje vpogled v to, kako izgleda zaznavanje predmetov. Vizualizirana je verjetnost, predvidena za vsak razred objekta, skupaj z njegovim omejevalnim poljem. Uporabljamo parse_response in display_predictions pomožne funkcije, ki so opredeljene v priloženih prenosnik.

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

Naslednji posnetek zaslona prikazuje izpis slike z oznakami predvidevanja in omejevalnimi okvirji.

Modeli in algoritmi Amazon SageMaker JumpStart so zdaj na voljo prek API PlatoBlockchain Data Intelligence. Navpično iskanje. Ai.

Natančno prilagodite vnaprej usposobljen model na svojem naboru podatkov

Obstoječi modeli za zaznavanje predmetov v JumpStartu so vnaprej usposobljeni na naborih podatkov COCO ali VOC. Če pa morate identificirati razrede objektov, ki ne obstajajo v izvirnem naboru podatkov pred usposabljanjem, morate natančno prilagoditi model na novem naboru podatkov, ki vključuje te nove tipe objektov. Na primer, če morate identificirati kuhinjske pripomočke in zagnati sklepanje na razporejenem predhodno usposobljenem modelu SSD, model ne prepozna nobenih značilnosti novih tipov slik, zato je izhod nepravilen.

V tem razdelku prikazujemo, kako enostavno je natančno prilagoditi vnaprej usposobljen model za odkrivanje novih objektnih razredov z uporabo API-jev JumpStart. Celoten primer kode z več podrobnostmi je na voljo v spremljajoči zvezek.

Pridobite artefakte usposabljanja

Artefakti usposabljanja so podobni artefaktom sklepanja, obravnavanim v prejšnjem razdelku. Usposabljanje zahteva osnovni vsebnik Docker, in sicer vsebnik MXNet v naslednji vzorčni kodi. Vsi dodatni paketi, potrebni za usposabljanje, so vključeni v skripte za usposabljanje train_sourcer_uri. Vnaprej usposobljeni model in njegovi parametri so zapakirani ločeno.

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)

Tekaški trening

Za izvajanje usposabljanja preprosto vnesemo zahtevane artefakte skupaj z nekaterimi dodatnimi parametri v a Ocenjevalnik SageMaker in pokličite .fit funkcija:

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

Medtem ko se algoritem uri, lahko spremljate njegov napredek v zvezku SageMaker, kjer izvajate samo kodo, ali na amazoncloudwatch. Ko je usposabljanje končano, se natančno nastavljeni artefakti modela naložijo v Preprosta storitev shranjevanja Amazon (Amazon S3) izhodna lokacija, navedena v konfiguraciji usposabljanja. Zdaj lahko razmestite model na enak način kot vnaprej usposobljeni model. Preostali postopek lahko spremljate v spremljajoči zvezek.

zaključek

V tej objavi smo opisali vrednost na novo izdanih API-jev JumpStart in kako jih uporabljati. Zagotovili smo povezave do 17 primerov zvezkov za različna opravila ML, ki jih podpira JumpStart, in vas popeljali skozi zvezke za zaznavanje predmetov.

Veselimo se vašega odgovora, ko boste eksperimentirali z JumpStartom.


O avtorjih

Modeli in algoritmi Amazon SageMaker JumpStart so zdaj na voljo prek API PlatoBlockchain Data Intelligence. Navpično iskanje. Ai.dr. Vivek Madan je uporabni znanstvenik pri ekipi Amazon SageMaker JumpStart. Doktoriral je na Univerzi Illinois v Urbana-Champaignu in bil podoktorski raziskovalec na Georgia Tech. Je aktiven raziskovalec strojnega učenja in načrtovanja algoritmov ter je objavil prispevke na konferencah EMNLP, ICLR, COLT, FOCS in SODA.

Modeli in algoritmi Amazon SageMaker JumpStart so zdaj na voljo prek API PlatoBlockchain Data Intelligence. Navpično iskanje. Ai.João Moura je specialist za rešitve AI/ML pri Amazon Web Services. Večinoma se osredotoča na primere uporabe NLP in pomaga strankam optimizirati usposabljanje in uvajanje modela globokega učenja.

Modeli in algoritmi Amazon SageMaker JumpStart so zdaj na voljo prek API 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