Choose the best data source for your Amazon SageMaker training job PlatoBlockchain Data Intelligence. Vertical Search. Ai.

Izberite najboljši vir podatkov za svoje izobraževalno delo Amazon SageMaker

Amazon SageMaker je upravljana storitev, ki olajša izdelavo, usposabljanje in uvajanje modelov strojnega učenja (ML). Podatkovni znanstveniki uporabljajo delovna mesta za usposabljanje SageMaker za preprosto usposabljanje modelov ML; ni vam treba skrbeti za upravljanje računalniških virov in plačate samo za dejanski čas usposabljanja. Vnos podatkov je sestavni del katerega koli cevovoda za usposabljanje in delovna mesta za usposabljanje SageMaker podpirajo različne načine shranjevanja podatkov in vnosa, ki ustrezajo širokemu spektru delovnih obremenitev pri usposabljanju.

Ta objava vam pomaga izbrati najboljši vir podatkov za vaš primer uporabe usposabljanja SageMaker ML. Predstavljamo možnosti virov podatkov, ki jih izvorno podpirajo izobraževalna opravila SageMaker. Za vsak vir podatkov in način vnosa opisujemo enostavnost uporabe, značilnosti delovanja, stroške in omejitve. Da bi vam pomagali hitro začeti, ponujamo diagram z vzorčnim potekom odločanja, ki mu lahko sledite glede na vaše ključne značilnosti delovne obremenitve. Nazadnje izvajamo več meril uspešnosti za realistične scenarije usposabljanja, da prikažemo praktične posledice na skupne stroške usposabljanja in uspešnost.

Izvorni viri podatkov SageMaker in načini vnosa

Preprosto in prilagodljivo branje podatkov o usposabljanju na učinkovit način je pogosta ponavljajoča se skrb za usposabljanje ML. SageMaker poenostavlja vnos podatkov z izbiro učinkovitih in visoko zmogljivih mehanizmov za vnos podatkov, imenovanih viri podatkov, in njihovimi ustreznimi načini vnosa. To vam omogoča, da ločite kodo za usposabljanje od dejanskega vira podatkov, samodejno priklopite datotečne sisteme, berete z visoko zmogljivostjo, preprosto vklopite deljenje podatkov med grafičnimi procesorji in primerki, da omogočite vzporednost podatkov, in samodejno premešate podatke na začetku vsake epohe.

Mehanizem za vnos usposabljanja SageMaker se izvorno integrira s tremi storitvami za shranjevanje, ki jih upravlja AWS:

  • Preprosta storitev shranjevanja Amazon (Amazon S3) je storitev za shranjevanje objektov, ki ponuja vodilno razširljivost v industriji, razpoložljivost podatkov, varnost in zmogljivost.
  • Amazon FSx za Luster je popolnoma upravljan skupni prostor za shranjevanje z razširljivostjo in zmogljivostjo priljubljenega datotečnega sistema Luster. Običajno je povezan z obstoječim vedro S3.
  • Elastični datotečni sistem Amazon (Amazon EFS) je splošen, razširljiv in zelo razpoložljiv skupni datotečni sistem z več cenovnimi stopnjami. Amazon EFS je brez strežnika in se samodejno poveča in zmanjša, ko dodajate in odstranjujete datoteke.

Usposabljanje SageMaker omogoča vašemu skriptu za usposabljanje dostop do naborov podatkov, shranjenih v Amazon S3, FSx for Lustre ali Amazon EFS, kot da bi bil na voljo v lokalnem datotečnem sistemu (prek vmesnika datotečnega sistema, skladnega s POSIX).

Z Amazon S3 kot virom podatkov lahko izbirate med načinom datoteke, načinom FastFile in načinom cevi:

  • Datotečni način – SageMaker kopira nabor podatkov iz Amazon S3 v shrambo primerka ML, ki je priložen Trgovina z elastičnimi bloki Amazon (Amazon EBS) ali glasnost NVMe SSD, preden se zažene vaš skript za vadbo.
  • Način FastFile – SageMaker razkrije nabor podatkov, ki se nahaja v Amazonu S3, kot datotečni sistem POSIX na instanci za usposabljanje. Datoteke nabora podatkov se na zahtevo pretakajo iz Amazon S3, ko jih prebere vaš skript za usposabljanje.
  • Način cevi – SageMaker pretaka nabor podatkov, ki se nahaja v Amazonu S3, v primerek usposabljanja ML kot cev Unix, ki se pretaka iz Amazona S3 na zahtevo, ko vaš skript za usposabljanje bere podatke iz cevi.

