Kasutage andmekeskset lähenemist, et minimeerida Amazon SageMakeri mudelite koolitamiseks vajalikku andmemahtu

Kasutage andmekeskset lähenemist, et minimeerida Amazon SageMakeri mudelite koolitamiseks vajalikku andmemahtu

Kuna masinõppe (ML) mudelid on paranenud, on andmeteadlased, ML-insenerid ja teadlased pööranud rohkem tähelepanu andmete kvaliteedi määratlemisele ja parandamisele. See on kaasa toonud andmekeskse lähenemise ML-ile ja erinevatele tehnikatele mudeli jõudluse parandamiseks, keskendudes andmenõuetele. Nende tehnikate rakendamine võimaldab ML-i praktikutel vähendada ML-mudeli koolitamiseks vajalike andmete hulka.

Selle lähenemisviisi osana on kasutusele võetud täiustatud andmete alamhulga valimise tehnikad, mis kiirendavad koolitust, vähendades sisendandmete hulka. See protsess põhineb antud arvu punktide automaatsel valimisel, mis on ligikaudne suurema andmekogumi jaotusele, ja selle kasutamisel koolituseks. Seda tüüpi tehnika rakendamine vähendab ML-mudeli treenimiseks kuluvat aega.

Selles postituses kirjeldame andmekesksete AI põhimõtete rakendamist Amazon SageMaker Ground Truth, kuidas rakendada andmete alamhulga valiku tehnikaid kasutades Nöörid hoidla sisse lülitatud Amazon SageMaker et vähendada esialgse mudeli väljaõpetamiseks vajalike andmete hulka ja kuidas seda lähenemisviisi kasutades katseid läbi viia Amazon SageMakeri katsed.

Andmekeskne lähenemine masinõppele

Enne täpsematesse andmekesksetesse tehnikatesse (nt andme alamhulga valimisse) sukeldumist saate oma andmekogumeid mitmel viisil täiustada, rakendades andmesildistamise protsessis aluspõhimõtteid. Selleks toetab Ground Truth erinevaid mehhanisme, et parandada märgistuse järjepidevust ja andmete kvaliteeti.

Märgistuse järjepidevus on mudeli jõudluse parandamiseks oluline. Ilma selleta ei saa mudelid luua otsustuspiiri, mis eraldaks kõik erinevatesse klassidesse kuuluvad punktid. Üks viis järjepidevuse tagamiseks on kasutamine annotatsiooni konsolideerimine Ground Truthis, mis võimaldab esitada antud näidet mitmele märgistajale ja kasutada selle näite puhul põhitõena esitatud koondatud silti. Erinevusi märgistuses mõõdetakse Ground Truthi loodud usaldusskooriga. Kui märgistuses esineb lahknevusi, peaksite kontrollima, kas märgistajatele antavates märgistamisjuhistes on ebaselgust, mida saab eemaldada. See lähenemisviis leevendab üksikute märgistajate eelarvamuste mõju, mis on märgiste järjepidevamaks muutmisel keskse tähtsusega.

Teine võimalus mudeli jõudluse parandamiseks andmetele keskendudes hõlmab meetodite väljatöötamist etikettide vigade analüüsimiseks, kui need tuvastavad kõige olulisema andmete alamhulga, mida parandada. saate seda teha oma treeningandmete kogumi jaoks käsitsi tehtavate pingutuste kombinatsiooniga, mis hõlmab märgistatud näidetesse sukeldumist ja Amazon CloudWatch Ground Truthi märgistustööde loodud logid ja mõõdikud. Samuti on oluline vaadata vigu, mida mudel teeb järelduste tegemise ajal, et juhtida meie andmestiku järgmise märgistamise iteratsiooni. Lisaks nendele mehhanismidele Amazon SageMaker Clarify võimaldab andmeteadlastel ja ML-inseneridel käitada selliseid algoritme nagu KernelSHAP võimaldada neil tõlgendada oma mudeli tehtud ennustusi. Nagu mainitud, võib mudeli ennustuste sügavamat selgitust seostada esialgse märgistamisprotsessiga, et seda parandada.

