Konferenca OTS

6. in 7. september 2023
MARIBOR

6. in 7. september 2023
MARIBOR

Delavnice

DELAVNICE

1. Kotlin, Quarkus in ChatGPT: Razvoj inteligentnih poslovnih rešitev

Tilen Hliš, Luka Četina
Trajanje: 3 ure
V svetu hitrih tehnoloških sprememb je ključno, da so poslovne rešitve vedno v koraku s časom in upoštevajo sodobne in preizkušene pristope in tehnologije. Razumevanje in uporaba najnovejših tehnologij sta ključnega pomena za zagotavljanje konkurenčne prednosti in ustvarjanje inovativnih rešitev. Delavnica je namenjena spoznavanju in uporabi treh sodobnih tehnologij, ki so v skokovitem vzponu in omogočajo razvoj naprednih poslovnih rešitev.
Kotlin je sodoben programski jezik, ki s svojo preprosto sintakso in interoperabilnostjo z Java ekosistemom omogoča hiter in učinkovit razvoj aplikacij. Pri razvoju mobilnih aplikacij za Android je že postal standard, v zalednih sistemih pa tega primata še nima. Trendi kažejo , da postaja vedno bolj priljubljena izbira tudi tam. Ker omogoča sodobnejši razvoj na Javanski infrastrukturi temelječih zalednih sistemov, se kaže kot logična izbira pri razvoju novih projektov.
Quarkus je inovativna odprtokodna platforma, primarno namenjana razvoju mikrostoritev. V Javanski svet vnaša razvojne pristope, ki smo jih že srečali v svetu Node.JS in .NET, ter jih dodatno nadgrajuje z domorodno reaktivnostjo in podporo zabojnikom. Na takšen način postaja prva izbira oblačno-domorodnih zalednih sistemov, saj ustrezno naslavlja številne izzive okolja v oblaku, kot je npr. problematika hladnega zagona.
Na delavnici se bomo osredotočili na razvoj inteligentnih zalednih sistemov, narejenih z jezikom Kotlin in ogrodjem Quarkus. Reaktivne zaledne sisteme bomo opremili s funkcionalnostmi umetne inteligence, in sicer preko ustreznega povezovanja z vmesniki OpenAI in produktom ChatGPT. Spoznali bomo veščine t.i. prompt-inžiniringa, ki omogoča ustrezno prilagoditev splošno namenskih jezikovnih modelov ciljni domeni. Tako narejen zaledni sistem bomo namestili v okolje oblaka in omogočili skalabilno obnašanje s pomočjo platforme Kubernetes.
Delavnica bo združevala teoretični uvod, praktične primere in vodene vaje, ki nam bodo omogočile pridobitev praktičnih izkušenj pri razvoju inteligentnih poslovnih rešitev s pomočjo Kotlina, Quarkusa in ChatGPT-a. Potrebna predznanja vključujejo le osnovno poznavanje programiranja, ter razumevanje konceptov, kot so računalništvo v oblaku.

2. Simulacija napadov na CI/CD cevovode

Izvajalci: Nika Jeršič, Matko Zlatić, Marko Gluhak
Trajanje: 3 ure CI/CD (Continuous Integration/Continuous Deployment) je praksa razvoja programske opreme, ki omogoča hitro in zanesljivo izdajo programske opreme. CI/CD pristop združuje dve pomembni fazi razvojnega procesa – kontinuirano integracijo in kontinuirano nameščanje.
Omogoča agilen in učinkovit razvojni proces. S hitrimi povratnimi informacijami o kakovosti kode in samodejno razvrščenimi spremembami v produkcijsko okolje razvijalci hitreje dostavijo nove funkcionalnosti in popravke napak. Zaradi vedno večjega števila različnih orodij, ki se uporabljajo v CI/CD cevovodih, se je z leti močno povečalo tudi število zaznanih napadov. Na delavnici bomo spoznali CI/CD GOAT, varno okolje za spoznavanje različnih vrst napadov. Govorili bomo o najpogostejših napakah v razvoju in njihovem vplivu na ranljivost cevovoda samodejne dostave programske opreme. Simulirali bomo različne tipe izvedbe ranljivega cevovoda (angl. Poisoned Pipeline Execution) in nezadostne higiene poverilnic ob tem.

3. Ko se napovedni modeli strojnega učenja srečajo z realnim okoljem in končnimi uporabniki

Izvajalca: Grega Vrbančič, Lucija Brezočnik

Trajanje: 3 ure
V današnjem svetu, ki temelji na podatkih, je strojno učenje postalo zmogljivo orodje za pridobivanje novih spoznanj in generiranje napovedi. Prava vrednost strojnega učenja pa se pravzaprav skriva v njegovi uporabi – uporabi modelov v resničnem svetu in izkoriščanju njihovega potenciala za spodbujanje inovacij in povečanju dodane vrednosti obstoječih produktov.

Namestitev in uporaba modelov strojnega učenja je ključni korak na poti od zamisli do ustvarjanja dodane vrednosti. To je faza, kjer se napovedni modeli srečajo z realnim okoljem ter končnimi uporabniki in kjer ideje postanejo oprijemljive rešitve. Vendar pa je ta proces vse prej kot enostaven, nemalokrat zapleten, poln izzivov in nepričakovanih ovir.
V prvem delu delavnice bomo predstavili številne teme, od prenosljivosti napovednih modelov do različnih namestitvenih strategij, ki so bistvene za učinkovito uporabo in integracijo napovednih modelov v informacijske rešitve. Obravnavali bomo ključne vidike in dobre prakse, ki vam bodo olajšale vključitev tehnologij umetne inteligence v vaše obstoječe rešitve ter vas spoznali z različnimi pristopi uporabe napovednih modelov. V drugem delu delavnice pa vas bomo seznanili s praktičnimi veščinami, triki in nasveti, potrebnimi za kar se da enostaven pričetek namestitve in uporabe napovednih modelov strojnega učenja v različnih okoljih. Tekom delavnice se boste preizkusili v vodenem razvoju oz. uporabi napovednih modelov v obliki zaledne REST spletne storitve (Java) in uporabo napovednih modelov na pročelnem delu spletne aplikacije (JS). V ta namen bomo uporabili v Pythonu prednaučene napovedne modele, ki jih bomo s pomočjo ONNX okolja pretvorili v standardizirano prenosljivo obliki, ki omogoča uporabo teh v različnih izvajalnih okoljih. Zaledno REST spletno storitev bomo z razvitim pročelnim delom skušali smiselno povezati v zaključeno celoto – enostaven inteligentni sistem.

Delavnica je namenjena vsem razvijalcem, ki se z namestitivijo oz. uporabo napovednih modelov v praksi še niso srečali. Za udeležence znanje iz področja strojnega učenja ni potrebno, zaželeno je zgolj osnovno znanje programskih jezikov Java in JavaScript.

Zavihajmo rokave in raziščimo praktične vidike namestitve in uporabe modelov strojnega učenja ter algoritme strojnega učenja spremenimo v zmogljive rešitve, ki oblikujejo naš svet.