S FSx for Lustre ali Amazon EFS kot virom podatkov SageMaker namesti datotečni sistem, preden se zažene vaš skript za usposabljanje.

Usposabljanje vhodnih kanalov

Ko zaženete izobraževalno opravilo SageMaker, lahko določite do 20 upravljanih vhodni kanali za usposabljanje. Kanale si lahko predstavljate kot abstrakcijsko enoto, ki nalogi usposabljanja pove, kako in kje dobiti podatke, ki so na voljo algoritmski kodi za branje iz poti datotečnega sistema (na primer, /opt/ml/input/data/input-channel-name) na primerku ML. Izbrani kanali za usposabljanje so zajeti kot del metapodatkov o opravilih za usposabljanje, da se omogoči popolno sledenje rodu modela za primere uporabe, kot je ponovljivost delovnih mest za usposabljanje ali namen upravljanja modela.

Če želite uporabiti Amazon S3 kot vir podatkov, definirajte a TrainingInput določiti naslednje:

  • Vaš način vnosa (datoteka, hitra datoteka ali način cevi)
  • distribucija in mešanje konfiguracija
  • An S3DataType kot enega od treh načinov za določanje objektov v Amazon S3, ki sestavljajo vaš nabor podatkov:

Druga možnost je, da za FSx za Luster ali Amazon EFS definirate a FileSystemInput.

Naslednji diagram prikazuje pet izobraževalnih opravil, od katerih je vsako konfigurirano z drugačnim virom podatkov in kombinacijo načina vnosa:

Choose the best data source for your Amazon SageMaker training job PlatoBlockchain Data Intelligence. Vertical Search. Ai.

Viri podatkov in načini vnosa

Naslednji razdelki zagotavljajo globok potop v razlike med Amazon S3 (datotečni način, način FastFile in način Pipe), FSx for Lustre in Amazon EFS kot mehanizmi za vnos SageMaker.

Datotečni način Amazon S3

Datotečni način je privzeti način vnosa (če ga niste izrecno določili) in je enostavnejši za uporabo. Ko uporabite to možnost vnosa, SageMaker prenese nabor podatkov iz Amazon S3 v shrambo primerka usposabljanja ML (Amazon EBS ali lokalni NVMe, odvisno od vrste primerka) v vašem imenu, preden zažene usposabljanje modela, tako da lahko skript za usposabljanje prebere nabor podatkov iz lokalni datotečni sistem. V tem primeru mora imeti primerek dovolj prostora za shranjevanje, da se prilega celotnemu naboru podatkov.

Nabor podatkov za datotečni način konfigurirate tako, da zagotovite predpono S3, datoteko manifesta ali razširjeno datoteko manifesta.

Predpono S3 uporabite, če so vse vaše datoteke nabora podatkov znotraj skupne predpone S3 (podmape so v redu).

Datoteka manifesta navaja datoteke, ki sestavljajo vaš nabor podatkov. Manifest običajno uporabljate, ko opravilo predhodne obdelave podatkov odda datoteko manifesta ali ko so vaše datoteke nabora podatkov razporejene po več predponah S3. Razširjeni manifest je datoteka vrstice JSON, kjer vsaka vrstica vsebuje seznam atributov, kot je sklic na datoteko v Amazonu S3, poleg dodatnih atributov, večinoma oznak. Njegovi primeri uporabe so podobni kot pri manifestu.

Datotečni način je združljiv z Lokalni način SageMaker (interaktiven zagon vsebnika za usposabljanje SageMaker v nekaj sekundah). Za porazdeljeno usposabljanje lahko nabor podatkov razdelite na več primerkov z ShardedByS3Key možnost.

Hitrost prenosa v datotečnem načinu je odvisna od velikosti nabora podatkov, povprečne velikosti datoteke in števila datotek. Na primer, večji ko je nabor podatkov (ali več datotek ima), daljša je stopnja prenosa, med katero ostane računalniški vir instance dejansko nedejaven. Pri usposabljanju s primerki Spot se nabor podatkov prenese vsakič, ko se opravilo nadaljuje po prekinitvi Spot. Običajno prenos podatkov poteka s približno 200 MB/s za velike datoteke (na primer 5 minut/50 GB). Ali so ti stroški ob zagonu sprejemljivi, je odvisno predvsem od celotnega trajanja vašega usposabljanja, saj daljša faza usposabljanja pomeni sorazmerno manjšo fazo prenosa.

