Jälgige oma ML-katseid otsast lõpuni andmete versioonikontrolli ja Amazon SageMaker Experiments PlatoBlockchain Data Intelligence abil. Vertikaalne otsing. Ai.

Jälgige oma ML-katseid otsast lõpuni andmete versioonikontrolli ja Amazon SageMaker Experiments abil

Andmeteadlased töötavad sageli selle nimel, et mõista erinevate andmete eeltöötluse ja funktsioonide inseneristrateegiate mõjusid koos erinevate mudeliarhitektuuride ja hüperparameetritega. Selleks peate katma suuri parameetriruume iteratiivselt ning võib olla ülejõukäiv jälgida varem käitatud konfiguratsioone ja tulemusi, säilitades samal ajal katsed reprodutseeritavatena.

See postitus tutvustab teile näidet selle kohta, kuidas jälgida oma katseid koodi, andmete, artefaktide ja mõõdikute vahel, kasutades Amazon SageMakeri katsed seoses Andmeversiooni juhtimine (DVC). Näitame, kuidas saate DVC-d kõrvuti kasutada Amazon SageMaker töötlemis- ja koolitustööd. Koolitame erinevaid CatBoosti mudeleid California eluasemeandmestiku põhjal StatLibi hoidlaja muutke hoidmisstrateegiaid, jälgides samal ajal DVC-ga andmete versiooni. Igas üksikus katses jälgime SageMakeri katsete abil sisend- ja väljundartefakte, koodi ja mõõdikuid.

SageMakeri katsed

SageMaker Experiments on AWS-teenus masinõppe (ML) katsete jälgimiseks. The SageMaker Experiments Pythoni SDK on selle teenuse kõrgetasemeline liides, mis aitab teil Pythoni abil katseteavet jälgida.

SageMaker Experimentsi eesmärk on muuta katsete loomine võimalikult lihtsaks, täita need katsetega, lisada jälgimis- ja põlvnemisteavet ning käitada katsete ja katsete lõikes analüüsi.

Arutades SageMakeri katseid, viitame järgmistele mõistetele.

  • Eksperiment – Seotud katsete kogu. Lisate katsesse katsed, mida soovite koos võrrelda.
  • Kohtuprotsess – Mitmeastmelise ML-töövoo kirjeldus. Töövoo iga etappi kirjeldab proovikomponent.
  • Proovikomponent – ML-i töövoo ühe etapi kirjeldus, nagu andmete puhastamine, funktsioonide eraldamine, mudeli koolitus või mudeli hindamine.
  • Jälitaja – Pythoni kontekstihaldur üksiku proovikomponendi (nt parameetrid, mõõdikud või artefaktid) kohta teabe logimiseks.

Andmete versiooni juhtimine

Data Version Control (DVC) on uut tüüpi andmete versioonide loomise, töövoo ja katsehaldustarkvara, mis põhineb Git (kuigi see võib töötada ka iseseisvalt). DVC vähendab lõhet väljakujunenud inseneritööriistade ja andmeteaduse vajaduste vahel, võimaldades teil kasutada uusi Omadused olemasolevaid oskusi ja intuitsiooni taaskasutades.

Andmeteaduse katsete jagamist ja koostööd saab teha tavalise Giti voo kaudu (kohustused, hargnemised, sildistamine, tõmbamispäringud) samamoodi nagu tarkvarainseneride puhul. Giti ja DVC-ga saavad andmeteaduse ja ML-i meeskonnad katseid versioonida, hallata suuri andmekogumeid ja muuta projektid reprodutseeritavaks.