Lõpuks võite kaaluda lärmakate või liiga üleliigsete näidete väljaviskamist. See võimaldab teil vähendada treeninguaega, eemaldades näited, mis ei aita kaasa mudeli jõudluse parandamisele. Antud andmekogumi kasuliku alamhulga käsitsi tuvastamine on aga keeruline ja aeganõudev. Selles postituses kirjeldatud andmete alamhulga valiku tehnikate rakendamine võimaldab teil seda protsessi automatiseerida vastavalt kehtestatud raamistikele.

Kasutusjuhtum

Nagu mainitud, keskendub andmekeskne AI mudeli sisendi parandamisele, mitte mudeli enda arhitektuurile. Kui olete need põhimõtted andmesildistamise või funktsioonide kavandamise ajal rakendanud, saate jätkata mudeli sisestamisele keskendumist, rakendades koolituse ajal andmete alamhulga valikut.

Selle postituse jaoks rakendame üldistuspõhist andmehulga valikut tõhusaks ja tugevaks õppimiseks (GLISTER), mis on üks paljudest CORDS-i hoidlas rakendatud andmete alamhulga valimise tehnikatest ResNet-18 mudel, et minimeerida aega, mis kulub mudeli koolitamiseks klassifitseerimiseks CIFAR-10 pilte. Järgnevalt on mõned näidispildid koos vastavate siltidega, mis on võetud CIFAR-10 andmekogumist.

CIFARi andmestik

ResNet-18 kasutatakse sageli klassifitseerimisülesannete jaoks. See on 18-kihiline sügav konvolutsiooniline närvivõrk. CIFAR-10 andmekogumit kasutatakse sageli erinevate tehnikate ja lähenemisviiside kehtivuse hindamiseks ML-is. See koosneb 60,000 32 32 × 10 värvilisest pildist, mis on märgistatud XNUMX klassis.

Järgmistes osades näitame, kuidas GLISTER aitab teil teatud määral vastata järgmisele küsimusele:

Mitu protsenti antud andmekogumist saame kasutada ja siiski saavutada mudeli head jõudlust koolituse ajal?

GLISTERi rakendamine treeningalgoritmile lisab teie treeningalgoritmis hüperparameetrina murdosa. See tähistab antud andmestiku protsenti, mida soovite kasutada. Nagu iga hüperparameetri puhul, nõuab teie mudeli ja andmete jaoks parima tulemuse andva väärtuse leidmine häälestamist. Me ei lähe selles postituses hüperparameetrite häälestamisesse süvitsi. Lisateabe saamiseks vaadake Optimeerige hüperparameetreid Amazon SageMakeri automaatse mudeli häälestamisega.

Käitame mitmeid katseid, kasutades SageMaker Experiments, et mõõta lähenemisviisi mõju. Tulemused varieeruvad olenevalt esialgsest andmekogumist, seega on oluline katsetada lähenemist meie andmetele erinevate alamhulkade suuruste puhul.

Kuigi me arutame GLISTERi kasutamist piltidel, saate seda rakendada ka struktureeritud või tabeliandmetega töötavatele treeningalgoritmidele.

Andmete alamhulga valik

Andmete alamhulga valiku eesmärk on kiirendada koolitusprotsessi, minimeerides samal ajal mõju täpsusele ja suurendades mudeli töökindlust. Täpsemalt valib GLISTER-ONLINE alamhulga, kui mudel õpib, püüdes maksimeerida selle treeningandmete alamhulga logimise tõenäosust teie määratud valideerimiskomplektis. Andmete alamhulga valiku sellisel viisil optimeerimine leevendab müra ja klasside tasakaalustamatust, mida sageli esineb reaalmaailma andmekogumites, ning võimaldab alamhulga valikustrateegial kohaneda, kui mudel õpib.

Algne GLISTER paber kirjeldab kiiruse/täpsuse kompromissi erinevate andmete alamhulga suuruste puhul, nagu järgitakse kasutades a LeNet mudel:

