Vähendage oma mudelite juurutamiseks Amazon SageMakeris PlatoBlockchain Data Intelligence'i testimiseks kuluvat aega. Vertikaalne otsing. Ai.

Vähendage oma mudelite testimiseks Amazon SageMakerisse juurutamiseks kuluvat aega

Andmeteadlased koolitavad sageli oma mudeleid kohapeal ja otsivad oma mudelite juurutamiseks sobivat hostimisteenust. Kahjuks pole eelkoolitatud mudelite pilves juurutamiseks kindlat mehhanismi ega juhendit. Selles postituses vaatleme koolitatud mudelite juurutamist Amazon SageMaker hostimine, et vähendada kasutuselevõtuaega.

SageMaker on täielikult hallatav masinõppe (ML) teenus. SageMakeriga saate kiiresti luua ja koolitada ML-mudeleid ning juurutada need otse tootmisvalmis hostitud keskkonda. Lisaks ei pea te servereid haldama. Saate integreeritud Jupyteri sülearvuti keskkonna, millel on lihtne juurdepääs oma andmeallikatele. Saate teha andmete analüüsi, koolitada oma mudeleid ja testida neid, kasutades oma algoritme või kasutada SageMakeri pakutavaid ML-algoritme, mis on optimeeritud töötama tõhusalt suurte andmehulkade vastu, mis on levinud mitmes masinas. Koolituse ja hostimise eest arveldatakse kasutusminutite alusel, ilma miinimumtasudeta ja ilma eelnevate kohustusteta.

Lahenduse ülevaade

Andmeteadlased koolitavad mõnikord mudeleid kohapeal, kasutades oma IDE-d, ja saadavad need mudelid juurutamiseks ML-i insenerimeeskonnale või käivitavad lihtsalt võimsatel masinatel kohapeal ennustusi. Selles postituses tutvustame Pythoni teeki, mis lihtsustab mudelite juurutamist SageMakeris. Hosting reaalajas või serverita lõpp-punktides.

See Pythoni teek annab andmeteadlastele lihtsa liidese, et kiiresti SageMakeriga alustada, ilma et nad peaksid teadma SageMakeri madala taseme funktsioone.

Kui teil on eelistatud IDE-ga kohapeal väljaõpetatud mudeleid ja soovite pilve mastaabist kasu saada, saate seda teeki kasutada oma mudeli juurutamiseks SageMakeris. SageMakeriga on lisaks pilvepõhise ML-platvormi skaleerimise eelistele juurdepääs sihipärasele koolitustööriistadele (hajutatud koolitus, hüperparameetrite häälestamine), katsehaldusele, mudelihaldusele, eelarvamuste tuvastamisele, mudeli seletatavusele ja paljudele muudele funktsioonidele. võimalused, mis võivad teid aidata ML elutsükli mis tahes aspektis. Saate valida kolme kõige populaarsema ML-i raamistiku hulgast: Scikit-learn, PyTorch ja TensorFlow ning saate valida soovitud arvutustüübi. Vaikeväärtused on saadaval, et selle teegi kasutajad saaksid oma mudeleid juurutada, ilma et nad peaksid tegema keerulisi otsuseid või õppima uusi kontseptsioone. Selles postituses näitame teile, kuidas selle teegiga alustada ja optimeerida oma ML-mudelite juurutamist SageMakeri hostimisel.

Raamatukogu leiate aadressilt GitHubi hoidla.

SageMakeri migratsiooni tööriistakomplekt

. SageMakerMigration klass on saadaval GitHubis avaldatud Pythoni teegi kaudu. Selle teegi installimise juhised on toodud hoidlas; veenduge, et järgite oma keskkonna õigeks seadistamiseks README. Pärast selle teegi installimist räägitakse selle postituse ülejäänud osas selle kasutamisest.

. SageMakerMigration klass koosneb SageMakeri API-de kõrgetasemelistest abstraktsioonidest, mis vähendavad oluliselt teie mudeli SageMakeris juurutamiseks vajalikke samme, nagu on näidatud järgmisel joonisel. See on mõeldud katsetamiseks, et arendajad saaksid SageMakerit kiiresti alustada ja testida. See ei ole ette nähtud tootmise migreerimiseks.

