Modelele și algoritmii Amazon SageMaker JumpStart sunt acum disponibile prin intermediul API PlatoBlockchain Data Intelligence. Căutare verticală. Ai.

Modelele și algoritmii Amazon SageMaker JumpStart sunt acum disponibile prin API

În decembrie 2020, AWS a anunțat disponibilitatea generală of Amazon SageMaker JumpStart, o capacitate de Amazon SageMaker care vă ajută să începeți rapid și ușor cu învățarea automată (ML). JumpStart oferă o reglare fină și implementare cu un singur clic a unei game largi de modele pregătite în prealabil pentru sarcinile ML populare, precum și o selecție de soluții end-to-end care rezolvă problemele comune de afaceri. Aceste caracteristici îndepărtează sarcinile grele din fiecare pas al procesului ML, facilitând dezvoltarea modelelor de înaltă calitate și reducând timpul până la implementare.

Anterior, tot conținutul JumpStart era disponibil numai prin intermediul Amazon SageMaker Studio, care oferă o interfață grafică ușor de utilizat pentru a interacționa cu caracteristica. Astăzi, suntem încântați să anunțăm lansarea unui program ușor de utilizat API-uri JumpStart ca o extensie a SDK-ului SageMaker Python. Aceste API-uri vă permit să implementați și să reglați în mod programatic o selecție vastă de modele pre-antrenate acceptate de JumpStart pe propriile seturi de date. Această lansare deblochează utilizarea capabilităților JumpStart în fluxurile de lucru cu cod, conductele MLOps și oriunde altundeva interacționați cu SageMaker prin SDK.

În această postare, oferim o actualizare cu privire la starea actuală a capabilităților JumpStart și vă ghidăm prin fluxul de utilizare al API-ului JumpStart cu un exemplu de caz de utilizare.

Prezentare generală JumpStart

JumpStart este un produs cu mai multe fațete care include diferite capacități pentru a vă ajuta să începeți rapid cu ML pe SageMaker. În momentul scrierii, JumpStart vă permite să faceți următoarele:

  • Implementați modele pre-instruite pentru sarcinile ML obișnuite – JumpStart vă permite să rezolvați sarcini ML obișnuite fără efort de dezvoltare, oferind implementarea ușoară a modelelor pregătite în prealabil pe seturi de date mari disponibile public. Comunitatea de cercetare ML a depus un efort mare pentru a pune la dispoziție publică majoritatea modelelor dezvoltate recent. JumpStart găzduiește o colecție de peste 300 de modele, care acoperă cele mai populare 15 sarcini ML, cum ar fi detectarea obiectelor, clasificarea textului și generarea de text, făcându-le ușor de utilizat pentru începători. Aceste modele sunt extrase din hub-uri de model populare, cum ar fi TensorFlow, PyTorch, Hugging Face și MXNet Hub.
  • Ajustați modelele pre-antrenate – JumpStart vă permite să reglați modelele pre-antrenate fără a fi nevoie să scrieți propriul algoritm de antrenament. În ML, se numește capacitatea de a transfera cunoștințele învățate într-un domeniu într-un alt domeniu transfer de învățare. Puteți utiliza învățarea prin transfer pentru a produce modele precise pe seturile dvs. de date mai mici, cu costuri de instruire mult mai mici decât cele implicate în antrenarea modelului original de la zero. JumpStart include, de asemenea, algoritmi de antrenament populari bazați pe LightGBM, CatBoost, XGBoost și Scikit-learn pe care îi puteți antrena de la zero pentru regresia și clasificarea datelor tabelare.
  • Utilizați soluții prefabricate – JumpStart oferă un set de 17 soluții prefabricate pentru cazuri obișnuite de utilizare ML, cum ar fi prognoza cererii și aplicații industriale și financiare, pe care le puteți implementa cu doar câteva clicuri. Soluțiile sunt aplicații ML end-to-end care leagă împreună diverse servicii AWS pentru a rezolva un anumit caz de utilizare în afaceri. Ei folosesc Formarea AWS Cloud șabloane și arhitecturi de referință pentru implementare rapidă, ceea ce înseamnă că sunt complet personalizabile.
  • Utilizați exemple de notebook pentru algoritmii SageMaker – SageMaker oferă o suită de algoritmi încorporați pentru a ajuta oamenii de știință de date și practicienii ML să înceapă cu instruirea și implementarea rapidă a modelelor ML. JumpStart oferă exemple de notebook-uri pe care le puteți folosi pentru a utiliza rapid acești algoritmi.
  • Profită de videoclipuri de antrenament și bloguri – JumpStart oferă, de asemenea, numeroase postări pe blog și videoclipuri care vă învață cum să utilizați diferite funcționalități în SageMaker.