Alamhulga suurus speedup Täpsus
10% 6x -3%
30% 2.5x -1.20%
50% 1.5x -0.20%

Modelli koolitamiseks käivitame a SageMakeri koolitustöö kasutades kohandatud treeningskripti. Samuti oleme oma pildiandmestiku juba üles laadinud Amazoni lihtne salvestusteenus (Amazon S3). Nagu iga SageMakeri koolitustöö puhul, peame määratlema Estimator objektiks. PyTorchi hindaja alates sagemaker.pytorch pakett võimaldab meil käitada oma treeningskripti hallatud PyTorchi konteineris. The inputs muutuja edastati hindajale .fit funktsioon sisaldab koolituse ja valideerimise andmestiku S3 asukoha sõnastikku.

. train.py skript käivitatakse koolitustöö käivitamisel. Selles skriptis impordime ResNet-18 mudeli CORDSi teegist ja edastame sellele meie andmestiku klasside arvu järgmiselt:

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

Seejärel kasutame gen_dataset funktsiooni CORDS-ist, et luua koolitus-, valideerimis- ja testiandmekogumeid:

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

Igast andmekogumist loome samaväärse PyTorchi andmelaadija:

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)

Lõpuks kasutame neid andmelaadijaid, et luua a GLISTERDataLoader CORDSi raamatukogust. See kasutab GLISTER-ONLINE valikustrateegia rakendamist, mis rakendab alamhulga valikut, kui värskendame mudelit koolituse ajal, nagu selles postituses varem käsitletud.

Objekti loomiseks edastame valikustrateegia spetsiifilised argumendid kui a DotMap objekt koos 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 saab nüüd rakendada treeningtsüklile tavalise andmelaadijana. See valib andmete alamhulgad järgmiseks koolituspartiiks, kui mudel selle mudeli kadumise põhjal õpib. Nagu on näidatud eelmises tabelis, võimaldab andmete alamhulga valimise strateegia lisamine meil märkimisväärselt lühendada treeninguaega isegi täiendava andme alamhulga valimise etapiga, kuid täpsuses on vähe kompromisse.

Andmeteadlased ja ML-insenerid peavad sageli hindama lähenemisviisi kehtivust, võrreldes seda mõne lähtetasemega. Näitame, kuidas seda teha järgmises jaotises.

Katse jälgimine

Saate kasutada SageMakeri katseid, et mõõta andmete alamhulga valiku lähenemisviisi kehtivust. Lisateabe saamiseks vt Järgmise põlvkonna Amazon SageMaker Experiments – korraldage, jälgige ja võrrelge oma masinõppe koolitusi ulatuslikult.

Meie puhul teeme neli katset: lähtejoon ilma andmete alamhulga valikut rakendamata ja kolm teist erinevat katset fraction parameetrid, mis tähistavad alamhulga suurust üldise andmestiku suhtes. Loomulikult kasutades väiksemat fraction parameeter peaks vähendama treeninguaega, kuid vähendama ka mudeli täpsust.

Selle postituse puhul on iga treeningjooks kujutatud a Run SageMakeri katsetes. Kõik meie katsega seotud jooksud on rühmitatud ühe alla Experiment objektiks. Jooksud saab lisada ühise katse loomisel Estimator koos SDK-ga. Vaadake järgmist 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)

Kohandatud treeningskripti osana saate koguda jooksumõõdikuid kasutades 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)

Seejärel saate eelmise toimingu poolt tagastatud käitamisobjekti kasutades koguda andmepunkte epohhi kohta helistades run.log_metric(name, value, step) ja esitades meetrika nime, väärtuse ja praeguse epohhi numbri.

Meie lähenemisviisi paikapidavuse mõõtmiseks kogume mõõdikuid, mis vastavad treeningu kadudele, treeningu täpsusele, valideerimise kadudele, valideerimise täpsusele ja ajastu läbimise ajale. Siis pärast koolitustööde läbiviimist saame vaadake üle meie katse tulemused in Amazon SageMaker Studio või SageMaker Experiments SDK kaudu.