Način Amazon S3 FastFile

Način FastFile izpostavi objekte S3 prek vmesnika datotečnega sistema, združljivega s POSIX, kot da bi bile datoteke na voljo na lokalnem disku vašega izobraževalnega primerka, in pretaka njihovo vsebino na zahtevo, ko podatke porabi skript za usposabljanje. To pomeni, da se vašemu naboru podatkov ni več treba prilegati v prostor za shranjevanje primerka usposabljanja in vam ni treba čakati, da se nabor podatkov prenese v primerek usposabljanja, preden se lahko začne usposabljanje.

Da bi to olajšal, SageMaker navede vse metapodatke objektov, shranjene pod podano predpono S3, preden se zažene vaš skript za usposabljanje. Ti metapodatki se uporabljajo za ustvarjanje datoteke samo za branje FUSE (datotečni sistem v uporabniškem prostoru) ki je na voljo vašemu skriptu za usposabljanje prek /opt/ml/data/training-channel-name. Izpis predmetov S3 poteka tako hitro kot 5,500 objektov na sekundo, ne glede na njihovo velikost. To je veliko hitreje kot vnaprejšnje nalaganje datotek, kot je to v primeru datotečnega načina. Medtem ko se vaš skript za usposabljanje izvaja, lahko navede ali prebere datoteke, kot da bi bile na voljo lokalno. Vsaka operacija branja je dodeljena storitvi FUSE, ki posreduje zahteve GET Amazonu S3, da klicatelju dostavi dejansko vsebino datoteke. Tako kot lokalni datotečni sistem tudi FastFile obravnava datoteke kot bajte, zato je neodvisen od formatov datotek. Način FastFile lahko doseže prepustnost več kot en GB/s pri branju velikih datotek zaporedoma z uporabo več delavcev. FastFile lahko uporabite za branje majhnih datotek ali pridobivanje naključnih obsegov bajtov, vendar bi morali pričakovati nižjo prepustnost za takšne vzorce dostopa. Svoj vzorec dostopa za branje lahko optimizirate tako, da številne majhne datoteke serializirate v večje vsebnike datotek in jih berete zaporedno.

FastFile trenutno podpira samo predpone S3 (brez podpore za manifest in razširjeni manifest), način FastFile pa je združljiv z lokalnim načinom SageMaker.

Način Amazon S3 Pipe

Cevni način je še en pretočni način, ki ga je v veliki meri nadomestil novejši in za uporabo enostavnejši način FastFile.

V načinu Pipe so podatki vnaprej pridobljeni iz Amazon S3 z visoko sočasnostjo in pretočnostjo ter pretočeni v Unix imenovane cevi FIFO. Vsako cev lahko bere samo en proces. Priročna razširitev TensorFlow, specifična za SageMaker integrira način Pipe v izvorni nalagalnik podatkov TensorFlow za pretakanje besedila, zapisa datotek TFRecords ali RecordIO. Cevni način podpira tudi upravljano razčlenjevanje in mešanje podatkov.

FSx za Luster

FSx za Luster lahko poveča na stotine GB/s prepustnosti in milijone IOPS s pridobivanjem datotek z nizko zakasnitvijo.

Ko začnete z izobraževalnim opravilom, SageMaker priklopi datotečni sistem FSx za Luster v datotečni sistem primerka za usposabljanje, nato pa zažene vaš skript za usposabljanje. Sama namestitev je razmeroma hitra operacija, ki ni odvisna od velikosti nabora podatkov, shranjenega v FSx za Lustre.

V mnogih primerih ustvarite FSx za datotečni sistem Lustre in povežite ga z vedro S3 in predpono. Ko so datoteke povezane z vedro S3 kot virom, se datoteke leno naložijo v datotečni sistem, medtem ko jih vaš skript za usposabljanje bere. To pomeni, da se takoj po prvi epohi vašega prvega izvajanja vadbe celoten nabor podatkov kopira iz Amazona S3 v FSx za shranjevanje Luster (ob predpostavki, da je epoha opredeljena kot en sam polni pregled glede na primere vadbe in da je dodeljeni FSx za Luster skladiščenje je dovolj veliko). To omogoča dostop do datoteke z nizko zakasnitvijo za vsa naslednja obdobja in opravila usposabljanja z istim naborom podatkov.