DVC-l on järgmised funktsioonid:

  • DVC on a tasuta, avatud lähtekoodiga käsurea vahend.
  • DVC töötab Giti hoidlate peal ning sellel on sarnane käsurea liides ja voog nagu Git. DVC võib töötada ka iseseisvalt, kuid ilma versioonideks võimeid.
  • Andmete versioonide loomine on lubatud, kui suured failid, andmekogumikataloogid, ML-mudelid jne asendatakse väikeste failidega metafailid (lihtne Gitiga käsitseda). Need kohahoidjad osutavad algandmetele, mis on lähtekoodihaldusest lahti ühendatud.
  • Projekti andmete koodibaasist eraldi salvestamiseks saate kasutada kohapealset või pilvesalvestust. Nii saavad andmeteadlased edastada suuri andmekogumeid või jagada GPU-ga koolitatud mudelit teistega.
  • DVC muudab andmeteaduse projektid hõlpsasti reprodutseeritavaks torujuhtmed kasutades kaudseid sõltuvusgraafikuid ning kodeerides kaasatud andmeid ja artefakte.
  • DVC on platvormi agnostik. See töötab kõigis suuremates operatsioonisüsteemides (Linux, macOS ja Windows) ning töötab sõltumatult programmeerimiskeeltest (Python, R, Julia, shelliskriptid jne) või ML-teekidest (Keras, TensorFlow, PyTorch, Scipy ja nii edasi) rohkem), mida projektis kasutatakse.
  • DVC on kiire paigaldama ja see ei vaja spetsiaalset infrastruktuuri ega sõltu API-dest ega välistest teenustest. See on iseseisev CLI tööriist.

SageMaker Experiments ja DVC näidis

Järgmised GitHubi näidis näitab, kuidas kasutada DVC-d SageMakeri keskkonnas. Eelkõige vaatleme, kuidas luua kohandatud kujutist vaikimisi installitud DVC-teekidega, et pakkuda teie andmeteadlastele ühtset arenduskeskkonda. Amazon SageMaker Studioja kuidas käitada DVC-d koos SageMakeri hallatava infrastruktuuriga töötlemiseks ja koolituseks. Lisaks näitame, kuidas rikastada SageMakeri jälgimisteavet DVC-st pärit andmete versioonimise teabega ja visualiseerida neid Studio konsoolis.

Järgmine diagramm illustreerib lahenduse arhitektuuri ja töövoogu.

Looge kohandatud stuudiopilt juba installitud DVC-ga

Selle GitHubi hoidla, selgitame, kuidas luua kohandatud pilti Studio jaoks, kuhu on juba installitud DVC. Pildi loomise ja kõigile Studio kasutajatele kättesaadavaks tegemise eeliseks on see, et see loob Studio kasutajatele ühtse keskkonna, mida nad saaksid ka kohapeal käivitada. Kuigi valim põhineb AWSi pilv, saate konteineri ehitada ka oma kohalikus masinas, kui Docker on installitud ja töötab. See näidis põhineb järgmisel dockerfile ja keskkond.yml. Saadud Dockeri pilt salvestatakse Amazoni elastsete konteinerite register (Amazon EMR) oma AWS-i kontol. Vaadake järgmist koodi:

# Login to ECR
aws --region ${REGION} ecr get-login-password | docker login --username AWS --password-stdin ${ACCOUNT_ID}.dkr.ecr.${REGION}.amazonaws.com/smstudio-custom

# Create the ECR repository
aws --region ${REGION} ecr create-repository --repository-name smstudio-custom

# Build the image - it might take a few minutes to complete this step
docker build . -t ${IMAGE_NAME} -t ${ACCOUNT_ID}.dkr.ecr.${REGION}.amazonaws.com/smstudio-custom:${IMAGE_NAME}

# Push the image to ECR
docker push ${ACCOUNT_ID}.dkr.ecr.${REGION}.amazonaws.com/smstudio-custom:${IMAGE_NAME}

Nüüd saate looge uus Studio domeen or värskendage olemasolevat Studio domeeni millel on juurdepääs äsja loodud Dockeri pildile.

