Kako osposobiti AI agenta za potrebe svoje tvrtke? Saznajemo od inženjera iz Infobipa i Sofascorea

Kako osposobiti AI agenta za potrebe svoje tvrtke? Saznajemo od inženjera iz Infobipa i Sofascorea

Hrvatski jednorog pokrenuo je svoje meetupe, a sudeći po prvom izdanju, inženjerska zajednica dobila je događaj na kojem će imati što čuti - i naučiti.

Prvi Infobipov Engineering meetup u suradnji sa Sofascoreom okupio je više od 130 inženjera i inženjerki iz raznih područja i senioriteta, a tema koja ih je privukla u Alpha Centauri kampusu je ChatGPT i njegova primjena u upravljanju ogromnim količinama podataka odnosno specifičnim znanjima i zadacima.

Prvu temu meetupa Big Data Analysis and Insights with ChatGPT otvorio je Herman Zvonimir Došilović (Senior Software Engineer @ Sofascore), kroz čije smo predavanje saznali kako Sofascore koristi ChatGPT za dobivanje ključnih uvida iz baze podataka od 1 petabajta.

U drugu temu Story About Stanley – The AI That Knew Too Much uveo nas je Ivan Markanović (Principal Engineer @ Infobip) koji razvija Stanleyja, AI agenta koji ne samo da ispisuje izlazne podatke, već i izvršava naredbe ovisno o ulaznim podacima. U pitanju je uzbudljiva priča koje se vrti oko frustracije, kreativnosti i prilagođavanja AI-a potrebama Infobipa.

Kako pohraniti i agregirati milijardu sirovih podataka?

Kroz predavanje, saznali smo kako Sofascore koristi ChatGPT za dobivanje ključnih uvida iz baze podataka od 1 petabajta. Iako su tek u ranoj fazi iskorištavanja umjetne inteligencije u tu svrhu, Sofascore nije tek nedavno zagrizao u AI područje. Njihov AI i analitički tim će uskoro brojati čak 16 ljudi, koji se brinu o svim aktivnostima vezanima uz podatke: od prikupljanja, pohrane i analize do vizualizacije i strojnog učenja.

Naravno, ChatGPT stavio je neke nove karte na stol te su Herman i kolege odlučili iskušati njegove mogućnosti za velike baze podataka.

Sofascore svaki dan generira milijardu redaka anonimiziranih korisničkih podataka te ukupno broje 1 petabajt sirovih anonimiziranih korisničkih podataka. Osim te analitičke baze, imaju i 100 gigabajta veliku bazu za samu aplikaciju, koja sadrži sve podatke o timovima, igračima i utakmicama… Tako da, jasno vam je o kojoj razini govorimo.

Za početak, Herman je pokazao kako podaci prolaze kroz njihov sustav (data pipeline fotka niže), objašnjavajući kako su BigQuery baze podataka za pohranu i postavljenje upita skupe s obzirom na količinu podataka koje pohranjuju…

Stoga smo razvili vlastite alate za uvoz podataka iz BigQuery baze podataka u ClickHouse bazu podataka i time smo 20 puta reducirali troškove pohrane podataka i postavljanje upita nad podacima.

IE Meetup, Sofascore

Podaci koji potom stignu u ClickHouse (koji obožavaju, dodaje Herman) su sirovi odnosno neprocesirani. Slati upite na bazu takvih podataka je sporo i neefikasno, pogotovo ako želite vrtjeti upite koji se protežu na nekoliko dana, tjedana ili čak mjeseci.

No, ono što radimo jest da agregiramo podatke pomoću nekoliko različitih vremenskih intervala. Agregiranje podataka je zbilja jedan od najvažnijih koraka za nas koji procesiramo podatke. Da vam ocrtam koliko je važna: ako se pitamo koliko smo imali aktivnih korisnika u Hrvatskoj prošli mjesec – dobivanje odgovora može potrajati i nekoliko minuta na neprocesiranim podacima u odnosu na par milisekundi iz agregiranih podataka.

Kada su podaci agregirani, s njima možemo raditi skoro sve što hoćemo, ističe Herman. Takve podatke i koriste za mnogo toga, od kreiranja preglednih statistika do godišnjih i kvartalnih izvješća. Što nas dovodi i do glavne teme, da potrebu za tim podacima imaju razni timovi – koji nemaju svi pristup ni znanje kako baratati spomenutim bazama.

Čak i da znaju raditi s SQL-om, trebali bi poznavati kako se podaci spremaju i organiziraju. Trebali bi poznavati semantiku svake tablice, svakog stupca, a trenutno postoji više od 200 aktivno korištenih tablica u našoj ClickHouse bazi.