Lahko tudi vnaprej naložite datoteke v datotečni sistem pred začetkom vadbenega dela, kar ublaži hladen zagon zaradi počasnega nalaganja. Možno je tudi izvajati več izobraževalnih opravil vzporedno, ki jih servisira isti datotečni sistem FSx for Lustre. Za dostop do FSx za Lustre se mora vaše usposabljanje povezati z VPC (glejte Nastavitve VPCConfig), ki zahteva nastavitev in sodelovanje DevOps. Da bi se izognili stroškom prenosa podatkov, datotečni sistem uporablja eno samo območje razpoložljivosti in morate podati ta ID območja razpoložljivosti, ko izvajate opravilo usposabljanja. Ker uporabljate Amazon S3 kot dolgoročno shrambo podatkov, priporočamo uvedbo vašega FSx za Luster s shrambo Scratch 2, kot stroškovno učinkovito izbiro za kratkoročno shrambo za visoko prepustnost, ki zagotavlja osnovno vrednost 200 MB/s in izbruh do 1300 MB/s na TB predvidenega prostora za shranjevanje.

Z neprekinjenim delovanjem datotečnega sistema FSx for Lustre lahko začnete z novimi izobraževalnimi opravili, ne da bi čakali, da se ustvari datotečni sistem, in vam ni treba skrbeti zaradi hladnega zagona v prvi fazi (ker so lahko datoteke še vedno predpomnjene v datotečni sistem FSx za Luster). Slaba stran tega scenarija so dodatni stroški, povezani z vzdrževanjem delovanja datotečnega sistema. Druga možnost je, da ustvarite in izbrišete datotečni sistem pred in po vsakem izobraževalnem opravilu (verjetno s skriptno avtomatizacijo v pomoč), vendar je potreben čas za inicializacijo datotečnega sistema FSx za Luster, ki je sorazmeren s številom datotek, ki jih vsebuje (za na primer, traja približno eno uro, da indeksira približno 2 milijona predmetov iz Amazon S3).

Amazon EFS

Priporočamo uporabo Amazon EFS, če se vaši podatki o usposabljanju že nahajajo v Amazon EFS zaradi primerov uporabe poleg usposabljanja ML. Če želite uporabiti Amazon EFS kot vir podatkov, morajo biti podatki že pred usposabljanjem v Amazon EFS. SageMaker priklopi navedeni datotečni sistem Amazon EFS v instanco za usposabljanje, nato pa zažene vaš skript za usposabljanje. Ko konfigurirate datotečni sistem Amazon EFS, morate izbrati med privzetim načinom zmogljivosti splošnega namena, ki je optimiziran za zakasnitev (dobro za majhne datoteke), in načinom zmogljivosti Max I/O, ki se lahko poveča na višje ravni skupne prepustnosti in operacij na sekundo (boljše za delovna mesta za usposabljanje z veliko I/O delavcev). Če želite izvedeti več, glejte Uporaba pravega načina delovanja.

Poleg tega lahko izbirate med dvema možnostma merjene prepustnosti: hitra prepustnost in predvidena prepustnost. Izbruh prepustnosti za datotečni sistem 1 TB zagotavlja izhodiščno hitrost 150 MB/s, medtem ko se lahko poveča na 300 MB/s za časovno obdobje 12 ur na dan. Če potrebujete višjo osnovno prepustnost ali se vam prevečkrat zgodi, da vam zmanjka zaporednih kreditov, lahko povečate velikost datotečnega sistema ali preklopite na omogočeno prepustnost. Pri predvideni prepustnosti plačate za želeno osnovno prepustnost do največ 3072 MB/s branja.

Vaše usposabljanje se mora povezati z VPC (glejte Nastavitve VPCConfig) za dostop do Amazon EFS.

Izbira najboljšega vira podatkov

Najboljši vir podatkov za vaše delo usposabljanja je odvisen od značilnosti delovne obremenitve, kot so velikost nabora podatkov, oblika datoteke, povprečna velikost datoteke, trajanje usposabljanja, vzorec zaporednega ali naključnega branja nalagalnika podatkov in kako hitro lahko vaš model porabi podatke o usposabljanju.

Naslednji diagram poteka ponuja nekaj smernic za lažji začetek:
Choose the best data source for your Amazon SageMaker training job PlatoBlockchain Data Intelligence. Vertical Search. Ai.

Kdaj uporabiti Amazon EFS