Valideerimistäpsuse vaatamiseks Studios valige Analüüsima eksperimendi kohta Jookseb lehel.

Katsete loend

Lisage diagramm, määrake diagrammi atribuudid ja valige Looma. Nagu on näidatud järgmisel ekraanipildil, näete valideerimistäpsuste graafikut igal ajajärgul kõigi käitamiste kohta.

Katsete diagramm

SDK võimaldab teil hankida ka katsega seotud teavet Panda andmeraamina.

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

Soovi korral saab koolitustöid sorteerida. Näiteks võiksime lisada "metrics.validation:accuracy.max" väärtusena sort_by parameeter edastati ExperimentAnalytics valideerimistäpsuse järgi järjestatud tulemuse tagastamiseks.

Nagu oodatud, näitavad meie katsed, et GLISTERi ja andmete alamhulga valiku rakendamine treeningalgoritmile vähendab treeninguaega. Meie algtaseme treeningalgoritmi käitamisel hõljub ühe epohhi läbimiseks kuluv keskmine aeg umbes 27 sekundit. Seevastu GLISTERi rakendamine alamhulga valimiseks, mis vastab 50%, 30% ja 10% üldisest andmestikust, annab ml.p13xsuurtel eksemplaridel aega vastavalt umbes 8.5, 2.75 ja 3.2 sekundile. .

Samuti täheldame suhteliselt minimaalset mõju valideerimise täpsusele, eriti 50% andmete alamhulkade kasutamisel. Pärast 100 epohhi treenimist annab baasjoon valideerimise täpsuseks 92.72%. Seevastu GLISTERi rakendamine alamhulga valimiseks, mis vastab 50%, 30% ja 10% üldisest andmekogumist, annab valideerimise täpsuseks vastavalt 91.42%, 89.76% ja 82.82%.

Järeldus

SageMaker Ground Truth ja SageMaker Experiments võimaldavad andmekeskset lähenemist masinõppele, võimaldades andmeteadlastel ja ML-i inseneridel luua ühtsemaid andmekogumiid ja jälgida täiustatud tehnikate mõju nende rakendamisel mudeli loomise etapis. Andmekeskse lähenemise rakendamine ML-is võimaldab teil vähendada mudeli jaoks nõutavate andmete hulka ja parandada selle töökindlust.

Proovige järele ja andke meile kommentaarides teada, mida arvate.


Autoritest

Kasutage andmekeskset lähenemist, et minimeerida Amazon SageMakeri mudelite PlatoBlockchain Data Intelligence koolitamiseks vajalike andmete hulk. Vertikaalne otsing. Ai.Nicolas Bernier on lahenduste arhitekt, osa AWS-i Kanada avaliku sektori meeskonnast. Praegu õpib ta magistrikraadi süvaõppe uurimisvaldkonnas ja tal on viis AWS-i sertifikaati, sealhulgas ML-i erialasertifikaat. Nicolas soovib kirglikult aidata klientidel oma teadmisi AWS-ist süvendada, tehes nendega koostööd, et muuta nende äriprobleemid tehnilisteks lahendusteks.

Kasutage andmekeskset lähenemist, et minimeerida Amazon SageMakeri mudelite PlatoBlockchain Data Intelligence koolitamiseks vajalike andmete hulk. Vertikaalne otsing. Ai.Givanildo Alves on prototüüpimise arhitekt koos Amazon Web Servicesi prototüüpide ja pilvetehnoloogia meeskonnaga, aidates klientidel uuendusi teha ja kiirendada, näidates AWS-is võimalikku kunsti, olles juba rakendanud mitmeid tehisintellekti prototüüpe. Tal on pikk karjäär tarkvaratehnika alal ja ta on varem töötanud tarkvaraarenduse insenerina aadressil Amazon.com.br.

Ajatempel:

Veel alates AWS-i masinõpe