JumpStart acceptă setări VPC personalizate și chei de criptare KMS, astfel încât să puteți utiliza modelele și soluțiile disponibile în siguranță în mediul dvs. de întreprindere. Puteți transmite setările de securitate la JumpStart din SageMaker Studio sau prin intermediul SDK-ului SageMaker Python.

Sarcini ML acceptate de JumpStart și caiete de tip API

JumpStart acceptă în prezent 15 dintre cele mai populare sarcini ML; 13 dintre acestea sunt sarcini bazate pe viziune și NLP, dintre care 8 acceptă reglajul fin fără cod. De asemenea, acceptă patru algoritmi populari pentru modelarea datelor tabulare. Sarcinile și legăturile către exemplele de caiete sunt rezumate în tabelul următor.

Sarcină Inferență cu modele pre-antrenate Instruire pe setul de date personalizat Cadre suportate Caiete de exemplu
Clasificarea imaginilor da da PyTorch, TensorFlow Introducere în JumpStart – Clasificarea imaginilor
Detectarea obiectelor da da PyTorch, TensorFlow, MXNet Introducere în JumpStart – Detectarea obiectelor
Segmentarea semantică da da MX Net Introducere în JumpStart – Segmentarea semantică
Segmentarea instanțelor da Nu. MX Net Introducere în JumpStart – Segmentarea instanțelor
Încorporarea imaginii da Nu. TensorFlow, MXNet Introducere în JumpStart – Încorporarea imaginilor
Clasificarea textului da da TensorFlow Introducere în JumpStart – Clasificarea textului
Clasificarea perechilor de propoziții da da TensorFlow, Față îmbrățișată Introducere în JumpStart – Clasificarea perechilor de propoziții
Răspuns la întrebare da da PyTorch Introducere în JumpStart – Răspunsuri la întrebări
Recunoașterea entității denumită da Nu. Fata îmbrățișată Introducere în JumpStart – Recunoașterea entității numite
Rezumarea textului da Nu. Fata îmbrățișată Introducere în JumpStart – Rezumat text
Generarea textului da Nu. Fata îmbrățișată Introducere în JumpStart – Generare de text
Traducere automată da Nu. Fata îmbrățișată Introducere în JumpStart – Traducere automată
Încorporarea textului da Nu. TensorFlow, MXNet Introducere în JumpStart – Încorporarea textului
Clasificare tabelară da da LightGBM, CatBoost, XGBoost, Linear Learner Introducere în JumpStart – Clasificare tabelară – LightGBM, CatBoost
Introducere în JumpStart – Clasificare tabelară – XGBoost, Linear Learner
Regresie tabelară da da LightGBM, CatBoost, XGBoost, Linear Learner Introducere în JumpStart – Regresie tabulară – LightGBM, CatBoost
Introducere în JumpStart – Regresie tabulară – XGBoost, Linear Learner