Što ako na vaša pitanja može odgovoriti AI?

Stoga razni timovi i pojedinci kojima trebaju podaci dolaze njihovom timu sa zahtjevima. Za sad je to funkcioniralo putem zasebnog Slack kanala, na kojem osoba prvo odgovara na 4 pitanja: Što je vaš zahtjev?; Zašto to tražite?; Što će se napraviti na temelju rezultata?; Do kada treba biti odrađeno?

A što ako na ta i druga pitanja može odgovoriti AI? Osim kolegama, što ako možemo i sebi olakšati tako što će nam ChatGPT generirati SQL upite za takve zahtjeve…

Glavna ideja je bila prilično jednostavna, izgraditi chat aplikaciju koja će ti omogućiti da prirodnim jezikom šalješ upite na bazu te da ti pritom i odgovori prirodnim jezikom. Ali imali smo jedan problem, kako da aplikacija bude “svjesna” 1 petabajta podataka?

I tako dolazimo do prompt engineeringa! Niže možete vidjeti i kako je Herman zadužio ChatGPT da postane SQL, točnije – ClickHouse stručnjak.

Naravno da su se otvorila i pitanja o sigurnosti. S obzirom na to da postoji bojazan da sam ChatGPT pozove random SQL upite, Herman navodi kako su postavili nekoliko razina ograničenja (resursna i vlasnička) kako bi osigurali da se takvo što ne dogodi.

Trenutno sve operira na ChatGPT 3.5 platformi, stoga su imali minimalno troškova, Herman kaže da nisu okrznuli 100 dolara koje su dobili na raspolaganje.

U konačnici, njihov prilagođeni ChatGPT, koji je dobio i frontend ruho, funkcionira zbilja dobro – aplikacija je sposobna generirati vrlo kompleskne upite na postavljeno pitanje korisnika, no Herman i kolege tu ne žele stati. Svakako je plan podići sve na veću razinu: od boljeg promptanja do isprobavanja novih modela – jer osim što im ovo koristi kolegama u timu pa i čitavoj firmi, imaju masu klijenata i partnera koji su zainteresirani za podatke, zaključuje.

Od poruke na Slacku…

Sličnu primjenu ChatGPT-ja u baratanju podacima imali smo priliku vidjeti i u Infobipu. Njihovom infrastrukturnom odjelu i Engineering Directoru Oliveru Lovakoviću, koji uvijek gleda kako nešto optimizirati, nije promakla ideja Ivana Markovića, Principal inženjera, koja je ubrzo i realizirana.

Naime, troubleshooting korisničkih i inih problema na platformi koja ima 37 milijardi interakcija dnevno, 3000 mikroservisnih aplikacija, 60 data centara koji se vrte na 30 tisuća servera, koje koriste i održava 800 inženjera… stvarno nekad nije nimalo jednostavan ni brz proces. No, kako se ispostavilo, može biti i jednostavniji i lakši.

U Infobipovom infrastrukturnom timu s tom idejom razvili su Deployka, alat kojim podržavaju odnosno upravljaju s više platformi iz jednog mjesta odnosno sučelja. No, postojao je jedan problem, što ako za izvršiti određen zadatak odnosno troubleshooting, osoba mora imati pristup nekoj dokumentaciji ili dopuštenje neke treće odgovorne osobe… Nužno je povući nekoga za rukav da vam pomogne, a gdje bolje nego na Slacku.

Dedicirani kanal uskoro je postao FAQ s obzirom na količinu informacija koja se razmjenjivala. Unatoč toj bazi dostupnih odgovora, na tom kanalu se redovito postavljalo ista pitanja

… do prompt engineeringa

Ako smo išta dosad naučili (barem na Netokraciji), to je da ChatGPT možemo nahraniti bazom znanja o kojoj ga potom možemo ispitivati i očekivati (u većini slučajeva) suvisle odgovore kad nam zatrebaju. Što mu više informacija date, to će se on davati bolje odgovore. Ivan i kolege povukli su tako cijelu povijest poruka i upita sa spomenutog Slack kanala, čime su nahranili ChatGPT (verziju 4.0 Turbo).

Odradili su tzv. finetuning, model je naučio sve što je trebalo, i sve je bilo super. E, nije!

Potrebno je mnogo vremena i truda da bi se istrenirao AI model, a to biste trebali napraviti svaki put kada se promijeni i najmanja sitnica u podacima, primjerice, API dokumentacije. Morali biste nanovo istrenirati model i zbog obične promjene URL-a.

Tu u igru ulazi prompt engineering.

IE meetup, Infobip