Če je vaš nabor podatkov primarno shranjen v Amazon EFS, imate morda aplikacijo za predprocesiranje ali opombe, ki za shranjevanje uporablja Amazon EFS. Preprosto lahko zaženete usposabljanje, konfigurirano s podatkovnim kanalom, ki kaže na datotečni sistem Amazon EFS (za več informacij glejte Pospešite usposabljanje na Amazonu SageMaker z uporabo Amazon FSx za datotečne sisteme Luster in Amazon EFS). Če uspešnost ni tako dobra, kot ste pričakovali, preverite svoje možnosti optimizacije z Amazon EFS vodnik za učinkovitostali razmislite o drugih načinih vnosa.

Uporabite Datotečni način za majhne nabore podatkov

Če je nabor podatkov shranjen na Amazon S3 in je njegov skupni obseg razmeroma majhen (na primer manj kot 50–100 GB), poskusite uporabiti datotečni način. Stroški prenosa nabora podatkov v velikosti 50 GB se lahko razlikujejo glede na skupno število datotek (na primer približno 5 minut, če so razdeljene na 100 MB velike fragmente). Ali so ti stroški ob zagonu sprejemljivi, je odvisno predvsem od celotnega trajanja vašega usposabljanja, saj daljša faza usposabljanja pomeni sorazmerno manjšo fazo prenosa.

Serializacija številnih majhnih datotek skupaj

Če je velikost vašega nabora podatkov majhna (manj kot 50–100 GB), vendar je sestavljena iz številnih majhnih datotek (manj kot 50 MB), se stroški prenosa v datotečnem načinu povečajo, ker je treba vsako datoteko posebej prenesti iz Amazona S3 v volumen primerka usposabljanja. Če želite zmanjšati to obremenitev in na splošno pospešiti prelet podatkov, razmislite o serializaciji skupin manjših datotek v manj večjih vsebnikov datotek (kot je 150 MB na datoteko) z uporabo formatov datotek, kot je TFRecord za TensorFlow, WebDataset za PyTorch, oz RecordIO za MXNet. Ti formati zahtevajo, da vaš nalagalnik podatkov zaporedno ponavlja primere. Podatke lahko še vedno premešate z naključnim prerazporeditvijo seznama datotek TFRecord po vsaki epohi in z naključnim vzorčenjem podatkov iz lokalnega medpomnilnika za premešanje (glejte naslednje Primer TensorFlow).

Kdaj uporabiti način FastFile

Za večje nabore podatkov z večjimi datotekami (več kot 50 MB) je prva možnost preizkusiti način FastFile, ki je enostavnejši za uporabo kot FSx za Luster, ker ne zahteva ustvarjanja datotečnega sistema ali povezovanja z VPC. Način FastFile je idealen za velike vsebnike datotek (več kot 150 MB) in se lahko obnese tudi z datotekami, večjimi od 50 MB. Ker način FastFile omogoča vmesnik POSIX, podpira naključna branja (branje nezaporednih obsegov bajtov). Vendar to ni idealen primer uporabe in vaša prepustnost bi bila verjetno manjša kot pri zaporednem branju. Če pa imate sorazmerno velik in računalniško zahteven model ML, bo način FastFile še vedno lahko nasičil učinkovito pasovno širino cevovoda za usposabljanje in ne bo povzročil ozkega grla V/I. Morali boste eksperimentirati in videti. Na srečo je preklop iz načina File v FastFile (in nazaj) tako enostaven kot dodajanje (ali odstranjevanje) input_mode='FastFile' parameter med definiranjem vašega vhodnega kanala s SDK-jem SageMaker Python:

sagemaker.inputs.TrainingInput(S3_INPUT_FOLDER, input_mode='FastFile') 

Nobene druge kode ali konfiguracije ni treba spremeniti.

Kdaj uporabiti FSx za Luster

Če je vaš nabor podatkov prevelik za datotečni način ali ima veliko majhnih datotek (ki jih ne morete zlahka serializirati) ali imate vzorec dostopa do naključnega branja, je FSx za Luster dobra možnost, ki jo je treba upoštevati. Njegov datotečni sistem obsega več sto GB/s prepustnosti in milijone IOPS, kar je idealno, če imate veliko majhnih datotek. Vendar, kot smo že omenili, bodite pozorni na težave s hladnim zagonom zaradi lenobnega nalaganja in na stroške nastavitve in inicializacije datotečnega sistema FSx za Luster.

Upoštevanje stroškov

Pri večini delovnih mest usposabljanja ML, zlasti pri opravilih, ki uporabljajo grafične procesorje ali namenske čipe ML, večino stroškov usposabljanja predstavljajo plačljive sekunde instance usposabljanja ML. GB prostora za shranjevanje na mesec, zahteve API-ja in omogočena prepustnost so dodatni stroški, ki so neposredno povezani z viri podatkov, ki jih uporabljate.

