Eden od glavnih izzivov pri izvajanju projekta strojnega učenja (ML) je raznolikost in veliko število uporabljenih razvojnih artefaktov in orodij. To vključuje kodo v zvezkih, module za obdelavo in pretvorbo podatkov, konfiguracijo okolja, cevovod sklepanja in kodo za orkestracijo. Pri produkcijskih delovnih obremenitvah model ML, ustvarjen v vašem razvojnem okviru, skoraj nikoli ni konec dela, ampak je del večje aplikacije ali poteka dela.
Drug izziv je raznolika narava razvojnih dejavnosti ML, ki jih izvajajo različne uporabniške vloge. Inženir DevOps na primer razvija komponente infrastrukture, kot je avtomatizacija CI/CD, gradi cevovode sklepanja o proizvodnji ter konfigurira varnost in mreženje. Podatkovni inženir je običajno osredotočen na obdelavo podatkov in delovne tokove transformacije. Podatkovni znanstvenik ali inženir ML zagotavlja modele ML in načrte za gradnjo modelov, usposabljanje in validacijo.
Ti izzivi zahtevajo arhitekturo in okvir, ki olajšata ločevanje skrbi, tako da vsaki razvojni vlogi omogočita, da deluje na svojem delu sistema, in skrijeta zapletenost integracije, varnosti in konfiguracije okolja.
Ta objava ponazarja, kako uvesti modularno arhitekturo, ki temelji na komponentah, v vaši aplikaciji ML z implementacijo večkrat uporabnih, samostojnih in konsistentnih komponent z Amazon SageMaker.
Pregled rešitev
Kot primer poteka dela ML, ki obsega več razvojnih domen, predlagana rešitev izvaja primer uporabe avtomatiziranega cevovoda za pretvorbo podatkov, ekstrakcijo funkcij in vnos v Trgovina s funkcijami Amazon SageMaker.
Na visoki ravni potek dela vključuje naslednje funkcionalne korake:
- Komponenta za vnos podatkov navzgor naloži podatkovne objekte v Preprosta storitev shranjevanja Amazon (Amazon S3) vedro.
- Dogodek nalaganja podatkov sproži proces obdelave in transformacije podatkov.
- Proces preoblikovanja podatkov ekstrahira, obdela in preoblikuje funkcije ter jih vnese v določeno skupina funkcij v trgovini s funkcijami.
Terminologija
Ta razdelek predstavlja naslednje pomembne koncepte in definicije.
komponenta ML
An komponenta ML je gradbena enota, ki vsebuje vse zahtevane vire, konfiguracijo in poteke dela za izvedbo določene naloge ML. Na primer, predlagano pretvorbo podatkov in cevovod za zaužitje je mogoče dostaviti kot komponento ML. Komponente ML imajo boljšo integracijsko zmožnost, ki vam pomaga implementirati ponovljive, upravljane in varne aplikacije ML. Komponenta ML lahko enkapsulira vso kodo, ki je potrebna za pravilno nastavitev dovoljenj za dostop do podatkov, varnostnih ključev, označevanja, poimenovanja in zahtev za beleženje za vse vire.
Postopek implementacije komponente ML predpostavlja, da namenska ekipa DevOps ali MLOps izvaja načrtovanje, gradnjo, testiranje in distribucijo komponent. Prejemniki komponent ML so podatkovni znanstveniki, podatkovni inženirji in inženirji ML.
To ločevanje odgovornosti za razvoj prinaša večjo agilnost, hitrejši čas za trženje in manj ročnega dvigovanja težkega ter ima za posledico višjo kakovost in doslednost vaših delovnih tokov ML.
Projekt Amazon SageMaker
SageMaker olajša razvoj in distribucijo komponent ML z Projekti SageMaker.
Izdelovalec žajblja Projekt je samozadostna zbirka virov, ki jo lahko instancirajo in uporabljajo upravičeni uporabniki. Projekt vsebuje vse vire, artefakte, izvorno kodo, orkestracijo in dovoljenja, ki so potrebna za izvedbo določene naloge ML ali poteka dela. Na primer, SageMaker ponuja Predloge projektov MLOps za avtomatizacijo nastavitve in implementacije MLOps za vaše aplikacije.
Lahko implementirate a projektna predloga SageMaker po meri za zagotavljanje pakiranega delovnega toka ML, ki ga je mogoče distribuirati in zagotoviti prek Amazon SageMaker Studio SDI.
Ko implementirate komponente za večkratno uporabo po meri s projekti SageMaker, lahko ločite proces razvoja, testiranja in distribucije za komponente ML od njihove uporabe ter sledite najboljšim praksam MLOps.
Portfelj izdelkov
Projekt deluje skupaj z dvema drugima storitvama AWS, Katalog storitev AWS in Oblikovanje oblaka AWS, da zagotovi uporabniku prijazno integracijo od konca do konca v vaše okolje SageMaker in Studio. Več projektov lahko združite v a Portfelj. Pokliče se projekt SageMaker izdelek v obsegu portfelja. Portfelj izdelkov je prek kataloga storitev AWS dostavljen v Studio. Nadzirate lahko, kdo si lahko ogleda in zagotavlja določene izdelke, tako da uporabniške vloge povežete z določenim portfeljem.
Arhitektura rešitev
Podrobna arhitektura komponent rešitve je predstavljena v naslednjem diagramu.
Portfelj izdelkov (1) opredeljuje samodejni izdelek za vnos podatkov Feature Store (2) skupaj s povezanimi uporabniškimi vlogami, ki jim je dovoljeno uporabljati portfelj in vsebujoče izdelke. Predloge CloudFormation definirajo portfelj izdelkov (1) in izdelek (2). Predloga CloudFormation (3) vsebuje vse vire, izvorno kodo, konfiguracijo in dovoljenja, ki so potrebna za zagotavljanje izdelka v vašem okolju SageMaker.
Ko AWS CloudFormation uvede izdelek, ustvari nov projekt SageMaker (4).
Projekt SageMaker izvaja potek dela za vnos funkcij (5). Potek dela vsebuje AWS Lambda funkcijo, ki jo zažene an Amazon EventBridge pravilo vsakič, ko so novi objekti naloženi v nadzorovano vedro S3. Funkcija Lambda se zažene a Cevovod SageMaker (6), ki je opredeljen in omogočen kot del projekta SageMaker. Cevovod izvaja pretvorbo podatkov in vnos v Feature Store.
Projekt zagotavlja tudi avtomatizacijo CI/CD (7) z an AWS CodeCommit repozitorij z izvorno kodo, AWS CodeBuild s skriptom za gradnjo cevovoda in AWS CodePipeline za orkestriranje gradnje in uvajanja cevovoda SageMaker (6).
ML cevovod
Ta rešitev izvaja cevovod ML z uporabo Amazonski cevovodi SageMaker, okvir za ustvarjanje in orkestracijo delovnega toka ML. Cevovod vsebuje en korak z an Amazon SageMaker Data Wrangler procesor za pretvorbo podatkov in vnos v skupino funkcij v trgovini s funkcijami. Naslednji diagram prikazuje cevovod za obdelavo podatkov, ki ga izvaja ta rešitev.
Nanašati se na Zgradite, prilagodite in razmestite model predvidevanja odliva od konca do konca z uporabo Amazon SageMaker Pipelines za primer, kako zgraditi in uporabiti cevovod SageMaker.
Preostanek te objave vas vodi skozi izvedbo projekta SageMaker po meri. Razpravljamo o tem, kako narediti naslednje:
- Ustvarite projekt s svojimi viri
- Razumeti življenjski cikel projekta
- Oglejte si vire projekta
- Ustvarite domeno Studio in uvedite portfelj izdelkov
- Sodelujte s projektom in zaženite cevovod za pretvorbo in vnos podatkov
O GitHub repozitorij zagotavlja celotno izvorno kodo za rešitev od konca do konca. To kodo lahko uporabite kot izhodišče za svoje lastne komponente ML po meri za uvajanje z uporabo iste referenčne arhitekture.
Avtor predloge projekta SageMaker
Če želite začeti s projektom SageMaker po meri, potrebujete naslednje vire, artefakte in AWS upravljanje identitete in dostopa (IAM) vloge in dovoljenja:
- Predloga CloudFormation, ki definira katalog storitev AWS Portfelj.
- Predloga CloudFormation, ki definira projekt SageMaker.
- Vloge in dovoljenja IAM, ki so potrebna za izvajanje komponent vašega projekta ter izvajanje nalog in delovnih tokov projekta.
- Če vaš projekt vsebuje izvorno kodo, ki je dostavljena kot del projekta, mora biti dostavljena tudi ta koda. Rešitev se nanaša na to izvorno kodo kot koda semena.
Datoteke v tej rešitvi
Ta rešitev vsebuje vso izvorno kodo, potrebno za ustvarjanje vašega projekta SageMaker po meri. Struktura repozitorija kode je naslednja:
- mapa cfn-templates: Ta mapa vsebuje naslednje:
- projekt-s3-fs-ingestion.yaml – Predloga CloudFormation s projektom SageMaker
- sm-project-sc-portfolio.yaml – Predloga CloudFormation s portfeljem izdelkov in upravljanimi pravilniki z dovoljenji, potrebnimi za uvedbo izdelka
- mapa project-seed-code/s3-fs-ingestion – Vsebuje začetno kodo projekta, vključno s kodo za definicijo cevovoda SageMaker, skripte za gradnjo za projekt CI/CD CodeBuild in izvorno kodo za funkcijo Lambda
- mapa z zvezki – Vsebuje zvezke SageMaker za eksperimentiranje s projektom
Naslednji razdelki opisujejo vsak del postopka avtorskega projekta in podajajo primere izvorne kode.
Portfelj kataloga storitev AWS
Portfelj kataloga storitev AWS je dostavljen kot predloga CloudFormation, ki definira naslednje vire:
- Opredelitev portfelja.
- Opredelitev izdelka.
- Povezava izdelka s portfeljem za vsak izdelek.
- Portfelj za Načelo IAM združenje. To določa, katera načela IAM so dovoljena za uvajanje produktov portfelja.
- Omejitev vloge za lansiranje izdelka. To določa, katero vlogo IAM prevzame AWS CloudFormation, ko uporabnik zagotovi predlogo.
Če želite, da bo vaša predloga projekta na voljo v Studiu, morate izdelku dodati to oznako:
Nanašati se na Ustvarite predloge projektov po meri za več podrobnosti o predlogah projektov po meri.
Ta rešitev vsebuje Primer portfelja kataloga storitev AWS, ki vsebuje en sam izdelek.
Predloga Product CloudFormation
Predloga CloudFormation definira izdelek. Predloga izdelka je samozadostna in vsebuje vse vire, dovoljenja in artefakte, ki so potrebni za zagotavljanje funkcionalnosti izdelka.
Da bo izdelek deloval s projekti SageMaker, morate predlogi izdelka dodati naslednje parametre:
Ta raztopina vsebuje a predlogo izdelka ki ustvarja več virov.
Za cevovod za pretvorbo podatkov in vnos predloga ustvari naslednje:
- Izvorna koda definicije cevovoda SageMaker.
- Funkcija Lambda za zagon cevovoda SageMaker vsakič, ko je nov predmet naložen v nadzorovano vedro S3.
- Izvršilna vloga IAM za funkcijo Lambda.
- Žlica S3 za shranjevanje AWS CloudTrail dnevnik. Potrebujete dnevnik CloudTrail, da omogočite obvestilo EventBridge za dogodke postavitve objekta v spremljano vedro. Namesto obvestil Amazon S3 uporabljate obvestilo, ki temelji na CloudTrail, ker ne smete prepisati obstoječega obvestila Amazon S3 v nadzorovanem vedru.
- Dnevnik CloudTrail, konfiguriran za zajem
WriteOnly
dogodkov na objektih S3 pod določeno predpono S3. - Pravilo EventBridge za zagon funkcije Lambda vsakič, ko je nov predmet naložen v nadzorovano vedro S3. Vzorec pravila EventBridge spremlja dogodke
PutObject
inCompleteMultipartUpload
.
Za avtomatizacijo CI/CD predloga ustvari naslednje:
- Vedro S3 za shranjevanje artefaktov CodePipeline
- Repozitorij CodeCommit z definicijo cevovoda SageMaker
- Pravilo EventBridge za zagon CodePipeline, ko je repozitorij CodeCommit posodobljen
- Projekt CodeBuild za izgradnjo cevovoda SageMaker
- Cevovod CodePipeline za orkestracijo gradnje cevovoda SageMaker
Vloge in dovoljenja IAM
Za zagon in uporabo projekta SageMaker potrebujete dve vlogi IAM:
- Vloga IAM za lansiranje izdelka iz kataloga storitev AWS – To pravilo prevzame katalog storitev AWS in vsebuje dovoljenje, ki je posebej potrebno za uvajanje virov z uporabo predlog CloudFormation. Pristop, ki temelji na katalogu storitev AWS, omogoča podatkovnim znanstvenikom in inženirjem ML, da centralno zagotovijo komponente ML po meri in poteke dela, ne da bi od vsakega uporabnika ML zahtevali visokoprofilne pravilnike o dovoljenjih ali šli skozi ročni in neponovljivi individualni postopek uvajanja.
- Vloga IAM za uporabo virov, ustvarjenih s projektom SageMaker – Ti viri vključujejo cevovod CodePipeline, cevovod SageMaker in pravilo EventBridge. Predloga CloudFormation projekta izrecno določa, kateri vir uporablja katero vlogo.
Ko omogočite projekte SageMaker za uporabnike Studia, postopek zagotavljanja ustvari dve vlogi IAM v vašem računu AWS: AmazonSageMakerServiceCatalogProductsLaunchRole
in AmazonSageMakerServiceCatalogProductsUseRole
. Predloge projektov, ki jih ponuja SageMaker uporabite te vloge za uvajanje in upravljanje ustvarjenih virov. Te vloge lahko uporabite za svoje projekte SageMaker po meri ali pa ustvarite lastne vloge s posebnim nizom dovoljenj IAM, ki ustrezajo vašim zahtevam. Prepričajte se, da imajo te vloge vsa potrebna dovoljenja, zlasti dostop do vedra S3, za opravljanje svojih nalog.
Nanašati se na Upravljani pravilniki AWS za projekte SageMaker in JumpStart za več podrobnosti o privzetih vlogah.
Če ustvarite in dodelite katero koli vlogo IAM virom, ustvarjenim z zagotavljanjem projekta prek AWS Service Catalog in AWS CloudFormation, bo vloga AmazonSageMakerServiceCatalogProductsLaunchRole
mora imeti iam:PassRole
dovoljenje za vlogo, ki jo posredujete viru. Ta rešitev na primer ustvari vlogo izvajanja IAM za funkcijo Lambda. Upravljana politika za AmazonSageMakerServiceCatalogProductsLaunchRole
vsebuje ustrezno izjavo o dovoljenju:
Naslednji diagram prikazuje vse vključene vloge IAM in katera storitev ali vir prevzame katero vlogo.
Arhitektura vsebuje naslednje komponente:
- Vloga lansiranja izdelkov SageMaker Service Catalog. Ta vloga imenuje
iam:PassRole
API za izdelke SageMaker Service Catalog uporablja vlogo (2) in vlogo izvajanja Lambda (4). - Vloga uporabe izdelkov SageMaker Service Catalog. Projektni viri prevzamejo to vlogo za opravljanje svojih nalog.
- Izvršilna vloga SageMaker. Prenosni računalniki Studio uporabljajo to vlogo za dostop do vseh virov, vključno z vedri S3.
- Izvršilna vloga Lambda. To vlogo prevzame funkcija Lambda.
- Lambda funkcija politiko virov omogoča EventBridgeu, da prikliče funkcijo.
Nanašati se na Za uporabo projektov so potrebna dovoljenja za SageMaker Studio za več podrobnosti o nastavitvi dovoljenj Studio za projekte.
Projektna semenska koda
Če vaš projekt SageMaker po meri uporablja avtomatizacijo poteka dela CI/CD ali vsebuje kakršne koli vire, ki temeljijo na izvorni kodi, lahko začetno kodo dostavite kot CodeCommit ali repozitorij Git tretje osebe, kot sta GitHub in Bitbucket. Uporabnik projekta je lastnik kode in jo lahko prilagodi za izvajanje svojih zahtev.
Ta rešitev zagotavlja začetno kodo, ki vsebuje definicijo cevovoda SageMaker. Projekt prav tako ustvari potek dela CI/CD za izgradnjo cevovoda SageMaker. Vsaka objava v repozitorij izvorne kode zažene cevovod CodePipeline.
Življenjski cikel projekta
Projekt gre skozi različne faze življenjskega cikla: ustvarite projekt, ga uporabite in njegove vire ter izbrišete projekt, ko ga ne potrebujete več. Studio UX združuje celovite projekte SageMaker, vključno s projektnimi viri, izvorom podatkov in nadzorom življenjskega cikla.
Ustvarite projekt
Projekt SageMaker lahko zagotovite neposredno v vašem Studio IDE ali prek SageMaker API.
Če želite ustvariti nov projekt SageMaker v Studiu, dokončajte naslednje korake:
- o Viri SageMaker stran, izberite projekti v spustnem meniju.
- Izberite Ustvarite projekt.
- Izberite Predloge organizacij.
- Izberite predlogo za projekt, ki ga želite zagotoviti.
- Vnesite ime in izbirni opis za svoj projekt.
- Pod Parametri predloge projekta, navedite parametre, specifične za vaš projekt.
Python SDK lahko uporabite tudi za programsko ustvarjanje projekta, kot je prikazano v tem delčku kode iz 01-feature-store-ingest-pipeline
zvezek:
Vsak projekt je zagotovljen prek kataloga storitev AWS in procesa AWS CloudFormation. Ker imate na primer ustrezno politiko dostopa do IAM AWSCloudFormationReadOnlyAccess, lahko opazujete uvajanje projekta na konzoli AWS CloudFormation. Kot je prikazano na naslednjem posnetku zaslona, lahko brskate po informacijah o skladu, dogodkih, virih, izhodih, parametrih in predlogi.
Oglejte si vire projekta
Ko zagotovite projekt, lahko brskate po projektnih virih, specifičnih za SageMaker, v Studio IDE.
Ogledate si lahko tudi vse vire, ustvarjene s postopkom uvajanja projekta, na konzoli AWS CloudFormation.
Vsak vir, ki ga ustvari projekt, je samodejno označen z dvema oznakama: sagemaker:project-name
in sagemaker:project-id
, kar omogoča izvor podatkov in virov.
Virom projekta lahko na primer dodate lastne oznake, da izpolnite svoje posebne zahteve glede označevanja in poimenovanja virov.
Izbriši projekt
Če omogočenega projekta ne potrebujete več, ga morate izbrisati, da počistite vire, ki jih je ustvaril projekt, da vam ne bodo več nastajali stroški.
V času pisanja te objave morate uporabljati SageMaker API da izbrišete projekt. Vzorčna koda Python je videti takole:
Z brisanjem projekta se sproži tudi brisanje sklada CloudFormation s predlogo projekta.
Projekt lahko ustvari druge vire, kot so predmeti v vedrih S3, modeli ML, skupine funkcij, končne točke sklepanja ali skladi CloudFormation. Ti viri ne bodo odstranjeni po izbrisu projekta. Za izvedbo popolnega čiščenja glejte posebno projektno dokumentacijo.
Ta rešitev zagotavlja a Studijski zvezek da izbrišete vse vire, ki jih je ustvaril projekt.
Uvedite rešitev
Za uvedbo rešitve morate imeti dovoljenja skrbnika (ali naprednega uporabnika) za pakiranje predlog CloudFormation, nalaganje predlog v vedro S3 in izvajanje ukazov za uvajanje.
Če želite začeti delati z zvezki rešitve, zagotoviti projekt in zagnati cevovod za pretvorbo podatkov in vnos, morate dokončati naslednje korake uvajanja iz rešitve GitHub datoteka README:
- Kloniraj rešitve GitHub repo v vaše lokalno razvojno okolje.
- Ustvarite domeno Studio (navodila v Datoteka README).
- Razmestite portfelj projektov SageMaker (navodila v Datoteka README).
- Dodajte dovoljenja po meri za vloge IAM za zagon storitvenega kataloga AWS in izvajanje SageMaker (navodila v Datoteka README).
- Zaženite Studio in klonirajte repozitorij GitHub v svoje okolje SageMaker (navodila v Datoteka README).
Rešitev za rešitev
O dostavljeni zvezki vas vodi skozi naslednje korake rešitve:
- Setup:
- Nastavite delovno okolje, ustvarite vedro S3 za nalaganje podatkov, prenos in raziskovanje nabora testnih podatkov
- Po želji ustvarite tok Data Wrangler za pretvorbo podatkov in zajem funkcij
- Ustvarite skupino funkcij v trgovini s funkcijami, kjer so shranjene funkcije
- Izvedite poizvedbo po podatkih iz skupine funkcij
- Cevovod za vnos shranjevanja funkcij:
- Zagotavljanje projekta SageMaker s podatkovnim cevovodom
- Raziščite vire projekta
- Preizkusite podatkovni cevovod z nalaganjem novih podatkov v nadzorovano vedro S3
- Zaženite podatkovni cevovod na zahtevo prek Python SDK
- Izvedite poizvedbo po podatkih iz skupine funkcij
- Čiščenje:
- Izbrišite projekt in vire projekta
- Izbrišite skupino funkcij
- Izbrišite vedra S3, ki jih zagotavlja projekt, in objekte S3
Čiščenje
Da bi se izognili stroškom, morate iz svojega računa AWS odstraniti vse vire, ki so bili zagotovljeni s projektom in ustvarjeni.
Sledite navodilom v rešitvi Datoteka README.
Poziv k dejanju
V tej objavi ste se naučili, kako ustvariti komponente ML za vašo modularno arhitekturo z uporabo projektov SageMaker. Projekti SageMaker ponujajo priročno in izvirno metodo AWS za pakiranje in dostavo enot za večkratno uporabo za izvajanje delovnih tokov ML. Integracija projektov SageMaker s SageMaker Pipelines in avtomatizacijo CI/CD CodePipeline vam daje močna orodja za sledenje najboljšim praksam MLOps ter povečanje hitrosti in kakovosti vašega razvojnega dela.
Vašim potekom dela in cevovodom ML bo morda koristilo, če jih boste vključili v komponento, ki jo je mogoče večkrat uporabiti in jo je mogoče parametrirati. Zdaj lahko implementirate to komponento z uporabo opisanega pristopa s projekti SageMaker.
Dodatne reference
Za več praktičnih primerov uporabe projektov in cevovodov SageMaker za različne primere uporabe si oglejte naslednje vire:
O Author
Jevgenij Iljin je arhitekt rešitev pri AWS. Ima več kot 20 let izkušenj na vseh ravneh razvoja programske opreme in arhitekture rešitev ter uporablja programske jezike od COBOL in Assembler do .NET, Java in Python. Razvija in kodira izvorne rešitve v oblaku s poudarkom na velikih podatkih, analitiki in podatkovnem inženiringu.
- '
- 7
- 9
- dostop
- Račun
- Ukrep
- dejavnosti
- vsi
- Dovoli
- Amazon
- Amazon SageMaker
- analitika
- API
- uporaba
- aplikacije
- Arhitektura
- Avtomatizirano
- Avtomatizacija
- AWS
- BEST
- najboljše prakse
- Big Podatki
- izgradnjo
- Building
- klic
- primeri
- izziv
- Stroški
- Cloud
- oblak domač
- Koda
- komponenta
- Gradbeništvo
- datum
- dostop do podatkov
- obdelava podatkov
- podatkovni znanstvenik
- Povpraševanje
- Oblikovanje
- Razvoj
- DevOps
- domen
- zaposlovanja
- inženir
- Inženiring
- Inženirji
- okolje
- Event
- dogodki
- izvedba
- izkušnje
- poskus
- pridobivanje
- Izvlečki
- Feature
- Lastnosti
- Pretok
- Osredotočite
- sledi
- Okvirni
- Izpolnite
- polno
- funkcija
- git
- GitHub
- skupina
- Skrij
- visoka
- Kako
- Kako
- HTTPS
- IAM
- identiteta
- Vključno
- Povečajte
- info
- Infrastruktura
- integracija
- vključeni
- IT
- Java
- Ključne
- tipke
- jeziki
- kosilo
- izstrelki
- naučili
- učenje
- Stopnja
- lokalna
- strojno učenje
- Tržna
- ML
- MLOps
- Model
- Modularna
- net
- mreženje
- zvezki
- Obvestilo
- ponudba
- Ostalo
- Vzorec
- politike
- politika
- Portfelj
- moč
- napoved
- Izdelek
- proizvodnja
- Izdelki
- Programiranje
- programskih jezikov
- Projekt
- projekti
- Python
- kakovost
- Zahteve
- vir
- viri
- REST
- Rezultati
- Run
- sagemaker
- Znanstveniki
- SDK
- varnost
- seme
- Storitve
- nastavite
- Enostavno
- Software
- Razvoj programske opreme
- rešitve
- hitrost
- Začetek
- začel
- Izjava
- shranjevanje
- trgovina
- sistem
- Test
- Testiranje
- Vir
- čas
- usposabljanje
- Preoblikovanje
- Uporabniki
- ux
- vrednost
- Poglej
- WHO
- v
- delo
- potek dela
- avtomatizacija dela
- deluje
- pisanje
- let