Järgmise põlvkonna Amazon SageMaker Experiments – korraldage, jälgige ja võrrelge oma masinõppe koolitusi PlatoBlockchain Data Intelligence'is. Vertikaalne otsing. Ai.

Järgmise põlvkonna Amazon SageMaker Experiments – korraldage, jälgige ja võrrelge oma masinõppe koolitusi ulatuslikult

Täna on meil hea meel teatada meie versiooni uuendustest Amazon SageMakeri katsed võimekus Amazon SageMaker mis võimaldab teil korraldada, jälgida, võrrelda ja hinnata masinõppe (ML) katseid ja mudeliversioone mis tahes integreeritud arenduskeskkonnast (IDE), kasutades SageMaker Pythoni SDK-d või boto3, sealhulgas kohalikke Jupyteri sülearvutid.

Masinõpe (ML) on iteratiivne protsess. Uue kasutusjuhtumi lahendamisel itereerivad andmeteadlased ja ML-insenerid läbi erinevate parameetrite, et leida parimad mudelikonfiguratsioonid (teise nimega hüperparameetrid), mida saab tootmises kasutada tuvastatud äriprobleemi lahendamiseks. Aja jooksul, pärast mitme mudeli ja hüperparameetriga katsetamist, muutub ML-meeskondadel keeruliseks mudelikäitamist tõhusalt hallata, et leida optimaalne, ilma erinevate katsete jälgimise tööriistata. Katsete jälgimissüsteemid lihtsustavad protsesse erinevate iteratsioonide võrdlemiseks ning aitavad lihtsustada koostööd ja suhtlust meeskonnas, suurendades seeläbi tootlikkust ja säästes aega. See saavutatakse ML-katsete pingevaba organiseerimise ja juhtimisega, et nendest järeldusi teha, näiteks leida treeningjooks parima täpsusega.

Selle väljakutse lahendamiseks pakub SageMaker SageMaker Experiments, täielikult integreeritud SageMakeri võimalust. See võimaldab paindlikult logida oma mudelimõõdikuid, parameetreid, faile, artefakte, koostada erinevatest mõõdikutest diagramme, püüda erinevaid metaandmeid, otsida nendest ja toetada mudeli reprodutseeritavust. Andmeteadlased saavad visuaalsete diagrammide ja tabelite abil kiiresti võrrelda jõudlust ja hüperparameetreid mudeli hindamiseks. Samuti saavad nad kasutada SageMaker Experiments loodud diagrammide allalaadimiseks ja mudeli hinnangut oma sidusrühmadega jagada.

Järgmise põlvkonna Amazon SageMaker Experiments – korraldage, jälgige ja võrrelge oma masinõppe koolitusi PlatoBlockchain Data Intelligence'is. Vertikaalne otsing. Ai.

SageMaker Experimentsi uute värskendustega on see nüüd osa SageMaker SDK-st, lihtsustades andmeteadlase tööd ja kaotades vajaduse installida lisateegi mitme mudeli täitmise haldamiseks. Tutvustame järgmisi uusi põhikontseptsioone:

  • Eksperiment: kogum jookse, mis on rühmitatud. Katse hõlmab mitme tüübi käitamist, mida saab SageMaker Python SDK abil käivitada kõikjal.
  • jooks: mudelkoolitusprotsessi iga täitmise etapp. Käitus koosneb mudelitreeningu ühe iteratsiooni kõigist sisenditest, parameetritest, konfiguratsioonidest ja tulemustest. Kohandatud parameetreid ja mõõdikuid saab logida kasutades log_parameter, log_parametersja log_metric funktsioonid. Kohandatud sisendit ja väljundit saab logida kasutades log_file funktsiooni.

Mõisted, mida rakendatakse osana a Run klass on kättesaadavad mis tahes IDE-st, kuhu on installitud SageMaker Python SDK. SageMakeri koolituseks, töötlemiseks ja

Tööde teisendamiseks edastatakse SageMakeri katsekäivitus automaatselt tööle, kui töö käivitatakse käitamise kontekstis. Käitusobjekti saate taastada kasutades load_run() oma töökohast. Lõpuks saavad andmeteadlased uute funktsioonide integreerimisega automaatselt logida ka segaduste maatriksi, täppis- ja meeldetuletusgraafikuid ning ROC-kõvera kasutusjuhtude klassifitseerimiseks, kasutades run.log_confusion_matrix, run.log_precision_recallja run.log_roc_curve funktsioonid vastavalt.

