Käytä tietokeskeistä lähestymistapaa minimoidaksesi Amazon SageMaker -mallien kouluttamiseen tarvittavan tiedon määrän

Käytä tietokeskeistä lähestymistapaa minimoidaksesi Amazon SageMaker -mallien kouluttamiseen tarvittavan tiedon määrän

Koneoppimismallien (ML) parantuessa datatieteilijät, ML-insinöörit ja tutkijat ovat siirtäneet enemmän huomiota tietojen laadun määrittelyyn ja parantamiseen. Tämä on johtanut tietokeskeisen lähestymistavan syntymiseen ML:ssä ja erilaisissa tekniikoissa mallin suorituskyvyn parantamiseksi keskittymällä tietovaatimuksiin. Näiden tekniikoiden soveltaminen antaa ML:n harjoittajille mahdollisuuden vähentää ML-mallin harjoittamiseen tarvittavan datan määrää.

Osana tätä lähestymistapaa on noussut esiin kehittyneitä data-alajoukon valintatekniikoita, jotka nopeuttavat koulutusta vähentämällä syötetyn datan määrää. Tämä prosessi perustuu siihen, että valitaan automaattisesti tietty määrä pisteitä, jotka arvioivat suuremman tietojoukon jakautumista, ja käytetään sitä koulutukseen. Tämän tyyppisen tekniikan soveltaminen vähentää ML-mallin harjoittamiseen tarvittavaa aikaa.

Tässä viestissä kuvaamme datakeskeisten tekoälyperiaatteiden soveltamista Amazon SageMaker Ground Totuus, kuinka toteuttaa tietoosajoukon valintatekniikoita käyttämällä JOHDOT arkisto päällä Amazon Sage Maker vähentääksesi alkuperäisen mallin harjoittamiseen tarvittavan tiedon määrää ja kuinka suorittaa kokeiluja tätä lähestymistapaa käyttäen Amazon SageMaker -kokeilut.

Tietokeskeinen lähestymistapa koneoppimiseen

Ennen kuin sukellat kehittyneempiin tietokeskeisiin tekniikoihin, kuten datan osajoukkojen valintaan, voit parantaa tietojoukkojasi useilla tavoilla soveltamalla tietomerkintäprosessisi taustalla olevia periaatteita. Tätä varten Ground Truth tukee erilaisia ​​mekanismeja etikettien yhtenäisyyden ja tietojen laadun parantamiseksi.

Tarran johdonmukaisuus on tärkeää mallin suorituskyvyn parantamiseksi. Ilman sitä mallit eivät voi tuottaa päätösrajaa, joka erottaa jokaisen eri luokkiin kuuluvan pisteen. Yksi tapa varmistaa johdonmukaisuus on käyttää huomautusten konsolidointi Ground Truthissa, jonka avulla voit näyttää tietyn esimerkin useille merkintälaitteille ja käyttää koottua tunnistetta, joka on toimitettu kyseisen esimerkin pohjatotuudeksi. Etiketin ero mitataan Ground Truthin luomalla luottamuspisteellä. Jos merkinnöissä on eroja, tarkista, onko etiketöijille toimitetuissa merkintäohjeissa epäselvyyksiä, jotka voidaan poistaa. Tämä lähestymistapa lieventää yksittäisten leimainten harhojen vaikutuksia, mikä on keskeistä tarrojen johdonmukaisuuden lisäämisessä.