GB prostora za shranjevanje na mesec

GB prostora za shranjevanje na mesec je lahko pomemben za večje nabore podatkov, kot so videoposnetki, podatki tipala LiDAR in dnevniki ponudb AdTech v realnem času. Na primer, shranjevanje 1 TB v Nivo pogostega dostopa Amazon S3 Intelligent-Tiering stane 23 $ na mesec. Dodajanje datotečnega sistema FSx for Lustre poleg Amazon S3 povzroči dodatne stroške. Na primer, ustvarjanje 1.2 TB datotečnega sistema tipa Scratch 2, podprtega s SSD, z onemogočenim stiskanjem podatkov stane dodatnih 168 USD na mesec (140 USD/TB/mesec).

Z Amazon S3 in Amazon EFS plačate samo za tisto, kar uporabite, kar pomeni, da vam zaračunamo glede na dejansko velikost nabora podatkov. Pri FSx za Lustre vam zaračunamo velikost predvidenega datotečnega sistema (najmanj 1.2 TB). Pri izvajanju primerkov ML z nosilci EBS se Amazon EBS zaračuna neodvisno od primerka ML. To je običajno veliko nižji strošek v primerjavi s stroškom izvajanja primerka. Na primer, izvajanje instance ml.p3.2xlarge z nosilcem EBS 100 GB za 1 uro stane 3.825 USD za primerek in 0.02 USD za obseg EBS.

Zahteve za API in predvideni stroški pretoka

Medtem ko vaše usposabljanje brska po naboru podatkov, navaja in pridobiva datoteke z pošiljanjem zahtev Amazon S3 API. Na primer, vsak milijon zahtev GET je ocenjen na 0.4 USD (z razredom Intelligent-Tiering). Pričakujte brez stroškov prenosa podatkov za pasovno širino v Amazon S3 in iz njega, ker usposabljanje poteka v enem samem območju razpoložljivosti.

Pri uporabi FSx za Luster, ki je povezan z vedro S3, imate stroške zahteve API-ja Amazon S3 za branje podatkov, ki še niso predpomnjeni v datotečnem sistemu, ker FSx For Luster posreduje zahtevo v Amazon S3 (in predpomni rezultat ). Neposrednih stroškov zahteve za FSx za sam Luster ni. Ko uporabljate datotečni sistem FSx for Lustre, se izognite stroškom za prenos podatkov med območji razpoložljivosti, tako da zaženete svoje izobraževalno opravilo, povezano z istim območjem razpoložljivosti, v katerem ste zagotovili datotečni sistem. Amazon EFS z omogočeno prepustnostjo dodatno poveča stroške GB na mesec.

Študija primera uspešnosti

Da bi prikazali prej omenjene pomisleke o uspešnosti usposabljanja, smo izvedli vrsto primerjalnih testov za realističen primer uporabe v domeni računalniškega vida. Primerjalna vrednost (in zaključki) iz tega razdelka morda ne bo uporabna za vse scenarije in nanjo vplivajo različni vnaprej določeni dejavniki, ki smo jih uporabili, kot je DNN. Izvedli smo teste za 12 kombinacij naslednjega:

  • Načini vnosa – FSx za Lustre, način datoteke, način FastFile
  • Velikost nabora podatkov – Manjši nabor podatkov (1 GB), večji nabor podatkov (54 GB)
  • Velikost datoteke – Manjše datoteke (JPG, približno 39 KB), večje datoteke (TFRecord, približno 110 MB)

Za to študijo primera smo izbrali najpogosteje uporabljene načine vnosa in zato izpustili Amazon EFS in način Pipe.

Primerjalna merila študije primera so bila zasnovana kot celostna izobraževalna opravila SageMaker TensorFlow na instanci ml.p3.2xlarge z enim GPU. Izbrali smo znani ResNet-50 kot naš temeljni model za nalogo klasifikacije in Caltech-256 kot manjši nabor podatkov za usposabljanje (ki smo ga ponovili 50-krat, da smo ustvarili njegovo večjo različico nabora podatkov). Izvedli smo usposabljanje za eno obdobje, opredeljeno kot en sam polni zamah glede na primere usposabljanja.

Naslednji grafi prikazujejo skupni plačljivi čas izobraževalnih opravil SageMaker za vsak primerjalni scenarij. Sam skupni čas dela je sestavljen iz prenosa, usposabljanja in drugih faz (kot je zagon vsebnika in nalaganje artefaktov usposobljenega modela v Amazon S3). Krajši obračunski čas pomeni hitrejše in cenejše usposabljanje.