Selles ajaveebi postituses anname näiteid selle kohta, kuidas kasutada SageMakeri SDK kaudu Jupyteri sülearvutis uusi SageMaker Experimentsi funktsioone. Me demonstreerime neid võimalusi, kasutades a PyTorch näide MNIST-i käsitsi kirjutatud numbrite klassifikatsiooni näite koolitamiseks. Eksperiment korraldatakse järgmiselt:

  1. Katse käitamise ja logimisparameetrite loomine: esmalt loome uue katse, alustame selle katse jaoks uut käitamist ja logime sellesse parameetrid.
  2. Mudeli jõudlusmõõdikute logimine: Logime mudeli jõudlusmõõdikud ja joonistame meetrikagraafikud.
  3. Mudeli jooksude võrdlemine: Võrdleme erinevaid mudelite jookse vastavalt mudeli hüperparameetritele. Arutame, kuidas neid katseid võrrelda ja kuidas kasutada SageMakeri katseid parima mudeli valimiseks.
  4. Katsete käitamine SageMakeri töökohtadest: toome ka näite selle kohta, kuidas teie katse konteksti automaatselt jagada SageMakeri töötlemis-, koolitus- või pakkteisendustööga. See võimaldab teil käivitamise konteksti automaatselt taastada load_run toimida teie töö sees.
  5. SageMaker Clarify aruannete integreerimine: Näitame, kuidas saame nüüd integreeruda SageMaker Clarify kallutatuse ja seletatavuse aruanded ühes vaates koos teie koolitatud mudeliaruandega.

Eeldused

Selle blogipostituse jaoks kasutame Amazon SageMaker Studio et näidata, kuidas Studio sülearvutist mõõdikuid logida, kasutades värskendatud SageMaker Experimentsi funktsioone. Meie näites esitatud käskude täitmiseks on teil vaja järgmisi eeltingimusi:

  • SageMaker Studio domeen
  • SageMaker Studio kasutajaprofiil koos SageMakeri täieliku juurdepääsuga
  • SageMaker Studio sülearvuti, millel on vähemalt ml.t3.medium eksemplari tüüp

Kui teil pole SageMakeri domeeni ja kasutajaprofiili saadaval, saate selle luua kiire seadistusjuhend.

Logimise parameetrid

Selle harjutuse jaoks kasutame tõrvikuvisioon, PyTorchi pakett, mis pakub populaarseid andmekogumeid, mudeliarhitektuure ja tavalisi kujutiste teisendusi arvutinägemise jaoks. SageMaker Studio pakub komplekti Dockeri pildid tavaliste andmeteaduse kasutusjuhtude jaoks, mis on saadaval Amazon ECR-is. PyTorchi jaoks on teil võimalus valida protsessori või GPU treenimiseks optimeeritud pilte. Selle näite jaoks valime pildi PyTorch 1.12 Python 3.8 CPU Optimized ja Python 3 kernel. Allpool kirjeldatud näited keskenduvad SageMaker Experimentsi funktsioonidele ja ei ole täielikud koodid.

Laadime andmed alla rakendusega torchvision Pakendada ja jälgida rongi andmeproovide arvu ning katsetada andmekogumeid parameetritena SageMaker Experimentsiga. Selle näite puhul oletame train_set ja test_set nagu juba alla laaditud torchvision andmestikud.

from sagemaker.session import Session
from sagemaker.experiments.run import Run
import os

# create an experiment and start a new run
experiment_name = "local-experiment-example"
run_name = "experiment-run"

with Run(experiment_name=experiment_name, sagemaker_session=Session(), run_name=run_name) as run:
    run.log_parameters({
        "num_train_samples": len(train_set.data),
        "num_test_samples": len(test_set.data)
    })
    for f in os.listdir(train_set.raw_folder):
        print("Logging", train_set.raw_folder+"/"+f)
        run.log_file(train_set.raw_folder+"/"+f, name=f, is_output=False)