Scikit-learni, PyTorchi ja TensorFlow mudelite puhul toetab see teek koolitatud mudelite juurutamist SageMakeri reaalajas või serverita lõpp-punktis. Lisateavet SageMakeri järeldusvõimaluste kohta leiate artiklist Mudelite juurutamine järelduste tegemiseks.

Reaalajas vs serverita lõpp-punktid

Reaalajas järeldus on ideaalne järelduste töökoormuste jaoks, kus teil on reaalajas, interaktiivsed ja madala latentsusaja nõuded. Saate oma mudeli juurutada SageMakeri hostimisteenustes ja hankida lõpp-punkti, mida saab kasutada järelduste tegemiseks. Neid lõpp-punkte hallatakse täielikult ja need toetavad automaatset skaleerimist.

SageMaker Serverless Inference on eesmärgipäraselt loodud järeldusvõimalus, mis muudab ML-mudelite juurutamise ja skaleerimise lihtsaks. Serverless Inference on ideaalne töökoormuste jaoks, mille liiklusspurtide vahel on jõudeperioodid ja mis taluvad külmkäivitust. Serverita lõpp-punktid käivitavad automaatselt arvutusressursid ja skaleerivad neid sõltuvalt liiklusest sisse ja välja, välistades vajaduse valida eksemplaritüüpe või hallata skaleerimispoliitikaid. See eemaldab serverite valimise ja haldamise eristamata raskused.

Olenevalt kasutusjuhust võite soovida oma mudelit SageMakeris kiiresti majutada, ilma et eksemplar oleks tegelikult alati sisse lülitatud ja kulusid tekitamata. Sel juhul on serverita lõpp-punkt suurepärane lahendus.

Valmistage ette oma koolitatud mudel ja järeldusskript

Pärast seda, kui olete tuvastanud mudeli, mida soovite SageMakeris juurutada, peate tagama, et mudel esitatakse SageMakerile õiges vormingus. SageMakeri lõpp-punktid koosnevad üldiselt kahest komponendist: koolitatud mudeliartefaktist (.pth, .pkl jne) ja järeldusskriptist. Järeldusskript ei ole alati kohustuslik, kuid kui seda pole ette nähtud, rakendatakse kasutatava esinduskonteineri vaikekäsitlejaid. See skript on hädavajalik, kui teil on vaja oma sisend-/väljundfunktsiooni järelduste tegemiseks kohandada.

Koolitatud mudeliartefakt on lihtsalt salvestatud Scikit-learn, PyTorch või TensorFlow mudel. Scikit-learni puhul on see tavaliselt hapufail, PyTorchi jaoks on see pt- või pth-fail ning TensorFlow jaoks kaust varade, .pb-failide ja muude muutujatega.

Üldiselt peate suutma juhtida seda, kuidas teie mudel töötleb sisendit ja teeb järeldusi, ning kontrollima oma vastuse väljundvormingut. SageMakeriga saate pakkuda järeldusskript selle kohanduse lisamiseks. Igal SageMakeri kasutataval järeldusskriptil peab olema üks või mitu järgmisest neljast töötleja funktsioonist: model_fn, input_fn, predict_fnja output_fn.

Pange tähele, et need neli funktsiooni kehtivad PyTorch ja Scikit-õppida spetsiaalselt konteinerid. TensorFlow'l on pisut erinevad käitlejad, kuna see on integreeritud TensorFlow serveerimine. TensorFlow'ga järeldusskripti jaoks on teil kaks mudelikäitlejad: input_handler ja output_handler. Jällegi on neil sama eel- ja järeltöötluse eesmärk, millega saate töötada, kuid need on konfigureeritud integreerimiseks pisut erinevalt TensorFlow serveerimine. PyTorchi mudelite puhul on model_fn kohustuslik funktsioon, mis peab olema järeldusskriptis.

mudel_fn

See on funktsioon, mida SageMakeri lõpp-punkti käivitamisel esmakordselt kutsutakse. Siin kirjutate mudeli laadimiseks koodi. Näiteks:

def model_fn(model_dir):
    model = Your_Model()
    with open(os.path.join(model_dir, 'model.pth'), 'rb') as f:
        model.load_state_dict(torch.load(f))
    return model

Sõltuvalt mudeli raamistikust ja tüübist võib see kood muutuda, kuid funktsioon peab tagastama lähtestatud mudeli.

sisend_fn