Choose the best data source for your Amazon SageMaker training job PlatoBlockchain Data Intelligence. Vertical Search. Ai.

Najprej se pogovorimo Scenarij A in scenarij C, ki priročno prikazujejo razliko v zmogljivosti med vnosnimi načini, ko je nabor podatkov sestavljen iz številnih majhnih datotek.

Scenarij A (manjše datoteke, manjši nabor podatkov) razkrije, da ima usposabljanje z datotečnim sistemom FSx za Luster najmanjši obračunski čas. Ima najkrajšo fazo prenosa, njegova stopnja usposabljanja pa je tako hitra kot način Datoteka, vendar hitrejša od FastFile. FSx za Luster je zmagovalec v tem preizkusu posamezne epohe. Ob tem razmislite o podobni delovni obremenitvi, vendar z več epohami – relativni stroški v načinu Datoteka zaradi stopnje prenosa se zmanjšajo, ko se doda več epoh. V tem primeru imamo raje datotečni način zaradi enostavne uporabe. Poleg tega boste morda ugotovili, da je uporaba datotečnega načina in plačilo 100 dodatnih plačljivih sekund boljša izbira kot plačilo in zagotavljanje FSx za datotečni sistem Luster.

Scenarij C (manjše datoteke, večji nabor podatkov) prikazuje FSx za Luster kot najhitrejši način, s samo 5,000 sekundami skupnega plačljivega časa. Ima tudi najkrajšo fazo prenosa, saj namestitev FSx za datotečni sistem Luster ni odvisna od števila datotek v datotečnem sistemu (v tem primeru 1.5 milijona datotek). Tudi stroški prenosa FastFile so majhni; pridobi samo metapodatke datotek, ki se nahajajo pod določeno predpono vedra S3, medtem ko se vsebina datotek prebere med stopnjo usposabljanja. Datotečni način je najpočasnejši način, saj porabi 10,000 sekund za prenos celotnega nabora podatkov vnaprej pred začetkom vadbe. Ko pogledamo stopnjo usposabljanja, FSx za način Luster in File kažeta podobno odlično zmogljivost. Kar zadeva način FastFile, pri pretakanju manjših datotek neposredno iz Amazona S3 postanejo režijski stroški za pošiljanje nove zahteve GET za vsako datoteko precejšnji glede na skupno trajanje prenosa datoteke (kljub uporabi zelo vzporednega nalagalnika podatkov s predhodnim medpomnilnikom). Posledica tega je splošna nižja prepustnost za način FastFile, kar ustvarja V/I ozko grlo za usposabljanje. FSx za Luster je očiten zmagovalec v tem scenariju.

Scenariji B in D pokažite razliko v zmogljivosti med načini vnosa, ko je nabor podatkov sestavljen iz manj večjih datotek. Zaporedno branje z uporabo večjih datotek običajno povzroči boljšo V/I zmogljivost, ker omogoča učinkovito medpomnjenje in zmanjša število V/I operacij.

Scenarij B (večje datoteke, manjši nabor podatkov) prikazuje podoben čas faze usposabljanja za vse načine (kar dokazuje, da usposabljanje ni vezano na V/I). V tem scenariju imamo raje način FastFile pred načinom File zaradi krajše stopnje prenosa in način FastFile pred FSx za Luster zaradi enostavnosti uporabe prvega.

Scenarij D (večje datoteke, večji nabor podatkov) prikazuje relativno podobne skupne obračunske čase za vse tri načine. Faza prenosa v načinu File je daljša od faze FSx za Luster in FastFile. Datotečni način prenese celoten nabor podatkov (54 GB) iz Amazon S3 v primerek usposabljanja, preden začne stopnjo usposabljanja. Vsi trije načini porabijo podoben čas v fazi usposabljanja, ker lahko vsi načini dovolj hitro pridobijo podatke in so vezani na GPU. Če uporabljamo primerke ML z dodatnimi viri CPE ali GPE, kot je ml.p4d.24xlarge, zahtevana prepustnost V/I podatkov za nasičenje računalniških virov raste. V teh primerih lahko pričakujemo, da bosta FastFile in FSx za Luster uspešno prilagodila svojo prepustnost (vendar je prepustnost FSx za Luster odvisna od velikosti omogočenega datotečnega sistema). Zmožnost datotečnega načina za prilagajanje prepustnosti je odvisna od prepustnosti nosilca diska, ki je priključen na instanco. Primerki, ki podpirajo Amazon EBS (kot so ml.p3.2xlarge, ml.p3.8xlarge in ml.p3.16xlarge), so na primer omejeni na največjo prepustnost 250 MB/s, medtem ko so lokalni primerki, ki podpirajo NVMe (kot ml. g5.* ali ml.p4d.24xlarge) lahko sprejme veliko večji pretok.