Selles näites kasutame run.log_parameters rongi- ja katseandmete näidiste arvu logimiseks ja run.log_file toorandmete kogumite laadimiseks Amazon S3-sse ja logimiseks meie katse sisenditena.

Järgmise põlvkonna Amazon SageMaker Experiments – korraldage, jälgige ja võrrelge oma masinõppe koolitusi PlatoBlockchain Data Intelligence'is. Vertikaalne otsing. Ai. Järgmise põlvkonna Amazon SageMaker Experiments – korraldage, jälgige ja võrrelge oma masinõppe koolitusi PlatoBlockchain Data Intelligence'is. Vertikaalne otsing. Ai.

Mudeli väljaõpe ja mudelimõõdikute logimine

Nüüd, kui oleme oma MNIST-i andmestiku alla laadinud, treenime a CNN mudel numbrite äratundmiseks. Mudeli treenimise ajal tahame laadida oma olemasoleva katse, logida sellesse uusi parameetreid ja jälgida mudeli toimivust mudelimõõdikute logimise teel.

Me saame kasutada load_run funktsioon, et laadida meie eelmine jooks ja kasutada seda mudelitreeningu logimiseks

with load_run(experiment_name=experiment_name, run_name=run_name, sagemaker_session=Session()) as run:
    train_model(
        run=run,
        train_set=train_set,
        test_set=test_set,
        epochs=10,
        hidden_channels=5,
        optimizer="adam"
    )

Seejärel saame kasutada run.log_parameter ja run.log_parameters ühe või mitme mudeli parameetri logimiseks meie käiku.

# log the parameters of your model
run.log_parameter("device", "cpu")
run.log_parameters({
    "data_dir": data_dir,
    "optimizer": optimizer,
    "epochs": epochs,
    "hidden_channels": hidden_channels
})

Ja me saame kasutada run.log_metric et logida meie katsesse jõudlusmõõdikud.

run.log_metric(name=metric_type+":loss", value=loss, step=epoch)
run.log_metric(name=metric_type+":accuracy", value=accuracy, step=epoch)

Klassifitseerimismudelite jaoks võite kasutada ka run.log_confusion_matrix, run.log_precision_recallja run.log_roc_curve, et automaatselt joonistada teie mudeli segadusmaatriks, täppiskutsumisgraafik ja ROC-kõver. Kuna meie mudel lahendab mitme klassi klassifitseerimise probleemi, logime selle jaoks ainult segadusmaatriksi.

# log confusion matrix
with torch.no_grad():
    for data, target in test_loader:
        data, target = data.to(device), target.to(device)
        output = model(data)
        pred = output.max(1, keepdim=True)[1] 
        run.log_confusion_matrix(target, pred, "Confusion-Matrix-Test-Data")

Meie jooksmise üksikasju vaadates näeme nüüd loodud mõõdikuid, nagu on näidatud alloleval ekraanipildil:

Järgmise põlvkonna Amazon SageMaker Experiments – korraldage, jälgige ja võrrelge oma masinõppe koolitusi PlatoBlockchain Data Intelligence'is. Vertikaalne otsing. Ai.

Käitamise üksikasjade leht pakub mõõdikute kohta lisateavet.

Järgmise põlvkonna Amazon SageMaker Experiments – korraldage, jälgige ja võrrelge oma masinõppe koolitusi PlatoBlockchain Data Intelligence'is. Vertikaalne otsing. Ai.

Ja uute mudelite parameetreid jälgitakse parameetrite ülevaate lehel.

Järgmise põlvkonna Amazon SageMaker Experiments – korraldage, jälgige ja võrrelge oma masinõppe koolitusi PlatoBlockchain Data Intelligence'is. Vertikaalne otsing. Ai.

Samuti saate analüüsida oma mudeli toimivust klasside kaupa, kasutades automaatselt joonistatud segadusmaatriksit, mida saab ka alla laadida ja kasutada erinevate aruannete jaoks. Saate koostada täiendavaid graafikuid, et analüüsida oma mudeli toimivust logitud mõõdikute põhjal.

Järgmise põlvkonna Amazon SageMaker Experiments – korraldage, jälgige ja võrrelge oma masinõppe koolitusi PlatoBlockchain Data Intelligence'is. Vertikaalne otsing. Ai.