See on teine ​​funktsioon, mida teie lõpp-punkti kutsumisel kutsutakse. See funktsioon võtab lõpp-punkti saadetud andmed järelduste tegemiseks ja analüüsib need vormingusse, mis on vajalik mudeli jaoks prognoosi loomiseks. Näiteks:

def input_fn(request_body, request_content_type):
    """An input_fn that loads a pickled tensor"""
    if request_content_type == 'application/python-pickle':
        return torch.load(BytesIO(request_body))
    else:
        # Handle other content-types here or raise an Exception
        # if the content type is not supported.
        pass

. request_body sisaldab andmeid, mida kasutatakse mudelist järelduste tegemiseks, ja sõelutakse selles funktsioonis nõutavas vormingus.

ennustada_fn

See on kolmas funktsioon, mis teie mudeli käivitamisel välja kutsutakse. See funktsioon võtab tagasi eeltöödeldud sisendandmed input_fn ja kasutab tagastatud mudelit model_fn ennustust teha. Näiteks:

def predict_fn(input_data, model):
    device = torch.device('cuda' if torch.cuda.is_available() else 'cpu')
    model.to(device)
    model.eval()
    with torch.no_grad():
        return model(input_data.to(device))

Saate valikuliselt lisada output_fn väljundi sõelumiseks predict_fn enne selle kliendile tagastamist. Funktsiooni allkiri on def output_fn(prediction, content_type).

Viige oma eelkoolitatud mudel SageMakerisse

Pärast koolitatud mudelifaili ja järeldusskripti saamist peate need failid järgmiselt kausta panema.

#SKLearn Model

model_folder/
    model.pkl
    inference.py
    
# Tensorflow Model
model_folder/
    0000001/
        assets/
        variables/
        keras_metadata.pb
        saved_model.pb
    inference.py
    
# PyTorch Model
model_folder/
    model.pth
    inference.py

Kui teie mudel ja järeldusskript on ette valmistatud ja sellesse kaustastruktuuri salvestatud, on teie mudel SageMakeris juurutamiseks valmis. Vaadake järgmist koodi:

from sagemaker_migration import frameworks as fwk

if __name__ == "__main__":
    ''' '''
    sk_model = fwk.SKLearnModel(
        version = "0.23-1", 
        model_data = 'model.joblib',
        inference_option = 'real-time',
        inference = 'inference.py',
        instance_type = 'ml.m5.xlarge'
    )
    sk_model.deploy_to_sagemaker()

Pärast lõpp-punkti juurutamist puhastage kindlasti kõik ressursid, mida te ei kasuta SageMakeri konsooli või delete_endpoint Boto3 API kõne.

Järeldus

Projekti SageMaker Migration Toolkiti eesmärk on hõlbustada andmeteadlastel oma mudelite SageMakerisse lisamist, et pilvepõhiseid järeldusi kasutada. Hoidla areneb edasi ja toetab rohkem võimalusi töökoormuste üleviimiseks SageMakerile. Kood on avatud lähtekoodiga ja me tervitame kogukonna panust tõmbamistaotluste ja probleemide kaudu.

Tutvu GitHubi hoidla et uurida rohkem SageMakeri migratsioonitööriistade komplekti kasutamise kohta ja anda julgelt ka näiteid või funktsioonitaotlusi, mida projekti lisada!


Autoritest

Vähendage oma mudelite juurutamiseks Amazon SageMakeris PlatoBlockchain Data Intelligence'i testimiseks kuluvat aega. Vertikaalne otsing. Ai.Kirit Thadaka on ML Solutionsi arhitekt, kes töötab Amazon SageMaker Service SA meeskonnas. Enne AWS-iga liitumist töötas Kirit aega varajases staadiumis tehisintellekti idufirmades, millele järgnes mõnda aega tehisintellekti uurimise, MLO-de ja tehnilise juhtimise erinevates rollides nõustamist.

Vähendage oma mudelite juurutamiseks Amazon SageMakeris PlatoBlockchain Data Intelligence'i testimiseks kuluvat aega. Vertikaalne otsing. Ai.Ram Vegiraju on SageMaker Service meeskonnaga ML arhitekt. Ta keskendub sellele, et aidata klientidel luua ja optimeerida oma AI/ML-lahendusi Amazon SageMakeris. Vabal ajal armastab ta reisimist ja kirjutamist.

Ajatempel:

Veel alates AWS-i masinõpe