În funcție de sarcină, exemplele de caiete legate în tabelul precedent vă pot ghida asupra tuturor sau a unui subset dintre următoarele procese:

  • Selectați un model pre-antrenat acceptat JumpStart pentru sarcina dvs. specifică.
  • Găzduiți un model pre-antrenat, obțineți predicții din acesta în timp real și afișați în mod adecvat rezultatele.
  • Reglați fin un model pre-antrenat cu propria dvs. selecție de hiperparametri și implementați-l pentru inferență.

Ajustați și implementați un model de detectare a obiectelor cu API-urile JumpStart

În secțiunile următoare, oferim o prezentare pas cu pas a modului de utilizare a noilor API JumpStart în sarcina reprezentativă de detectare a obiectelor. Arătăm cum să folosiți un model de detectare a obiectelor pre-antrenat pentru a identifica obiecte dintr-un set predefinit de clase într-o imagine cu casete de delimitare. În cele din urmă, vă arătăm cum să reglați un model pre-antrenat pe propriul set de date pentru a detecta obiecte din imagini care sunt specifice nevoilor dvs. de afaceri, pur și simplu aducând propriile date. Oferim un caietul de însoțire pentru acest tutorial.

Parcurgem următorii pași de nivel înalt:

  1. Executați inferență pe modelul pre-antrenat.
    1. Preluați artefactele JumpStart și implementați un punct final.
    2. Interogați punctul final, analizați răspunsul și afișați predicțiile modelului.
  2. Ajustați modelul pre-antrenat pe propriul set de date.
    1. Preluați artefacte de antrenament.
    2. Alergați antrenamentul.

Executați inferență pe modelul pre-antrenat

În această secțiune, alegem un model pre-antrenat adecvat în JumpStart, implementăm acest model într-un punct final SageMaker și arătăm cum să rulăm inferența asupra punctului final implementat. Toți pașii sunt disponibili în însoțitor de caiet Jupyter.

Preluați artefactele JumpStart și implementați un punct final

SageMaker este o platformă bazată pe containere Docker. JumpStart folosește cadrul disponibil specific Containere de învățare profundă SageMaker (DLC-uri). Preluăm orice pachete suplimentare, precum și scripturi pentru a gestiona instruirea și inferența pentru sarcina selectată. În cele din urmă, artefactele modelului pre-antrenate sunt preluate separat model_uris, care oferă flexibilitate platformei. Puteți utiliza orice număr de modele pre-antrenate pentru aceeași sarcină cu un singur script de antrenament sau de inferență. Vezi următorul cod:

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

În continuare, alimentăm resursele într-un Modelul SageMaker instanță și implementați un punct final:

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

Implementarea punctului final poate dura câteva minute.

Interogați punctul final, analizați răspunsul și afișați predicțiile

Pentru a obține inferențe dintr-un model implementat, o imagine de intrare trebuie să fie furnizată în format binar împreună cu un tip de acceptare. În JumpStart, puteți defini numărul de casete de delimitare returnate. În următorul fragment de cod, anticipăm zece casete de delimitare per imagine prin adăugare ;n_predictions=10 la Accept. Pentru a prezice casetele xx, îl puteți schimba în ;n_predictions=xx , sau obțineți toate casetele prezise omițând ;n_predictions=xx în întregime.

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)

Următorul fragment de cod vă oferă o imagine despre cum arată detectarea obiectelor. Probabilitatea prezisă pentru fiecare clasă de obiect este vizualizată, împreună cu caseta de delimitare a acesteia. Noi folosim parse_response și display_predictions funcții de ajutor, care sunt definite în documentele de însoțire caiet.

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

Următoarea captură de ecran arată rezultatul unei imagini cu etichete de predicție și casete de delimitare.

Modelele și algoritmii Amazon SageMaker JumpStart sunt acum disponibile prin intermediul API PlatoBlockchain Data Intelligence. Căutare verticală. Ai.

Reglați fin un model pre-antrenat pe propriul set de date