Mitme mudeli parameetri võrdlemine

Andmeteadlasena soovite leida parima võimaliku mudeli. See hõlmab mudeli mitmekordset treenimist erinevate hüperparameetritega ja mudeli toimivuse võrdlemist nende hüperparameetritega. Selleks võimaldab SageMaker Experiments meil luua ühes katses mitu käitamist. Uurime seda kontseptsiooni, koolitades oma mudelit erinevatega num_hidden_channels ja optimizers.

# define the list of parameters to train the model with
num_hidden_channel_param = [5, 10, 20]
optimizer_param = ["adam", "sgd"]
run_id = 0
# train the model using SageMaker Experiments to track the model parameters, 
# metrics and performance
sm_session = Session()
for i, num_hidden_channel in enumerate(num_hidden_channel_param):
    for k, optimizer in enumerate(optimizer_param):
        run_id += 1
        run_name = "experiment-run-"+str(run_id)
        print(run_name)
        print(f"Training model with: {num_hidden_channel} hidden channels and {optimizer} as optimizer")
        # Defining an experiment run for each model training run
        with Run(experiment_name=experiment_name, run_name=run_name, sagemaker_session=sm_session) as run:
            train_model(
                run=run, 
                train_set=train_set,
                test_set=test_set,
                epochs=10, 
                hidden_channels=num_hidden_channel,
                optimizer=optimizer
            )

Loome nüüd oma katse jaoks kuus uut käitamist. Igaüks neist logib mudeli parameetrid, mõõdikud ja segadusmaatriksi. Seejärel saame võrrelda jookse, et valida probleemi jaoks kõige paremini toimiv mudel. Jooksude analüüsimisel saame joonistada erinevate jooksude meetrikagraafikud ühe graafikuna, võrreldes jooksude toimivust erinevate treeningetappide (või epohhide) lõikes.

Järgmise põlvkonna Amazon SageMaker Experiments – korraldage, jälgige ja võrrelge oma masinõppe koolitusi PlatoBlockchain Data Intelligence'is. Vertikaalne otsing. Ai.

SageMakeri katsete kasutamine koos SageMakeri koolituse, töötlemise ja partii teisendustöödega

Ülaltoodud näites kasutasime SageMakeri katseid, et logida mudeli jõudlust SageMaker Studio sülearvutist, kus mudelit õpetati sülearvutis kohapeal. Saame sama teha, et logida mudeli jõudlust SageMakeri töötlemis-, koolitus- ja pakkteisendustöödest. Tänu uutele automaatse konteksti edastamise võimalustele ei pea me katsekonfiguratsiooni SageMakeri tööga konkreetselt jagama, kuna see jäädvustatakse automaatselt.

Allolev näide keskendub SageMaker Experimentsi funktsioonidele ja ei ole täielik kood.

from sagemaker.pytorch import PyTorch
from sagemaker.experiments.run import Run
from sagemaker.session import Session
from sagemaker import get_execution_role
role = get_execution_role()

# set new experiment configuration
exp_name = "training-job-experiment-example"
run_name = "experiment-run-example"

# Start training job with experiment setting
with Run(experiment_name=exp_name, run_name=run_name, sagemaker_session=Session()) as run:
    est = PyTorch(
        entry_point="",
        dependencies=[""],
        role=role,
        model_dir=False,
        framework_version="1.12",
        py_version="py38",
        instance_type='ml.c5.xlarge',
        instance_count=1,
            hyperparameters={
            "epochs": 10,
            "hidden_channels":5,
            "optimizer": "adam",
        },
        keep_alive_period_in_seconds=3600
    )
    
    est.fit()

Meie mudeli skriptifailis saame käitamiskonteksti kasutada load_run(). SageMakeri töötlemis- ja koolitustööde puhul ei pea me konfiguratsiooni laadimiseks katsekonfiguratsiooni andma. Partii teisendustööde jaoks peame pakkuma experiment_name ja run_name katse konfiguratsiooni laadimiseks.

with load_run() as run:
    run.log_parameters({...})
    train_model(run, ...)

