Takvi podaci se moraju prvo pripremiti u obliku u kojem ih je moguće iskoristiti u nekom od LLM sustava. Ili, pravilnije napisano - istrenirati LLM sustav za korištenje novih podataka.
Detaljan primjer cijelog postupka je tema za neku drugu priliku s puno više mjesta u časopisu. Na ovom mjestu ćemo navesti glavne korake cjelokupnog postupka, a malo detaljnije se osvrnuti na dijelove povezane s pripremom podataka za uvoz u LLM, odnosno pripremom načina na koji drugi korisnici mogu koristiti dovršen LLM sustav.
Lumos: Javno dostupna biblioteka za izdvajanje podataka iz različitih izvora.
Korak 1 – definiranje ciljeva
U početnom koraku potrebno je točno definirati ciljeve, to jest, što se točno želi postići dodavanjem vlastitih podataka u LLM sustav. Je li to mogućnost pretraživanja potpuno novog skupa podataka (kao primjeri spomenuti u uvodu), unapređivanje kvalitete dokumenta koje će generirati LLM (dodavanjem posebnih dijelova za vašu tvrtku u postojeće sustave) ili nešto treće? Ova točka bi ujedno trebala dati početne podatke o tome koliko će biti potrebno računalnih i novčanih resursa za cijeli postupak.
Korak 2 – Prikupljanje i priprema podataka
Podatke koje želite uvesti u LLM sustav morate prikupiti i pripremiti na odgovarajući način. Na ovu točku ćemo se detaljnije vratiti u nastavku.
Korak 3 – Priprema radnog okruženja
Ovo uključuje pripremu i aktiviranje svih potrebnih hardverskih i softverskih resursa potrebnih za LLM. U obzir ponovo treba uzeti dostupne financijske resurse kako bi se pomoću izabranih alata moglo postići to što želite.
Korak 4 – Odabir arhitektura modela
U ovom koraku treba izabrati neki od dostupnih LLM modela kao što su GPT, T5, BERT ovisno o tome kakve karakteristike želite postići u svojem sustavu.
Korak 5 – Tokenizacija podataka
Podatke pripremljene u koraku 2 morate tokenizirati, kako bi se oni na pravilan način mogli iskoristiti u LLM sustavu. Tokenizacija predstavlja postupak pretvaranja tekstova različite dužine u odgovarajuće tokene koje mogu koristiti LLM sustavi. Riječ je o prilično složenom postupku čiji primjer možemo obraditi detaljnije u nekom od sljedećih brojeva časopisa.
Korak 6 – treniranje modela
Na temelju podataka pripremljenih u prethodnoj točki započinje treniranje modela. Tijekom ove faze, LLM model generira prve izlazne podatke koje treba uspoređivati s pravim test podacima. Postupak u kojem se mogu koristiti različite tehnike, kao što je na primjer SDG (stochastic gradient descent).
Korak 7 – Procjena rada i fino podešavanje modela
Nakon dobivanja prvih izlaznih rezultata slijedi postupak procjene i finog podešavanja modela, za što se može koristiti veliki broj različitih tehnika.
Korak 8 – implementacija LLM sustava
Dovršeni LLM sustav treba uključiti u stvarno korištenje u poslovnom ili znanstvenom procesu za koji je pripremljen. To znači povezivanje s odgovarajućom aplikacijom ili web rješenjem. U pravilu treba također pripremiti mogućnost da drugi sustavi mogu pristupiti podacima preko odgovarajućih API poziva. Nakon implementacije, rad sustava treba stalno nadzirati, te po potrebi ponoviti neki od prethodnih koraka kako bi se konstantno poboljšavala kvaliteta sustava.
Na raspolaganju: je povezivanje s preko 600 izvora podataka (airbyte.com/connectors)
Od prethodno nabrojenih osam koraka, najviše operacija nad vlastitim podacima izvodite u koracima 2 i 5. U koraku 2 treba vlastite podatke, koji se najčešće nalaze u heterogenom obliku u različitim formatima (TXT, DOC, XLS, PDF, MP3, MP4…), pripremiti u oblik iskoristiv za treniranje LLM sustava. Dio bitnih podataka za LLM sustave možda je dostupan samo u obliku audio ili video zapisa, pa i njih treba uzeti u obzir. Dobra strana u cijeloj priči je to što za gotovo svaki od relevantnih tipova podataka već postoje pripremljene biblioteke za rukovanje takvim podacima, a njih je relativno lako koristiti u različitim programskim jezicima.
Jedna od najjednostavnijih biblioteka (Lumos) za pripremu ulaznih podataka javno je dostupna na sljedećoj web adresi: https://github.com/lumiralabs/lumos
Evo vrlo jednostavnog primjera u Pythonu, kako se uz pomoć spomenute biblioteke iz audio datoteke nastale snimanjem nekog poslovnog sastanka mogu izdvojiti podaci u tekstualnom obliku. Takve podatke možete iskoristiti za treniranje LLM sustava.
from lumos import lumos
# Otvaranje audio datoteke nastale na sastanku
with open(“sastanak20250510.mp3”, “rb”) as audio_file:
transcription = lumos.transcribe(audio_file)
# ispis teksta – u stvarnom primjeru treba spremiti u datoteku
print(transcription.text)
Na sličan način, uz korištenje odgovarajućih biblioteka te malo dodatnog programskog koda, možete prikupiti podatke iz različitih formata zapisa, ako ih treba uvesti u LLM.
Drugi način za pristup podacima u različitim formatima je korištenje gotovih alata, gdje se isti postupak izvodi preko grafičkog korisničkog sučelja umjesto pisanja programskog koda. Jedan od takvih alata je Airbyte (https://airbyte.com). Airbyte nudi povezivanje s preko 600 različitih izvora podataka radi njihove ekstrakcije. Iako se ozbiljno korištenje sustava plaća, dostupne su i besplatne verzije, tako da možete provjeriti može li sustav automatski napraviti to što vam je potrebno. A čak i uz plaćanje korištenja sustava možete provjeriti nije li to jeftinije od plaćanja IT stručnjaka, koji vam trebaju napisati programski kod za istu stvar.
Pogledajmo na kraju kako bismo pripremili suprotnu operaciju.
Kako nekom drugom korisniku omogućiti pristup do podataka iz novog LLM sustava? Osim korištenja vlastite aplikacije ili web rješenja, potencijalnim korisnicima trebali bismo omogućiti i pristup podacima preko API poziva kao nekakvog standarda za izvođenje takvih operacija.
Priprema API sustava povezanog s LLM sustavom (na koji se onda mogu spajati drugi korisnici) može se napraviti na sljedeći način:
Korak 1 – definiranje mogućnosti dostupnih drugim korisnicima
Prvo treba definirati koje ćemo sve mogućnosti našeg LLM „otvoriti“ prema drugim korisnicima. Jesu li to sve mogućnosti ili samo neke od njih, odnosno kako se izvodi naplata korištenja sustava? Je li sve besplatno, ili se naplaćuju neki od dijelova?
Korak 2 – priprema API sustava za druge korisnike
Drugi korak može se realizirati na različite načine, ovisno o programskom jeziku koji koristimo. Ako se zadržimo na Pythonu, ovaj dio se može relativno jednostavno napraviti korištenjem biblioteke FastAPI. Osnovni predložak programskog koda mogao bi imati sljedeći oblik:
from fastapi import FastAPI
from pydantic import BaseModel
app = FastAPI()
class PromptRequest(BaseModel):
prompt: str
@app.post(“/generate”)
def generate_text(request: PromptRequest):
response = your_llm.generate(request.prompt)
return {“response”: response}
Korak 3 – dodavanje sigurnosnog sloja
U sustav pripremljen u prethodnoj točki treba dodati određenu razinu sigurnosti. To obuhvaća nekakav sustav za autentikaciju, ograničavanje količine postavljenih upita u jedinici vremena kako se LLM sustav ne bi „rušio“ zbog eventualnih preopterećenja, te nadziranje rada i prometa da bi se mogli uočiti eventualni napadači na sustav.
Korak 4 – Priprema dokumentacije
Kad su svi prethodni koraci u potpunosti dovršeni i testirani (ili usporedo s njima), treba pripremiti odgovarajuću dokumentaciju za krajnje korisnike (Swagger, primjere korištenja u različitim programskim jezicima, ograničenja u korištenju i slično).
Korak 5 – Distribucija i održavanje
Treba iskoristiti jedan ili više kanala za promociju vlastitog rješenja, nadzirati korištenje, te po potrebi izvoditi nadograđivanje cijelog sustava i/ili API podrške.