Modelele de detectare a obiectelor existente în JumpStart sunt pre-antrenate fie pe seturile de date COCO, fie pe seturile de date VOC. Cu toate acestea, dacă trebuie să identificați clase de obiecte care nu există în setul de date original de pre-antrenare, trebuie să ajustați modelul pe un nou set de date care include aceste noi tipuri de obiecte. De exemplu, dacă trebuie să identificați ustensile de bucătărie și să efectuați inferențe pe un model SSD pre-antrenat, modelul nu recunoaște nicio caracteristică a noilor tipuri de imagini și, prin urmare, rezultatul este incorect.

În această secțiune, demonstrăm cât de ușor este să reglați un model pre-antrenat pentru a detecta noi clase de obiecte folosind API-urile JumpStart. Exemplul complet de cod cu mai multe detalii este disponibil în caiet de însoțire.

Preluați artefacte de antrenament

Artefactele de antrenament sunt similare cu artefactele de inferență discutate în secțiunea precedentă. Antrenamentul necesită un container Docker de bază, și anume containerul MXNet din următorul exemplu de cod. Orice pachet suplimentar necesar pentru instruire este inclus cu scripturile de antrenament în train_sourcer_uri. Modelul pre-antrenat și parametrii săi sunt ambalate separat.

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)

Alergați antrenamentul

Pentru a rula antrenamentul, pur și simplu alimentam artefactele necesare împreună cu câțiva parametri suplimentari la a SageMaker Estimator și sună la .fit funcţie:

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

În timp ce algoritmul se antrenează, îi puteți monitoriza progresul fie în blocnotesul SageMaker unde rulați codul în sine, fie pe Amazon CloudWatch. Când antrenamentul este încheiat, artefactele modelului reglate fin sunt încărcate în Serviciul Amazon de stocare simplă Locația de ieșire (Amazon S3) specificată în configurația de antrenament. Acum puteți implementa modelul în același mod ca modelul pre-antrenat. Puteți urmări restul procesului în caiet de însoțire.

Concluzie

În această postare, am descris valoarea noilor API JumpStart lansate și cum să le folosim. Am furnizat linkuri către 17 exemple de blocnotes pentru diferitele sarcini ML acceptate în JumpStart și v-am ghidat prin blocnotesul de detectare a obiectelor.

Așteptăm cu nerăbdare vești de la dvs. în timp ce experimentați cu JumpStart.


Despre Autori

Modelele și algoritmii Amazon SageMaker JumpStart sunt acum disponibile prin intermediul API PlatoBlockchain Data Intelligence. Căutare verticală. Ai.Dr. Vivek Madan este un om de știință aplicat în echipa Amazon SageMaker JumpStart. Și-a luat doctoratul la Universitatea din Illinois la Urbana-Champaign și a fost cercetător post-doctoral la Georgia Tech. Este un cercetător activ în învățarea automată și proiectarea algoritmilor și a publicat lucrări în cadrul conferințelor EMNLP, ICLR, COLT, FOCS și SODA.

Modelele și algoritmii Amazon SageMaker JumpStart sunt acum disponibile prin intermediul API PlatoBlockchain Data Intelligence. Căutare verticală. Ai.João Moura este arhitect specializat în soluții AI/ML la Amazon Web Services. El se concentrează în principal pe cazuri de utilizare a NLP și ajută clienții să optimizeze instruirea și implementarea modelului Deep Learning.

Modelele și algoritmii Amazon SageMaker JumpStart sunt acum disponibile prin intermediul API PlatoBlockchain Data Intelligence. Căutare verticală. Ai.Dr. Ashish Khetan este un Senior Applied Scientist cu Amazon SageMaker JumpStart și Algoritmi încorporați Amazon SageMaker și ajută la dezvoltarea algoritmilor de învățare automată. Este un cercetător activ în învățarea automată și inferența statistică și a publicat multe lucrări în conferințele NeurIPS, ICML, ICLR, JMLR și ACL.

Timestamp-ul:

Mai mult de la Învățare automată AWS