Lisaks teabele, mida saame SageMakeri katsete käivitamisel sülearvuti skriptist, täidab SageMakeri töö käivitamine automaatselt töö parameetrid ja väljundid.

Järgmise põlvkonna Amazon SageMaker Experiments – korraldage, jälgige ja võrrelge oma masinõppe koolitusi PlatoBlockchain Data Intelligence'is. Vertikaalne otsing. Ai. Järgmise põlvkonna Amazon SageMaker Experiments – korraldage, jälgige ja võrrelge oma masinõppe koolitusi PlatoBlockchain Data Intelligence'is. Vertikaalne otsing. Ai.

Uus SageMaker Experiments SDK tagab ka tagasiühilduvuse eelmise versiooniga, kasutades prooviversioonide ja proovikomponentide kontseptsioone. Kõik SageMaker Experimentsi eelmise versiooniga käivitatud katsed tehakse katsete analüüsimiseks automaatselt kättesaadavaks uues kasutajaliideses.

SageMaker Clarify integreerimine ja koolitusaruannete modelleerimine

SageMaker Clarify aitab parandada meie ML-mudeleid tuvastamise kaudu potentsiaalne kallutatus ja abistamine selgitama kuidas need mudelid ennustavad. Clarify pakub eelseadistatud konteinereid, mis töötavad SageMakeri töötlemistöödena pärast teie mudeli väljaõpetamist, kasutades teavet teie andmete (andmete konfiguratsioon), mudeli (mudeli konfiguratsioon) ja tundlike andmeveergude kohta, mida soovime võimaliku nihke (kallutatuse) suhtes analüüsida. konfiguratsioon). Siiani kuvas SageMaker Experiments meie mudelikoolitust ja Clarify aruandeid üksikute proovikomponentidena, mis olid prooviversiooni kaudu ühendatud.

Uute SageMakeri katsetega saame integreerida ka SageMaker Clarify aruanded oma mudelikoolitusega, millel on üks tõeallikas, mis võimaldab meil oma mudelit paremini mõista. Integreeritud aruande jaoks on meil vaja ainult oma koolitus- ja täpsustamistöödel sama käitamisnimetust. Järgmine näide näitab, kuidas saame aruandeid integreerida kasutades XGBoost mudel ennustada täiskasvanute sissetulekut kogu Ameerika Ühendriikides. Mudel kasutab UCI täiskasvanute andmestik. Selle harjutuse jaoks eeldame, et mudel oli juba koolitatud ja et oleme juba arvutanud andmed, mudeli ja kallutamise konfiguratsioonid.

with Run(
    experiment_name='clarify-experiment',
    run_name="joint-run",
    sagemaker_session=sagemaker_session,
) as run:
    xgb.fit({"train": train_input}, logs=False)
    clarify_processor.run_bias(
        data_config=bias_data_config,
        bias_config=bias_config,
        model_config=model_config,
        model_predicted_label_config=predictions_config,
        pre_training_methods="all",
        post_training_methods="all",
    )
    clarify_processor.run_explainability(
        data_config=explainability_data_config,
        model_config=model_config,
        explainability_config=shap_config,
    )

Selle seadistuse abil saame kombineeritud vaate, mis sisaldab mudelimõõdikuid, ühiseid sisendeid ja väljundeid ning mudeli statistilise kallutatuse ja seletatavuse selgitamise aruandeid.

Järgmise põlvkonna Amazon SageMaker Experiments – korraldage, jälgige ja võrrelge oma masinõppe koolitusi PlatoBlockchain Data Intelligence'is. Vertikaalne otsing. Ai. Järgmise põlvkonna Amazon SageMaker Experiments – korraldage, jälgige ja võrrelge oma masinõppe koolitusi PlatoBlockchain Data Intelligence'is. Vertikaalne otsing. Ai. Järgmise põlvkonna Amazon SageMaker Experiments – korraldage, jälgige ja võrrelge oma masinõppe koolitusi PlatoBlockchain Data Intelligence'is. Vertikaalne otsing. Ai. Järgmise põlvkonna Amazon SageMaker Experiments – korraldage, jälgige ja võrrelge oma masinõppe koolitusi PlatoBlockchain Data Intelligence'is. Vertikaalne otsing. Ai.

Järeldus