Toinen tapa parantaa mallin suorituskykyä keskittymällä tietoihin on kehittää menetelmiä tarrojen virheiden analysoimiseksi, kun ne löytävät tärkeimmän parannettavan tiedon osajoukon. voit tehdä tämän harjoitustietojoukollesi yhdistämällä manuaalisia toimenpiteitä, joihin kuuluu sukeltaminen merkittyihin esimerkkeihin ja amazonin pilvikello Ground Truth -merkintätöiden luomat lokit ja mittaukset. On myös tärkeää tarkastella virheitä, joita malli tekee johtopäätöshetkellä, jotta voimme ohjata seuraavaa merkintä iteraatiota tietojoukollemme. Näiden mekanismien lisäksi Amazon SageMaker selkeyttää antaa datatieteilijöille ja ML-insinööreille mahdollisuuden suorittaa algoritmeja, kuten KernelSHAP jotta he voivat tulkita mallinsa tekemiä ennusteita. Kuten mainittiin, syvempi selitys mallin ennusteisiin voidaan yhdistää alkuperäiseen merkintäprosessiin sen parantamiseksi.

Lopuksi voit heittää esiin meluisia tai liian tarpeettomia esimerkkejä. Näin voit lyhentää harjoitusaikaa poistamalla esimerkkejä, jotka eivät paranna mallin suorituskykyä. Tietyn tietojoukon hyödyllisen osajoukon tunnistaminen manuaalisesti on kuitenkin vaikeaa ja aikaa vievää. Tässä viestissä kuvattujen data-alajoukon valintatekniikoiden soveltaminen antaa sinun automatisoida tämän prosessin vakiintuneiden puitteiden mukaisesti.

Käytä tapausta

Kuten mainittiin, datakeskeinen tekoäly keskittyy mallin syötteen parantamiseen eikä itse mallin arkkitehtuuriin. Kun olet soveltanut näitä periaatteita tietojen merkitsemisen tai ominaisuuksien suunnittelun aikana, voit jatkaa keskittymistä mallin syöttämiseen käyttämällä datan osajoukon valintaa harjoituksen aikana.

Tässä viestissä käytämme yleistyspohjaista tietoosajoukon valintaa tehokkaan ja vankan oppimisen takaamiseksi (GLISTER), joka on yksi monista CORDS-tietovarastossa toteutetuista data-alajoukon valintatekniikoista ResNet-18 mallia minimoidaksesi ajan, joka kuluu mallin kouluttamiseen luokittelua varten CIFAR-10 kuvia. Seuraavassa on joitakin esimerkkikuvia, joiden vastaavat tunnisteet on vedetty CIFAR-10-tietojoukosta.

CIFAR-tietojoukko

ResNet-18:aa käytetään usein luokittelutehtäviin. Se on 18-kerroksinen syvä konvoluutiohermoverkko. CIFAR-10-aineistoa käytetään usein erilaisten tekniikoiden ja lähestymistapojen validiteetin arvioimiseen ML:ssä. Se koostuu 60,000 32 32 × 10 värikuvasta, jotka on merkitty XNUMX luokkaan.

Seuraavissa osioissa näytämme, kuinka GLISTER voi auttaa sinua jossain määrin vastaamaan seuraavaan kysymykseen:

Kuinka monta prosenttia tietystä tietojoukosta voimme käyttää ja silti saavuttaa hyvän mallin suorituskyvyn harjoittelun aikana?

GLISTERin käyttäminen harjoitusalgoritmiisi lisää murtoluvun hyperparametriksi harjoitusalgoritmiisi. Tämä edustaa prosenttiosuutta annetusta tietojoukosta, jota haluat käyttää. Kuten minkä tahansa hyperparametrin kohdalla, mallillesi ja tiedollesi parhaan tuloksen tuottavan arvon löytäminen vaatii viritystä. Emme mene syvällisesti hyperparametrien viritykseen tässä viestissä. Lisätietoja on kohdassa Optimoi hyperparametrit Amazon SageMakerin automaattisen mallin virityksen avulla.

Suoritamme useita testejä SageMaker Experimentsin avulla mitataksemme lähestymistavan vaikutusta. Tulokset vaihtelevat alkuperäisen tietojoukon mukaan, joten on tärkeää testata lähestymistapaa tietoihimme nähden eri kokoisilla osajoukoilla.

Vaikka keskustelemme GLISTERin käyttämisestä kuvissa, voit myös soveltaa sitä koulutusalgoritmeihin, jotka työskentelevät jäsenneltyjen tai taulukkomuotoisten tietojen kanssa.

