De toenemende omvang van taalmodellen is de afgelopen jaren een van de grootste trends in natuurlijke taalverwerking (NLP) geweest. Sinds 2018 hebben we een ongekende ontwikkeling en inzet gezien van steeds grotere taalmodellen, waaronder BERT en zijn varianten, GPT-2, T-NLG en GPT-3 (175 miljard parameters).
Deze modellen hebben de grenzen van mogelijke architectonische innovaties verlegd. We worden geconfronteerd met verschillende uitdagingen bij het trainen van grootschalige deep learning-modellen, met name de nieuwe golf van generatieve voorgetrainde transformatoren. Deze uitdagingen omvatten hardwarebeperkingen en compromissen met berekening en efficiëntie. Om deze uitdagingen van model- en dataparallellisme te overwinnen, biedt AWS een breed scala aan mogelijkheden.
In dit bericht introduceren we twee hoofdbenaderingen: gegevensparallellisatie en modelparallellisatie met behulp van: Amazon Sage Makeren bespreek hun voor- en nadelen.
Het model
Voor het taalmodel gebruiken we Transformers, geïntroduceerd in de paper Aandacht is alles wat je nodig hebt. Transformers zijn deep learning-modellen die zijn ontworpen om opzettelijk de valkuilen van RNN's te vermijden door te vertrouwen op een zelfaandachtsmechanisme om wereldwijde afhankelijkheden te trekken tussen input en output. De Transformer-modelarchitectuur zorgt voor een aanzienlijk betere parallellisatie en kan hoge prestaties behalen in relatief korte trainingstijd. Gebouwd op het succes van Transformers, BERT, geïntroduceerd in de krant BERT: Pre-training van Deep Bidirectional Transformers for Language Understanding, toegevoegde bidirectionele pre-training voor taalrepresentatie. Geïnspireerd door de Cloze-taak, is BERT vooraf getraind met gemaskeerde taalmodellering (MLM), waarbij het model leert de originele woorden voor willekeurig gemaskeerde tokens te herstellen. Het BERT-model is ook voorgetraind op de volgende zin voorspelling (NSP) taak om te voorspellen of twee zinnen in de juiste leesvolgorde staan. Sinds de komst in 2018 zijn BERT en zijn variaties op grote schaal gebruikt in taalmodellen.
We beginnen met het maken van twee inbeddingslagen voor token- en positionele inbedding. De invoerinbeddingen zijn de som van de tokeninbeddingen en positie-inbeddingen.
Vervolgens definiëren we een transformatordecoderblok met twee sublagen: een zelfaandachtslaag met meerdere koppen en een eenvoudig volledig verbonden feed-forward-netwerk gevolgd door laagnormalisatie en uitval:
Ten slotte maken we ons taalmodel met de voorgaande inbeddingslaag en transformatorblokken:
Afhankelijk van uw hyperparameters kunt u dit model schalen van duizenden parameters naar miljarden parameters. De belangrijkste uitdaging bij modellen met miljarden parameters is dat u het model niet in één instantie kunt hosten en het model over verschillende knooppunten moet verdelen voor training en inferentie.
De dataset
In onze experimenten gebruikten we de Stapel dataset. The Pile is een 800 GiB Engelse tekstdataset die is ontworpen voor het trainen van grootschalige taalmodellen. Het is gemaakt op basis van 22 verschillende en hoogwaardige datasets, waaronder zowel bestaande NLP-datasets als nieuw geïntroduceerde.
De dataset is gemaakt op basis van verschillende gegevensbronnen, waaronder boeken; GitHub-opslagplaatsen; webpagina's; chatlogboeken; en medische, natuurkunde, wiskunde, informatica en filosofie papers. Het gebruikt met name de volgende bronnen: Pile-CC, PubMed Central, ArXiv, GitHub, het FreeLaw Project, Stack Exchange, het US Patent and Trademark Office, PubMed, Ubuntu, IRC, HackerNews, YouTube, PhilPapers, Books3, Project Gutenberg ( PG-19), OpenSubtitles, Engelse Wikipedia, DM Mathematics, EuroParl, het Enron Emails corpus en NIH ExPorter. Het bevat ook OpenWebText2 en BookCorpus2, die respectievelijk uitbreidingen zijn van de oorspronkelijke OpenWebText- en BookCorpus-datasets. De diversiteit in gegevensbronnen kan de algemene domeinoverschrijdende kennis verbeteren en bijgevolg de downstream-generalisatiemogelijkheden verbeteren.
De grootste uitdaging met deze dataset is de enorme omvang; de dataset heeft 825 GiB aan tekst, wat zich vertaalt in 4.2 TiB aan voorverwerkte en gecomprimeerde datapunten. Net als de uitdagingen waarmee we worden geconfronteerd bij het trainen en hosten van de modellen, zal het trainen van een model met deze dataset op een enkele instantie veel tijd kosten en is niet praktisch.
Onze oplossing is om de dataset op te splitsen in gegevensblokken van ongeveer 1 GiB, de functies te laden en voor te verwerken in TensorFlow-gegevensset voorwerpen en bewaar ze in Amazon Elastic-bestandsservice (Amazon EFS). TensorFlow-datasets bieden een gebruiksvriendelijke en krachtige datapijplijn die goed integreert met onze modellen. Amazon EFS is een gebruiksvriendelijke service waarmee we een gedeeld bestandssysteem kunnen bouwen dat automatisch wordt geschaald naarmate bestanden worden toegevoegd en verwijderd. Bovendien is Amazon EFS in staat om indien nodig naar hogere doorvoerniveaus te springen, wat van cruciaal belang is in onze pijplijn voor gegevens- en modeltraining.
Vervolgens kijken we naar gedistribueerde trainingsstrategieën om deze uitdagingen aan te gaan.
Gedistribueerde training
In dit project stonden we voor twee uitdagingen: schaalmodelgrootte en datavolume. Het vergroten van de modelgrootte en het aantal trainbare parameters kan resulteren in een betere nauwkeurigheid, maar er is een limiet aan het model dat u in een enkel GPU-geheugen of zelfs meerdere GPU's in één instantie kunt passen. Bovendien hebben grotere modelmaten meer tijd nodig om te trainen.
U kunt deze uitdagingen op twee verschillende manieren aanpakken: gegevensparallellisme en modelparallellisme. Met dataparallellisme voeren we Stochastic Gradient Descent (SGD) uit door de records van een mini-batch over verschillende apparaten te verdelen om de training te versnellen. Parallelle datatraining gaat echter gepaard met extra complexiteit van het berekenen van mini-batch gradiëntgemiddelde met gradiënten van alle apparaten, een stap genaamd AllReduce
, wat moeilijker wordt naarmate het trainingscluster groeit. Bij het gebruik van dataparallellisme moeten we in staat zijn om het model en een enkel datapunt in een apparaat (CPU of GPU) te passen, wat een beperkende factor is in onze experimenten omdat de grootte van zo'n groot model veel groter is dan het geheugen van de enkele GPU maat.
Een andere oplossing is om modelparallellisme te gebruiken, waarbij het model over meerdere apparaten wordt verdeeld. Modelparallellisme is het proces van het opsplitsen van een model tussen meerdere apparaten of knooppunten (zoals met GPU uitgeruste instanties) en het creëren van een efficiënte pijplijn om het model over deze apparaten te trainen om het GPU-gebruik te maximaliseren.
Gegevensparallellisatie
Het parallelliseren van de gegevens is de meest gebruikelijke benadering voor meerdere GPU's of gedistribueerde training. U kunt uw gegevens in batches verzenden, naar meerdere apparaten verzenden (elk met een gerepliceerd model) en vervolgens de resultaten samenvoegen. We hebben geëxperimenteerd met twee pakketten voor gegevensparallellisatie: Horovod en de SageMaker gedistribueerde parallelle gegevensbibliotheek.
Horovod is een gedistribueerd deep learning-trainingsframework voor TensorFlow, Keras, PyTorch en Apache MXNet. Om Horovod te gebruiken, hebben we het volgende proces doorlopen:
- Initialiseren door te rennen
hvd.init()
. - Koppel elk apparaat aan één proces. Het eerste proces of de eerste werknemer is gekoppeld aan het eerste apparaat, het tweede proces is gekoppeld aan het tweede apparaat, enzovoort.
- Pas de leersnelheid aan op basis van het aantal apparaten.
- Wikkel de optimizer in
hvd.DistributedOptimizer
. - Zend de initiële variabelestatussen van de eerste werknemer met rang 0 uit naar alle andere processen. Dit is nodig om een consistente initialisatie van alle werknemers te garanderen wanneer de training wordt gestart met willekeurige gewichten of wordt hersteld vanaf een controlepunt.
- Zorg ervoor dat alleen apparaat 0 controlepunten kan opslaan om te voorkomen dat andere werknemers ze beschadigen.
Het volgende is het trainingsscript:
De parallelle databibliotheek van SageMaker stelt ons in staat om onze training op te schalen met bijna lineaire efficiëntie, waardoor onze training wordt versneld met minimale codewijzigingen. De bibliotheek voert een custom AllReduce
werking en optimaliseert de communicatie van apparaat naar apparaat door volledig gebruik te maken van de netwerkinfrastructuur van AWS en Amazon Elastic Compute-cloud (Amazon EC2) instantietopologie. Om de parallelle databibliotheek van SageMaker te gebruiken, hebben we het volgende proces doorlopen:
- Importeren en initialiseren
sdp.init()
. - Koppel elk apparaat aan een enkele
smdistributed.dataparallel
verwerken metlocal_rank
.sdp.tensorflow.local_rank()
geeft ons de lokale rangorde van apparaten. De leider is rang 0 en arbeiders zijn rang 1, 2, 3, enzovoort. - Pas de leersnelheid aan op basis van het aantal apparaten.
- Wikkel
tf.GradientTape
MetDistributedGradientTape
presterenAllReduce
. - Zend de initiële modelvariabelen uit van het leiderknooppunt naar alle werkknooppunten.
- Zorg ervoor dat alleen apparaat 0 controlepunten kan opslaan.
Modelparallellisatie
We kunnen de hyperparameters aanpassen om het model klein genoeg te houden om te trainen met een enkele GPU, of we kunnen modelparallellisme gebruiken om het model te splitsen tussen meerdere GPU's over meerdere instanties. Het verhogen van het aantal trainbare parameters van een model kan resulteren in een betere nauwkeurigheid, maar er is een limiet aan de maximale modelgrootte die u in een enkel GPU-geheugen kunt passen. We hebben de parallelle bibliotheek van gedistribueerde modellen van SageMaker gebruikt om onze grotere modellen te trainen. De stappen zijn als volgt:
- Importeer en initialiseer de bibliotheek met
smp.init()
. - Het Keras-model moet overerven van smp.DistributedModel in plaats van de Keras Model-klasse.
- Zet de
drop_remainder=True
in detf.Dataset.batch()
methode om ervoor te zorgen dat de batchgrootte altijd deelbaar is door het aantal microbatches. - Willekeurige bewerkingen in de gegevenspijplijn moeten allemaal dezelfde seed gebruiken:
smp.dp_rank()
Bijvoorbeeldshuffle(ds, seed=smp.dp_rank())
. Dit zorgt voor consistentie van gegevensvoorbeelden op apparaten die verschillende modelpartities bevatten. - Voorwaartse en achterwaartse logica moet in een stapfunctie zijn met
smp.step
decoratie. - Voer nabewerking uit op de uitvoer in microbatches met behulp van StepOutput-methoden zoals:
reduce_mean
. Desmp.step
functie moet een retourwaarde hebben die afhangt van de uitvoer vansmp.DistributedModel
.
Het trainingsscript is als volgt:
Raadpleeg voor een gedetailleerde handleiding om het TensorFlow-trainingsscript voor de parallelle bibliotheek met gedistribueerde modellen van SageMaker in te schakelen: Een TensorFlow-trainingsscript wijzigen. Raadpleeg voor PyTorch: Een PyTorch-trainingsscript wijzigen.
SageMaker-foutopsporing
In de vorige paragrafen hebben we besproken hoe de training kan worden geoptimaliseerd met behulp van model- en dataparallelisatietechnieken. Met Amazon SageMaker-foutopsporing, kunnen we nu prestatieprofileringsinformatie van onze trainingsruns vastleggen om te bepalen in hoeverre de training is verbeterd. Standaard legt Debugger systeemstatistieken vast voor elke SageMaker-trainingstaak, zoals GPU, CPU-gebruik, geheugen, netwerk en I/O met een bemonsteringsinterval van 500 milliseconden. We hebben als volgt toegang tot de gegevens:
Debugger biedt hulpprogramma's om visualiseren de profileringsgegevens op verschillende manieren. In het volgende voorbeeld zien we het totale GPU- en CPU-gebruik en de I/O-wachttijd voor de multi-GPU-trainingstaak met Horovod. Om deze grafieken te genereren, voeren we de volgende code uit:
Het GPU-gebruik schommelt vaak tussen 0–100%, en hoge I/O-wachttijden met een laag GPU-gebruik zijn een indicator van een I/O-knelpunt. Bovendien is het totale CPU-gebruik nooit hoger dan 70%, wat betekent dat we de voorverwerking van gegevens kunnen verbeteren door het aantal werkprocessen te vergroten.
We kunnen de prestaties verbeteren door over te stappen van Horovod naar de parallelle gedistribueerde databibliotheek van SageMaker. In de volgende grafieken kunnen we zien dat GPU's efficiënter worden gebruikt en slechts gedurende korte perioden tot een laag gebruik dalen.
Trainingsinfrastructuur
Voor het trainen van de modellen hebben we 10 ml.p3.16xgrote instanties gebruikt met behulp van een SageMaker-trainingstaak. SageMaker reduceert de tijd en kosten voor het trainen en afstemmen van machine learning (ML)-modellen zonder de noodzaak om de infrastructuur te beheren. Met SageMaker kunt u eenvoudig ML-modellen trainen en afstemmen met behulp van ingebouwde tools om trainingsexperimenten te beheren en bij te houden, automatisch optimale hyperparameters te kiezen, fouten op te sporen in trainingstaken en het gebruik van systeembronnen zoals GPU's, CPU's en netwerkbandbreedte te bewaken. De gegevens werden gehost in Amazon EFS, waardoor we konden groeien en krimpen terwijl we bestanden toevoegen en verwijderen zonder dat beheer of voorziening nodig was. Onze primaire doelstellingen waren het verbeteren van de trainingssnelheid en het verlagen van de kosten.
Modelschaalbaarheid
Hoewel deze infrastructuur voornamelijk wordt gebruikt voor het genereren van talen, kunt u met de GPT-architectuur en Pile-dataset deze technieken gebruiken om grootschalige transformatormodellen te trainen, wat nuttig is in veel domeinen buiten NLP. Bij machine learning zelf worden veel computervisietaken nu opgelost met architecturen met grote parameters (transformatoren), waarvan is aangetoond dat ze beter presteren dan traditionele CNN's (Convolutional Neural Network) voor taken zoals representatieleren (zie Vooruitgang in de stand van de techniek op het gebied van computervisie met zelf-gecontroleerde Transformers en 10x efficiëntere training) en grootschalige toewijzing van afbeeldingen aan tekst (zoals CLIP). Modellen met grote parameters zijn ook baanbrekend in de biowetenschappen op gebieden als eiwitstructuuranalyse en analyse van medische beeldgegevens.
De oplossingen die we in dit bericht beschrijven voor gedistribueerde training en het beheren van grote modellen, moeten ook van toepassing zijn op modellen in elk van deze domeinen.
Afwegingen
Er is in de onderzoeksgemeenschap een voortdurende discussie gaande over de risico's van het trainen van grootschalige taalmodellen, en of er voldoende is nagedacht over de mogelijke risico's die gepaard gaan met de ontwikkeling ervan en strategieën om deze risico's te beperken, waaronder de financiële en milieu kosten. Volgens een papier gepubliceerd in ACM, werd geschat dat het trainen van een enkel BERT-basismodel (zonder hyperparameterafstemming) op GPU's evenveel energie kostte als een trans-Amerikaanse vlucht. De milieueffecten schalen mee met de modelgrootte, en het efficiënt kunnen afstemmen van dergelijke modellen kan de emissies mogelijk aanzienlijk inperken. AWS heeft onlangs een nieuwe Tool voor koolstofvoetafdruk van klanten, gratis beschikbaar voor alle AWS-klanten, als onderdeel van Amazon's inspanningen om de duurzaamheid te vergroten en de COXNUMX-uitstoot te verminderen. Het uitvoeren van applicaties op de AWS Cloud kan mogelijk de ecologische voetafdruk verkleinen (in vergelijking met enterprise datacenters die werden onderzocht in een 2019-rapport).
Conclusie
Dit bericht demonstreerde een oplossing die de fijnafstemming van taalmodellen met een miljard parameters op de AWS Cloud vergemakkelijkt met behulp van SageMaker.
Raadpleeg voor meer informatie over modelparallellisme met SageMaker: Train 175+ miljard parameter NLP-modellen met modelparallelle toevoegingen en Hugging Face op Amazon SageMaker en Hoe Latent Space de parallellismebibliotheek van Amazon SageMaker gebruikte om de grenzen van grootschalige transformatoren te verleggen.
Als u hulp nodig heeft bij het versnellen van uw gebruik van ML in uw producten en processen, neem dan contact op met de Amazon ML Solutions-lab.
Over de auteurs
Sia Gholami is Senior Data Scientist bij het Amazon ML Solutions Lab, waar hij AI/ML-oplossingen bouwt voor klanten in verschillende sectoren. Hij is gepassioneerd door natuurlijke taalverwerking (NLP) en deep learning. Naast haar werk brengt Sia graag tijd door in de natuur en speelt ze graag tennis.
Mehdi Nooriis een Manager en Senior Applied Scientist bij het Amazon ML Solutions Lab, waar hij samenwerkt met klanten in verschillende sectoren, en hen helpt hun cloudmigratietraject te versnellen en hun ML-problemen op te lossen met behulp van state-of-the-art oplossingen en technologieën.
Muhyun Kim is data scientist bij Amazon Machine Learning Solutions Lab. Hij lost de verschillende zakelijke problemen van klanten op door machine learning en deep learning toe te passen, en helpt hen ook om vaardig te worden.
Danny Byrd is een Applied Scientist bij het Amazon ML Solutions Lab. In het lab hielp hij klanten bij het ontwikkelen van geavanceerde ML-oplossingen, in ML-specialiteiten van computervisie tot versterkend leren. Hij is gepassioneerd over het vooruithelpen van technologie en het ontsluiten van nieuwe mogelijkheden van AWS-producten.
Francisco Calderón Rodriguez is een datawetenschapper in het Amazon ML Solutions Lab. Als lid van het ML Solutions Lab helpt hij bij het oplossen van kritieke bedrijfsproblemen voor AWS-klanten met behulp van deep learning. In zijn vrije tijd speelt Francisco graag muziek en gitaar, voetbalt hij met zijn dochters en geniet hij van tijd met zijn gezin.
Johei Nakayama is een Deep Learning Architect bij het Amazon ML Solutions Lab. Hij werkt met klanten in verschillende branches om hun gebruik van kunstmatige intelligentie en AWS Cloud-services te versnellen om hun zakelijke uitdagingen op te lossen. Hij is geïnteresseerd in het toepassen van ML/AI-technologieën in de ruimtevaartindustrie.
Nathalie Rauschmayr is Senior Applied Scientist bij AWS, waar ze klanten helpt bij het ontwikkelen van deep learning-applicaties.
- Coinsmart. Europa's beste Bitcoin- en crypto-uitwisseling.
- Platoblockchain. Web3 Metaverse Intelligentie. Kennis versterkt. GRATIS TOEGANG.
- CryptoHawk. Altcoin-radar. Gratis proefversie.
- Bron: https://aws.amazon.com/blogs/machine-learning/create-train-and-deploy-a-billion-parameter-language-model-on-terabytes-of-data-with-tensorflow-and- amazon-saliemaker/
- "
- 10
- 100
- 2019
- a
- Over
- versnellen
- versnellen
- toegang
- Volgens
- Bereiken
- over
- toegevoegd
- toevoeging
- vergevorderd
- Alles
- toestaat
- altijd
- Amazone
- analyse
- api
- toepassingen
- toegepast
- Solliciteer
- Het toepassen van
- nadering
- benaderingen
- ongeveer
- bouwkundig
- architectuur
- Kunst
- kunstmatig
- kunstmatige intelligentie
- geassocieerd
- aandacht
- webmaster.
- Beschikbaar
- gemiddelde
- AWS
- omdat
- wezen
- tussen
- Verder
- groter
- Grootste
- Miljard
- miljarden
- Blok
- Boeken
- bouw
- bouwt
- ingebouwd
- bedrijfsdeskundigen
- mogelijkheden
- in staat
- vangen
- captures
- carbon
- koolstofemissies
- centraal
- uitdagen
- uitdagingen
- Kies
- klasse
- Cloud
- cloud-diensten
- code
- Gemeen
- Communicatie
- gemeenschap
- vergeleken
- berekening
- Berekenen
- computer
- Computer Science
- computergebruik
- gekoppeld blijven
- NADELEN
- consequent
- contact
- Kosten
- en je merk te creëren
- aangemaakt
- creëert
- Wij creëren
- kritisch
- gewoonte
- Klanten
- gegevens
- datacenters
- data scientist
- deep
- gedemonstreerd
- afhankelijk
- implementeren
- inzet
- ontworpen
- detail
- gedetailleerd
- Bepalen
- ontwikkelen
- het ontwikkelen van
- Ontwikkeling
- apparaat
- systemen
- anders
- bespreken
- verdeeld
- verspreiden van
- Verscheidenheid
- DM
- domeinen
- beneden
- gemakkelijk
- gemakkelijk te gebruiken
- doeltreffendheid
- doeltreffend
- efficiënt
- inspanningen
- emissies
- in staat stellen
- maakt
- energie-niveau
- Engels
- Enterprise
- milieu
- vooral
- gevestigd
- geschat
- voorbeeld
- overschrijdt
- uitwisseling
- extensies
- Gezicht
- geconfronteerd
- familie
- Voordelen
- Velden
- financieel
- Voornaam*
- geschikt
- vlucht
- volgend
- volgt
- Footprint
- Naar voren
- Achtergrond
- Francisco
- oppompen van
- functie
- Bovendien
- Algemeen
- voortbrengen
- generatie
- generatief
- het krijgen van
- GitHub
- Globaal
- GPU
- GPU's
- Groeien
- gids
- Hardware
- hulp
- helpt
- Hoge
- hoogwaardige
- hoger
- houden
- gehost
- Hosting
- Hoe
- How To
- Echter
- HTTPS
- beeld
- afbeeldingen
- verbeteren
- verbeterd
- omvatten
- omvat
- Inclusief
- Laat uw omzet
- meer
- index
- industrieën
- -industrie
- informatie
- Infrastructuur
- innovaties
- invoer
- geinspireerd
- instantie
- Intelligentie
- geïnteresseerd
- IT
- zelf
- Jobomschrijving:
- Vacatures
- Houden
- kennis
- laboratorium
- label
- labels
- taal
- Groot
- groter
- gelanceerd
- lagen
- leider
- leren
- niveaus
- Bibliotheek
- Bio
- laden
- lokaal
- Kijk
- machine
- machine learning
- beheer
- management
- manager
- beheren
- in kaart brengen
- maskeren
- wiskunde
- wiskunde
- middel
- medisch
- lid
- Geheugen
- methoden
- Metriek
- ML
- model
- modellen
- monitor
- meer
- meest
- meervoudig
- Muziek
- Naturel
- NATUUR
- noodzakelijk
- behoeften
- netwerk
- NIH
- knooppunten
- aantal
- doelstellingen
- Aanbod
- Kantoor
- lopend
- operatie
- Operations
- Optimaliseer
- bestellen
- Overige
- Papier
- deel
- hartstochtelijk
- octrooi
- prestatie
- periodes
- filosofie
- Fysica
- Spelen
- spelen
- positie
- mogelijk
- potentieel
- voorspellen
- voorspelling
- Voorspellingen
- vorig
- primair
- problemen
- processen
- verwerking
- Producten
- profilering
- project
- PROS
- zorgen voor
- biedt
- geduwd
- reeks
- lezing
- recent
- onlangs
- archief
- Herstellen
- verminderen
- met betrekking tot
- vertegenwoordiging
- vertegenwoordigd
- vereisen
- onderzoek
- Resources
- Resultaten
- terugkeer
- risico's
- lopen
- lopend
- dezelfde
- Scale
- scaling
- Wetenschap
- WETENSCHAPPEN
- Wetenschapper
- zaad
- service
- Diensten
- verscheidene
- SGD
- Vorm
- gedeeld
- Bermuda's
- getoond
- gelijk
- Eenvoudig
- sinds
- single
- Maat
- Klein
- So
- Voetbal
- oplossing
- Oplossingen
- OPLOSSEN
- Lost op
- sommige
- Tussenruimte
- specifiek
- snelheid
- Uitgaven
- spleet
- splits
- stack
- gestart
- Land
- state-of-the-art
- Staten
- shop
- strategieën
- succes
- Duurzaamheid
- system
- taken
- technieken
- Technologies
- Technologie
- De
- duizenden kosten
- Door
- doorvoer
- niet de tijd of
- keer
- teken
- tokens
- tools
- spoor
- handelsmerk
- traditioneel
- Trainingen
- Trends
- Ubuntu
- zonder precedent
- us
- .
- utilities
- Gebruik makend
- waarde
- variëteit
- divers
- verticals
- visie
- volume
- wachten
- Wave
- manieren
- of
- en
- Wikipedia
- zonder
- woorden
- Mijn werk
- werker
- werknemers
- Bedrijven
- X
- jaar
- Your
- youtube