Okrenuli su se prompt engineeringu u nadi da će moći samo promijeniti prompt tj. da neće za svaku promjenu u ulaznim podacima morati nanovo trenirati model. Priča se tek tu zahuktava s nizom novih pitanja… Ako znamo da možemo i trebamo uvesti znanje u alat, zašto ne bismo sve informacije ubacili promptanjem direktno u alat?

Mi to zapravo i radimo, ali postoji jedna mala caka – a to je ograničenje koliko ChatGPT može obraditi tokena po upitu. Možemo samo određeni dio podataka ubaciti unutra.

Ako već imamo ograničenje i biramo podatke, jasno je da to trebaju biti ključne i relevantne informacije za korisnike. No, kako znati što korisnici zbilja trebaju i traže – neće oni uvijek eksplicitno pitati: reci mi više o Deplyoku – što ako pitaju: pokaži mi sve moje servere?

U dobavljanju što preciznijeg i užeg, a opet dovoljno širog spektra ulaznih podataka iz kojih će AI agent moći nešto zaključiti, Ivanu i timu pomogle su vektorske baze odnosno korištenje embeddingsa i retrieval modela – procedure koje ćete i sami koristiti ako budete htjeli uz pomoć strojnog učenja dobavljati konkretne informacije iz većih, nestrukturiranih baza podataka.

Tu dolazimo i do tri slijeda pokušaja i pogreške koja su potaknula nastanak samog “AI inženjera”, Stanleyja.

Kako je Stanley spasio dan – iz trećeg puta

Ivan – i tim koji mu se pridružio u razvoju ovog rješenja, osmislili su potom prvi plan.

Plan je bio da ChatGPT izvuče informaciju iz Infobipove dokumentacije, stavi je u bazu podatka, potom s korisnikovim upitom po bazi odradi pretragu po sličnosti te da nazad odgovor. Plan nije uspio, odgovore koje je Stanley vraćao ili su se referirali na zastarjele podatke ili bi javio da podaci o tome ne postoje. Drugi plan također – Stanley im je davao različite odgovore na ista pitanja, izbacivao nestrukturirane podatke, a često bi znao i odgovoriti “probajte sad” nakon što ništa nije napravio…

Kako kažu, treća sreća! Ivan i kolege su se pitali koji problem zapravo žele riješiti? Odgovor je bio: operativne stvari, stvari na koje se troši vrijeme, a vjerojatno bespotrebno.

Za većinu poruka, inženjer je morao stati raditi svoj posao i provjeriti u čemu je stvar.

Zaključili su da oni zapravo trebaju AI inženjera koji bi umjesto pravog mogao provjeriti ograničenja odnosno prava pristupa nečemu. Takvi upiti, unatoč tome što se čine beznačajni, oni to nisu – o njima netko ovisi i netko ih svejedno mora napraviti.

Plan tri koji je u konačnici bio uspješan, išao je ovako:

  1. Dodati Deploykovu dokumentaciju u dataset;
  2. Konvertirati funkcije u scheme;
  3. Prenijeti ih u prompt;
  4. Pustiti GPT da odluči što će napraviti.

Kako je Ivan demonstrirao uživo – testiranje teorije uspjelo! Stanley bez problema može vratiti odgovor tko od kolega ima pristup kojim serverima, kao što može i sam deployati server i javiti njegov status…

Kako operira Stanley?

Naravno, nije sve idealno: Stanley je u svom radu nekad koristio previše memorije, a nekad bi znao i halucinirati. Ako imate tisuće funkcija, prešišat ćete token limit, ističe Ivan.

Zato su upogonili drugog agenta, koji radi na ChatGPT 3.5 verziji, a čiji je jedini zadatak samo odabrati 10 do 15 funkcija tj. “tema” koje su najrelevantnije za postavljeno pitanje. Haluciranje su također riješili bacajući još malo AI iskre u vatru. Naime, iako ne potpuno, možete ublažiti haluciniranje tako što ćete aktivirati više agenata da međusobno razgovaraju i provjeravaju rezultat prije nego vam daju odgovor.

Pratite nas za vijesti i o drugom izdanju Infobip Engineering Meetupa!

Sukladno članku 94. Zakona o elektroničkim medijima, komentiranje članaka na Netokraciji dopušteno je samo korisnicima koji ostave svoje ime i prezime te mail adresu i prihvate pravila ponašanja.

Pravila ponašanja