Tietojen osajoukon valinta

Tietojen osajoukon valinnan tarkoituksena on nopeuttaa koulutusprosessia minimoimalla vaikutukset tarkkuuteen ja lisäämällä mallin kestävyyttä. Tarkemmin sanottuna GLISTER-ONLINE valitsee alijoukon mallin oppiessa yrittämällä maksimoida kyseisen harjoitustietojen osajoukon loki-todennäköisyyden määrittämässäsi vahvistusjoukossa. Tietojen osajoukon valinnan optimointi tällä tavalla lieventää kohinaa ja luokkaepätasapainoa, jota esiintyy usein todellisissa tietojoukoissa, ja sallii osajoukon valintastrategian mukautua mallin oppiessa.

Alkuperäisen GLISTER paperia kuvaa nopeuteen/tarkkuuteen liittyvää kompromissia eri data-alajoukkojen koolla, kuten a LeNet malli:

Osajoukon koko pyörimisnopeuden tarkkuus
10% 6x -3%
30% 2.5x -1.20%
50% 1.5x -0.20%

Mallin kouluttamiseksi suoritamme a SageMaker koulutustyötä käyttämällä mukautettua harjoitusskriptiä. Olemme myös jo ladaneet kuvatietojoukkomme kohteeseen Amazonin yksinkertainen tallennuspalvelu (Amazon S3). Kuten missä tahansa SageMaker-koulutustyössä, meidän on määritettävä Estimator esine. PyTorch-estimaattori alkaen sagemaker.pytorch paketin avulla voimme suorittaa oman harjoitusskriptimme hallitussa PyTorch-säiliössä. The inputs muuttuja välitetty estimaattorille .fit toiminto sisältää sanakirjan koulutus- ja validointitietojoukon S3 sijainnista.

- train.py komentosarja suoritetaan, kun koulutustyö käynnistetään. Tässä komentosarjassa tuomme ResNet-18-mallin CORDS-kirjastosta ja välitämme sille tietojoukossamme olevien luokkien määrän seuraavasti:

from cords.utils.models import ResNet18 numclasses = 10
model = ResNet18(numclasses)

Sitten käytämme gen_dataset toiminto CORDSista koulutus-, validointi- ja testitietojoukon luomiseen:

from cords.utils.data.datasets.SL import gen_dataset train_set, validation_set, test_set, numclasses = gen_dataset(
datadir="/opt/ml/input/data/training",
dset_name="cifar10",
feature="dss",
type="image")

Jokaisesta tietojoukosta luomme vastaavan PyTorch-datalataimen:

train_loader = torch.utils.data.DataLoader(train_set,
batch_size=batch_size,
shuffle=True) validation_loader = torch.utils.data.DataLoader(validation_set,
batch_size=batch_size,
shuffle=False)

Lopuksi käytämme näitä tiedonlataajia luomaan a GLISTERDataLoader CORDS-kirjastosta. Se käyttää GLISTER-ONLINE-valintastrategian toteutusta, joka soveltaa osajoukon valintaa, kun päivitämme mallia koulutuksen aikana, kuten aiemmin tässä viestissä on käsitelty.

Objektin luomiseksi välitämme valintastrategiakohtaiset argumentit muodossa a DotMap esine yhdessä train_loader, validation_loaderja logger:

import logging
from cords.utils.data.dataloader.SL.adaptive import GLISTERDataLoader
from dotmap import DotMap dss_args = # GLISTERDataLoader specific arguments
dss_args = DotMap(dss_args)
dataloader = GLISTERDataLoader(train_loader,
validation_loader,
dss_args,
logger,
batch_size=batch_size,
shuffle=True,
pin_memory=False)