Selles postituses uurisime uue põlvkonna SageMaker Experiments, mis on SageMaker SDK integreeritud osa. Näitasime, kuidas uue Run-klassiga oma ML-i töövooge kõikjal logida. Esitlesime uut katsete kasutajaliidest, mis võimaldab teil jälgida oma katseid ja joonistada graafikuid ühe käitamise mõõdiku jaoks ning võrrelda mitut käitamist uue analüüsivõimalusega. Esitasime näiteid logimiskatsete kohta SageMaker Studio sülearvutist ja SageMaker Studio koolitustööst. Lõpuks näitasime, kuidas integreerida mudelikoolitus ja SageMaker Clarify aruanded ühtsesse vaatesse, mis võimaldab teil oma mudelit paremini mõista.

Soovitame teil katsetada uusi eksperimentide funktsioone ja luua ühenduse Masinõppe ja AI kogukond kui teil on küsimusi või tagasisidet!


Autoritest

Järgmise põlvkonna Amazon SageMaker Experiments – korraldage, jälgige ja võrrelge oma masinõppe koolitusi PlatoBlockchain Data Intelligence'is. Vertikaalne otsing. Ai.Maira Ladeira Tanke on AWS-i masinõppe spetsialist. Andmeteaduse taustaga on tal 9-aastane kogemus ML-rakenduste kujundamisel ja ehitamisel koos klientidega erinevatest tööstusharudest. Tehnilise juhina aitab ta klientidel kiirendada oma äriväärtuse saavutamist uute tehnoloogiate ja uuenduslike lahenduste kaudu. Vabal ajal meeldib Mairale reisida ja perega soojas kohas aega veeta.

Järgmise põlvkonna Amazon SageMaker Experiments – korraldage, jälgige ja võrrelge oma masinõppe koolitusi PlatoBlockchain Data Intelligence'is. Vertikaalne otsing. Ai.Mani Khanuja on tehisintellekti ja masinõppe spetsialist ettevõttes Amazon Web Services (AWS). Ta aitab masinõpet kasutavatel klientidel AWS-i abil oma äriprobleeme lahendada. Ta veedab suurema osa ajast sukeldudes sügavuti ja õpetades kliente AI/ML projektidele, mis on seotud arvutinägemise, loomuliku keele töötlemise, prognoosimise, ML-i äärealade ja muuga. Ta on kirglik ML-i vastu, seetõttu on ta loonud oma labori koos isejuhtiva komplekti ja prototüüpide valmistamise tootmisliiniga, kus ta veedab suure osa oma vabast ajast.

Järgmise põlvkonna Amazon SageMaker Experiments – korraldage, jälgige ja võrrelge oma masinõppe koolitusi PlatoBlockchain Data Intelligence'is. Vertikaalne otsing. Ai.Dewen Qi on AWS-i tarkvaraarenduse insener. Praegu osaleb ta AWS SageMakeris platvormiteenuste ja tööriistade kogumi loomisel, et aidata klientidel oma ML-projekte edukaks muuta. Samuti on ta kirglik MLOpsi kontseptsiooni laiemale publikule toomise vastu. Väljaspool tööd naudib Dewen tšellot.

Järgmise põlvkonna Amazon SageMaker Experiments – korraldage, jälgige ja võrrelge oma masinõppe koolitusi PlatoBlockchain Data Intelligence'is. Vertikaalne otsing. Ai.Abhishek Agarwal on Amazon SageMakeri vanemtootejuht. Ta on kirglik töö klientidega ja masinõppe kättesaadavamaks muutmine. Vabal ajal naudib Abhishek maalimist, jalgrattasõitu ja uuenduslike tehnoloogiate õppimist.

Järgmise põlvkonna Amazon SageMaker Experiments – korraldage, jälgige ja võrrelge oma masinõppe koolitusi PlatoBlockchain Data Intelligence'is. Vertikaalne otsing. Ai.Dana Benson on tarkvarainsener, kes töötab Amazon SageMaker Experiments, Lineage ja Search meeskonnas. Enne AWS-iga liitumist kulutas Dana aega, et võimaldada Alexas nutikodu funktsioone ja Starbucksis mobiili tellida.

Ajatempel:

Veel alates AWS-i masinõpe