Na Netokraciji za vas stvaramo kvalitetan, autorski potpisan sadržaj i zaista se veselimo vašim kvalitetnim, kontruktivnim komentarima. Poštujmo stoga jedni druge prilikom komentiranja, kao i Zakon, držeći se sljedećih pravila ponašanja:

  • Ne budite 💩: Nema vrijeđanja, diskriminiranja, ni psovanja (osim ako nije osobni izričaj, ali onda neka psovka bude općenita, a ne usmjerena prema nekome). Također, upoznajte se sa stavkom 2. članka 94. Zakona o elektroničkim medijima prije no što ostavite komentar.
  • Samo kvalitetna rasprava, manje trolanja: Ne morate se ni sa kim slagati, ali budite konstruktivni i doprinesite raspravi! Svako trolanje, flameanje, koliko god "plesalo" na granici, leti van.
  • Imenom i prezimenom, nismo Anonymous 👤: Autor sadržaja stoji iza svog sadržaja, stoga stojite i vi iza svog komentara. Koristimo ime i prezime te pravu email adresu.

Kako koristimo podatke koje ostavljate? Bacite oko na našu izjavu o privatnosti.

Sve ostale komentare ćemo s guštom spaliti, jer ne zaslužuju svoje mjesto na internetu.

Odgovori

Tvoja e-mail adresa neće biti objavljena.

Popularno

Startupi

Osnivač Njuškala uz Hanza Mediju pokreće novi digitalni oglasnik – Dealio

Dealio u tržišnom okršaju za korisnike u Hrvatskoj i šire ima stratešku podršku medijske grupacije Hanza, ali čini se kako se neće zaustaviti na tome.

Izvještaj

Metaverse nije mrtav. Njegov zli brat iz Mete možda jest…

Rebrendingom u Metu, Facebook je pokušao preuzeti vlasništvo nad pojmom metaversea, no svjedoci smo koliko mu je to uspjelo. Metaverse više nije u hypeu kao nekad, ali oni koji su se nastavili baviti njime - znaju da priča tek počinje.

Veliki intervjui

Program Forward to Health Innovation otvara prijave za treću generaciju polaznika

U modernom post pandemijskog okruženju u kojem se tehnologija ubrzano razvija nikad nije bilo važnije ulagati u zdravstvene inovacije. Forward to Health Innovation je tu da pomogne onima koji imaju ideju, ali ne znaju kako bi je ostvarili.

Što ste propustili

Startupi

Hrvatski Hypefy na natjecanju slovenskog Podima odnio pobjedu među 148 startupa

Na natjecanju Podim Pitching Competition birao se najbolji od 148 startupa iz 24 zemlje. Na glavnu pozornicu izašlo je 5 finalista, ali titulom najboljeg pitcha okrunjen je Hypefy iz Hrvatske.

Obrazovanje

STEMwave Innovation Day hrvatskim je učenicima još jednom omogućio tehnološki spektakl

Četvrtu godinu zaredom, Stemi i Infobip, uz podršku generalnog partnera A1 Hrvatska, uspješno su proveli sezonu 23/24 edukacijskog projekta STEMwave - Škola budućnosti te ga obilježili uz učeničku konferenciju ‘Innovation Day’.

Veliki intervjui

Lada Borovina Kovjanić, Inženjerka godine: Programiranje se uči – programiranjem, a najbolje na greškama

U seriji intervjua s iskusnim inženjerima domaće IT industrije otkrivamo kako su izgledali njihovi karijerni putovi, kako se postaje senior i ostaje u tijeku s novim tehnologijama, je li bolje specijalizirati se za određenu tehnologiju ili biti generalist i - što bi savjetovali juniorima.

Tvrtke i poslovanje

Na HAKOM-ovom Danu novih tehnologija predstavio se i SpaceX, ali i hrvatski igrači

Hrvatska se treba pripremati za budućnost svemirske industrije. Iako smo mali i često usmjereni na manje važne stvari, imamo aduta za utrku u toj brzorastućoj industriji. Ali, ne bismo trebali stati na tome!

Tvrtke i poslovanje

Native Teams osigurao 6,23 milijuna eura, rundu predvode Eleven Ventures i FRC

Native Teams, globalna platforma za digitalna plaćanja namijenjena freelancerima, remote radnicima i poslodavcima, uspješno je ostvarila još jednu rundu investicija u iznosu od 6,275 milijuna eura.

Veliki intervjui

Kako se postaje AI etičar – i čime se bavi, otkriva nam Katja Andrić

Brz rast upotrebe umjetne inteligencije dolazi sa sve glasnijim, često i paničnim, zahtjevima da se osigura njezino odgovorno korištenje. Iz te potrebe pojavilo se sasvim novo zanimanje – AI etičar. Koja znanja i vještine on/a treba imati, što i s kim radi i kako ćemo živjeti s umjetnom inteligencijom objasnila nam je AI etičarka Katja Andrić.