Posts

Showing posts with the label ai

vLLM — produkciona inferencija sa više paralelnih zahteva

Ollama i llama.cpp su pisani za scenario u kome jedan korisnik čeka jedan odgovor. Kada na isti server krene deset ljudi ili skripta koja obrađuje hiljade zapisa, ta pretpostavka pada — i pada skupo, jer kartica najveći deo vremena stoji. vLLM je pisan za suprotan slučaj. Ovaj tekst pokazuje kako se instalira, po čemu se razlikuje i kada prelazak zaista ima smisla. Odakle razlika Dva mehanizma nose gotovo sve. Continuous batching. Umesto da čeka da se jedan odgovor završi pa uzme sledeći zahtev, vLLM ubacuje nove zahteve u obradu čim se oslobodi mesto. Pošto je inferencija ograničena propusnošću memorije — kako pokazuje tekst o CPU i GPU inferenciji — težine se ionako čitaju za svaki token. Obraditi osam zahteva u istom prolazu košta jedva više nego obraditi jedan. PagedAttention. KV keš se ne rezerviše unapred u komadu, nego u blokovima, kao stranice u virtuelnoj memoriji. Nema praznog prostora rezervisanog za kontekst koji možda nikad neće biti iskorišćen, a zajednički d...

Hugging Face CLI — preuzimanje modela i organizacija na disku

Ollama ima svoju biblioteku modela, i dok ti je dovoljna, sve je jednostavno. Van nje počinje Hugging Face — mesto gde modeli zapravo žive, uključujući sve varijante kvantizacije koje u Ollaminoj biblioteci ne postoje. Ovaj tekst pokazuje kako se odatle preuzima iz komandne linije, kako se ne preuzme šezdeset gigabajta kad ti treba pet, i gde sve to završi na disku. Kako je repozitorijum organizovan Svaki model je git repozitorijum sa oznakom u obliku organizacija/naziv : Qwen/Qwen3-8B originalni model, safetensors bartowski/Qwen3-8B-GGUF kvantizovane GGUF varijante Qwen/Qwen3-8B-AWQ AWQ varijanta za vLLM Originalni objavljivač retko izdaje GGUF fajlove — to rade pojedinci i grupe koje se time bave. Zato ćeš isti model naći pod više naziva, i zato je važno da razlikuješ šta ti treba. Šta pokrećeš Šta preuzimaš Koliko fajlova llama.cpp, Ollama GGUF Jedan vLLM, Transformers safetensors...

llama.cpp — kompajliranje iz izvornog koda i pokretanje llama-server

Ollama je udobna dok ti trebaju podrazumevane vrednosti. Onog trenutka kad hoćeš tačno da odrediš koliko slojeva ide na karticu, kako se deli posao između dve kartice ili koji tačno parametri idu u inferenciju — nailaziš na zid, jer Ollama te odluke donosi umesto tebe. llama.cpp je ono što se ispod nje ionako vrti. Ovaj tekst pokazuje kako se kompajlira sa CUDA podrškom, kako se pokreće llama-server i koji parametri stvarno menjaju ponašanje. Kada ima smisla Ollama llama.cpp Jedna komanda do modela koji radi Kompajliranje, pa podešavanje Sama bira raspored slojeva Ti određuješ svaki sloj Podešavanje kroz promenljive okruženja Svaki parametar dostupan iz komandne linije Sopstvena biblioteka modela Bilo koji GGUF fajl Nove mogućnosti stižu sa zakašnjenjem Odmah, na dan objave Konkretni razlozi za prelazak: hoćeš da izvučeš poslednji token iz slabije kartice, radiš sa modelom koji Oll...

Ollama kao systemd servis

Instalaciona skripta ostavlja servis koji radi, ali sa podrazumevanim vrednostima koje su pisane za desktop. Model se izbacuje iz memorije posle pet minuta, servis sluša samo na lokalnoj adresi, a promenljive okruženja koje ti trebaju nigde nisu postavljene. Ovaj tekst pokazuje kako se ta jedinica dovodi u stanje upotrebljivo na serveru — trajno, tako da preživi restart i ažuriranje. Kako jedinica izgleda Instalaciona skripta pravi ovakav fajl: $ cat /etc/systemd/system/ollama.service [Unit] Description=Ollama Service After=network-online.target [Service] ExecStart=/usr/local/bin/ollama serve User=ollama Group=ollama Restart=always RestartSec=3 Environment="PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin" [Install] WantedBy=multi-user.target Ovaj fajl ne diraj. Sledeće ažuriranje Ollame ga prepisuje i sve tvoje izmene nestaju bez upozorenja. Izmene idu kroz drop-in fajl. Drop-in izmene $ sudo systemctl edit ollama Otvara se prazan fajl u k...

Ollama: instalacija na Linux serveru od nule

Do sada je sve bila priprema: računica memorije, drajveri, kvantizacija. Ovim tekstom se prvi put pokreće model. Ollama je najbrži put do toga. Jedna komanda instalira servis, druga preuzima model, treća otvara razgovor. Sve ostalo — systemd, mrežni pristup, Docker, produkciona inferencija — nadogradnja je na ovo. Šta Ollama zapravo jeste Iz ugla administratora, Ollama je HTTP servis koji sluša na portu 11434 i ima klijent u terminalu. Ispod haube koristi llama.cpp, ali od tebe krije kompajliranje, izbor slojeva za karticu i sklapanje prompta u format koji model očekuje. Preuzima na sebe Ostaje tvoj posao Preuzimanje i čuvanje modela Drajveri i hardver Raspoređivanje slojeva na karticu Izbor modela koji staje u memoriju Format prompta po modelu Mrežni pristup i zaštita HTTP API, uključujući OpenAI-kompatibilan Nadzor i kapacitet Ollama je namenjena postavci sa jednim ili nekoliko korisnika. Kada ...

Kvantizacija u praksi: GGUF, Q4_K_M i AWQ

Model od osam milijardi parametara u punoj preciznosti traži šesnaest gigabajta memorije. Isti taj model, kvantizovan, staje u pet i radi gotovo jednako dobro. Cela razlika između „ovo ne može na mom serveru" i „ovo radi bez problema" svodi se na jednu oznaku u imenu fajla. Ovaj tekst objašnjava šta se tačno dešava kada se model kvantizuje, kako se čitaju oznake tipa Q4_K_M i koji format odgovara kom alatu za pokretanje. Šta kvantizacija zapravo radi Model je skup brojeva — težina. Posle treniranja svaka težina je zapisana u šesnaest bitova, kao decimalni broj. Kvantizacija te brojeve zapisuje u manje bitova: osam, pet, četiri, ponekad i manje. Postupak nije obično zaokruživanje. Težine se dele u blokove, za svaki blok se izračuna faktor skaliranja, pa se pojedinačne vrednosti unutar bloka čuvaju kao mali celi brojevi u odnosu na taj faktor. Zato četvorobitna kvantizacija u praksi troši nešto više od četiri bita po težini — faktori skaliranja se takođe moraju negde z...