Šta je AI model — objašnjenje za sistem inženjere
Ako si administrator, verovatno si o veštačkoj inteligenciji čitao uglavnom marketinške tekstove. Ovaj serijal kreće drugačije: AI model je za tebe pre svega fajl na disku i proces koji troši memoriju. Da bi ga instalirao, obezbedio i nadgledao, ne treba ti linearna algebra — treba ti tačna predstava o tome šta se dešava kada pošalješ zahtev.
U ovom tekstu nema formula. Ima objašnjenja koja ti trebaju da bi kasnije znao zašto model traži baš toliko memorije, zašto usporava na dugim razgovorima i zašto ponekad samouvereno izmisli odgovor. Ceo pregled serijala nalazi se na stranici AI na Linux serveru.
Model je fajl
Kada preuzmeš model, dobiješ jedan ili više fajlova sa numeričkim vrednostima. Ništa više. Nema ugrađene baze znanja koju možeš da pretražiš, nema indeksa, nema teksta.
ls -lh ~/.ollama/models/blobs/ -rw-r--r-- 1 ollama ollama 4.4G sha256-3a1b8c... -rw-r--r-- 1 ollama ollama 19G sha256-9f2e41... -rw-r--r-- 1 ollama ollama 1.2K sha256-c7d033...
Te vrednosti se zovu težine (engl. weights) ili parametri. Model od 7 milijardi parametara ima sedam milijardi brojeva u tom fajlu. Znanje modela nije zapisano nigde kao tekst — ono je raspoređeno kroz odnose među tim brojevima, otprilike kao što informacija u komprimovanoj arhivi nije čitljiva dok se ne raspakuje.
Ova razlika je praktična, ne filozofska. Znači da model ne možeš da pretražuješ, da ne možeš da mu obrišeš jednu činjenicu i da ne postoji log toga šta „zna".
Parametri i veličina na disku
Broj parametara je ono što stoji u nazivu modela: 7B, 27B, 70B. Veličina fajla zavisi od toga koliko bajtova troši svaki parametar, što se zove preciznost.
| Preciznost | Bajtova po parametru | Model od 7B | Model od 70B |
|---|---|---|---|
| FP16 | 2 | oko 14 GB | oko 140 GB |
| INT8 | 1 | oko 7 GB | oko 70 GB |
| INT4 | 0.5 | oko 3.5 GB | oko 35 GB |
Smanjivanje preciznosti se zove kvantizacija i to je razlog zašto model od 70 milijardi parametara uopšte može da stane na jednu grafičku karticu. Detaljno o tome u tekstu o kvantizaciji.
Jedno upozorenje odmah: veličina fajla nije i količina memorije koju će proces zauzeti. Na to se dodaje keš konteksta i režijski trošak samog servisa, pa računaj deset do dvadeset posto više. Kako se to tačno izračunava, pokazuje tekst o proceni VRAM-a.
Šta se dešava kada pošalješ pitanje
Proces ima tri koraka i vredi ga zapamtiti, jer objašnjava skoro svako čudno ponašanje na koje ćeš naići.
1. Tokenizacija
Tvoj tekst se razlaže na tokene — komadiće reči. Token nije slovo ni reč, nego negde između. Za engleski je prosek oko četiri znaka po tokenu, za srpski osetno manje, jer naši nastavci i dijakritički znaci troše više tokena.
Ulaz: "Restartuj nginx servis" Tokeni: ["Rest", "art", "uj", " ng", "inx", " serv", "is"]
Zato ista rečenica na srpskom „košta" više nego na engleskom. Ako plaćaš po tokenu ili ti je kontekst ograničen, to je merljiva razlika.
2. Predviđanje sledećeg tokena
Model prolazi kroz sve tokene i računa koji je token najverovatniji sledeći. Ne bira jedan odgovor — dobija raspodelu verovatnoća preko celog rečnika, pa iz nje uzima jedan token.
Kontekst: "Da bi restartovao servis koristiš komandu systemctl" Sledeći token, verovatnoće: " restart" 0.71 " reload" 0.14 " status" 0.06 " start" 0.04 ...
Koliko će odstupati od najverovatnijeg izbora određuje parametar temperatura. Niska temperatura znači predvidive, ponovljive odgovore — to je ono što želiš kada model generiše komande. Visoka daje raznovrsnost, korisnu za pisanje teksta.
3. Ponavljanje
Izabrani token se dodaje na kraj i ceo postupak se ponavlja za sledeći. I tako do kraja odgovora. Reč po reč koju vidiš na ekranu nije efekat animacije — model zaista tako i generiše.
Iz ovoga slede dve stvari koje ćeš stalno viđati u praksi. Prva: dužina odgovora direktno određuje vreme obrade, jer svaki token je jedan pun prolaz kroz model. Druga: brzina se meri u tokenima u sekundi, i to je jedini broj koji zaista poredi dve postavke — kako se meri, pokazuje tekst o benchmarku.
Kontekst
Kontekst prozor je koliko tokena model može da drži „u vidu" istovremeno — tvoje pitanje, sistemske instrukcije i sve što je do sada izgovoreno u razgovoru.
Poređenje koje ovde funkcioniše je radna memorija. Model nema disk, ima samo ono što mu staje u kontekst. Kada se prozor popuni, najstariji delovi razgovora ispadaju i model se ponaša kao da ih nikada nije bilo.
Kontekst prozor: 8192 tokena [sistemska instrukcija] 120 tokena [poruka 1 + odgovor] 900 tokena [poruka 2 + odgovor] 1 400 tokena [poruka 3 + odgovor] 2 100 tokena -------------------------------------- Zauzeto: 4 520 tokena Slobodno: 3 672 tokena
Veliki kontekst nije besplatan. Keš konteksta zauzima memoriju na kartici, i to zauzeće raste sa dužinom razgovora. Model koji je pri praznom kontekstu udobno stao u 24 GB ume da padne na trideset hiljada tokena razgovora. To je jedan od najčešćih uzroka pucanja lokalne postavke.
Trening i inferencija
Dva potpuno različita posla, i za tebe je bitan samo drugi.
Trening je proces u kojem se težine izračunavaju iz ogromne količine teksta. Traje nedeljama, zahteva klastere kartica i košta milione. Tim poslom se bavi šačica organizacija u svetu.
Inferencija je korišćenje gotovih težina za generisanje odgovora. To radiš ti, na svom serveru, i to je ono što ceo ovaj serijal pokriva.
Postoji i međukorak — fine-tuning, blago doterivanje postojećeg modela na sopstvenim podacima. To je izvodljivo na ozbiljnijem serveru, ali retko potrebno; u velikoj većini slučajeva ono što ti stvarno treba je RAG. Kada fine-tuning ipak ima smisla, obrađuje tekst o LoRA pristupu.
Šta model ne radi
Ovo je deo koji najviše šteti kada se pogrešno pretpostavi.
- Ne uči iz razgovora. Težine su nepromenljive tokom rada. Ono što mu kažeš danas ne postoji sutra, niti u paralelnoj sesiji drugog korisnika.
- Nema memoriju između sesija. Ako ti se čini da je pamti, to je aplikacija iznad modela koja u svaki zahtev ponovo ubacuje raniji razgovor.
- Nema pristup internetu ni tvojim fajlovima. Sam po sebi je izolovan proces. Pristup se dodaje spolja, alatima — kroz RAG i MCP.
- Ne zna koliko je siguran. Verovatnoća sledećeg tokena nije mera tačnosti. Netačna tvrdnja može imati istu jezičku uverljivost kao tačna.
Ta poslednja stavka je ono što se popularno zove halucinacija. Iz ugla administratora nije reč o kvaru nego o očekivanom ponašanju sistema koji predviđa verovatan tekst, a ne tačan tekst. Praktična posledica: izlaz modela nikada ne izvršavaj naslepo. Komandu koju ti model ponudi pročitaj pre nego što je pustiš na produkciju, isto kao kada je kopiraš sa foruma. Šire o rizicima ima u tekstu o bezbednosti.
Praktični scenariji
Scenario 1: Model je stao, ali je odgovor odsečen
Odgovor prestaje na pola rečenice. Skoro uvek je u pitanju ograničenje broja izlaznih tokena, ne greška servisa. Podigni gornju granicu generisanja ili traži kraći odgovor.
Scenario 2: Razgovor je počeo brzo, pa se usporio
Sa svakom porukom kontekst raste, a sa njim i posao po tokenu. Usporavanje kroz dug razgovor je normalno. Rešenje je nova sesija, ne restart servisa.
Scenario 3: Isto pitanje daje različite odgovore
Očekivano, jer se token bira iz raspodele. Ako ti treba ponovljivost — recimo kada model generiše konfiguraciju — spusti temperaturu na nulu ili blizu nje.
Scenario 4: Model tvrdi da je restartovao servis
Nije. Model generiše tekst, ne izvršava komande, osim ako mu ti nisi eksplicitno dao alat za to. Rečenica o uspešno izvršenoj radnji je samo verovatan nastavak teksta.
Kratka referenca
- Parametri (težine) — brojevi u fajlu modela; 7B znači sedam milijardi
- Token — komadić teksta, osnovna jedinica obrade
- Tokenizacija — razlaganje ulaznog teksta na tokene
- Kontekst prozor — najviše tokena koje model drži istovremeno
- Temperatura — koliko odstupa od najverovatnijeg izbora
- Kvantizacija — smanjivanje preciznosti radi manjeg zauzeća
- Inferencija — generisanje odgovora iz gotovog modela
- Trening — izračunavanje težina, posao koji ti ne radiš
- Fine-tuning — doterivanje gotovog modela na svojim podacima
- Halucinacija — uverljiv, ali netačan izlaz
- Tokeni u sekundi — mera brzine inferencije
Vežba
- Uzmi jednu rečenicu na srpskom i njen prevod na engleski, pa proceni u kojoj ima više tokena. Objasni zašto.
- Za model od 27B parametara izračunaj veličinu fajla u FP16, INT8 i INT4. Koja verzija bi stala na karticu od 24 GB, uz rezervu za kontekst?
- Napiši svojim rečima zašto model ne može da zapamti šta si mu rekao u prethodnoj sesiji.
- Objasni kolegi razliku između treninga i inferencije u tri rečenice, bez ijednog stručnog termina.
- Nabroj tri situacije u svom svakodnevnom poslu u kojima izlaz modela ne bi smeo da se izvrši bez provere.
Sledeći tekst u serijalu: Rečnik AI pojmova za sistem inženjere
Povezano:
- AI na Linux serveru — pregled celog serijala
- Linux osnove — komande koje su preduslov za dalje tekstove
- Administracija i servisi — systemd i upravljanje servisima
Comments
Post a Comment