Taalmodellen zijn statistische methoden die de opeenvolging van tokens in reeksen voorspellen, met behulp van natuurlijke tekst. Grote taalmodellen (LLM's) zijn op neurale netwerken gebaseerde taalmodellen met honderden miljoenen (BERT) tot meer dan een biljoen parameters (Microfoons), en waarvan de grootte training met รฉรฉn GPU onpraktisch maakt. De generatieve vaardigheden van LLM's maken ze populair voor tekstsynthese, samenvattingen, automatische vertalingen en meer.
De omvang van een LLM en zijn trainingsgegevens is een tweesnijdend zwaard: het brengt modelleringskwaliteit met zich mee, maar brengt infrastructuuruitdagingen met zich mee. Het model zelf is vaak te groot om in het geheugen van een enkel GPU-apparaat of op meerdere apparaten van een instantie met meerdere GPU's te passen. Deze factoren vereisen het trainen van een LLM over grote clusters van versnelde machine learning (ML)-instanties. De afgelopen jaren hebben talloze klanten de AWS Cloud gebruikt voor LLM-trainingen.
In dit bericht duiken we in tips en best practices voor een succesvolle LLM-training op Amazon SageMaker-training. SageMaker Training is een beheerde batch ML-rekenservice die de tijd en kosten vermindert om modellen op schaal te trainen en af โโte stemmen zonder de noodzaak om infrastructuur te beheren. Binnen รฉรฉn startcommando, Amazon Sage Maker lanceert een volledig functionele, kortstondige rekencluster die de taak van uw keuze uitvoert, en met verbeterde ML-functies zoals metastore, beheerde I/O en distributie. De post behandelt alle fasen van een LLM-trainingsworkload en beschrijft de bijbehorende infrastructuurfuncties en best practices. Enkele van de best practices in dit bericht verwijzen specifiek naar ml.p4d.24xlarge-instanties, maar de meeste zijn van toepassing op elk instantietype. Met deze best practices kunt u LLM's op SageMaker trainen op een schaal van tientallen tot honderden miljoenen parameters.
Let met betrekking tot de reikwijdte van dit bericht op het volgende:
- We hebben geen betrekking op wetenschappelijk ontwerp van neurale netwerken en bijbehorende optimalisaties. Amazon. Wetenschap bevat tal van wetenschappelijke publicaties, inclusief en niet beperkt tot LLM's.
- Hoewel dit bericht zich richt op LLM's, zijn de meeste van de best practices relevant voor elke vorm van training met grote modellen, inclusief computervisie en multimodale modellen, zoals Stable Diffusion.
Beste praktijken
We bespreken de volgende best practices in dit bericht:
- Berekenen - SageMaker Training is een geweldige API om taken voor het voorbereiden van CPU-gegevenssets en GPU-taken op duizend schaal te starten.
- Opbergen โ We zien het laden en checkpointen van gegevens op twee manieren gebeuren, afhankelijk van vaardigheden en voorkeuren: met een Amazon FSx glans bestandssysteem, of Amazon eenvoudige opslagservice (Amazon S3) alleen.
- Parallellisme - Uw keuze voor een gedistribueerde trainingsbibliotheek is cruciaal voor een correct gebruik van de GPU's. We raden aan om een โโvoor de cloud geoptimaliseerde bibliotheek te gebruiken, zoals SageMaker sharded data parallellisme, maar zelfbeheerde en open-sourcebibliotheken kunnen ook werken.
- Netwerken โ Zorg ervoor dat EFA en NVIDIA GPUDirectRDMA zijn ingeschakeld, voor snelle communicatie tussen machines.
- Veerkracht โ Op grote schaal kunnen hardwarestoringen optreden. We raden aan om regelmatig te checkpointen. Om de paar uur is gebruikelijk.
Regio selectie
Het instantietype en de gewenste capaciteit zijn een bepalende factor voor de regioselectie. Voor de regio's die worden ondersteund door SageMaker en de Amazon Elastic Compute-cloud (Amazon EC2) instantietypen die beschikbaar zijn in elke regio, zie Amazon SageMaker-prijzen. In dit bericht gaan we ervan uit dat het type trainingsinstantie een door SageMaker beheerd ml.p4d.24xlarge is.
We raden aan om samen te werken met uw AWS-accountteam of contact op te nemen AWS-verkoop om de juiste regio voor uw LLM-werklast te bepalen.
Data voorbereiding
LLM-ontwikkelaars trainen hun modellen op grote datasets van natuurlijk voorkomende tekst. Populaire voorbeelden van dergelijke gegevensbronnen zijn onder meer Gemeenschappelijke crawl en De stapel. Natuurlijk voorkomende tekst kan vooroordelen, onnauwkeurigheden, grammaticale fouten en syntaxisvariaties bevatten. De uiteindelijke kwaliteit van een LLM hangt in grote mate af van de selectie en samenstelling van de trainingsgegevens. De voorbereiding van LLM-trainingsgegevens is een actief gebied van onderzoek en innovatie in de LLM-industrie. De voorbereiding van een dataset voor natuurlijke taalverwerking (NLP) is rijk aan mogelijkheden om niets te delen. Met andere woorden, er zijn stappen die kunnen worden toegepast op werkeenheden - bronbestanden, alinea's, zinnen, woorden - zonder dat synchronisatie tussen medewerkers nodig is.
De SageMaker-taken-API's, namelijk SageMaker Training en SageMaker Processing, blinken uit voor dit soort taken. Ze stellen ontwikkelaars in staat om een โโwillekeurige Docker-container over een vloot van meerdere machines te laten draaien. In het geval van de SageMaker Training API kan het computerpark dat zijn heterogeen. Er zijn talloze gedistribueerde computerframeworks gebruikt op SageMaker, waaronder Dashboard, straal, en ook PySpark, die een speciale hebben Door AWS beheerde container en SDK in SageMaker-verwerking.
Wanneer u een taak met meerdere machines start, voert SageMaker Training en Processing uw code รฉรฉn keer per machine uit. U hoeft geen bepaald gedistribueerd computerframework te gebruiken om een โโgedistribueerde applicatie te schrijven: u kunt de code van uw keuze schrijven, die รฉรฉn keer per machine wordt uitgevoerd, om share-nothing-parallelisme te realiseren. U kunt ook de communicatielogica van uw keuze tussen knooppunten schrijven of installeren.
Gegevens laden
Er zijn meerdere manieren om de trainingsgegevens op te slaan en van de opslag naar de versnelde rekenknooppunten te verplaatsen. In deze sectie bespreken we de opties en best practices voor het laden van gegevens.
SageMaker opslag- en laadopties
Een typische grootte van een LLM-dataset is in de honderden miljoenen teksttokens, wat neerkomt op een paar honderd gigabytes. Door SageMaker beheerde clusters van ml.p4d.24xlarge-instanties bieden verschillende opties voor opslag en laden van datasets:
- On-node NVMe SSD โ ml.P4d.24xlarge instances zijn uitgerust met 8TB NVMe, beschikbaar onder
/opt/ml/input/data/<channel>
als je gebruikt SageMaker Bestandsmodusen bij/tmp
. Als u op zoek bent naar de eenvoud en prestaties van lokaal lezen, kunt u uw gegevens kopiรซren naar de NVMe SSD. De kopie kan worden gedaan door de SageMaker File-modus of door uw eigen code, bijvoorbeeld met behulp van multi-processed Boto3 or S5cmd. - FSx voor glans - On-node NVMe SSD's zijn beperkt in grootte en vereisen opname van Amazon S3 bij elke taak of het maken van warme clusters. Als u wilt schalen naar grotere datasets met behoud van willekeurige toegang met lage latentie, kunt u FSx for Lustre gebruiken. Amazon FSx is een open-source parallel bestandssysteem, populair in high-performance computing (HPC). FSx voor Lustre-gebruik gedistribueerde bestandsopslag (strippen) en scheidt de metagegevens van bestanden fysiek van de inhoud van bestanden om lezen/schrijven met hoge prestaties mogelijk te maken.
- SageMaker FastFile-modus โ FastFile-modus (FFM) is een SageMaker-only functie die externe S3-objecten presenteert in door SageMaker beheerde compute-instances onder een POSIX-compatibele interface, en ze alleen streamt na lezen, met behulp van FUSE. FFM leest resultaten in S3-oproepen die externe bestanden blok voor blok streamen. Als best practice om fouten met betrekking tot Amazon S3-verkeer te voorkomen, moeten FFM-ontwikkelaars ernaar streven het onderliggende aantal S3-oproepen redelijk te houden, bijvoorbeeld door bestanden opeenvolgend en met een gecontroleerde hoeveelheid parallellisme te lezen.
- Zelf beheerde gegevens laden โ U kunt natuurlijk ook besluiten om uw eigen, volledig aangepaste logica voor het laden van gegevens te implementeren, met behulp van bedrijfseigen of open-sourcecode. Enkele redenen om zelfbeheerd laden van gegevens te gebruiken, zijn om een โโmigratie te vergemakkelijken door reeds ontwikkelde code opnieuw te gebruiken, om aangepaste foutafhandelingslogica te implementeren of om meer controle te hebben over de onderliggende prestaties en sharding. Voorbeelden van bibliotheken die u kunt gebruiken voor zelfbeheerd laden van gegevens, zijn onder andere fakkeldata.datapipes (eerder AWS PyTorch S3-plug-in) en Webdataset. De AWS Python-SDK Boto3 kan ook gecombineerd worden met Toorts gegevensset klassen om aangepaste code voor het laden van gegevens te maken. Aangepaste klassen voor het laden van gegevens maken ook het creatieve gebruik van heterogene clusters van SageMaker Training mogelijk, om de CPU- en GPU-balans fijn aan te passen aan een bepaalde werklast.
Raadpleeg voor meer informatie over deze opties en hoe u ze kunt kiezen Kies de beste gegevensbron voor uw Amazon SageMaker-trainingstaak.
Best practices voor grootschalige interactie met Amazon S3
Amazon S3 kan LLM-workloads verwerken, zowel voor het lezen van gegevens als voor het controleren van punten. Het ondersteunt een verzoek tarief van 3,500 PUT/COPY/POST/DELETE of 5,500 GET/HEAD verzoeken per seconde per prefix in een bucket. Dit tarief is echter niet noodzakelijkerwijs standaard beschikbaar. In plaats daarvan, als de aanvraagsnelheid voor een voorvoegsel toeneemt, schaalt Amazon S3 automatisch om de verhoogde snelheid aan te kunnen. Voor meer informatie, zie Waarom krijg ik 503 Slow Down-fouten van Amazon S3 wanneer de verzoeken binnen de ondersteunde verzoeksnelheid per prefix vallen.
Als u hoogfrequente Amazon S3-interactie verwacht, raden we de volgende best practices aan:
- Probeer te lezen en te schrijven vanuit meerdere S3-buckets en voorvoegsels. U kunt bijvoorbeeld trainingsgegevens en controlepunten verdelen over verschillende prefixen.
- Controleer Amazon S3-statistieken Amazon Cloud Watch om aanvraagpercentages bij te houden.
- Probeer de hoeveelheid gelijktijdige PUT/GET te minimaliseren:
- Gebruik tegelijkertijd minder processen met Amazon S3. Als bijvoorbeeld acht processen per knooppunt naar Amazon S3 moeten checkpointen, kunt u het PUT-verkeer met een factor 8 verminderen door hiรซrarchisch te checkpointen: eerst binnen het knooppunt, vervolgens van het knooppunt naar Amazon S3.
- Lees meerdere trainingsrecords uit een enkel bestand of S3 GET, in plaats van een S3 GET te gebruiken voor elk trainingsrecord.
- Als u Amazon S3 via SageMaker FFM gebruikt, voert SageMaker FFM S3-oproepen uit om bestanden stuk voor stuk op te halen. Om het door FFM gegenereerde Amazon S3-verkeer te beperken, raden we u aan om bestanden opeenvolgend te lezen en het aantal parallel geopende bestanden te beperken.
Als u een Ondersteuningsplan voor ontwikkelaars, bedrijven of ondernemingen, kunt u een technische ondersteuningszaak openen over S3 503 Slow Down-fouten. Maar zorg er eerst voor dat u de best practices hebt gevolgd, en haal de aanvraag-ID's op voor de mislukte verzoeken.
Parallellisme trainen
LLM's hebben gewoonlijk tientallen tot honderden miljarden parameters, waardoor ze te groot zijn om op een enkele NVIDIA GPU-kaart te passen. LLM-beoefenaars hebben verschillende open-sourcebibliotheken ontwikkeld die de gedistribueerde berekening van LLM-training mogelijk maken, waaronder FSDP, diepe snelheid en Megatron. U kunt die bibliotheken uitvoeren in SageMaker Training, maar u kunt ook gedistribueerde trainingsbibliotheken van SageMaker gebruiken, die zijn geoptimaliseerd voor de AWS Cloud en een eenvoudigere ontwikkelaarservaring bieden. Ontwikkelaars hebben twee keuzes voor gedistribueerde training van hun LLM op SageMaker: gedistribueerde bibliotheken of zelfbeheerd.
SageMaker gedistribueerde bibliotheken
Om u verbeterde gedistribueerde trainingsprestaties en bruikbaarheid te bieden, stelt SageMaker Training verschillende eigen uitbreidingen voor om TensorFlow- en PyTorch-trainingscode te schalen. LLM-training wordt vaak uitgevoerd op een manier met 3D-parallelisme:
- Data parallellisme splitst en voert de trainingsmini-batches naar meerdere identieke replica's van het model, om de verwerkingssnelheid te verhogen
- Parallelliteit van pijpleidingen schrijft verschillende lagen van het model toe aan verschillende GPU's of zelfs instanties, om de modelgrootte verder te schalen dan een enkele GPU en een enkele server
- tensor parallellisme splitst een enkele laag op in meerdere GPU's, meestal binnen dezelfde server, om afzonderlijke lagen te schalen tot grotere afmetingen dan een enkele GPU
In het volgende voorbeeld wordt een 6-laags model getraind op een cluster van k*3 servers met 8*k*3 GPU's (8 GPU's per server). De mate van gegevensparallelisme is k, pijplijnparallellisme 6 en tensorparallellisme 4. Elke GPU in het cluster bevat een vierde van een modellaag en een volledig model is verdeeld over drie servers (24 GPU's in totaal).
Het volgende is specifiek relevant voor LLM's:
- SageMaker gedistribueerd model parallel - Deze bibliotheek maakt gebruik van grafiekpartitionering om intelligente modelpartitionering te produceren die is geoptimaliseerd voor snelheid of geheugen. SageMaker gedistribueerd modelparallel legt de nieuwste en beste trainingsoptimalisatie van grote modellen bloot, inclusief gegevensparallelisme, pijplijnparallellisme, tensorparallellisme, sharding van de optimaliseringsstatus, activeringscontrolepunten en offloading. Met de gedistribueerde modelparallelle bibliotheek van SageMaker documenteerden we een training van 175 miljard parametermodellen over 920 NVIDIA A100 GPU's. Voor meer informatie, zie Train 175+ miljard parameter NLP-modellen met modelparallelle toevoegingen en Hugging Face op Amazon SageMaker.
- SageMaker shardde gegevens parallel - In MiCS: bijna-lineaire schaling voor het trainen van een gigantisch model op de openbare cloud, Zhang et al. een parallelstrategie voor een model met weinig communicatie introduceren die modellen verdeelt over alleen een gegevensparallelle groep, in plaats van over het hele cluster. Met MiCS konden AWS-wetenschappers 176 teraflops per GPU behalen (56.4% van de theoretische piek) voor het trainen van een model met 210 lagen en 1.06 biljoen parameters op EC2 P4de-instanties. MiCS is nu beschikbaar voor SageMaker Training-klanten als SageMaker shardde gegevens parallel.
Door SageMaker gedistribueerde trainingsbibliotheken bieden hoge prestaties en een eenvoudigere ontwikkelaarservaring. Ontwikkelaars hoeven met name geen aangepaste parallelle processtarter te schrijven en te onderhouden of een raamwerkspecifieke starttool te gebruiken, omdat de parallelle startprogramma is ingebouwd in de SDK voor het starten van taken.
Zelfbeheerd
Met SageMaker Training heeft u de vrijheid om het raamwerk en het wetenschappelijke paradigma van uw keuze te gebruiken. Met name als u zelf gedistribueerde trainingen wilt beheren, heeft u twee opties om uw aangepaste code te schrijven:
- Gebruik een AWS Deep Learning Container (DLC) โ AWS ontwikkelt en onderhoudt DLCs, die voor AWS geoptimaliseerde Docker-gebaseerde omgevingen biedt voor de beste open-source ML-frameworks. SageMaker Training heeft een unieke integratie waarmee u AWS DLC's kunt ophalen en uitvoeren met een extern, door de gebruiker gedefinieerd toegangspunt. Met name voor LLM-training zijn AWS DLC's voor TensorFlow, PyTorch, Hugging Face en MXNet bijzonder relevant. Door een framework-DLC te gebruiken, kunt u framework-native parallellisme gebruiken, zoals PyTorch Distributed, zonder dat u uw eigen Docker-images hoeft te ontwikkelen en te beheren. Bovendien bevatten onze DLC's een MPI-integratie, waarmee u gemakkelijk parallelle code kunt starten.
- Schrijf een aangepaste SageMaker-compatibele Docker-image โ U kunt uw eigen (BYO) afbeelding meenemen (zie Gebruik uw eigen trainingsalgoritmen en Amazon SageMaker Custom Training-containers), helemaal opnieuw beginnen of een bestaande DLC-afbeelding uitbreiden. Wanneer u een aangepaste afbeelding gebruikt voor LLM-training op SageMaker, is het met name belangrijk om het volgende te verifiรซren:
- Je afbeelding bevat EFA met de juiste instellingen (later in dit bericht meer besproken)
- Uw afbeelding bevat een NVIDIA NCCL-communicatiebibliotheek, ingeschakeld met GPUDirectRDMA
Klanten hebben een aantal zelfbeheerde gedistribueerde trainingsbibliotheken kunnen gebruiken, waaronder DeepSpeed.
Communicatie
Gezien de gedistribueerde aard van een LLM-trainingstaak, is communicatie tussen machines van cruciaal belang voor de haalbaarheid, prestaties en kosten van de werklast. In dit gedeelte presenteren we de belangrijkste functies voor communicatie tussen machines en eindigen met tips voor installatie en afstemming.
Elastische stofadapter
Om ML-applicaties te versnellen en prestaties te verbeteren door de flexibiliteit, schaalbaarheid en elasticiteit van de cloud te bereiken, kunt u profiteren van Elastische stofadapter (EFA) met SageMaker. Onze ervaring is dat het gebruik van EFA een vereiste is om bevredigende LLM-trainingsprestaties met meerdere knooppunten te krijgen.
Een EFA-apparaat is een netwerkinterface die is aangesloten op EC2-instanties die worden beheerd door SageMaker tijdens de uitvoering van de trainingstaken. EFA is beschikbaar voor specifieke instanties, waaronder de P4d. EFA-netwerken kunnen een verwerkingscapaciteit van enkele honderden Gbps bereiken.
Geassocieerd met EFA, heeft AWS de Schaalbaar betrouwbaar datagram (SRD), een op ethernet gebaseerd transport geรฏnspireerd op de InfiniBand betrouwbaar datagram, geรซvolueerd met een ontspannen beperking van het bestellen van pakketten. Voor meer informatie over EFA en SRD, zie In de zoektocht naar prestaties zijn er meer dan รฉรฉn manier om een โโnetwerk op te bouwen, de video Hoe EFA werkt en waarom we infiniband niet in de cloud gebruiken, en het onderzoeksdocument Een voor de cloud geoptimaliseerd transportprotocol voor elastische en schaalbare HPC van Shalev et al.
U kunt EFA-integratie op compatibele instanties toevoegen aan bestaande Docker-containers van SageMaker, of aangepaste containers die kunnen worden gebruikt voor het trainen van ML-modellen met behulp van SageMaker-taken. Voor meer informatie, zie Voer trainingen uit met EFA. EFA wordt blootgesteld via de open-source Libstof communicatie pakket. LLM-ontwikkelaars programmeren het echter zelden rechtstreeks met Libfabric en vertrouwen in plaats daarvan meestal op de NVIDIA Collective Communications Library (NCCL).
AWS-OFI-NCCL-plug-in
In gedistribueerde ML wordt EFA het vaakst gebruikt met de NVIDIA Collective Communications Library (NCCL). NCCL is een door NVIDIA ontwikkelde open-sourcebibliotheek die communicatie-algoritmen tussen GPU's implementeert. Inter-GPU-communicatie is een hoeksteen van LLM-training die schaalbaarheid en prestaties katalyseert. Het is zo cruciaal voor DL-training dat de NCCL vaak direct wordt geรฏntegreerd als een communicatie-backend in deep learning-trainingsbibliotheken, zodat LLM-ontwikkelaars het gebruiken - soms zonder het te merken - vanuit hun favoriete Python DL-ontwikkelingsframework. Om de NCCL op EFA te gebruiken, gebruiken LLM-ontwikkelaars het door AWS ontwikkelde AWS OFI NCCL-plug-in, die NCCL-aanroepen toewijst aan de Libfabric-interface die door EFA wordt gebruikt. We raden aan om de nieuwste versie van AWS OFI NCCL te gebruiken om te profiteren van recente verbeteringen.
Om te controleren of de NCCL EFA gebruikt, moet u de omgevingsvariabele instellen NCCL_DEBUG
naar INFO
, en controleer in de logboeken dat EFA is geladen door de NCCL:
Raadpleeg voor meer informatie over de NCCL- en EFA-configuratie Test uw EFA- en NCCL-configuratie. U kunt de NCCL verder aanpassen met verschillende omgevingsvariabelen. Merk op dat AWS, effectief in NCCL 2.12 en hoger, een geautomatiseerde selectielogica voor communicatiealgoritmen heeft bijgedragen voor EFA-netwerken (NCCL_ALGO
kan niet worden ingesteld).
NVIDIA GPUDirect RDMA via EFA
Met het instantietype P4d kunnen we geรฏntroduceerd GPUDirect RDMA (GDR) over EFA-stof. Het stelt netwerkinterfacekaarten (NIC's) in staat om rechtstreeks toegang te krijgen tot GPU-geheugen, waardoor externe GPU-naar-GPU-communicatie tussen NVIDIA GPU-gebaseerde EC2-instanties sneller verloopt, waardoor orkestratie-overhead op CPU's en gebruikerstoepassingen wordt verminderd. DDR wordt waar mogelijk onder de motorkap gebruikt door de NCCL.
GDR-gebruik verschijnt in inter-GPU-communicatie wanneer het logniveau is ingesteld op INFO, zoals in de volgende code:
EFA gebruiken in AWS Deep Learning-containers
AWS onderhoudt Deep Learning Containers (DLC's), waarvan vele worden geleverd met door AWS beheerde Dockerfiles en zijn gebouwd met EFA, AWS OFI NCCL en NCCL. De volgende GitHub-opslagplaatsen bieden voorbeelden met PyTorch en TensorFlow. U hoeft die bibliotheken niet zelf te installeren.
EFA gebruiken in uw eigen SageMaker Training-container
Als u uw eigen SageMaker-trainingscontainer maakt en de NCCL via EFA wilt gebruiken voor versnelde communicatie tussen knooppunten, moet u EFA, NCCL en AWS OFI NCCL installeren. Voor meer informatie, zie Voer trainingen uit met EFA. Bovendien moet u de volgende omgevingsvariabelen instellen in uw container of in uw ingangspuntcode:
FI_PROVIDER="efa"
specificeert de provider van de fabric-interfaceNCCL_PROTO=simple
instrueert de NCCL om een โโeenvoudig protocol te gebruiken voor communicatie (momenteel ondersteunt de EFA-provider geen LL-protocollen; het inschakelen ervan kan leiden tot gegevensbeschadiging)FI_EFA_USE_DEVICE_RDMA=1
gebruikt de RDMA-functionaliteit van het apparaat voor eenzijdige en tweezijdige overdrachtNCCL_LAUNCH_MODE="PARALLEL"
NCCL_NET_SHARED_COMMS="0"
orkestratie
Voor het beheer van de levenscyclus en werklast van tientallen tot honderden rekeninstances is orkestratiesoftware vereist. In deze sectie bieden we best practices voor LLM-orkestratie
Orkestratie binnen de baan
Ontwikkelaars moeten in de meeste gedistribueerde frameworks zowel trainingscode aan serverzijde als opstartcode aan clientzijde schrijven. Trainingscode wordt uitgevoerd op trainingsmachines, terwijl launcher-code aan de clientzijde de gedistribueerde werklast start vanaf een clientcomputer. Er is tegenwoordig weinig standaardisatie, bijvoorbeeld:
- In PyTorch kunnen ontwikkelaars taken voor meerdere machines starten met behulp van
torchrun
,torchx
,torch.distributed.launch
(beรซindigingspad), oftorch.multiprocessing.spawn
- DeepSpeed โโstelt zijn eigen deepspeed CLI-launcher voor en ondersteunt ook MPI-lancering
- MPI is een populair parallel computing-framework dat het voordeel heeft ML-agnostisch en redelijk vast te zijn, en daarom stabiel en gedocumenteerd, en wordt steeds vaker gezien in gedistribueerde ML-workloads
In een SageMaker-trainingscluster wordt de trainingscontainer รฉรฉn keer op elke machine gelanceerd. Bijgevolg heb je drie opties:
- Oorspronkelijke draagraket โ U kunt als toegangspunt de native launcher van een bepaald DL-framework gebruiken, bijvoorbeeld een
torchrun
call, die zelf meerdere lokale processen zal voortbrengen en communicatie tussen instanties tot stand zal brengen. - SageMaker MPI-integratie - U kunt SageMaker MPI-integratie gebruiken, beschikbaar in onze AWS DLC, of โโzelf te installeren via sagemaker-trainingstoolkit, om uw ingangspuntcode N keer per machine rechtstreeks uit te voeren. Dit heeft het voordeel dat u het gebruik van intermediaire, framework-specifieke launcher-scripts in uw eigen code vermijdt.
- SageMaker gedistribueerde bibliotheken - Als u de door SageMaker gedistribueerde bibliotheken gebruikt, kunt u zich concentreren op de trainingscode en hoeft u helemaal geen opstartcode te schrijven! De door SageMaker gedistribueerde opstartcode is ingebouwd in de SageMaker SDK.
Inter-job orkestratie
LLM-projecten bestaan โโvaak uit meerdere taken: zoeken naar parameters, schaalexperimenten, herstel van fouten en meer. Om trainingstaken te starten, stoppen en parallelliseren, is het belangrijk om een โโtaakorkestrator te gebruiken. SageMaker Training is een serverloze ML-taakorchestrator die tijdelijke rekeninstances onmiddellijk op verzoek inricht. U betaalt alleen voor wat u gebruikt en clusters worden buiten gebruik gesteld zodra uw code eindigt. Met SageMaker Training Warme Zwembaden, heb je de mogelijkheid om een โโtime-to-live te definiรซren voor trainingsclusters, om dezelfde infrastructuur voor meerdere jobs te hergebruiken. Dit vermindert de iteratietijd en de variatie in plaatsingen tussen banen. SageMaker-taken kunnen worden gestart vanuit verschillende programmeertalen, waaronder Python en CLI.
Er is een SageMaker-specifieke Python SDK genaamd de SageMaker Python-SDK en uitgevoerd via de sagemaker Python-bibliotheek, maar het gebruik ervan is optioneel.
Verhogen van quota voor opleidingsbanen met een groot en lang opleidingscluster
SageMaker heeft standaardquota voor bronnen, ontworpen om onbedoeld gebruik en kosten te voorkomen. Als u een LLM wilt trainen met behulp van een groot cluster van geavanceerde instanties die lange tijd actief zijn, moet u waarschijnlijk de quota in de volgende tabel verhogen.
Quotum naam | Standaardwaarde |
Langste looptijd voor een trainingstaak | 432,000 seconden |
Aantal instanties voor alle trainingstaken | 4 |
Maximum aantal instanties per trainingstaak | 20 |
ml.p4d.24xlarge voor het gebruik van trainingstaken | 0 |
ml.p4d.24xlarge voor het trainen van warm zwembadgebruik | 0 |
Bekijk AWS-servicequota hoe u uw quotumwaarden kunt bekijken en een quotumverhoging kunt aanvragen. Quota voor On-Demand, Spot Instance en training-warmpools worden afzonderlijk bijgehouden en gewijzigd.
Als u besluit om de SageMaker Profiler geactiveerd te houden, houd er dan rekening mee dat elke trainingstaak een SageMaker Processing-taak start, die elk รฉรฉn ml.m5.2xlarge-instantie verbruikt. Bevestig dat uw SageMaker-verwerkingsquota hoog genoeg zijn om tegemoet te komen aan de verwachte gelijktijdigheid van trainingstaken. Als u bijvoorbeeld 50 Profiler-compatibele trainingstaken wilt starten die tegelijkertijd worden uitgevoerd, moet u de ml.m5.2xlarge voor het verwerken van taakgebruikslimiet verhogen naar 50.
Om een โโlanglopende taak te starten, moet u bovendien expliciet de Taxateur max_run
parameter tot de gewenste maximale duur voor de trainingstaak in seconden, tot aan de quotawaarde van de langste looptijd voor een trainingstaak.
Bewaking en veerkracht
Hardwarestoringen zijn uiterst zeldzaam op de schaal van een enkele instantie en komen steeds vaker voor naarmate het aantal gelijktijdig gebruikte instanties toeneemt. Op typische LLM-schaal - honderden tot duizenden GPU's die 24/7 gedurende weken tot maanden worden gebruikt - is het bijna zeker dat er hardwarestoringen zullen optreden. Daarom moet een LLM-workload passende monitoring- en veerkrachtmechanismen implementeren. Ten eerste is het belangrijk om de LLM-infrastructuur nauwlettend in de gaten te houden, om de impact van storingen te beperken en het gebruik van rekenbronnen te optimaliseren. SageMaker Training stelt hiervoor verschillende functies voor:
- Logboeken worden automatisch verzonden naar CloudWatch Logs. Logboeken bevatten uw trainingsscript
stdout
enstderr
. Bij MPI-gebaseerde gedistribueerde training sturen alle MPI-medewerkers hun logboeken naar het leidersproces. - Statistieken over het gebruik van systeembronnen, zoals geheugen, CPU-gebruik en GPU-gebruik, worden automatisch naar CloudWatch verzonden.
- Je kunt definieer aangepaste trainingsstatistieken die naar CloudWatch wordt verzonden. De metrische gegevens worden vastgelegd uit logboeken op basis van reguliere expressies die u instelt. Experimentpakketten van derden, zoals de AWS-partner aanbieden van Weights & Biases kan worden gebruikt met SageMaker Training (zie voor een voorbeeld CIFAR-10 Hyperparameters optimaliseren met W&B en SageMaker).
- SageMaker-profiler stelt u in staat het infrastructuurgebruik te inspecteren en optimalisatie-aanbevelingen te krijgen.
- Amazon EventBridge en AWS Lambda stelt u in staat om geautomatiseerde clientlogica te creรซren die reageert op gebeurtenissen zoals het mislukken van taken, successen, S3-bestandsuploads en meer.
- SageMaker SSH-helper is een door de gemeenschap onderhouden open-sourcebibliotheek waarmee u via SSH verbinding kunt maken met hosts voor trainingsjobs. Het kan nuttig zijn om code-uitvoeringen op specifieke knooppunten te inspecteren en problemen op te lossen.
Naast monitoring brengt SageMaker ook apparatuur voor veerkracht op het werk:
- Clustergezondheidscontroles โ Voordat uw taak begint, voert SageMaker GPU-statuscontroles uit en verifieert NCCL-communicatie op GPU-instanties, waarbij eventuele defecte instanties indien nodig worden vervangen om ervoor te zorgen dat uw trainingsscript op een gezond cluster van instanties wordt uitgevoerd. Statuscontroles zijn momenteel ingeschakeld voor P- en G GPU-gebaseerde instantietypen.
- Ingebouwde nieuwe pogingen en clusterupdate - U kunt SageMaker automatisch configureren opnieuw proberen trainingstaken die mislukken met een SageMaker internal server error (ISE). Als onderdeel van het opnieuw proberen van een taak, zal SageMaker alle instanties die onherstelbare GPU-fouten tegenkwamen, vervangen door nieuwe instanties, alle gezonde instanties opnieuw opstarten en de taak opnieuw starten. Dit resulteert in sneller opnieuw opstarten en voltooiing van de werklast. Clusterupdate is momenteel ingeschakeld voor P- en G GPU-gebaseerde instantietypen. U kunt uw eigen toevoegen toepassingsmechanisme voor opnieuw proberen rond de clientcode die de taak verzendt, om andere soorten startfouten op te lossen, zoals het overschrijden van uw accountquotum.
- geautomatiseerde checkpoint naar Amazon S3 - Dit helpt je checkpoint uw voortgang en herlaad een eerdere status op nieuwe banen.
Om te profiteren van vervanging op knooppuntniveau, moet uw code fouten bevatten. Collectieven kunnen vastlopen in plaats van fouten maken wanneer een knooppunt faalt. Daarom, om snel herstel te hebben, moet u een time-out op uw collectieven instellen en de code een fout laten genereren wanneer deze wordt bereikt.
Sommige klanten zetten een monitoringclient op om te monitoren en actie te ondernemen in het geval dat een taak vastloopt of applicatieconvergentie stopt, door CloudWatch-logboeken en -statistieken te monitoren op abnormale patronen zoals geen geschreven logs of 0% GPU-gebruik als hint voor een vastloper, convergentiestop en automatische stop/probeer de taak opnieuw.
Diepe duik op checkpointing
De SageMaker-controlepunt functie kopieert alles waarop u schrijft /opt/ml/checkpoints
terug naar Amazon S3 als de URI die is opgegeven in de checkpoint_s3_uri
SDK-parameter. Wanneer een taak start of herstart, wordt alles wat op die URI is geschreven, teruggestuurd naar alle machines, op /opt/ml/checkpoints
. Dit is handig als u wilt dat alle knooppunten toegang hebben tot alle controlepunten, maar op schaal. Als u veel machines of veel historische controlepunten heeft, kan dit leiden tot lange downloadtijden en te veel verkeer op Amazon S3. Bovendien hebben de werknemers bij tensor- en pijplijnparallelisme slechts een fractie van het checkpointmodel nodig, niet alles. Als u met deze beperkingen wordt geconfronteerd, raden we de volgende opties aan:
- Checkpointing naar FSx voor glans โ Dankzij krachtige willekeurige I/O kunt u het sharding- en bestandstoewijzingsschema van uw keuze definiรซren
- Zelfbeheerde Amazon S3-checkpointing โ Voor voorbeelden van Python-functies die kunnen worden gebruikt om checkpoints op een niet-blokkerende manier op te slaan en te lezen, zie Controlepunten opslaan
We raden u sterk aan uw model om de paar uur te controleren, bijvoorbeeld 1-3 uur, afhankelijk van de bijbehorende overhead en kosten.
Front-end en gebruikersbeheer
Gebruikersbeheer is een belangrijke bruikbaarheid van SageMaker in vergelijking met de oude gedeelde HPC-infrastructuur. SageMaker-trainingsmachtigingen worden door verschillende bepaald AWS Identiteits- en toegangsbeheer (IAM) abstracties:
- Opdrachtgevers - gebruikers en systemen - krijgen toestemming om bronnen te starten
- Trainingstaken dragen zelf rollen, waardoor ze hun eigen machtigingen kunnen hebben, bijvoorbeeld met betrekking tot gegevenstoegang en het aanroepen van services
Daarnaast hebben we in 2022 toegevoegd SageMaker-rolmanager om het creรซren van persona-gestuurde machtigingen te vergemakkelijken.
Conclusie
Met SageMaker Training kunt u de kosten verlagen en de iteratiesnelheid van uw trainingswerklast voor grote modellen verhogen. We hebben succesverhalen gedocumenteerd in tal van berichten en casestudy's, waaronder:
Als u uw LLM time-to-market wilt verbeteren en tegelijkertijd uw kosten wilt verlagen, bekijk dan de SageMaker Training API en laat ons weten wat u bouwt!
Speciale dank aan Amr Ragab, Rashika Kheria, Zmnako Awrahman, Arun Nagarajan, Gal Oshri voor hun nuttige beoordelingen en lessen.
Over de auteurs
Anastasia Tzeveleka is een Machine Learning en AI Specialist Solutions Architect bij AWS. Ze werkt samen met klanten in EMEA en helpt hen bij het ontwerpen van machine learning-oplossingen op schaal met behulp van AWS-services. Ze heeft aan projecten in verschillende domeinen gewerkt, waaronder Natural Language Processing (NLP), MLOps en Low Code No Code-tools.
Gili Nachum is een senior AI/ML Specialist Solutions Architect die werkt als onderdeel van het EMEA Amazon Machine Learning-team. Gili is gepassioneerd door de uitdagingen van het trainen van deep learning-modellen en hoe machine learning de wereld zoals wij die kennen verandert. In zijn vrije tijd speelt Gili graag tafeltennis.
Olivier Cruchant is een Principal Machine Learning Specialist Solutions Architect bij AWS, gevestigd in Frankrijk. Olivier helpt AWS-klanten โ van kleine startups tot grote ondernemingen โ bij het ontwikkelen en implementeren van machine learning-applicaties op productieniveau. In zijn vrije tijd leest hij graag onderzoeksdocumenten en verkent hij de wildernis met vrienden en familie.
Bruno Piston is een AI/ML Specialist Solutions Architect voor AWS gevestigd in Milaan. Hij werkt samen met klanten van elke omvang om hen te helpen hun technische behoeften grondig te begrijpen en AI- en Machine Learning-oplossingen te ontwerpen die optimaal gebruik maken van de AWS Cloud en de Amazon Machine Learning-stack. Zijn expertisegebieden zijn Machine Learning end-to-end, Machine Learning Industrialization en MLOps. Hij brengt graag tijd door met zijn vrienden en het verkennen van nieuwe plaatsen, maar ook van reizen naar nieuwe bestemmingen.
- Door SEO aangedreven content en PR-distributie. Word vandaag nog versterkt.
- Platoblockchain. Web3 Metaverse Intelligentie. Kennis versterkt. Toegang hier.
- Bron: https://aws.amazon.com/blogs/machine-learning/training-large-language-models-on-amazon-sagemaker-best-practices/
- :is
- ][P
- $UP
- 000
- 1
- 100
- 2022
- 7
- 8
- a
- capaciteiten
- in staat
- Over
- boven
- versnellen
- versneld
- toegang
- accommoderen
- Account
- Bereiken
- het bereiken van
- over
- Handelen
- Activering
- actieve
- aanpassen
- toegevoegd
- toevoeging
- Daarnaast
- toevoegingen
- Voordeel
- AI
- AI / ML
- AL
- algoritme
- algoritmen
- Alles
- Het toestaan
- toestaat
- Amazone
- Amazon EC2
- Amazon FSx
- Amazon machinaal leren
- Amazon Sage Maker
- bedragen
- en
- api
- APIs
- toepasselijk
- Aanvraag
- toepassingen
- toegepast
- passend
- ZIJN
- GEBIED
- rond
- AS
- geassocieerd
- At
- attributen
- auto
- geautomatiseerde
- webmaster.
- Beschikbaar
- het vermijden van
- AWS
- terug
- backend
- Balance
- gebaseerde
- BE
- omdat
- wordt
- vaardigheden
- wezen
- voordeel
- BEST
- 'best practices'
- Verder
- Groot
- Miljard
- miljarden
- Blok
- brengen
- Brengt
- bouw
- bebouwd
- bedrijfsdeskundigen
- by
- Bellen
- Dit betekent dat we onszelf en onze geliefden praktisch vergiftigen.
- oproepen
- CAN
- in staat
- Inhoud
- kaart
- Kaarten
- dragen
- geval
- Casestudies
- katalyseert
- uitdagingen
- veranderende
- Kanaal
- controle
- Controles
- keuze
- keuzes
- Kies
- klassen
- klant
- van nabij
- Cloud
- TROS
- code
- Collective
- gecombineerde
- hoe
- Gemeen
- algemeen
- Communicatie
- Communicatie
- vergeleken
- verenigbaar
- voltooiing
- berekening
- Berekenen
- computer
- Computer visie
- computergebruik
- concludeert
- uitgevoerd
- Configuratie
- Bevestigen
- Verbinden
- bijgevolg
- bevatten
- Containers
- containers
- bevat
- content
- bijgedragen
- onder controle te houden
- gecontroleerd
- gemakkelijk
- Convergentie
- Corruptie
- Kosten
- Kosten
- kon
- Type cursus
- deksel
- Covers
- en je merk te creรซren
- het aanmaken
- Creatieve
- kritisch
- cruciaal
- curation
- Op dit moment
- gewoonte
- Klanten
- aan te passen
- gegevens
- toegang tot data
- Data voorbereiding
- datasets
- beslissen
- toegewijd aan
- deep
- diepgaand leren
- Standaard
- Mate
- Afhankelijk
- afhankelijk
- implementeren
- Design
- ontworpen
- gewenste
- bestemmingen
- Bepalen
- bepalen
- ontwikkelen
- ontwikkelde
- Ontwikkelaar
- ontwikkelaars
- Ontwikkeling
- ontwikkelt
- apparaat
- systemen
- anders
- Verspreiding
- direct
- bespreken
- besproken
- verdeeld
- distributed computing
- gedistribueerde training
- distributie
- havenarbeider
- Nee
- domeinen
- Dont
- beneden
- Download
- tientallen
- gedurende
- elk
- gemakkelijk
- effectief
- beide
- EMEA
- in staat stellen
- ingeschakeld
- maakt
- waardoor
- aanmoedigen
- eindigt
- verbeterde
- en geniet van
- genoeg
- verzekeren
- Enterprise
- bedrijven
- toegang
- Milieu
- omgevingen
- uitrusting
- uitgerust
- fout
- fouten
- oprichten
- Zelfs
- EVENTS
- eventueel
- Alle
- alles
- evolueerde
- voorbeeld
- voorbeelden
- Excel
- bestaand
- verwachten
- verwacht
- ervaring
- experiment
- Verkennen
- blootgestelde
- uitdrukkingen
- verlenging
- extensies
- extern
- uiterst
- stof
- Gezicht
- vergemakkelijken
- faciliterende
- factoren
- Mislukt
- mislukt
- Storing
- gezinnen
- familie
- Mode
- SNELLE
- sneller
- defect
- uitvoerbaar
- Kenmerk
- Voordelen
- weinig
- veld-
- Dien in
- Bestanden
- Voornaam*
- geschikt
- VLOOT
- Flexibiliteit
- Focus
- richt
- gevolgd
- volgend
- Voor
- fractie
- Achtergrond
- frameworks
- Frankrijk
- Vrijheid
- veelvuldig
- vers
- vrienden
- oppompen van
- vol
- geheel
- functioneel
- functionaliteit
- functies
- verder
- GAL
- gegenereerde
- generatief
- krijgen
- het krijgen van
- GitHub
- gegeven
- GPU
- GPU's
- diagram
- groot
- beste
- Groep
- Groeit
- handvat
- Behandeling
- Hangen
- gebeuren
- Hardware
- Hebben
- met
- Gezondheid
- gezond
- nuttig
- het helpen van
- helpt
- Hoge
- Hoge frequentie
- hoge performantie
- historisch
- kap
- hosts
- HOURS
- Hoe
- How To
- Echter
- hpc
- HTML
- http
- HTTPS
- Honderden
- honderdmiljoenen
- i
- identiek
- Identiteit
- beeld
- afbeeldingen
- per direct
- Impact
- uitvoeren
- geรฏmplementeerd
- uitvoering
- belangrijk
- verbeteren
- verbeterd
- verbeteringen
- in
- Anders
- omvatten
- Inclusief
- Laat uw omzet
- meer
- Verhoogt
- in toenemende mate
- individueel
- -industrie
- info
- informatie
- Infrastructuur
- Innovatie
- geinspireerd
- installeren
- instantie
- verkrijgen in plaats daarvan
- geรฏntegreerde
- integratie
- Intelligent
- wisselwerking
- Interface
- tussenpersoon
- intern
- voorstellen
- geรฏntroduceerd
- IT
- herhaling
- HAAR
- zelf
- Jobomschrijving:
- Vacatures
- jpg
- Houden
- sleutel
- Soort
- blijven
- taal
- Talen
- Groot
- grootschalig
- groter
- laatste
- lancering
- gelanceerd
- lanceert
- lagen
- Legkippen
- leiden
- leider
- leren
- Nalatenschap
- Niveau
- bibliotheken
- Bibliotheek
- levenscyclus van uw product
- als
- Waarschijnlijk
- LIMIT
- beperkingen
- Beperkt
- Elke kleine stap levert grote resultaten op!
- LLM
- het laden
- lokaal
- lang
- lange tijd
- Kijk
- op zoek
- Laag
- machine
- machine learning
- Machines
- onderhouden
- Het handhaven
- onderhoudt
- maken
- MERKEN
- maken
- beheer
- beheerd
- management
- veel
- Maps
- maximaal
- Geheugen
- Metadata
- methoden
- Metriek
- migratie
- MILAAN
- miljoenen
- ML
- MLops
- Mode
- model
- modellen
- gewijzigd
- monitor
- Grensverkeer
- meer
- meest
- beweging
- meervoudig
- namelijk
- inheemse
- Naturel
- Natural Language Processing
- NATUUR
- nodig
- noodzakelijk
- Noodzaak
- behoeften
- netwerk
- netwerkgebaseerd
- netwerken
- neuraal netwerk
- New
- nlp
- knooppunt
- knooppunten
- aantal
- vele
- Nvidia
- objecten
- of
- bieden
- het aanbieden van
- Olivier
- on
- On-Demand
- EEN
- open
- open source
- open-sourcecode
- geopend
- Kansen
- optimalisatie
- Optimaliseer
- geoptimaliseerde
- Keuze
- Opties
- orkestratie
- bestellen
- Overige
- het te bezitten.
- pakket
- Paketten
- Papier
- papieren
- paradigma
- Parallel
- parameter
- parameters
- deel
- bijzonder
- vooral
- hartstochtelijk
- verleden
- pad
- patronen
- Betaal
- Hoogtepunt
- prestatie
- optredens
- toestemming
- permissies
- fysiek
- pijpleiding
- plaatsen
- Plato
- Plato gegevensintelligentie
- PlatoData
- spelen
- punt
- zwembad
- Zwembaden
- Populair
- Post
- Berichten
- praktijk
- praktijken
- het voorspellen van
- voorkeuren
- bij voorkeur
- presenteren
- cadeautjes
- voorkomen
- die eerder
- Principal
- processen
- verwerking
- produceren
- Programma
- Programming
- programmeertalen
- Voortgang
- projecten
- naar behoren
- voorstellen
- stelt
- gepatenteerd
- protocol
- protocollen
- zorgen voor
- mits
- leverancier
- het verstrekken van
- publiek
- publicaties
- doel
- zetten
- Python
- pytorch
- kwaliteit
- verhogen
- willekeurige
- BIJZONDER
- tarief
- Tarieven
- bereikt
- Lees
- lezing
- realiseren
- redelijk
- redenen
- ontvangen
- recent
- adviseren
- aanbevelingen
- record
- archief
- na een training
- verminderen
- vermindert
- vermindering
- met betrekking tot
- regio
- regio
- regelmatig
- regelmatig
- verwant
- relevante
- betrouwbaar
- vanop
- vervangen
- vertegenwoordigen
- te vragen
- verzoeken
- vereisen
- vereiste
- vereist
- onderzoek
- onderzoek en innovatie
- hulpbron
- Resources
- Resultaten
- Recensies
- Rol
- rollen
- lopen
- lopend
- sagemaker
- dezelfde
- Bespaar
- Schaalbaarheid
- schaalbare
- Scale
- balans
- scaling
- schema
- wetenschappelijk
- wetenschappers
- omvang
- scripts
- sdk
- Ontdek
- Tweede
- seconden
- sectie
- op zoek naar
- gekozen
- selectie
- senior
- Serverless
- Servers
- service
- Diensten
- reeks
- settings
- verscheidene
- versnipperd
- sharding
- gedeeld
- moet
- aanzienlijk
- Eenvoudig
- eenvoud
- gelijktijdig
- single
- Maat
- maten
- vaardigheden
- traag
- Klein
- So
- Software
- Oplossingen
- sommige
- bron
- bronnen
- specialist
- specifiek
- specifiek
- gespecificeerd
- snelheid
- Uitgaven
- splits
- Spot
- stabiel
- stack
- begin
- Start
- starts
- Startups
- Land
- statistisch
- Stappen
- stop
- stoppen
- mediaopslag
- shop
- Blog
- Strategie
- stream
- streams
- sterkte
- strippen
- sterk
- studies
- succes
- Succesverhalen
- geslaagd
- dergelijk
- ondersteuning
- ondersteunde
- steunen
- synchronisatie
- syntaxis
- system
- tafel
- Nemen
- Taak
- taken
- team
- Technisch
- tensorflow
- Bedankt
- dat
- De
- de wereld
- hun
- Ze
- zich
- theoretisch
- daarom
- Deze
- van derden
- duizenden kosten
- drie
- Door
- doorvoer
- niet de tijd of
- keer
- tips
- naar
- vandaag
- tokens
- ook
- tools
- tools
- top
- Totaal
- spoor
- verkeer
- Trainen
- getraind
- Trainingen
- Vertaling
- vervoeren
- Triljoen
- types
- typisch
- voor
- die ten grondslag liggen
- begrijpen
- unieke
- eenheden
- bijwerken
- us
- bruikbaarheid
- Gebruik
- .
- Gebruiker
- doorgaans
- waarde
- Values
- variรซteit
- divers
- controleren
- versie
- via
- Video
- Bekijk
- visie
- warm
- Manier..
- manieren
- weken
- GOED
- Wat
- welke
- en
- WIE
- geheel
- wil
- Met
- binnen
- zonder
- woorden
- Mijn werk
- werkte
- werknemers
- werkzaam
- Bedrijven
- wereld
- schrijven
- geschreven
- jaar
- You
- Your
- jezelf
- youtube
- zephyrnet