Me kasutame AWS pilvearenduskomplekt (AWS CDK), et luua kaudu järgmised ressursid AWS CloudFormation:

  • SageMakeri täitmisroll, millel on teie uue või olemasoleva Studio domeeni õiged õigused
  • SageMakeri pilt ja SageMakeri kujutise versioon Dockeri pildist conda-env-dvc-kernel mille me varem lõime
  • An AppImageConfig mis määrab, kuidas kerneli lüüsi tuleks konfigureerida
  • Studio kasutaja (data-scientist-dvc) õige SageMakeri täitmisrolli ja sellele saadaoleva kohandatud Studio pildiga

Üksikasjalike juhiste saamiseks vaadake Seostage SageMaker Studioga kohandatud pilt.

Käivitage labor

Labori käivitamiseks toimige järgmiselt.

  1. Studio domeenis käivitage Studio jaoks data-scientist-dvc kasutaja.
  2. Valige ikoon Git ja seejärel valige Kloonige hoidla.
    Kloonige hoidla
  3. Sisesta hoidla URL (https://github.com/aws-samples/amazon-sagemaker-experiments-dvc-demo) ja valige Kloonide.Kloonige repo nupp
  4. Valige failibrauseris amazon-sagemaker-experiments-dvc-demo hoidla.
  5. avage dvc_sagemaker_script_mode.ipynb märkmik.
  6. eest Kohandatud pilt, valige pilt conda-env-dvc-kernel.
  7. Vali valima.
    conda-env-dvc-kernel

Konfigureerige DVC andmete versioonide loomiseks

Loome alamkataloogi, kus valmistame ette andmed: sagemaker-dvc-sample. Selles alamkataloogis initsialiseerime uue Giti hoidla ja seame kaugjuhtimispuldi hoidlasse, mille loome AWS CodeCommit. Eesmärk on selles hoidlas versioonida andmejälgimise jaoks mõeldud DVC konfiguratsioonid ja failid. Git pakub aga natiivseid võimalusi alamprojektide haldamiseks näiteks giti alammoodulite ja git-alampuude kaudu ning saate seda näidist laiendada, et kasutada mis tahes ülalnimetatud tööriistu, mis teie töövooga kõige paremini sobivad.

CodeCommiti koos SageMakeriga kasutamise peamine eelis meie puhul on selle integreerimine AWS-i identiteedi- ja juurdepääsuhaldus (IAM) autentimiseks ja autoriseerimiseks, mis tähendab, et saame kasutada IAM-i rolle andmete edastamiseks ja tõmbamiseks, ilma et oleks vaja mandaate (või SSH-võtmeid) hankida. SageMakeri täitmisrollile sobivate õiguste määramine võimaldab ka Studio sülearvutil ning SageMakeri koolitus- ja töötlemistööl CodeCommitiga turvaliselt suhelda.

Kuigi saate CodeCommiti asendada mis tahes muu allika juhtimisteenusega, nagu GitHub, Gitlab või Bitbucket, peate kaaluma, kuidas oma süsteemi mandaate käsitleda. Üks võimalus on need mandaadid salvestada AWS-i saladuste haldur ja hankige need töö ajal nii Studio sülearvutist kui ka SageMakeri töötlemis- ja koolitustöödest.

Käivitage DVC

Töötle ja treeni DVC ja SageMakeriga

Selles jaotises uurime kahte erinevat lähenemisviisi oma probleemi lahendamiseks ja seda, kuidas saame SageMaker Experimentsi abil jälgida kahte testi vastavalt kõrgetasemelisele kontseptuaalsele arhitektuurile, mida me teile varem näitasime.

Seadistage SageMakeri eksperiment

Selle testi jälgimiseks SageMakeris peame looma katse. Peame katses määratlema ka katse. Lihtsuse huvides kaalume ainult ühte katset, kuid katse sees võib olla suvaline arv katseid, näiteks kui soovite testida erinevaid algoritme.

Loome katse nimega DEMO-sagemaker-experiments-dvc kahe katsega, dvc-trial-single-file ja dvc-trial-multi-files, millest igaüks esindab andmestiku erinevat versiooni.

Loome DEMO-sagemaker-experiments-dvc katse:

from smexperiments.experiment import Experiment
from smexperiments.trial import Trial
from smexperiments.trial_component import TrialComponent
from smexperiments.tracker import Tracker

experiment_name = 'DEMO-sagemaker-experiments-dvc'

# create the experiment if it doesn't exist
try:
    my_experiment = Experiment.load(experiment_name=experiment_name)
    print("existing experiment loaded")
except Exception as ex:
    if "ResourceNotFound" in str(ex):
        my_experiment = Experiment.create(
            experiment_name = experiment_name,
            description = "How to integrate DVC"
        )
        print("new experiment created")
    else:
        print(f"Unexpected {ex}=, {type(ex)}")
        print("Dont go forward!")
        raise

1. test: looge koolituseks ja kinnitamiseks üksikud failid

Selles jaotises loome töötlemisskripti, mis hangib algandmed otse Amazoni lihtne salvestusteenus (Amazon S3) sisendiks; töötleb seda rongi loomiseks, valideerimiseks ja testimiseks; ja salvestab tulemused DVC abil Amazon S3-sse. Lisaks näitame, kuidas saate jälgida DVC genereeritud väljundartefakte koos SageMakeriga töötlemis- ja koolitustööde tegemisel ning SageMakeri katsete kaudu.

Esiteks loome dvc-trial-single-file prooviversioon ja lisage see DEMO-sagemaker-experiments-dvc katse. Seda tehes hoiame kõik selle testiga seotud proovikomponendid sisukalt korraldatud.

first_trial_name = "dvc-trial-single-file"

try:
    my_first_trial = Trial.load(trial_name=first_trial_name)
    print("existing trial loaded")
except Exception as ex:
    if "ResourceNotFound" in str(ex):
        my_first_trial = Trial.create(
            experiment_name=experiment_name,
            trial_name=first_trial_name,
        )
        print("new trial created")
    else:
        print(f"Unexpected {ex}=, {type(ex)}")
        print("Dont go forward!")
        raise

Kasutage ühe faili versiooni loomiseks SageMakeri töötlemistöös DVC-d

Selles jaotises loome töötlemisskripti, mis hangib algandmed otse Amazon S3-st sisendina, kasutades SageMakeri hallatud andmete laadimise võimalust; töötleb seda rongi loomiseks, valideerimiseks ja testimiseks; ja salvestab tulemused DVC abil Amazon S3-sse. On väga oluline mõista, et kui kasutate DVC-d andmete salvestamiseks Amazon S3-sse (või andmete hankimiseks Amazon S3-st), kaotame SageMakeri hallatud andmete laadimisvõimalused, mis võib potentsiaalselt mõjutada meie töötlemis- ja koolitustööde jõudlust ja kulusid. , eriti kui töötate väga suurte andmekogumitega. Lisateavet SageMakeri sisendrežiimi erinevate võimaluste kohta leiate aadressilt Juurdepääs koolitusandmetele.

Lõpuks ühendame DVC jälgimisvõimalused SageMakeri jälgimisvõimalustega, kui käitate SageMaker Experimentsi kaudu töötlemistöid.

Töötlemisskript ootab keskkonnamuutujate kaudu edastatud DVC metaandmete salvestamiseks Giti hoidla aadressi ja haru, mille tahame luua. Andmekogumid ise salvestatakse Amazon S3-sse DVC poolt. Kuigi keskkonnamuutujaid jälgitakse SageMaker Experimentsis automaatselt ja need on nähtavad proovikomponendi parameetrites, võiksime proovida proovikomponente täiendava teabega rikastada, mis on seejärel saadaval jälgimisobjekti abil Studio kasutajaliideses visualiseerimiseks. Meie puhul on proovikomponentide parameetrid järgmised:

  • DVC_REPO_URL
  • DVC_BRANCH
  • USER
  • data_commit_hash
  • train_test_split_ratio

Eeltöötlusskript kloonib Giti hoidla; genereerib rongi-, valideerimis- ja katseandmed; ja sünkroonib selle DVC abil. Nagu varem mainitud, ei saa me DVC-d kasutades ära kasutada SageMakeri natiivseid andmete laadimise võimalusi. Lisaks jõudlustrahvidele, mida võime suurte andmehulkade puhul kannatada, kaotame ka väljundartefaktide automaatse jälgimise võimalused. Tänu jälgijale ja DVC Pythoni API-le saame aga need puudujäägid kompenseerida, tööajal sellist teavet hankida ja vähese vaevaga proovikomponendis salvestada. Seda tehes annab lisaväärtus selle konkreetse töötlemistööga seotud sisend- ja väljundartefaktide ühe vaate.

Täielik eeltöötlus Pythoni skript on saadaval aadressil GitHub repo.

with Tracker.load() as tracker:
    tracker.log_parameters({"data_commit_hash": commit_hash})
    for file_type in file_types:
        path = dvc.api.get_url(
            f"{data_path}/{file_type}/california_{file_type}.csv",
            repo=dvc_repo_url,
            rev=dvc_branch
        )
        tracker.log_output(name=f"california_{file_type}",value=path)

SageMaker annab meile võimaluse käitada oma töötlemisskripti AWS-i hallatavatel konteineripiltidel, mis on optimeeritud töötama AWS-i infrastruktuuris. Kui meie skript nõuab täiendavaid sõltuvusi, saame esitada a requirements.txt faili. Kui alustame töötlemistööd, kasutab SageMaker pip-install kõigi vajalike teekide installimiseks (näiteks DVC-ga seotud teegid). Kui teil on vaja rangemalt kontrollida kõiki konteineritele installitud teeke, saate SageMakeris kaasa võtta oma konteineri, näiteks töötlemine ja koolitus.

Meil on nüüd kõik koostisosad meie SageMakeri töötlemistöö tegemiseks:

  • Töötlemisskript, mis suudab töödelda mitut argumenti (--train-test-split-ratio) ja kaks keskkonnamuutujat (DVC_REPO_URL ja DVC_BRANCH)
  • A requiremets.txt fail
  • Giti hoidla (CodeCommitis)
  • SageMakeri eksperiment ja prooviversioon
from sagemaker.processing import FrameworkProcessor, ProcessingInput
from sagemaker.sklearn.estimator import SKLearn

dvc_repo_url = "codecommit::{}://sagemaker-dvc-sample".format(region)
dvc_branch = my_first_trial.trial_name

script_processor = FrameworkProcessor(
    estimator_cls=SKLearn,
    framework_version='0.23-1',
    instance_count=1,
    instance_type='ml.m5.xlarge',
    env={
        "DVC_REPO_URL": dvc_repo_url,
        "DVC_BRANCH": dvc_branch,
        "USER": "sagemaker"
    },
    role=role
)

experiment_config={
    "ExperimentName": my_experiment.experiment_name,
    "TrialName": my_first_trial.trial_name
}

Seejärel käivitame töötlemistöö rakendusega preprocessing-experiment.py stsenaarium, experiment_config, dvc_repo_urlja dvc_branch määratlesime varem.

%%time

script_processor.run(
    code='./source_dir/preprocessing-experiment.py',
    dependencies=['./source_dir/requirements.txt'],
    inputs=[ProcessingInput(source=s3_data_path, destination="/opt/ml/processing/input")],
    experiment_config=experiment_config,
    arguments=["--train-test-split-ratio", "0.2"]
)

Töötlemine võtab aega umbes 5 minutit. Nüüd saate vaadata üksiku faili andmestiku prooviversiooni üksikasju.

Järgmine ekraanipilt näitab, kust leiate Studios salvestatud teabe. Pange tähele väärtused dvc-trial-single-file in DVC_BRANCH, DVC_REPO_URLja data_commit_hash kohta parameetrid Tab.

SageMaker Experimentsi parameetrite vahekaart

Pange tähele ka sisendi ja väljundi üksikasju Esemeid Tab.

SageMaker Experiments artefaktide vahekaart

Looge hinnang ja sobitage mudel ühe faili andmeversiooniga

DVC-integratsiooni kasutamiseks SageMakeri koolitustöö sees läbime a dvc_repo_url ja dvc_branch keskkonnamuutujatena, kui loote objekti Hindaja.

Me treenime dvc-trial-single-file haru esimene.

DVC-ga andmete tõmbamisel kasutame järgmist andmestiku struktuuri:

dataset
    |-- train
    |   |-- california_train.csv
    |-- test
    |   |-- california_test.csv
    |-- validation
    |   |-- california_validation.csv

Nüüd loome Scikit-learn prognoosija, kasutades SageMaker Python SDK. See võimaldab meil täpsustada järgmist:

  • Pythoni lähtefaili tee, mida tuleks käivitada koolituse sisenemispunktina.
  • IAM-i roll, mis kontrollib Amazon S3 ja CodeCommit andmetele juurdepääsu ja SageMakeri funktsioonide käitamise õigusi.
  • Sõnaraamatute loend, mis määratlevad koolitustööde hindamiseks kasutatavad mõõdikud.
  • Koolitusjuhtude arv ja tüüp. Kasutame ühte ml.m5.suurt eksemplari.
  • Hüperparameetrid, mida kasutatakse treenimiseks.
  • Keskkonnamuutujad, mida koolitustöö ajal kasutada. Me kasutame DVC_REPO_URL, DVC_BRANCHja USER.
metric_definitions = [{'Name': 'median-AE', 'Regex': "AE-at-50th-percentile: ([0-9.]+).*$"}]

hyperparameters={ 
        "learning_rate" : 1,
        "depth": 6
    }
estimator = SKLearn(
    entry_point='train.py',
    source_dir='source_dir',
    role=role,
    metric_definitions=metric_definitions,
    hyperparameters=hyperparameters,
    instance_count=1,
    instance_type='ml.m5.large',
    framework_version='0.23-1',
    base_job_name='training-with-dvc-data',
    environment={
        "DVC_REPO_URL": dvc_repo_url,
        "DVC_BRANCH": dvc_branch,
        "USER": "sagemaker"
    }
)

experiment_config={
    "ExperimentName": my_experiment.experiment_name,
    "TrialName": my_first_trial.trial_name
}

Koolituse alustamiseks kutsume hindaja sobivusmeetodiks eksperiment_config, mille me varem määratlesime.

%%time
estimator.fit(experiment_config=experiment_config)

Koolitustöö läbimiseks kulub umbes 5 minutit. Logid näitavad neid ridu, mis näitavad DVC poolt tõmmatud faile:

Running dvc pull command
A       train/california_train.csv
A       test/california_test.csv
A       validation/california_validation.csv
3 files added and 3 files fetched
Starting the training.
Found train files: ['/opt/ml/input/data/dataset/train/california_train.csv']
Found validation files: ['/opt/ml/input/data/dataset/train/california_train.csv']

Test 2: looge koolituseks ja kinnitamiseks mitu faili

Loome uue dvc-trial-multi-files prooviversioon ja lisage see praegusele DEMO-sagemaker-experiments-dvc katse.

second_trial_name = "dvc-trial-multi-files"
try:
    my_second_trial = Trial.load(trial_name=second_trial_name)
    print("existing trial loaded")
except Exception as ex:
    if "ResourceNotFound" in str(ex):
        my_second_trial = Trial.create(
            experiment_name=experiment_name,
            trial_name=second_trial_name,
        )
        print("new trial created")
    else:
        print(f"Unexpected {ex}=, {type(ex)}")
        print("Dont go forward!")
        raise

Erinevalt esimesest töötlemisskriptist loome nüüd algsest andmekogumist mitu faili koolituseks ja kinnitamiseks ning salvestame DVC metaandmed teise haru.

Saate uurida teist Pythoni eeltöötlusskripti GitHub.

%%time

script_processor.run(
    code='./source_dir/preprocessing-experiment-multifiles.py',
    dependencies=['./source_dir/requirements.txt'],
    inputs=[ProcessingInput(source=s3_data_path, destination="/opt/ml/processing/input")],
    experiment_config=experiment_config,
    arguments=["--train-test-split-ratio", "0.1"]
)

Töötlemine võtab aega umbes 5 minutit. Nüüd saate vaadata mitme failiga andmekogumi prooviversiooni üksikasju.

Järgmised ekraanipildid näitavad, kust leiate SageMakeri katsetest salvestatud teabe Proovikomponendid Studio kasutajaliidese jaotises. Pange tähele väärtused dvc-trial-multi-files in DVC_BRANCH, DVC_REPO_URLja data_commit_hash kohta parameetrid Tab.

SageMakeri mitme faili katsete parameetrite vahekaart

Samuti saate vaadata sisendi ja väljundi üksikasju lehel Esemeid Tab.

SageMakeri mitme faili katsete artefaktide vahekaart

Nüüd treenime dvc-trial-multi-files haru. DVC-ga andmete tõmbamisel kasutame järgmist andmestiku struktuuri:

dataset
    |-- train
    |   |-- california_train_1.csv
    |   |-- california_train_2.csv
    |   |-- california_train_3.csv
    |   |-- california_train_4.csv
    |   |-- california_train_5.csv
    |-- test
    |   |-- california_test.csv
    |-- validation
    |   |-- california_validation_1.csv
    |   |-- california_validation_2.csv
    |   |-- california_validation_3.csv

Sarnaselt varasemaga loome uue Scikit-learn prognoosija prooviversiooni nimega dvc-trial-multi-files ja alustada koolitustööd.

%%time

estimator.fit(experiment_config=experiment_config)

Koolitustöö läbimiseks kulub umbes 5 minutit. Sülearvutisse väljastavatel koolitustööde logidel näete neid ridu, mis näitavad DVC poolt tõmmatud faile:

Running dvc pull command
A       validation/california_validation_2.csv
A       validation/california_validation_1.csv
A       validation/california_validation_3.csv
A       train/california_train_4.csv
A       train/california_train_5.csv
A       train/california_train_2.csv
A       train/california_train_3.csv
A       train/california_train_1.csv
A       test/california_test.csv
9 files added and 9 files fetched
Starting the training.
Found train files: ['/opt/ml/input/data/dataset/train/california_train_2.csv', '/opt/ml/input/data/dataset/train/california_train_5.csv', '/opt/ml/input/data/dataset/train/california_train_4.csv', '/opt/ml/input/data/dataset/train/california_train_1.csv', '/opt/ml/input/data/dataset/train/california_train_3.csv']
Found validation files: ['/opt/ml/input/data/dataset/validation/california_validation_2.csv', '/opt/ml/input/data/dataset/validation/california_validation_1.csv', '/opt/ml/input/data/dataset/validation/california_validation_3.csv']

Hoiustage oma mudelit SageMakeris

Pärast ML-mudeli väljaõpetamist saate selle SageMakeri abil juurutada. Püsiva reaalajas lõpp-punkti juurutamiseks, mis teeb ühe ennustuse korraga, kasutame SageMakeri reaalajas hostimisteenused.

from sagemaker.serializers import CSVSerializer

predictor = estimator.deploy(1, "ml.t2.medium", serializer=CSVSerializer())

Esiteks saame uusima testiandmestiku kohapeal Studio arendusmärkmikusse. Sel eesmärgil saame kasutada dvc.api.read() toorandmete laadimiseks, mis salvestati Amazon S3-sse SageMakeri töötlemistööga.

import io
import dvc.api

raw = dvc.api.read(
    "dataset/test/california_test.csv",
    repo=dvc_repo_url,
    rev=dvc_branch
)

Seejärel valmistame Pandade abil andmed ette, laadime test-CSV-faili ja helistame predictor.predict varem loodud SageMakeri lõpp-punkti kutsumiseks koos andmetega ja prognooside saamiseks.

test = pd.read_csv(io.StringIO(raw), sep=",", header=None)
X_test = test.iloc[:, 1:].values
y_test = test.iloc[:, 0:1].values

predicted = predictor.predict(X_test)
for i in range(len(predicted)-1):
    print(f"predicted: {predicted[i]}, actual: {y_test[i][0]}")

Kustutage lõpp-punkt

Peaksite lõpp-punktid kustutama, kui neid enam ei kasutata, kuna nende eest esitatakse arve juurutamise ajaks (lisateabe saamiseks vt Amazon SageMakeri hinnakujundus). Ootamatute kulude vältimiseks kustutage lõpp-punkt kindlasti.

predictor.delete_endpoint()

Koristage

Enne kõigi loodud ressursside eemaldamist veenduge, et kõik rakendused oleks kustutatud data-scientist-dvc kasutaja, sealhulgas kõik KernelGateway rakendused, samuti vaikerakendus JupiterServer.

Seejärel saate AWS CDK virna hävitada, käivitades järgmise käsu:

cdk destroy

Kui kasutasite olemasolevat domeeni, käivitage ka järgmised käsud:

# inject your DOMAIN_ID into the configuration file
sed -i 's/<your-sagemaker-studio-domain-id>/'"$DOMAIN_ID"'/' ../update-domain-no-custom-images.json
# update the sagemaker studio domain
aws --region ${REGION} sagemaker update-domain --cli-input-json file://../update-domain-no-custom-images.json

Järeldus

Selles postituses tutvustasite näidet, kuidas jälgida oma katseid koodi, andmete, artefaktide ja mõõdikute lõikes, kasutades SageMakeri katseid ning SageMakeri töötlemis- ja koolitustöid koos DVC-ga. Lõime DVC-d sisaldava Dockeri pildi, mis oli Studio jaoks arendusmärkmikuna vajalik, ja näitasime, kuidas saate DVC-ga töötlemis- ja koolitustöid kasutada. Valmistasime ette kaks andmete versiooni ja kasutasime nende haldamiseks Gitiga DVC-d. Seejärel kasutasite SageMaker Experiments, et jälgida andmete kahe versiooniga töötlemist ja treenimist, et saada parameetritest, artefaktidest ja mõõdikutest ühtne vaade ühel klaasil. Lõpuks juurutasite mudeli SageMakeri lõpp-punktis ja kasutasite SageMakeri lõpp-punkti käivitamiseks ja prognooside saamiseks teise andmekomplekti versiooni testimisandmestikku.

Järgmise sammuna saate laiendada olemasolevat sülearvutit ja tutvustada oma funktsioonide inseneristrateegiat ning kasutada katsete läbiviimiseks DVC-d ja SageMakerit. Lähme ehitama!

Lisalugemiseks vaadake järgmisi ressursse:


Autoritest

Paolo Di FrancescoPaolo Di Francesco on AWS-i lahenduste arhitekt. Tal on kogemus telekommunikatsiooni ja tarkvaratehnika alal. Ta on kirglik masinõppe vastu ja keskendub praegu oma kogemuste kasutamisele, et aidata klientidel AWS-is oma eesmärke saavutada, eriti MLOps-i teemalistes aruteludes. Väljaspool tööd naudib ta jalgpalli mängimist ja lugemist.

Eitan SelaEitan Sela on Amazon Web Servicesi masinõppe spetsialisti lahenduste arhitekt. Ta teeb koostööd AWS-i klientidega, et pakkuda juhiseid ja tehnilist abi, aidates neil AWS-is masinõppelahendusi luua ja kasutada. Vabal ajal naudib Eitan sörkimist ja uusimate masinõppeartikleid lugemist.

Ajatempel:

Veel alates AWS-i masinõpe