- GLISTERDataLoader voidaan nyt käyttää tavallisena tiedonlataajana harjoitussilmukassa. Se valitsee data-alajoukot seuraavaa harjoituserää varten, kun malli oppii tämän mallin häviön perusteella. Kuten edellisestä taulukosta käy ilmi, data-alajoukon valintastrategian lisääminen antaa meille mahdollisuuden lyhentää harjoitusaikaa merkittävästi jopa data-alijoukon valinnan lisävaiheella, mutta tarkkuudessa on vain vähän kompromisseja.

Datatieteilijöiden ja ML-insinöörien on usein arvioitava lähestymistavan pätevyys vertaamalla sitä johonkin lähtötasoon. Näytämme kuinka tämä tehdään seuraavassa osiossa.

Kokeilun seuranta

Voit käyttää SageMaker Experiments -ohjelmaa data-alajoukon valintamenetelmän validiteetin mittaamiseen. Katso lisätietoja Seuraavan sukupolven Amazon SageMaker Experiments – Järjestä, seuraa ja vertaile koneoppimiskoulutuksiasi laajasti.

Meidän tapauksessamme suoritamme neljä koetta: perusviivan käyttämättä data-alajoukon valintaa ja kolme muuta koetta poikkeavilla fraction parametrit, jotka edustavat osajoukon kokoa suhteessa kokonaistietojoukkoon. Luonnollisesti pienemmällä fraction Parametrin pitäisi johtaa lyhyempiin harjoitusaikaan, mutta myös pienempään mallin tarkkuuteen.

Tässä postauksessa jokainen harjoitusajo on edustettuna a Run SageMaker Experimentsissa. Kaikki kokeiluamme liittyvät ajot on ryhmitelty yhden alle Experiment esine. Ajot voidaan liittää yhteiseen kokeiluun luotaessa Estimator SDK:n kanssa. Katso seuraava koodi:

from sagemaker.utils import unique_name_from_base
from sagemaker.experiments.run import Run, load_run experiment_name = unique_name_from_base("data-centric-experiment")
with Run(
experiment_name=experiment_name,
sagemaker_session=sess
) as run:
estimator = PyTorch('train.py',
source_dir="source",
role=role,
instance_type=instance_type,
instance_count=1,
framework_version=framework_version,
py_version='py3',
env={ 'SAGEMAKER_REQUIREMENTS': 'requirements.txt',
})
estimator.fit(inputs)

Osana mukautettua harjoitusohjelmaasi voit kerätä juoksumittareita käyttämällä load_run:

from sagemaker.experiments.run import load_run
from sagemaker.session import Session if __name__ == "__main__":
args = parse_args()
session = Session(boto3.session.Session(region_name=args.region))
with load_run(sagemaker_session=session) as run:
train(args, run)

Sitten käyttämällä edellisen operaation palauttamaa run-objektia, voit kerätä datapisteitä epookkia kohden kutsumalla run.log_metric(name, value, step) ja toimitetaan metriikan nimi, arvo ja nykyinen aikakausinumero.

Lähestymistapamme validiteetin mittaamiseksi keräämme mittareita, jotka vastaavat harjoituksen menetystä, harjoittelun tarkkuutta, validoinnin menetystä, validoinnin tarkkuutta ja aikakauden loppuunsaattamista. Sitten koulutustehtävien suorittamisen jälkeen voimme tarkista kokeilumme tulokset in Amazon SageMaker Studio tai SageMaker Experiments SDK:n kautta.

Jos haluat tarkastella validointitarkkuuksia Studiossa, valitse Analysoida kokeessa Toimii sivu.

Kokeiluluettelo

Lisää kaavio, aseta kaavion ominaisuudet ja valitse luoda. Kuten seuraavassa kuvakaappauksessa näkyy, näet käyrän validointitarkkuuksista kullakin aikakaudella kaikille ajoille.

Kokeilukaavio

SDK:n avulla voit myös noutaa kokeiluihin liittyviä tietoja Pandas-tietokehyksenä:

from sagemaker.analytics import ExperimentAnalytics trial_component_analytics = ExperimentAnalytics(
sagemaker_session=sess.sagemaker_client,
experiment_name=experiment_name
)
analytic_table = trial_component_analytics.dataframe()

