Jezikovni modeli so statistične metode, ki napovedujejo zaporedje žetonov v zaporedjih z uporabo naravnega besedila. Veliki jezikovni modeli (LLM) so jezikovni modeli, ki temeljijo na nevronskih mrežah in imajo na stotine milijonov (BERTI) na več kot bilijon parametrov (MiCS), zaradi katere zaradi velikosti je usposabljanje z eno GPU nepraktično. Zaradi generativnih sposobnosti LLM-jev so priljubljeni pri sintezi besedil, povzemanju, strojnem prevajanju itd.
Velikost LLM in podatki o njegovem usposabljanju so dvorezen meč: prinaša kakovost modeliranja, vendar vključuje infrastrukturne izzive. Sam model je pogosto prevelik, da bi se prilegal v pomnilnik ene same naprave GPE ali v več naprav primerka z več GPE. Ti dejavniki zahtevajo usposabljanje LLM v velikih skupinah primerkov pospešenega strojnega učenja (ML). V zadnjih nekaj letih so številne stranke uporabljale AWS Cloud za usposabljanje LLM.
V tej objavi se poglobimo v nasvete in najboljše prakse za uspešno usposabljanje LLM Usposabljanje za Amazon SageMaker. SageMaker Training je upravljana paketna računalniška storitev ML, ki skrajša čas in stroške za usposabljanje in prilagajanje modelov v velikem obsegu, ne da bi bilo treba upravljati infrastrukturo. Znotraj enega ukaza za zagon, Amazon SageMaker zažene popolnoma funkcionalno, kratkotrajno računalniško gručo, ki izvaja nalogo po vaši izbiri, in z izboljšanimi funkcijami ML, kot so metastore, upravljani V/I in distribucija. Objava zajema vse faze delovne obremenitve usposabljanja LLM ter opisuje povezane infrastrukturne funkcije in najboljše prakse. Nekateri najboljši postopki v tej objavi se nanašajo posebej na primerke ml.p4d.24xlarge, večina pa jih je uporabnih za katero koli vrsto primerkov. Te najboljše prakse vam omogočajo usposabljanje LLM-jev na SageMakerju v obsegu od deset do sto milijonov parametrov.
Glede obsega te objave upoštevajte naslednje:
- Ne pokrivamo znanstvenega načrtovanja nevronskih mrež in povezanih optimizacij. Amazon.Znanost vsebuje številne znanstvene publikacije, vključno in ne omejeno na LLM.
- Čeprav se ta objava osredotoča na magistrske študije, je večina njenih najboljših praks pomembnih za kakršno koli usposabljanje z velikimi modeli, vključno z računalniškim vidom in večmodalnimi modeli, kot je stabilna difuzija.
Najboljše prakse
V tej objavi razpravljamo o naslednjih najboljših praksah:
- Izračunajte – SageMaker Training je odličen API za zagon opravil priprave nabora podatkov CPE in opravil GPU v tisoč merilih.
- skladiščenje – Nalaganje podatkov in preverjanje točk vidimo na dva načina, odvisno od spretnosti in preferenc: z an Amazon FSx Luster datotečni sistem, oz Preprosta storitev shranjevanja Amazon Samo (Amazon S3).
- Vzporednost – Vaša izbira porazdeljene knjižnice za usposabljanje je ključnega pomena za ustrezno uporabo grafičnih procesorjev. Priporočamo uporabo knjižnice, optimizirane za oblak, kot je paralelizem razdeljenih podatkov SageMaker, vendar lahko delujejo tudi samoupravljane in odprtokodne knjižnice.
- Mreža – Prepričajte se, da sta EFA in NVIDIA GPUDirectRDMA omogočena za hitro komunikacijo med stroji.
- Odpornost – V obsegu lahko pride do napak strojne opreme. Priporočamo redno kontrolo. Vsakih nekaj ur je običajno.
Izbira regije
Vrsta instance in želena zmogljivost sta odločilni dejavnik pri izbiri regije. Za regije, ki jih podpirata SageMaker in Amazonski elastični računalniški oblak (Amazon EC2) vrste primerkov, ki so na voljo v vsaki regiji, glejte Cene Amazon SageMaker. V tej objavi predvidevamo, da je tip primerka za usposabljanje ml.p4d.24xlarge, ki ga upravlja SageMaker.
Priporočamo sodelovanje z vašo ekipo za račun AWS ali stik Prodaja AWS da določite ustrezno regijo za vašo LLM delovno obremenitev.
Priprava podatkov
Razvijalci LLM usposabljajo svoje modele na velikih naborih podatkov naravno prisotnega besedila. Priljubljeni primeri takih virov podatkov vključujejo Navadni pajk in Kup. Naravno besedilo lahko vsebuje pristranskosti, netočnosti, slovnične napake in sintaksne različice. Morebitna kakovost LLM je močno odvisna od izbire in kuriranja podatkov o usposabljanju. Priprava podatkov o usposabljanju LLM je aktivno področje raziskav in inovacij v industriji LLM. Priprava nabora podatkov za obdelavo naravnega jezika (NLP) je bogata z možnostmi paralelizma brez skupne rabe. Z drugimi besedami, obstajajo koraki, ki jih je mogoče uporabiti za enote del – izvorne datoteke, odstavke, stavke, besede – brez potrebe po sinhronizaciji med delavci.
API-ji za opravila SageMaker, in sicer SageMaker Training in SageMaker Processing, so odlični za to vrsto nalog. Razvijalcem omogočajo zagon poljubnega vsebnika Docker na floti več strojev. V primeru SageMaker Training API je lahko računalniška flota heterogena. Na SageMakerju so bili uporabljeni številni porazdeljeni računalniški okviri, vključno z Armaturna plošča, Ray, in tudi PySpark, ki imata namensko Vsebnik, ki ga upravlja AWS in SDK v SageMaker Processing.
Ko zaženete opravilo z več stroji, SageMaker Training and Processing zažene vašo kodo enkrat na stroj. Za pisanje porazdeljene aplikacije vam ni treba uporabiti posebnega porazdeljenega računalniškega ogrodja: lahko napišete kodo po svoji izbiri, ki se bo zagnala enkrat na stroj, da uresničite paralelizem brez skupne rabe. Prav tako lahko napišete ali namestite komunikacijsko logiko med vozlišči po vaši izbiri.
Nalaganje podatkov
Obstaja več načinov za shranjevanje podatkov o usposabljanju in njihovo premikanje iz njihovega pomnilnika v pospešena računalniška vozlišča. V tem razdelku razpravljamo o možnostih in najboljših praksah za nalaganje podatkov.
SageMaker možnosti shranjevanja in nalaganja
Tipična velikost nabora podatkov LLM je v stotinah milijonov besedilnih žetonov, kar predstavlja nekaj sto gigabajtov. Grozdi primerkov ml.p4d.24xlarge, ki jih upravlja SageMaker, ponujajo več možnosti za shranjevanje in nalaganje nabora podatkov:
- SSD NVMe v vozlišču – primerki ml.P4d.24xlarge so opremljeni z 8TB NVMe, na voljo pod
/opt/ml/input/data/<channel>
če uporabljate Datotečni način SageMaker, in ob/tmp
. Če iščete preprostost in zmogljivost lokalnega branja, lahko kopirate svoje podatke na NVMe SSD. Kopiranje je mogoče izvesti z načinom datoteke SageMaker ali z vašo kodo, na primer z uporabo večprocesnih Boto3 or S5cmd. - FSx za Luster – SSD diski NVMe v vozlišču so omejeni po velikosti in zahtevajo zaužitje iz Amazona S3 pri vsakem opravilu ali ustvarjanju tople gruče. Če se želite razširiti na večje nabore podatkov in hkrati ohraniti naključni dostop z nizko zakasnitvijo, lahko uporabite FSx za Lustre. Amazon FSx je odprtokodni vzporedni datotečni sistem, priljubljen v visoko zmogljivem računalništvu (HPC). FSx za uporabo Luster porazdeljeno shranjevanje datotek (stripping) in fizično loči metapodatke datoteke od vsebine datoteke, da doseže visoko zmogljivo branje/pisanje.
- Način hitre datoteke SageMaker – FastFile Mode (FFM) je funkcija samo za SageMaker, ki predstavlja oddaljene objekte S3 v računalniških instancah, ki jih upravlja SageMaker, pod vmesnikom, združljivim s POSIX, in jih pretaka samo ob branju z uporabo FUSE. FFM bere rezultate v klicih S3, ki pretakajo oddaljene datoteke blok za blokom. Kot najboljša praksa za izogibanje napakam, povezanim s prometom Amazon S3, bi si morali razvijalci FFM prizadevati ohraniti osnovno število klicev S3 razumno, na primer z branjem datotek zaporedno in z nadzorovano količino vzporednosti.
- Samoupravno nalaganje podatkov – Seveda se lahko odločite tudi za implementacijo lastne, popolnoma prilagojene logike nalaganja podatkov z uporabo lastniške ali odprtokodne kode. Nekateri razlogi za uporabo samoupravljanega nalaganja podatkov so olajšanje selitve s ponovno uporabo že razvite kode, implementacija logike obravnavanja napak po meri ali večji nadzor nad osnovnim delovanjem in razčlenjevanjem. Primeri knjižnic, ki jih lahko uporabite za samoupravljano nalaganje podatkov, vključujejo torchdata.datapipes (prej Vtičnik AWS PyTorch S3) in Spletni nabor podatkov. AWS Python SDK Boto3 lahko tudi v kombinaciji z Torch Dataset razrede za ustvarjanje kode za nalaganje podatkov po meri. Razredi nalaganja podatkov po meri omogočajo tudi ustvarjalno uporabo heterogenih gruč SageMaker Training za natančno prilagajanje ravnovesja CPE in GPE dani delovni obremenitvi.
Za več informacij o teh možnostih in o tem, kako jih izbrati, glejte Izberite najboljši vir podatkov za svoje izobraževalno delo Amazon SageMaker.
Najboljše prakse za obsežno interakcijo z Amazon S3
Amazon S3 je sposoben obvladovati delovne obremenitve LLM, tako za branje podatkov kot za kontrolne točke. Podpira a stopnja zahtevka 3,500 PUT/COPY/POST/DELETE ali 5,500 GET/HEAD zahtev na sekundo na predpono v vedru. Vendar ni nujno, da je ta stopnja privzeto na voljo. Namesto tega, ko stopnja zahtev za predpono raste, se Amazon S3 samodejno prilagaja povečani stopnji. Za več informacij glejte Zakaj od Amazona S503 prejemam napake 3 Slow Down, ko so zahteve znotraj podprte stopnje zahtev na predpono.
Če pričakujete visokofrekvenčno interakcijo Amazon S3, priporočamo naslednje najboljše prakse:
- Poskusite brati in pisati iz več veder S3 in predponami. Podatke o usposabljanju in kontrolne točke lahko na primer razdelite na različne predpone.
- Preverite meritve Amazon S3 amazoncloudwatch za sledenje stopnjam zahtev.
- Poskusite čim bolj zmanjšati količino hkratnih PUT/GET:
- Imejte manj procesov z uporabo Amazona S3 hkrati. Na primer, če mora osem procesov na vozlišče vzpostaviti kontrolno točko do Amazon S3, lahko promet PUT zmanjšate za faktor 8 s hierarhično kontrolno točko: najprej znotraj vozlišča, nato od vozlišča do Amazon S3.
- Preberite več zapisov o vadbi iz ene datoteke ali S3 GET, namesto da uporabite S3 GET za vsak zapis o vadbi.
- Če uporabljate Amazon S3 prek SageMaker FFM, SageMaker FFM izvaja klice S3 za pridobivanje datotek kos za kosom. Za omejitev prometa Amazon S3, ki ga ustvarja FFM, vam priporočamo, da zaporedno berete datoteke in omejite število vzporedno odprtih datotek.
Če imate Načrt podpore za razvijalce, podjetja ali podjetja, lahko odprete primer tehnične podpore o napakah S3 503 Slow Down. Toda najprej se prepričajte, da ste upoštevali najboljše prakse in dobite ID-je zahtev za neuspele zahteve.
Paralelizem usposabljanja
LLM-ji imajo običajno na desetine do stotine milijard parametrov, zaradi česar so preveliki, da bi se prilegali eni sami kartici NVIDIA GPU. Strokovnjaki LLM so razvili več odprtokodnih knjižnic, ki omogočajo porazdeljeno računanje usposabljanja LLM, vključno z FSDP, DeepSpeed in Megatron. Te knjižnice lahko zaženete v programu SageMaker Training, lahko pa uporabite tudi distribuirane knjižnice za usposabljanje SageMaker, ki so optimizirane za AWS Cloud in zagotavljajo preprostejšo izkušnjo za razvijalce. Razvijalci imajo dve možnosti za porazdeljeno usposabljanje svojega LLM na SageMakerju: porazdeljene knjižnice ali samoupravljane.
Porazdeljene knjižnice SageMaker
Da bi vam zagotovili izboljšano zmogljivost in uporabnost porazdeljenega usposabljanja, SageMaker Training predlaga več lastniških razširitev za skaliranje kode za usposabljanje TensorFlow in PyTorch. Usposabljanje LLM se pogosto izvaja na način 3D-paralelizma:
- Vzporednost podatkov razdeli in poda vadbene mini serije na več enakih replik modela, da poveča hitrost obdelave
- Vzporednost cevovoda pripisuje različne plasti modela različnim grafičnim procesorjem ali celo primerkom, da poveča velikost modela preko ene same grafične procesorske enote in enega strežnika.
- Tenzorski paralelizem razdeli eno plast na več grafičnih procesorjev, običajno znotraj istega strežnika, da poveča posamezne plasti na velikosti, ki presegajo en sam grafični procesor
V naslednjem primeru se 6-slojni model uri na gruči k*3 strežnikov z 8*k*3 grafičnimi procesorji (8 grafičnih procesorjev na strežnik). Stopnja vzporednosti podatkov je k, paralelizem cevovoda 6 in tenzorski paralelizem 4. Vsak GPE v gruči vsebuje eno četrtino sloja modela, celoten model pa je razdeljen na tri strežnike (skupaj 24 GPE).
Naslednje je posebej pomembno za LLM:
- Vzporedni porazdeljeni model SageMaker – Ta knjižnica uporablja particioniranje grafov za izdelavo inteligentnega particioniranja modela, optimiziranega za hitrost ali pomnilnik. Vzporedni porazdeljeni model SageMaker izpostavlja najnovejšo in največjo optimizacijo usposabljanja velikih modelov, vključno s paralelizmom podatkov, paralelizmom cevovoda, paralelizmom tenzorjev, razrezom stanja optimizatorja, aktivacijskim kontrolnim točkam in razbremenitvijo. Z vzporedno knjižnico porazdeljenih modelov SageMaker smo dokumentirali 175-milijardno usposabljanje modela parametrov na 920 grafičnih procesorjih NVIDIA A100. Za več informacij glejte Urite 175+ milijard NLP modelov parametrov z vzporednimi dodatki modelov in Hugging Face na Amazon SageMaker.
- SageMaker vzporedni razdrobljeni podatki - V MiCS: skoraj linearno skaliranje za usposabljanje gigantskega modela v javnem oblaku, Zhang et al. uvesti vzporedno strategijo modela z nizko komunikacijo, ki razdeli modele samo na podatkovno vzporedno skupino, namesto na celotno gručo. Z MiCS je znanstvenikom AWS uspelo doseči 176 teraflopov na GPU (56.4 % teoretičnega vrha) za usposabljanje 210-slojnega modela z 1.06 bilijona parametrov na instancah EC2 P4de. MiCS je zdaj na voljo za stranke SageMaker Training kot SageMaker vzporedni razdrobljeni podatki.
Porazdeljene izobraževalne knjižnice SageMaker zagotavljajo visoko zmogljivost in enostavnejšo izkušnjo za razvijalce. Zlasti razvijalcem ni treba pisati in vzdrževati zaganjalnika vzporednih procesov po meri ali uporabljati orodja za zagon, specifičnega za okvir, ker je vzporedni zaganjalnik vgrajen v SDK za zagon opravil.
Samoupravljiv
S SageMaker Training imate svobodo uporabe ogrodja in znanstvene paradigme po vaši izbiri. Še posebej, če želite sami upravljati porazdeljeno usposabljanje, imate dve možnosti za pisanje kode po meri:
- Uporabite posodo za globoko učenje AWS (DLC) – AWS razvija in vzdržuje DLCs, ki zagotavlja okolja, ki temeljijo na Dockerju, optimizirana za AWS, za vrhunska odprtokodna ogrodja ML. SageMaker Training ima edinstveno integracijo, ki vam omogoča pridobivanje in zagon AWS DLC z zunanjo vstopno točko, ki jo določi uporabnik. Zlasti za usposabljanje LLM so DLC-ji AWS za TensorFlow, PyTorch, Hugging Face in MXNet še posebej pomembni. Uporaba ogrodja DLC vam omogoča uporabo izvornega paralelizma ogrodja, kot je PyTorch Distributed, ne da bi morali razvijati in upravljati lastne slike Docker. Poleg tega naši DLC-ji vključujejo MPI integracija, ki vam omogoča enostaven zagon vzporedne kode.
- Napišite sliko Docker po meri, združljivo s SageMakerjem – Prinesete lahko svojo (BYO) sliko (glejte Uporabite svoje lastne algoritme za usposabljanje in Amazon SageMaker Custom Training kontejnerji), bodisi začetek iz nič ali razširitev obstoječe slike DLC. Ko uporabljate sliko po meri za usposabljanje LLM na SageMakerju, je še posebej pomembno, da preverite naslednje:
- Vaša slika vsebuje EFA z ustreznimi nastavitvami (več o tem kasneje v tej objavi)
- Vaša slika vsebuje komunikacijsko knjižnico NVIDIA NCCL, omogočeno z GPUDirectRDMA
Stranke so lahko uporabljale številne samoupravljane porazdeljene izobraževalne knjižnice, vključno z DeepSpeed.
Communications
Glede na porazdeljeno naravo usposabljanja LLM je komunikacija med stroji ključnega pomena za izvedljivost, uspešnost in stroške delovne obremenitve. V tem razdelku predstavljamo ključne funkcije za komunikacijo med stroji in zaključujemo z nasveti za namestitev in nastavitev.
Adapter za elastične tkanine
Če želite pospešiti aplikacije ML in izboljšati delovanje z doseganjem prilagodljivosti, razširljivosti in elastičnosti, ki jo zagotavlja oblak, lahko izkoristite Adapter za elastične tkanine (EFA) s SageMakerjem. Po naših izkušnjah je uporaba EFA pogoj za doseganje zadovoljive učinkovitosti usposabljanja LLM z več vozlišči.
Naprava EFA je omrežni vmesnik, povezan z instancami EC2, ki jih med izvajanjem izobraževalnih opravil upravlja SageMaker. EFA je na voljo v določenih družinah primerkov, vključno s P4d. Omrežja EFA lahko dosežejo več sto Gbps prepustnosti.
Povezan z EFA je AWS predstavil Razširljiv zanesljiv datagram (SRD), transport na osnovi etherneta, ki se zgleduje po Zanesljiv datagram InfiniBand, se je razvil s sproščeno omejitvijo naročanja paketov. Za več informacij o EFA in SRD glejte V iskanju zmogljivosti obstaja več kot en način za izgradnjo omrežja, video Kako deluje EFA in zakaj ne uporabljamo infinibanda v oblaku, in raziskovalno nalogo Transportni protokol, optimiziran za oblak, za elastičen in razširljiv HPC od Shalev et al.
Dodate lahko integracijo EFA na združljivih instancah obstoječim vsebnikom Docker SageMaker ali vsebnikom po meri, ki jih je mogoče uporabiti za usposabljanje modelov ML z opravili SageMaker. Za več informacij glejte Tekaško usposabljanje z EFA. EFA je izpostavljena prek odprtokodnega Libfabric komunikacijski paket. Vendar ga razvijalci LLM redko neposredno programirajo z Libfabric in se namesto tega običajno zanašajo na NVIDIA Collective Communications Library (NCCL).
Vtičnik AWS-OFI-NCCL
V porazdeljenem ML se EFA najpogosteje uporablja s knjižnico NVIDIA Collective Communications Library (NCCL). NCCL je odprtokodna knjižnica, ki jo je razvila NVIDIA in izvaja komunikacijske algoritme med GPU. Komunikacija med GPU je temelj usposabljanja LLM, ki katalizira razširljivost in zmogljivost. Za usposabljanje DL je tako ključnega pomena, da je NCCL pogosto neposredno integriran kot komunikacijsko zaledje v knjižnicah za usposabljanje za globoko učenje, tako da ga razvijalci LLM uporabljajo – včasih ne da bi opazili – iz svojega prednostnega razvojnega okvira Python DL. Za uporabo NCCL na EFA, LLM razvijalci uporabljajo AWS razvit Vtičnik AWS OFI NCCL, ki preslika klice NCCL v vmesnik Libfabric, ki ga uporablja EFA. Priporočamo uporabo najnovejše različice AWS OFI NCCL, če želite izkoristiti nedavne izboljšave.
Če želite preveriti, ali NCCL uporablja EFA, morate nastaviti spremenljivko okolja NCCL_DEBUG
do INFO
, in preverite v dnevnikih, ali EFA nalaga NCCL:
Za več informacij o konfiguraciji NCCL in EFA glejte Preizkusite svojo konfiguracijo EFA in NCCL. NCCL lahko dodatno prilagodite z več spremenljivke okolja. Upoštevajte, da je v NCCL 2.12 in novejšem AWS prispeval logiko izbire avtomatiziranega komunikacijskega algoritma za omrežja EFA (NCCL_ALGO
lahko pustite nenastavljeno).
NVIDIA GPUDirect RDMA preko EFA
Z vrsto instance P4d smo Uvedeno GPUDirect RDMA (GDR) prek tkanine EFA. Omogoča omrežnim vmesniškim karticam (NIC) neposreden dostop do pomnilnika GPE, zaradi česar je oddaljena komunikacija GPU-GPU med instancami EC2, ki temeljijo na NVIDIA GPU-ju, hitrejša, kar zmanjšuje stroške orkestracije CPU-jev in uporabniških aplikacij. GDR uporablja pod pokrovom NCCL, kadar je to izvedljivo.
Uporaba GDR se prikaže v komunikaciji med GPU, ko je raven dnevnika nastavljena na INFO, kot v naslednji kodi:
Uporaba EFA v vsebnikih za globoko učenje AWS
AWS vzdržuje vsebnike za globoko učenje (DLC), od katerih so mnogi opremljeni z datotekami Docker, ki jih upravlja AWS, in so zgrajeni tako, da vsebujejo EFA, AWS OFI NCCL in NCCL. Naslednji GitHub reposi ponujajo primere z PyTorch in TensorFlow. Teh knjižnic vam ni treba namestiti sami.
Uporaba EFA v vaši lastni posodi SageMaker Training
Če ustvarite svoj vsebnik za usposabljanje SageMaker in želite uporabiti NCCL prek EFA za pospešeno komunikacijo med vozlišči, morate namestiti EFA, NCCL in AWS OFI NCCL. Za več informacij glejte Tekaško usposabljanje z EFA. Poleg tega bi morali nastaviti naslednje spremenljivke okolja v svojem vsebniku ali v kodi svoje vstopne točke:
FI_PROVIDER="efa"
določa ponudnika vmesnika tkanineNCCL_PROTO=simple
naroči NCCL, naj uporabi preprost protokol za komunikacijo (trenutno ponudnik EFA ne podpira protokolov LL; če bi jih omogočili, bi to lahko povzročilo poškodbo podatkov)FI_EFA_USE_DEVICE_RDMA=1
uporablja funkcijo RDMA naprave za enostranski in dvostranski prenosNCCL_LAUNCH_MODE="PARALLEL"
NCCL_NET_SHARED_COMMS="0"
Orkestracija
Upravljanje življenjskega cikla in delovne obremenitve desetin do stotin računalniških primerkov zahteva programsko opremo za orkestracijo. V tem razdelku ponujamo najboljše prakse za LLM orkestracijo
Orkestracija znotraj delovnega mesta
Razvijalci morajo v večini porazdeljenih ogrodij napisati kodo za usposabljanje na strani strežnika in kodo zaganjalnika na strani odjemalca. Koda za usposabljanje se izvaja na napravah za usposabljanje, medtem ko koda zaganjalnika na strani odjemalca zažene porazdeljeno delovno obremenitev iz naprave odjemalca. Danes je malo standardizacije, na primer:
- V PyTorchu lahko razvijalci zaženejo večstrojne naloge z uporabo
torchrun
,torchx
,torch.distributed.launch
(pot amortizacije), oztorch.multiprocessing.spawn
- DeepSpeed predlaga lasten zaganjalnik CLI deepspeed in podpira tudi zagon MPI
- MPI je priljubljeno vzporedno računalniško ogrodje, ki ima to prednost, da je neodvisen od ML in ima razumno najemništvo ter je zato stabilen in dokumentiran, in ga vse pogosteje opazimo v porazdeljenih delovnih obremenitvah ML
V gruči SageMaker Training se vsebnik za usposabljanje enkrat zažene na vsakem računalniku. Posledično imate tri možnosti:
- Izvorni zaganjalnik – Kot vstopno točko lahko uporabite izvorni zaganjalnik določenega ogrodja DL, na primer a
torchrun
klic, ki bo sam ustvaril več lokalnih procesov in vzpostavil komunikacijo med primerki. - Integracija SageMaker MPI – Uporabite lahko integracijo SageMaker MPI, ki je na voljo v našem DLC-ju AWS ali jo je mogoče namestiti sami prek nabor orodij za usposabljanje sagemaker, da neposredno zaženete svojo kodo vstopne točke N-krat na stroj. Prednost tega je, da se v vaši kodi izognete uporabi vmesnih skriptov zaganjalnika, specifičnih za okvir.
- Porazdeljene knjižnice SageMaker – Če uporabljate porazdeljene knjižnice SageMaker, se lahko osredotočite na učno kodo in vam sploh ni treba pisati zagonske kode! Koda distribuiranega zaganjalnika SageMaker je vgrajena v SDK SageMaker.
Orkestracija med delovnimi mesti
LLM projekti so pogosto sestavljeni iz več delovnih mest: iskanje parametrov, poskusi skaliranja, okrevanje po napakah in drugo. Če želite začeti, ustaviti in vzporediti naloge usposabljanja, je pomembno, da uporabite orkestrator za delo. SageMaker Training je brezstrežniški orkestrator opravil ML, ki zagotovi prehodne računalniške instance takoj na zahtevo. Plačate samo za tisto, kar uporabite, gruče pa se prekinejo takoj, ko se vaša koda konča. z SageMaker Training Warm Pools, imate možnost določiti življenjsko dobo na grozdih za usposabljanje, da ponovno uporabite isto infrastrukturo na različnih delovnih mestih. To zmanjša čas iteracije in variabilnost med delovnimi mesti. Opravila SageMaker je mogoče zagnati iz različnih programskih jezikov, vključno z Python in CLI.
Obstaja Python SDK, specifičen za SageMaker, imenovan SDK SageMaker Python in se izvaja prek sagemaker Knjižnica Python, vendar je njena uporaba neobvezna.
Povečanje kvot za učna dela z velikim in dolgim učnim grozdom
SageMaker ima privzete kvote za vire, namenjene preprečevanju nenamerne uporabe in stroškov. Če želite usposabljati LLM z uporabo velikega grozda instanc višjega cenovnega razreda, ki se izvajajo dlje časa, boste verjetno morali povečati kvote v naslednji tabeli.
Ime kvote | Privzeta vrednost |
Najdaljši čas za usposabljanje | 432,000 sekund |
Število primerov v vseh delovnih mestih za usposabljanje | 4 |
Največje število primerkov na delovno mesto za usposabljanje | 20 |
ml.p4d.24xlarge za uporabo pri usposabljanju | 0 |
ml.p4d.24xlarge za vadbo uporabe toplega bazena | 0 |
Poglej Kvote storitev AWS kako si lahko ogledate svoje vrednosti kvote in zahtevate povečanje kvote. Kvote na zahtevo, promptne instance in kvote toplih bazenov za usposabljanje se spremljajo in spreminjajo ločeno.
Če se odločite, da ostane SageMaker Profiler aktiviran, se zavedajte, da vsako učno opravilo zažene opravilo SageMaker Processing, pri čemer vsako porabi en primerek ml.m5.2xlarge. Prepričajte se, da so vaše kvote za obdelavo SageMaker dovolj visoke, da se prilagodijo pričakovani sočasnosti opravil usposabljanja. Če želite na primer zagnati 50 izobraževalnih opravil, ki se izvajajo hkrati, boste morali zvišati ml.m5.2xlarge za omejitev uporabe opravil obdelave na 50.
Poleg tega boste morali za zagon dolgotrajnega opravila izrecno nastaviti Ocenjevalnik max_run
parametra na želeno največje trajanje za vadbeno delo v sekundah, do vrednosti kvote najdaljšega časa izvajanja za vadbeno delo.
Spremljanje in odpornost
Napaka strojne opreme je izjemno redka v obsegu ene instance in postaja vse pogostejša, ko se povečuje število sočasno uporabljenih instanc. V tipičnem LLM obsegu – na stotine do tisoče grafičnih procesorjev, ki se uporabljajo 24/7 tedne do mesece – se bodo skoraj zagotovo zgodile okvare strojne opreme. Zato mora delovna obremenitev LLM izvajati ustrezne mehanizme spremljanja in odpornosti. Prvič, pomembno je, da natančno spremljate infrastrukturo LLM, da omejite vpliv napak in optimizirate uporabo računalniških virov. SageMaker Training za ta namen predlaga več funkcij:
- Dnevniki se samodejno pošljejo v CloudWatch Logs. Dnevniki vključujejo vaš skript za usposabljanje
stdout
instderr
. Pri porazdeljenem usposabljanju, ki temelji na MPI, vsi delavci MPI pošljejo svoje dnevnike procesu vodje. - Meritve uporabe sistemskih virov, kot so pomnilnik, uporaba CPE in GPE, se samodejno pošljejo v CloudWatch.
- Ti lahko določi meritve usposabljanja po meri ki bodo poslani v CloudWatch. Meritve so zajete iz dnevnikov na podlagi regularnih izrazov, ki jih nastavite. Eksperimentalni paketi tretjih oseb, kot je Partner AWS ki ponuja uteži in pristranskosti, se lahko uporablja z usposabljanjem SageMaker (za primer glejte Optimizacija hiperparametrov CIFAR-10 z W&B in SageMaker).
- SageMaker Profiler vam omogoča, da pregledate uporabo infrastrukture in dobite priporočila za optimizacijo.
- Amazon EventBridge in AWS Lambda vam omogočajo, da ustvarite avtomatizirano logiko odjemalca, ki se odziva na dogodke, kot so napake pri delu, uspehi, nalaganje datotek S3 in več.
- SageMaker SSH Helper je odprtokodna knjižnica, ki jo vzdržuje skupnost in omogoča povezavo z gostitelji delovnih mest za usposabljanje prek SSH. Lahko je koristno pregledati in odpraviti težave pri izvajanju kode na določenih vozliščih.
Poleg nadzora SageMaker prinaša tudi opremo za odpornost na delo:
- Pregledi zdravja gruče – Preden se vaše delo začne, SageMaker zažene preglede stanja GPE in preveri komunikacijo NCCL na instancah GPE ter po potrebi zamenja morebitne okvarjene instance, da zagotovi, da se vaš skript za usposabljanje začne izvajati na zdravi gruči instanc. Pregledi zdravja so trenutno omogočeni za vrste instanc, ki temeljijo na grafični procesorji P in G.
- Vgrajeni ponovni poskusi in posodobitev gruče – SageMaker lahko konfigurirate tako, da samodejno poskusite znova usposabljanje, ki ne uspe zaradi notranje napake strežnika SageMaker (ISE). Kot del ponovnega poskusa opravila bo SageMaker zamenjal vse primerke, ki so naleteli na nepopravljive napake GPU, s svežimi primerki, znova zagnal vse zdrave primerke in znova zagnal opravilo. Posledica tega so hitrejši ponovni zagoni in dokončanje delovne obremenitve. Posodobitev gruče je trenutno omogočena za tipe instanc, ki temeljijo na GPU P in G. Dodate lahko svoje aplikativni mehanizem ponovnega poskusa okoli kode odjemalca, ki odda opravilo, za obravnavo drugih vrst napak pri zagonu, na primer prekoračitev kvote računa.
- Avtomatizirano kontrolno točko do Amazon S3 – To vam pomaga kontrolno točko vaš napredek in ponovno naložite preteklo stanje na nova delovna mesta.
Če želite izkoristiti zamenjavo na ravni vozlišča, mora vaša koda imeti napako. Ko vozlišče odpove, se lahko kolektivi obesijo, namesto da pride do napake. Zato za hitro odpravo pravilno nastavite časovno omejitev za svoje kolektive in naj koda vrže napako, ko je dosežena.
Nekatere stranke nastavijo nadzornega odjemalca za spremljanje in ukrepanje v primeru zastoja opravila ali zaustavitve aplikativne konvergence, tako da spremljajo dnevnike in meritve CloudWatch za nenormalne vzorce, kot je brez zapisovanja dnevnikov ali 0-odstotna uporaba GPU-ja, da namigujejo za zastoj, zaustavitev konvergence in samodejno ustavite/ponovno poskusite opravilo.
Globok potop na kontrolnih točkah
O Kontrolna točka SageMaker funkcija kopira vse, na kar pišete /opt/ml/checkpoints
nazaj v Amazon S3 kot URI, naveden v checkpoint_s3_uri
parameter SDK. Ko se opravilo zažene ali znova zažene, se vse, kar je zapisano na tem URI-ju, pošlje nazaj na vse stroje, na /opt/ml/checkpoints
. To je priročno, če želite, da imajo vsa vozlišča dostop do vseh kontrolnih točk, vendar v velikem obsegu – ko imate veliko strojev ali veliko zgodovinskih kontrolnih točk, lahko to privede do dolgih časov prenosa in previsokega prometa na Amazon S3. Poleg tega pri paralelizmu tenzorjev in cevovodov delavci potrebujejo le delček modela s kontrolnimi točkami, ne vsega. Če se soočate s temi omejitvami, priporočamo naslednje možnosti:
- Preverjanje na FSx za Luster – Zahvaljujoč visoko zmogljivim naključnim V/I lahko določite shemo razdeljevanja in dodeljevanja datotek po vaši izbiri
- Samoupravljana kontrolna točka Amazon S3 – Za primere funkcij Python, ki jih je mogoče uporabiti za shranjevanje in branje kontrolnih točk na neblokirni način, glejte Shranjevanje kontrolnih točk
Močno priporočamo, da svoj model preverite vsakih nekaj ur, na primer 1–3 ure, odvisno od povezanih režijskih stroškov in stroškov.
Front end in upravljanje uporabnikov
Upravljanje uporabnikov je ključna uporabna moč SageMakerja v primerjavi s podedovano skupno infrastrukturo HPC. Dovoljenja SageMaker Training ureja več AWS upravljanje identitete in dostopa (IAM) abstrakcije:
- Ravnatelji – uporabniki in sistemi – dobijo dovoljenje za zagon virov
- Dela za usposabljanje sama nosijo vloge, ki jim omogočajo, da imajo lastna dovoljenja, na primer glede dostopa do podatkov in priklica storitev
Poleg tega smo leta 2022 dodali Upravitelj vlog SageMaker za olajšanje ustvarjanja osebno vodenih dovoljenj.
zaključek
S programom SageMaker Training lahko zmanjšate stroške in povečate hitrost iteracije pri vadbeni obremenitvi velikega modela. Zgodbe o uspehu smo dokumentirali v številnih objavah in študijah primerov, vključno z:
Če želite izboljšati svoj LLM čas do trga in hkrati zmanjšati stroške, si oglejte SageMaker Training API in nam sporočite, kaj gradite!
Posebna zahvala Amru Ragabu, Rashiki Kheria, Zmnako Awrahman, Arun Nagarajan, Gal Oshri za njihove koristne ocene in učenja.
O avtorjih
Anastazija Tzeveleka je specialist za strojno učenje in AI arhitekt pri AWS. Sodeluje s strankami v EMEA in jim pomaga pri načrtovanju rešitev strojnega učenja v velikem obsegu z uporabo storitev AWS. Delala je na projektih na različnih področjih, vključno z obdelavo naravnega jezika (NLP), MLOps in orodji Low Code No Code.
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.
Olivier Cruchant je glavni arhitekt za rešitve strokovnjaka za strojno učenje pri AWS s sedežem v Franciji. Olivier pomaga strankam AWS – od majhnih novoustanovljenih podjetij do velikih podjetij – pri razvoju in uvajanju aplikacij za strojno učenje proizvodnega razreda. V prostem času rad bere raziskovalne naloge in s prijatelji in družino raziskuje divjino.
Bruno Pistone je specialist za rešitve AI/ML za AWS s sedežem v Milanu. Sodeluje s strankami vseh velikosti, da bi jim pomagal poglobljeno razumeti njihove tehnične potrebe in oblikovati rešitve umetne inteligence in strojnega učenja, ki najbolje izkoristijo oblak AWS in sklad strojnega učenja Amazon. Njegovo strokovno področje je strojno učenje od konca do konca, industrializacija strojnega učenja in MLOps. Rad preživlja čas s prijatelji in raziskuje nove kraje ter potuje na nove destinacije.
- Distribucija vsebine in PR s pomočjo SEO. Okrepite se še danes.
- Platoblockchain. Web3 Metaverse Intelligence. Razširjeno znanje. Dostopite tukaj.
- vir: https://aws.amazon.com/blogs/machine-learning/training-large-language-models-on-amazon-sagemaker-best-practices/
- : je
- ][str
- $GOR
- 000
- 1
- 100
- 2022
- 7
- 8
- a
- A100
- sposobnosti
- Sposobna
- O meni
- nad
- pospeši
- pospešeno
- dostop
- prilagoditi
- Račun
- Doseči
- doseganju
- čez
- Zakon
- Aktiviranje
- aktivna
- prilagodijo
- dodano
- Poleg tega
- Poleg tega
- dodatkov
- Prednost
- AI
- AI / ML
- AL
- algoritem
- algoritmi
- vsi
- Dovoli
- omogoča
- Amazon
- Amazon EC2
- Amazon FSx
- Strojno učenje Amazon
- Amazon SageMaker
- znesek
- in
- API
- API-ji
- primerno
- uporaba
- aplikacije
- uporabna
- primerno
- SE
- OBMOČJE
- okoli
- AS
- povezan
- At
- priložen
- lastnosti
- avto
- Avtomatizirano
- samodejno
- Na voljo
- izogniti
- izogibanje
- AWS
- nazaj
- Backend
- Ravnovesje
- temeljijo
- BE
- ker
- postane
- pred
- počutje
- koristi
- BEST
- najboljše prakse
- Poleg
- Big
- Billion
- milijardah
- Block
- prinašajo
- Prinaša
- izgradnjo
- zgrajena
- poslovni
- by
- klic
- se imenuje
- poziva
- CAN
- lahko
- kapaciteta
- kartice
- Kartice
- opravlja
- primeru
- Primeri dobre prakse
- katalizira
- izzivi
- spreminjanje
- Channel
- preveriti
- Pregledi
- izbira
- možnosti
- Izberite
- razredi
- stranke
- tesno
- Cloud
- Grozd
- Koda
- Kolektivna
- kombinirani
- kako
- Skupno
- pogosto
- Komunikacija
- Communications
- v primerjavi z letom
- združljiv
- dokončanje
- računanje
- Izračunajte
- računalnik
- Računalniška vizija
- računalništvo
- zaključuje
- poteka
- konfiguracija
- Potrdi
- Connect
- Posledično
- Posoda
- Zabojniki
- Vsebuje
- vsebina
- prispevali
- nadzor
- nadzorom
- Priročen
- Konvergenca
- Korupcija
- strošek
- stroški
- bi
- Tečaj
- pokrov
- prevleke
- CPU
- ustvarjajo
- Oblikovanje
- Creative
- kritično
- ključnega pomena
- kuracija
- Trenutno
- po meri
- Stranke, ki so
- prilagodite
- datum
- dostop do podatkov
- Priprava podatkov
- nabor podatkov
- odloča
- namenjen
- globoko
- globoko učenje
- privzeto
- Stopnja
- Odvisno
- odvisno
- razporedi
- Oblikovanje
- zasnovan
- destinacije
- Ugotovite,
- določanje
- Razvoj
- razvili
- Razvojni
- Razvijalci
- Razvoj
- razvija
- naprava
- naprave
- drugačen
- Difuzija
- neposredno
- razpravlja
- razpravljali
- porazdeljena
- porazdeljeno računalništvo
- razdeljeno usposabljanje
- distribucija
- Lučki delavec
- Kontejner Docker
- Ne
- domen
- dont
- navzdol
- prenesi
- desetine
- med
- vsak
- enostavno
- Učinkovito
- bodisi
- EMEA
- omogočajo
- omogočena
- omogoča
- omogočanje
- spodbujanje
- konča
- okrepljeno
- uživajte
- dovolj
- zagotovitev
- Podjetje
- podjetja
- Vpis
- okolje
- okolja
- oprema
- opremljena
- Napaka
- napake
- vzpostaviti
- Eter (ETH)
- Tudi
- dogodki
- morebitne
- Tudi vsak
- vse
- razvil
- Primer
- Primeri
- Excel
- obstoječih
- pričakovati
- Pričakuje
- izkušnje
- poskus
- Raziskovati
- izpostavljena
- izrazi
- razširitev
- razširitve
- zunanja
- izredno
- tkanina
- Obraz
- olajšati
- olajšanje
- dejavniki
- ni uspelo
- ne uspe
- Napaka
- družine
- družina
- Moda
- FAST
- hitreje
- napačno
- izvedljivo
- Feature
- Lastnosti
- Nekaj
- Polje
- file
- datoteke
- prva
- fit
- FLET
- prilagodljivost
- Osredotočite
- Osredotoča
- sledili
- po
- za
- ulomek
- Okvirni
- okviri
- Francija
- Svoboda
- pogosto
- sveže
- prijatelji
- iz
- polno
- v celoti
- funkcionalno
- funkcionalnost
- funkcije
- nadalje
- GAL
- ustvarila
- generativno
- dobili
- pridobivanje
- GitHub
- dana
- GPU
- Grafične kartice
- graf
- veliko
- Največji
- skupina
- raste
- ročaj
- Ravnanje
- Hang
- se zgodi
- strojna oprema
- Imajo
- ob
- Zdravje
- zdravo
- pomoč
- pomoč
- Pomaga
- visoka
- Visoka frekvenca
- visokozmogljivo
- zgodovinski
- napa
- Gostitelji
- URE
- Kako
- Kako
- Vendar
- hpc
- HTML
- http
- HTTPS
- Stotine
- sto milijonov
- i
- IAM
- enako
- identiteta
- slika
- slike
- takoj
- vpliv
- izvajati
- izvajali
- izvajanja
- Pomembno
- izboljšanje
- izboljšalo
- Izboljšave
- in
- V drugi
- vključujejo
- Vključno
- Povečajte
- povečal
- Poveča
- vedno
- individualna
- Industrija
- info
- Podatki
- Infrastruktura
- Inovacije
- navdih
- namestitev
- primer
- Namesto
- integrirana
- integracija
- Inteligentna
- interakcije
- vmesnik
- posrednik
- notranji
- uvesti
- Uvedeno
- IT
- ponovitev
- ITS
- sam
- Job
- Delovna mesta
- jpg
- Imejte
- Ključne
- Otrok
- Vedite
- jezik
- jeziki
- velika
- obsežne
- večja
- Zadnji
- kosilo
- začela
- izstrelki
- plast
- plasti
- vodi
- Vodja
- učenje
- Legacy
- Stopnja
- knjižnice
- Knjižnica
- življenski krog
- kot
- Verjeten
- LIMIT
- omejitve
- Limited
- malo
- nalaganje
- lokalna
- Long
- dolgo časa
- Poglej
- si
- nizka
- stroj
- strojno učenje
- strojno prevajanje
- Stroji
- vzdrževati
- vzdržuje
- Znamka
- IZDELA
- Izdelava
- upravljanje
- upravlja
- upravljanje
- več
- Zemljevidi
- največja
- Spomin
- metapodatki
- Metode
- Meritve
- migracije
- MILAN
- milijoni
- zmanjšajo
- ML
- MLOps
- način
- Model
- modeliranje
- modeli
- spremembe
- monitor
- spremljanje
- več
- Najbolj
- premikanje
- več
- in sicer
- materni
- naravna
- Naravni jezik
- Obdelava Natural Language
- seveda
- Narava
- nujno
- potrebno
- Nimate
- potrebe
- mreža
- omrežno
- omrežij
- Nevronski
- nevronska mreža
- Novo
- nlp
- Vozel
- vozlišča
- Številka
- številne
- Nvidia
- predmeti
- of
- ponudba
- ponujanje
- Olive
- on
- Na zahtevo
- ONE
- odprite
- open source
- odprtokodna koda
- odprt
- Priložnosti
- optimizacija
- Optimizirajte
- optimizirana
- Možnost
- možnosti
- orkestracijo
- Da
- Ostalo
- lastne
- paket
- pakete
- Papir
- članki
- paradigma
- vzporedno
- parameter
- parametri
- del
- zlasti
- zlasti
- strastno
- preteklosti
- pot
- vzorci
- Plačajte
- Peak
- performance
- predstave
- Dovoljenje
- Dovoljenja
- Fizično
- plinovod
- Mesta
- platon
- Platonova podatkovna inteligenca
- PlatoData
- igranje
- Točka
- bazen
- Bazeni
- Popular
- Prispevek
- Prispevkov
- praksa
- vaje
- napovedovanje
- nastavitve
- prednostno
- predstaviti
- darila
- preprečiti
- prej
- , ravnateljica
- Postopek
- Procesi
- obravnavati
- proizvodnjo
- Program
- Programiranje
- programskih jezikov
- Napredek
- projekti
- pravilno
- predlaga
- predlaga
- lastniško
- protokol
- protokoli
- zagotavljajo
- če
- Ponudnik
- zagotavljanje
- javnega
- publikacije
- Namen
- dal
- Python
- pitorha
- kakovost
- dvigniti
- naključno
- REDKO
- Oceniti
- Cene
- dosegel
- Preberi
- reading
- uresničitev
- razumno
- Razlogi
- prejeti
- nedavno
- Priporočamo
- Priporočila
- zapis
- evidence
- okrevanje
- zmanjša
- zmanjšuje
- zmanjšanje
- o
- okolica
- regije
- redni
- redno
- povezane
- pomembno
- zanesljiv
- zanašajo
- daljinsko
- zamenjajte
- predstavlja
- zahteva
- zahteva
- zahteva
- zahteva
- zahteva
- Raziskave
- raziskave in inovacije
- vir
- viri
- Rezultati
- Mnenja
- vloga
- vloge
- Run
- tek
- sagemaker
- Enako
- Shrani
- Prilagodljivost
- razširljive
- Lestvica
- luske
- skaliranje
- shema
- Znanstveniki
- Obseg
- skripte
- SDK
- Iskalnik
- drugi
- sekund
- Oddelek
- iskanju
- izbran
- izbor
- višji
- ločeno
- Brez strežnika
- Strežniki
- Storitev
- Storitve
- nastavite
- nastavitve
- več
- ostro
- brušenje
- deli
- shouldnt
- bistveno
- Enostavno
- preprostost
- hkrati
- hkrati
- sam
- Velikosti
- velikosti
- spretnosti
- počasi
- majhna
- So
- Software
- rešitve
- nekaj
- Kmalu
- vir
- Viri
- Spawn
- specialist
- specifična
- posebej
- določeno
- hitrost
- Poraba
- Razcepi
- Komercialni
- stabilna
- sveženj
- Začetek
- Začetek
- začne
- Ustanavljanjem
- Država
- Statistično
- Koraki
- stop
- ustavljanje
- shranjevanje
- trgovina
- zgodbe
- Strategija
- tok
- tokovi
- moč
- stripping
- Močno
- Študije
- uspeh
- Zgodbe o uspehu
- uspešno
- taka
- podpora
- Podprti
- Podpira
- Sinhronizacija
- sintaksa
- sistem
- miza
- Bodite
- Naloga
- Naloge
- skupina
- tehnični
- tehnična podpora
- tenis
- tensorflo
- da
- O
- svet
- njihove
- Njih
- sami
- Teoretični
- zato
- te
- tretjih oseb
- tisoče
- 3
- skozi
- pretočnost
- čas
- krat
- nasveti
- do
- danes
- Boni
- tudi
- orodje
- orodja
- vrh
- Skupaj za plačilo
- sledenje
- Prometa
- Vlak
- usposobljeni
- usposabljanje
- prevod
- prevoz
- Bilijona
- Vrste
- tipičen
- pod
- osnovni
- razumeli
- edinstven
- enote
- Nadgradnja
- URI
- us
- uporabnost
- Uporaba
- uporaba
- uporabnik
- navadno
- vrednost
- Vrednote
- spremenljivke
- raznolikost
- različnih
- preverjanje
- različica
- preko
- Video
- Poglej
- Vizija
- topla
- način..
- načini
- Weeks
- Dobro
- Kaj
- ki
- medtem
- WHO
- bo
- z
- v
- brez
- besede
- delo
- delal
- delavci
- deluje
- deluje
- svet
- pisati
- pisni
- let
- Vaša rutina za
- sami
- youtube
- zefirnet