Keelemudelite suurenemine on viimaste aastate üks suurimaid suundumusi loomuliku keele töötlemise (NLP) valdkonnas. Alates 2018. aastast oleme näinud enneolematut üha suuremate keelemudelite, sealhulgas BERTi ja selle variantide GPT-2, T-NLG ja GPT-3 (175 miljardit parameetrit) arendamist ja kasutuselevõttu.
Need mudelid on nihutanud võimalike arhitektuuriliste uuenduste piire. Suuremahuliste süvaõppemudelite koolitamisel seisame silmitsi mitme väljakutsega, eriti generatiivsete eelkoolitatud trafode uue lainega. Need väljakutsed hõlmavad riistvarapiiranguid ja kompromisse arvutuste ja tõhususega. Nende mudelite ja andmete paralleelsusega seotud väljakutsete ületamiseks pakub AWS laia valikut võimalusi.
Selles postituses tutvustame kahte peamist lähenemisviisi: andmete paralleelsus ja mudeli paralleelsus Amazon SageMakerning arutada nende plusse ja miinuseid.
Mudel
Keelemudeli jaoks kasutame töös tutvustatud transformereid Tähelepanu on kõik, mida vajate. Transformerid on süvaõppe mudelid, mis on loodud selleks, et tahtlikult vältida RNN-ide lõkse, tuginedes enesetähelepanumehhanismile, et tõmmata sisendi ja väljundi vahel globaalseid sõltuvusi. Transformeri mudeli arhitektuur võimaldab oluliselt paremat paralleelsust ja suudab saavutada kõrge jõudluse suhteliselt lühikese treeningajaga. Toetudes ajakirjas tutvustatud Transformersi BERTi edule BERT: sügavate kahesuunaliste trafode eelkoolitus keele mõistmiseks, lisatud kahesuunaline keeleesituse eelkoolitus. Cloze ülesandest inspireerituna on BERT eelnevalt koolitatud maskeeritud keele modelleerimisega (MLM), mille käigus mudel õpib taastama juhuslikult maskeeritud märkide algsõnu. BERT-i mudel on ka eelkoolitatud järgmise lause ennustamise (NSP) ülesande jaoks, et ennustada, kas kaks lauset on õiges lugemisjärjestuses. Alates selle tulekust 2018. aastal on BERTi ja selle variatsioone keelemudelites laialdaselt kasutatud.
Alustuseks loome kaks manustuskihti märgi ja positsioonilise manustamise jaoks. Sisendmanustused on märgimanustuste ja positsioonimanustuste summa.
Seejärel määratleme trafodekoodri ploki, millel on kaks alamkihti: mitme peaga enesetähelepanu kiht ja lihtne täielikult ühendatud edasivooluvõrk, millele järgneb kihi normaliseerimine ja väljalangemine:
Lõpuks loome oma keelemudeli eelneva manustamiskihi ja trafoplokkidega:
Sõltuvalt teie hüperparameetritest saate seda mudelit skaleerida tuhandetest parameetritest miljarditeni. Miljardiparameetriliste mudelite peamine väljakutse on see, et te ei saa mudelit ühes eksemplaris hostida ja mudelit on vaja koolitamiseks ja järelduste tegemiseks mitme sõlme vahel levitada.
Andmekogum
Oma katsetes kasutasime Vaia andmestik. Pile on 800 GiB ingliskeelse tekstiandmekogum, mis on loodud suuremahuliste keelemudelite koolitamiseks. See on loodud 22 erinevast ja kvaliteetsest andmekogumist, sealhulgas nii loodud NLP-andmestikud kui ka äsja kasutusele võetud andmekogumid.
Andmekogum luuakse mitmesugustest andmeallikatest, sealhulgas raamatutest; GitHubi hoidlad; veebilehed; vestluslogid; meditsiini-, füüsika-, matemaatika-, informaatika- ja filosoofiatööd. Täpsemalt kasutab see järgmisi allikaid: Pile-CC, PubMed Central, ArXiv, GitHub, FreeLaw Project, Stack Exchange, USA patendi- ja kaubamärgiamet, PubMed, Ubuntu, IRC, HackerNews, YouTube, PhilPapers, Books3, Project Gutenberg ( PG-19), OpenSubtitles, ingliskeelne Wikipedia, DM Mathematics, EuroParl, Enroni meilikorpus ja NIH ExPorter. See sisaldab ka OpenWebText2 ja BookCorpus2, mis on vastavalt algsete OpenWebTexti ja BookCorpuse andmekogumite laiendused. Andmeallikate mitmekesisus võib parandada üldisi valdkonnaüleseid teadmisi ja järelikult parandada allavoolu üldistusvõimet.
Selle andmestiku peamine väljakutse on tohutu suurus; andmestikus on 825 GiB teksti, mis tähendab 4.2 TiB eeltöödeldud ja tihendatud andmepunkte. Sarnaselt väljakutsetega, millega silmitsi seisame mudelite koolitamise ja hostimisega, võtab selle andmestikuga mudeli ühe eksemplari väljaõpetamine palju aega ja pole otstarbekas.
Meie lahendus on jagada andmekogum ligikaudu 1 GiB andmetükkideks, laadida ja eeltöödelda funktsioonid TensorFlow andmestik objekte ja neid sinna salvestada Amazon elastne failiteenus (Amazon EFS). TensorFlow andmestikud pakuvad lihtsalt kasutatavat ja suure jõudlusega andmekonveieri, mis integreerub hästi meie mudelitega. Amazon EFS on lihtsalt kasutatav teenus, mis võimaldab meil luua jagatud failisüsteemi, mis skaleerub automaatselt failide lisamisel ja kustutamisel. Lisaks suudab Amazon EFS vajaduse korral jõuda kõrgemale läbilaskevõimele, mis on meie andmete ja mudelite koolituse jaoks kriitilise tähtsusega.
Järgmisena uurime nende väljakutsete lahendamiseks hajutatud koolitusstrateegiaid.
Hajutatud koolitus
Selles projektis seisime silmitsi kahe väljakutsega: mudeli suuruse ja andmemahu skaleerimine. Mudeli suuruse ja treenitavate parameetrite arvu suurendamine võib kaasa tuua parema täpsuse, kuid mudelil on piirang, mida saate ühe GPU-mällu või isegi mitu GPU-d korraga mahutada. Lisaks kulub suuremate mudelite treenimiseks rohkem aega.
Saate neid väljakutseid lahendada kahel erineval viisil: andmete paralleelsus ja mudeli paralleelsus. Andmete paralleelsusega teostame stohhastilise gradiendi laskumise (SGD), jaotades koolituse kiirendamiseks minipartii kirjed erinevate seadmete vahel. Paralleelsel andmetreeningul on aga minipartii gradiendi keskmise arvutamine kõigi seadmete gradientidega eriti keerukas. AllReduce
, mis muutub treeningklastri kasvades raskemaks. Andmete paralleelsuse kasutamisel peame suutma mahutada mudeli ja ühe andmepunkti seadmesse (CPU või GPU), mis on meie katsetes piirav tegur, kuna nii suure mudeli suurus on palju suurem kui ühe GPU mälu. suurus.
Teine lahendus on kasutada mudeli paralleelsust, mis jagab mudeli mitme seadme vahel. Mudeli paralleelsus on protsess, mille käigus jagatakse mudel mitme seadme või sõlme vahel (nt GPU-ga varustatud eksemplarid) ja luuakse tõhus konveier mudeli koolitamiseks nendes seadmetes, et maksimeerida GPU kasutust.
Andmete paralleelsus
Andmete paralleelsus on kõige levinum lähenemine mitmele GPU-le või hajutatud koolitusele. Saate oma andmed koondada, saata need mitmesse seadmesse (igaüks majutab kopeeritud mudelit) ja seejärel tulemused koondada. Katsetasime andmete paralleelseerimiseks kahe paketiga: Horovod ja the SageMakeri hajutatud andmete paralleelteek.
Horovod on hajutatud süvaõppe koolitusraamistik TensorFlow, Keras, PyTorch ja Apache MXNet jaoks. Horovodi kasutamiseks läbisime järgmise protsessi:
- Käivitage käivitades
hvd.init()
. - Seostage iga seade ühe protsessiga. Esimene protsess või töötaja on seotud esimese seadmega, teine protsess on seotud teise seadmega jne.
- Reguleerige õppimiskiirust seadmete arvu järgi.
- Pakkige optimeerija sisse
hvd.DistributedOptimizer
. - Esitage algmuutuja olekud esimeselt töötajalt, kelle auaste on 0, kõigile teistele protsessidele. See on vajalik, et tagada kõigi töötajate järjepidev initsialiseerimine, kui koolitust alustatakse juhuslike raskustega või taastatakse kontrollpunktist.
- Veenduge, et ainult seade 0 saab kontrollpunkte salvestada, et teised töötajad neid ei rikuks.
Treeningu skript on järgmine:
SageMakeri andmete paralleelteek võimaldab meil oma koolitust peaaegu lineaarselt tõhustada, kiirendades koolitust minimaalsete koodimuudatustega. Raamatukogu täidab tava AllReduce
toimimist ja optimeerib seadmete vahelist suhtlust, kasutades täielikult ära AWS-i võrguinfrastruktuuri ja Amazon Elastic Compute Cloud (Amazon EC2) eksemplari topoloogia. Andmete paralleelteegi SageMaker kasutamiseks tegime läbi järgmise protsessi:
- Importige ja lähtestage
sdp.init()
. - Seostage iga seade ühe seadmega
smdistributed.dataparallel
töötlema kooslocal_rank
.sdp.tensorflow.local_rank()
annab meile seadmete kohaliku auastme. Juht on auaste 0 ja töötajad on auaste 1, 2, 3 jne. - Reguleerige õppimiskiirust seadmete arvu järgi.
- Mähi
tf.GradientTape
koosDistributedGradientTape
esinemaAllReduce
. - Esitage mudeli esialgsed muutujad juhtsõlmest kõigile töötaja sõlmedele.
- Veenduge, et kontrollpunkte saab salvestada ainult seade 0.
Mudeli paralleelsus
Saame kohandada hüperparameetreid, et mudel oleks piisavalt väike, et treenida ühe GPU-ga, või saame kasutada mudeli paralleelsust, et jagada mudel mitme GPU vahel mitme eksemplari vahel. Mudeli treenitavate parameetrite arvu suurendamine võib kaasa tuua parema täpsuse, kuid ühe GPU-mällu mahutava mudeli maksimaalne suurus on piiratud. Suuremate mudelite koolitamiseks kasutasime SageMakeri hajutatud mudelite paralleelteeki. Toimingud on järgmised.
- Importige ja lähtestage teek rakendusega
smp.init()
. - Kerase mudel peab pärima smp.DistributedModel klassi Kerase mudeli asemel.
- komplekt
drop_remainder=True
aastatf.Dataset.batch()
meetod, mis tagab, et partii suurus jagub alati mikropartiide arvuga. - Kõik andmekonveieri juhuslikud toimingud peavad kasutama sama seemet:
smp.dp_rank()
Näiteksshuffle(ds, seed=smp.dp_rank())
. See tagab andmenäidiste järjepidevuse seadmetes, mis sisaldavad erinevaid mudelisektsioone. - Edasi ja tagasi loogika peab olema astmefunktsioonis
smp.step
kaunistamine. - Viige läbi mikropartiide väljundite järeltöötlus, kasutades StepOutput meetodeid, näiteks
reduce_mean
.smp.step
funktsioonil peab olema tagastusväärtus, mis sõltub väljundistsmp.DistributedModel
.
Treeningu skript on järgmine:
Üksikasjaliku juhendi saamiseks TensorFlow treeningskripti lubamiseks SageMakeri hajutatud mudeli paralleelteegi jaoks vaadake Muutke TensorFlow treeningskripti. PyTorchi kohta vaadake Muutke PyTorchi koolitusskripti.
SageMakeri silur
Eelmistes osades arutasime, kuidas optimeerida koolitust mudeli ja andmete paralleelsustehnikate abil. Koos Amazon SageMakeri silur, saame nüüd koguda oma treeningutest tulemuslikkuse profiiliteavet, et teha kindlaks, kui palju treening on paranenud. Vaikimisi jäädvustab siluja süsteemimõõdikud iga SageMakeri treeningtöö kohta, nagu GPU, CPU kasutus, mälu, võrk ja I/O, 500 millisekundilise diskreetimisintervalliga. Saame andmetele juurde pääseda järgmiselt:
Silur pakub utiliite visualiseeri profiiliandmeid erinevatel viisidel. Järgmises näites näeme GPU ja CPU kogukasutust ning sisend-väljundi ooteaega mitme GPU-ga koolitustöö jaoks Horovodi abil. Nende graafikute loomiseks käivitame järgmise koodi:
GPU-kasutus kõigub sageli vahemikus 0–100% ja kõrged I/O-ooteajad madala GPU-kasutusega näitavad I/O-pudelikaela. Lisaks ei ületa protsessori kogukasutus kunagi 70%, mis tähendab, et saame parandada andmete eeltöötlust, suurendades tööprotsesside arvu.
Saame jõudlust parandada, kui lülitame Horovodilt üle SageMakeri hajutatud andmete paralleelteegile. Järgmistel graafikutel on näha, et GPU-sid kasutatakse tõhusamalt ja need langevad madalale kasutusastmele vaid lühikeseks ajaks.
Koolituse infrastruktuur
Mudelite koolitamiseks kasutasime SageMakeri koolitustöö abil 10 ml.p3.16xsuurt eksemplari. SageMaker vähendab masinõppe (ML) mudelite koolitamiseks ja häälestamiseks kuluvat aega ja kulusid ilma infrastruktuuri haldamise vajaduseta. SageMakeriga saate hõlpsalt treenida ja häälestada ML-mudeleid, kasutades sisseehitatud tööriistu treeningkatsete haldamiseks ja jälgimiseks, valida automaatselt optimaalseid hüperparameetreid, siluda treeningtöid ja jälgida süsteemiressursside, nagu GPU-d, protsessorid ja võrgu ribalaiust, kasutamist. Andmeid majutati Amazon EFS-is, mis võimaldas meil kasvada ja kahaneda, kui lisame ja eemaldame faile, ilma et oleks vaja haldust ega varustada. Meie peamised eesmärgid olid treeningkiiruse parandamine ja kulude vähendamine.
Mudeli skaleeritavus
Kuigi seda infrastruktuuri kasutatakse peamiselt keelte genereerimiseks, saate GPT arhitektuuri ja Pile'i andmestikuga kasutada neid tehnikaid suuremahuliste trafomudelite koolitamiseks, mis on kasulik paljudes valdkondades peale NLP. Masinõppes endas lahendatakse paljud arvutinägemise ülesanded nüüd suure parameetriga (trafo) arhitektuuriga, kus on näidatud, et need edestavad traditsioonilisi CNN-e (konvolutsiooniline närvivõrk) selliste ülesannete puhul nagu esitusõpe (vt. Edendage arvutinägemise tipptasemel enesejärelevalvega transformereid ja 10 korda tõhusamat koolitust) ja piltide suuremahuline vastendamine tekstiks (nt CLIP). Suure parameetriga mudelid murravad ka eluteadustes uut teed sellistes valdkondades nagu valgu struktuuri analüüs ja meditsiiniliste kujutiste andmete analüüs.
Lahendused, mida selles postituses kirjeldame hajutatud koolituse ja suurte mudelite haldamiseks, peaksid kehtima ka kõigi nende valdkondade mudelite puhul.
Kompromissid
Teadlaskonnas on käimas arutelu suuremahuliste keelemudelite koolitamisega kaasnevate riskide üle ning selle üle, kas on piisavalt läbimõeldud nende väljatöötamisega kaasnevatele võimalikele riskidele ja nende maandamise strateegiatele, millest mõned hõlmavad rahalisi ja keskkonnakulud. Vastavalt a paber ACM-is avaldatud, ühe BERT-i baasmudeli (ilma hüperparameetrite häälestamiseta) GPU-del treenimine eeldas hinnanguliselt sama palju energiat kui üle-Ameerika lend. Keskkonnamõjud ulatuvad mudeli suuruse järgi ja selliste mudelite tõhus viimistlemine võib heitkoguseid märkimisväärselt vähendada. AWS tõi hiljuti turule uue Kliendi süsiniku jalajälje tööriist, mis on kõigile AWS-i klientidele tasuta saadaval osana Amazoni jõupingutustest jätkusuutlikkuse suurendamiseks ja süsinikdioksiidi heitkoguste vähendamiseks. Rakenduste käitamine AWS-i pilves võib potentsiaalselt vähendada süsiniku jalajälge (võrreldes ettevõtete andmekeskustega, mida uuriti aastal 2019-i aruanne).
Järeldus
See postitus demonstreeris lahendust, mis hõlbustab SageMakeri abil AWS-i pilves miljardi parameetriga keelemudelite peenhäälestamist.
Lisateavet mudeli paralleelsuse kohta SageMakeriga vt Treenige Amazon SageMakeris 175+ miljardi parameetriga NLP-mudelit koos mudeli paralleelsete lisandite ja kallistava näoga ja Kuidas Latent Space kasutas Amazon SageMakeri mudeli paralleelsuse raamatukogu, et suruda suuremahuliste trafode piire.
Kui soovite abi ML-i kasutamise kiirendamisel oma toodetes ja protsessides, võtke ühendust Amazon ML Solutions Lab.
Autoritest
Sia Gholami on vanemandmeteadlane Amazon ML Solutions Labis, kus ta ehitab AI/ML lahendusi klientidele erinevatest tööstusharudest. Ta on kirglik loomuliku keele töötlemise (NLP) ja sügava õppimise vastu. Väljaspool tööd veedab Sia meelsasti looduses ja mängib tennist.
Mehdi Noorion Amazon ML Solutions Labi juht ja vanemrakendusteadlane, kus ta töötab klientidega erinevatest tööstusharudest ning aitab neil kiirendada nende pilverände teekonda ning lahendada ML-probleeme, kasutades uusimaid lahendusi ja tehnoloogiaid.
Muhyun Kim on andmeteadlane Amazon Machine Learning Solutions Labis. Ta lahendab klientide erinevaid äriprobleeme masinõppe ja süvaõppe rakendamisega ning aitab neil ka oskusi omandada.
Danny Byrd on Amazon ML Solutions Labi rakendusteadlane. Laboris on ta aidanud klientidel arendada täiustatud ML-lahendusi, ML-i erialadel alates arvutinägemisest kuni arendusõppeni. Ta on kirglik tehnoloogia edasiviimise ja AWS-i toodete uue potentsiaali avamise vastu.
Francisco Calderon Rodriguez on andmeteadlane Amazon ML Solutions Labis. ML Solutions Labi liikmena aitab ta süvaõppe abil lahendada AWS-i klientide kriitilisi äriprobleeme. Vabal ajal meeldib Franciscole muusikat ja kitarri mängida, tütardega jalgpalli mängida ja perega koos aega veeta.
Yohei Nakayama on Amazon ML Solutions Labi süvaõppe arhitekt. Ta teeb koostööd klientidega erinevatest vertikaalidest, et kiirendada tehisintellekti ja AWS-i pilveteenuste kasutamist nende äriprobleemide lahendamisel. Ta on huvitatud ML/AI tehnoloogiate rakendamisest kosmosetööstuses.
Nathalie Rauschmayr on AWS-i vanemrakendusteadlane, kus ta aitab klientidel arendada süvaõppe rakendusi.
- Münditark. Euroopa parim Bitcoini ja krüptobörs.
- Platoblockchain. Web3 metaversiooni intelligentsus. Täiustatud teadmised. TASUTA PÄÄS.
- CryptoHawk. Altcoini radar. Tasuta prooviversioon.
- Allikas: https://aws.amazon.com/blogs/machine-learning/create-train-and-deploy-a-billion-parameter-language-model-on-terabytes-of-data-with-tensorflow-and- amazon-sagemaker/
- "
- 10
- 100
- 2019
- a
- MEIST
- kiirendama
- kiirendades
- juurdepääs
- Vastavalt
- Saavutada
- üle
- lisatud
- lisamine
- edasijõudnud
- Materjal: BPA ja flataatide vaba plastik
- võimaldab
- alati
- Amazon
- analüüs
- API
- rakendused
- rakendatud
- kehtima
- Rakendades
- lähenemine
- lähenemisviisid
- umbes
- arhitektuuri-
- arhitektuur
- kunst
- kunstlik
- tehisintellekti
- seotud
- tähelepanu
- automaatselt
- saadaval
- keskmine
- AWS
- sest
- on
- vahel
- Peale
- suurem
- suurim
- Miljard
- miljardeid
- Blokeerima
- Raamatud
- ehitama
- Ehitab
- sisseehitatud
- äri
- võimeid
- võimeline
- lüüa
- lööb
- süsinik
- süsinikdioksiidi heitkoguseid
- kesk-
- väljakutse
- väljakutseid
- Vali
- klass
- Cloud
- pilvteenustest
- kood
- ühine
- KOMMUNIKATSIOON
- kogukond
- võrreldes
- arvutamine
- Arvutama
- arvuti
- Arvutiteadus
- arvutustehnika
- seotud
- Miinused
- järjepidev
- kontakt
- kulud
- looma
- loodud
- loob
- loomine
- kriitiline
- tava
- Kliendid
- andmed
- andmekeskuste
- andmeteadlane
- sügav
- Näidatud
- sõltub
- juurutada
- kasutuselevõtu
- kavandatud
- detail
- üksikasjalik
- Määrama
- arendama
- arenev
- & Tarkvaraarendus
- seade
- seadmed
- erinev
- arutama
- jagatud
- levitamine
- mitmekesisus
- DM
- Domeenid
- alla
- kergesti
- lihtne-to-use
- efektiivsus
- tõhus
- tõhusalt
- jõupingutusi
- Heitkoguste
- võimaldama
- võimaldab
- energia
- Inglise
- ettevõte
- keskkonna-
- eriti
- asutatud
- Hinnanguliselt
- näide
- ületab
- vahetamine
- laiendused
- nägu
- silmitsi seisnud
- pere
- FUNKTSIOONID
- Valdkonnad
- finants-
- esimene
- sobima
- lend
- Järel
- järgneb
- Jalajälg
- edasi
- Raamistik
- Francisco
- Alates
- funktsioon
- Pealegi
- Üldine
- tekitama
- põlvkond
- generatiivne
- saamine
- GitHub
- Globaalne
- GPU
- GPU
- Kasvama
- suunata
- riistvara
- aitama
- aitab
- Suur
- kvaliteetne
- rohkem
- hoidma
- võõrustas
- Hosting
- Kuidas
- Kuidas
- aga
- HTTPS
- pilt
- pildid
- parandama
- paranenud
- sisaldama
- hõlmab
- Kaasa arvatud
- Suurendama
- kasvav
- indeks
- tööstusharudes
- tööstus
- info
- Infrastruktuur
- uuendusi
- sisend
- inspireeritud
- Näiteks
- Intelligentsus
- huvitatud
- IT
- ise
- töö
- Tööturg
- teekond
- hoidma
- teadmised
- labor
- silt
- Labels
- keel
- suur
- suurem
- käivitatud
- kiht
- juht
- õppimine
- taset
- Raamatukogu
- Maaülikooli
- koormus
- kohalik
- Vaata
- masin
- masinõpe
- juhtima
- juhtimine
- juht
- juhtiv
- kaardistus
- mask
- matemaatika
- matemaatika
- vahendid
- meditsiini-
- liige
- Mälu
- meetodid
- Meetrika
- ML
- mudel
- mudelid
- Jälgida
- rohkem
- kõige
- mitmekordne
- muusika
- Natural
- loodus
- vajalik
- vajadustele
- võrk
- NIH
- sõlmed
- number
- eesmärgid
- Pakkumised
- Office
- jätkuv
- töö
- Operations
- optimeerima
- et
- Muu
- Paber
- osa
- kirglik
- patent
- jõudlus
- perioodid
- filosoofia
- Füüsika
- mängima
- mängimine
- positsioon
- võimalik
- potentsiaal
- ennustada
- ennustus
- Ennustused
- eelmine
- esmane
- probleeme
- protsess
- Protsessid
- töötlemine
- Toodet
- profiilide
- projekt
- PROS
- anda
- annab
- lükatakse
- valik
- Lugemine
- hiljuti
- hiljuti
- andmed
- Taastuma
- vähendama
- kohta
- esindamine
- esindatud
- nõudma
- teadustöö
- Vahendid
- Tulemused
- tagasipöördumine
- riskide
- jooks
- jooksmine
- sama
- Skaala
- ketendamine
- teadus
- TEADUSED
- teadlane
- seeme
- teenus
- Teenused
- mitu
- SGD
- kuju
- jagatud
- Lühike
- näidatud
- sarnane
- lihtne
- alates
- ühekordne
- SUURUS
- väike
- So
- jalgpall
- lahendus
- Lahendused
- LAHENDAGE
- Lahendab
- mõned
- Ruum
- eriti
- kiirus
- Kulutused
- jagada
- Poolitab
- Kestab
- alustatud
- riik
- modernne
- Ühendriigid
- salvestada
- strateegiad
- edu
- Jätkusuutlikkus
- süsteem
- ülesanded
- tehnikat
- Tehnoloogiad
- Tehnoloogia
- .
- tuhandeid
- Läbi
- läbilaskevõime
- aeg
- korda
- sümboolne
- märgid
- töövahendid
- jälgida
- kaubamärk
- traditsiooniline
- koolitus
- Trends
- Ubuntu
- enneolematu
- us
- kasutama
- kommunaalteenused
- kasutades
- väärtus
- sort
- eri
- vertikaalid
- nägemus
- maht
- ootama
- Wave
- kuidas
- kas
- kuigi
- Wikipedia
- ilma
- sõnad
- Töö
- töötaja
- töötajate
- töötab
- X
- aastat
- Sinu
- youtube