Valinnaisesti koulutustehtävät voidaan lajitella. Voisimme lisätä esimerkiksi "metrics.validation:accuracy.max" arvona sort_by parametri välitetty ExperimentAnalytics palauttaaksesi vahvistustarkkuuden mukaisen tuloksen.

Kuten odotettiin, kokeilumme osoittavat, että GLISTERin ja data-alajoukon valinnan soveltaminen harjoitusalgoritmiin vähentää harjoitusaikaa. Kun suoritat perusharjoitusalgoritmiamme, mediaaniaika yksittäisen aikakauden suorittamiseen on noin 27 sekuntia. Sitä vastoin GLISTERin käyttäminen alijoukon valitsemiseen, joka vastaa 50 %, 30 % ja 10 % kokonaistietojoukosta, johtaa noin 13, 8.5 ja 2.75 sekunnin ajanjaksoon ml.p3.2xsuurissa tapauksissa. .

Havaitsemme myös suhteellisen minimaalisen vaikutuksen validoinnin tarkkuuteen, varsinkin kun käytetään 50 %:n data-alajoukkoja. 100 kauden harjoittelun jälkeen perusviiva tuottaa 92.72 %:n validointitarkkuuden. Sitä vastoin GLISTERin käyttäminen 50 %, 30 % ja 10 % koko tietojoukosta vastaavan osajoukon valitsemiseen johtaa 91.42 %:n, 89.76 %:n ja 82.82 %:n validointitarkkuuteen.

Yhteenveto

SageMaker Ground Truth ja SageMaker Experiments mahdollistavat tietokeskeisen lähestymistavan koneoppimiseen antamalla datatieteilijät ja ML-insinöörit tuottaa johdonmukaisempia tietojoukkoja ja seurata edistyneempien tekniikoiden vaikutuksia niiden toteuttaessa niitä mallinrakennusvaiheessa. Tietokeskeisen lähestymistavan käyttöönotto ML:ssä mahdollistaa mallin vaatiman tiedon määrän vähentämisen ja sen kestävyyden parantamisen.

Kokeile ja kerro meille mielipiteesi kommenteissa.


Tietoja kirjoittajista

Käytä tietokeskeistä lähestymistapaa minimoidaksesi Amazon SageMaker -mallien PlatoBlockchain Data Intelligencen kouluttamiseen tarvittavan tiedon määrän. Pystysuuntainen haku. Ai.Nicolas Bernier on ratkaisuarkkitehti, osa AWS:n Kanadan julkisen sektorin tiimiä. Hän suorittaa parhaillaan maisterintutkintoa Deep Learningin tutkimusalueella ja hänellä on viisi AWS-sertifikaattia, mukaan lukien ML Specialty Certification. Nicolas haluaa intohimoisesti auttaa asiakkaita syventämään AWS-tietoaan tekemällä yhteistyötä heidän kanssaan muuttaakseen heidän liiketoimintansa haasteet teknisiksi ratkaisuiksi.

Käytä tietokeskeistä lähestymistapaa minimoidaksesi Amazon SageMaker -mallien PlatoBlockchain Data Intelligencen kouluttamiseen tarvittavan tiedon määrän. Pystysuuntainen haku. Ai.Givanildo Alves on prototyyppiarkkitehti Amazon Web Services -palvelun prototyyppi- ja pilvisuunnittelutiimin kanssa, ja hän auttaa asiakkaita innovoimaan ja nopeuttamaan näyttämällä AWS:n mahdollisuuksien taitoa, koska hän on jo toteuttanut useita tekoälyn ympärillä olevia prototyyppejä. Hän on tehnyt pitkän uran ohjelmistosuunnittelussa ja työskennellyt aiemmin ohjelmistokehitysinsinöörinä osoitteessa Amazon.com.br.

Aikaleima:

Lisää aiheesta AWS-koneoppiminen