Če povzamemo, menimo, da je FastFile zmagovalec v tem scenariju, ker je hitrejši od datotečnega načina in prav tako hiter kot FSx za Lustre, vendar je enostavnejši za uporabo, stane manj in lahko po potrebi preprosto poveča svojo prepustnost.

Poleg tega, če bi imeli veliko večji nabor podatkov (velikost več TB), bi Datotečni način porabil veliko ur za prenos nabora podatkov, preden bi se lahko začelo usposabljanje, medtem ko bi FastFile lahko začel z usposabljanjem bistveno hitreje.

Prinesite lastno vnos podatkov

Izvorni vir podatkov SageMaker ustreza večini, vendar ne vsem možnim scenarijem usposabljanja ML. Situacije, ko boste morda morali poiskati druge možnosti vnosa podatkov, lahko vključujejo branje podatkov neposredno iz izdelka za shranjevanje drugega proizvajalca (ob predpostavki, da enostaven in pravočasen izvoz v Amazon S3 ni mogoč) ali močno zahtevo po enakem usposabljanju skript za nespremenjeno izvajanje v SageMakerju in Amazonski elastični računalniški oblak (Amazon EC2) oz Amazonski elastični kubernetes storitev (Amazon EKS). Te primere lahko obravnavate tako, da implementirate svoj mehanizem za vnos podatkov v skript za usposabljanje. Ta mehanizem je odgovoren za branje naborov podatkov iz zunanjih virov podatkov v instanco za usposabljanje. Na primer, TFRecordDataset od TensorFlow-jev tf.data knjižnica lahko bere neposredno iz pomnilnika Amazon S3.

Če mora vaš mehanizem za vnos podatkov poklicati katero koli storitev AWS, kot je npr Služba za relacijske baze podatkov Amazon (Amazon RDS), se prepričajte, da je AWS upravljanje identitete in dostopa (IAM) vloga vašega usposabljanja vključuje ustrezne politike IAM. Če se vir podatkov nahaja v Navidezni zasebni oblak Amazon (Amazon VPC), morate zagnati svoje usposabljanje povezano z istim VPC.

Ko sami upravljate vnos nabora podatkov, sledenje rodu SageMaker ne more samodejno beležiti naborov podatkov, uporabljenih med usposabljanjem. Zato razmislite o alternativnih mehanizmih, kot so oznake delovnih mest za usposabljanje ali hiperparametri, da zajamete ustrezne metapodatke.

zaključek

Izbira pravega vira podatkov za usposabljanje SageMaker bi lahko močno vplivala na hitrost, enostavnost uporabe in stroške usposabljanja modelov ML. Uporabite priloženi diagram poteka, da hitro začnete, opazujete rezultate in po potrebi eksperimentirate z dodatno konfiguracijo. Upoštevajte prednosti, slabosti in omejitve vsakega vira podatkov ter kako dobro ustrezajo individualnim zahtevam vašega usposabljanja. Za dodatne informacije in pomoč se obrnite na kontaktno osebo AWS.


O avtorjih

Choose the best data source for your Amazon SageMaker training job PlatoBlockchain Data Intelligence. Vertical Search. Ai.Gili Nachum je višji AI/ML Specialist Solutions Architect, ki dela kot del skupine EMEA Amazon Machine Learning. Gili je navdušen nad izzivi usposabljanja modelov globokega učenja in nad tem, kako strojno učenje spreminja svet, kot ga poznamo. V prostem času Gili rad igra namizni tenis.

Choose the best data source for your Amazon SageMaker training job PlatoBlockchain Data Intelligence. Vertical Search. Ai.dr. Aleksander Aržanov je specialist za rešitve AI/ML s sedežem v Frankfurtu v Nemčiji. Strankam AWS pomaga oblikovati in uvesti njihove rešitve ML v regiji EMEA. Preden se je pridružil AWS, je Alexander raziskoval izvor težkih elementov v našem vesolju in se navdušil nad ML, potem ko ga je uporabil v svojih obsežnih znanstvenih izračunih.

Časovni žig:

Več od Strojno učenje AWS