Ollama
1. LLaMA 2 és Ollama telepítése (self-host)¶
A modern szoftverfejlesztési és üzemeltetési ökoszisztémákban a generatív mesterséges intelligencia (AI) integrációja immár nem csupán opció, hanem kritikus versenyelőny. A nagy nyelvi modellek (LLM) helyi futtatása és kiszolgálása, különösen az Ollama motor és az Open WebUI keretrendszer révén, radikális változást hozott a vállalati adatbiztonságban és a fejlesztői munkafolyamatokban.
1.1. Hardverkövetelmények¶
Memória (RAM): A LLaMA 2 modellek mérete szerint változik. A 7B paraméteres modellhez min. 8 GB, a 13B-hez min. 16 GB, a 70B-hez min. 64 GB RAM ajánlott. (Ajánlott érték ennél magasabb – pl. 13B esetén 32 GB, 70B esetén 96 GB – a zökkenőmentes futtatáshoz.) Az Ollama alapértelmezés szerint 4 bites kvantálást használ (q4), amely csökkenti a memóriaigényt.Tárhely: A modellek fájlmérete: LLaMA 2 7B ≈3.8 GB, 13B ≈7.4 GB, 70B ≈39 GB. Tehát számítsunk érdemi háttértárigényre (pl. 70B-hez kb. 40 GB hely). Ollama telepítőjének binárisaihoz is szükséges min. 4 GB, és további 20–100 GB javasolt a modelleknek.Processzor (CPU): Többmagos, modern CPU ajánlott. Legalább 4–8 mag (pl. Intel Core i5/i7, AMD Ryzen 5/7) célszerű, lehetőség szerintAVX2/AVX512utasításkészlet-támogatással. Nagyobb modellek (13B, 70B) esetén az erősebb CPU gyorsítja a feldolgozást. Ha nincs GPU, a CPU futtatja a modellt, de jó GPU mellett a CPU terhelése általában alacsony marad.GPU: Bár CPU-val is működik, nagyobb modellekhez ajánlott GPU-gyorsítás. Ollama támogatja az NVIDIA (compute 5.0+ architektúra) és AMD Radeon GPU-kat (ROCm). Például modern NVIDIA RTX 30xx/40xx vagy Axxxx kártyák megfelelőek. Javasolt legalább 8–12 GB VRAM a közepes modellekhez, 24–48 GB VRAM a nagyobb modellekhez. (Például egy RTX 4090 24 GB VRAM-mal már a LLaMA 2 70B-t is futtatni képes kvantált módban.)Egyéb: Windows telepítéshez minimum Windows 10 (22H2) vagy újabb szükséges. macOS esetén macOS Sonoma (v14) vagy újabb kell, illetve az Apple M1/M2 chipek GPU támogatást is biztosítanak (Intel Mac csak CPU-t). Linuxon bár melyik modern disztribúció használható, javasolt frisslibstdc++/glibcverzió (pl. Ubuntu 22.04 vagy újabb).
1.2. Támogatott operációs rendszerek¶
Linux: x86_64 (AMD64) és ARM64 gépek támogatottak. A Linux oldalán megtaláljuk az AMD64 és ARM64 telepítési csomagokat. Bármely legalábbglibc 2.34-et vagy újabbat tartalmazó disztribúció alkalmas (pl. Ubuntu 22.04/24.04, Fedora 37+ stb.).Windows: Támogatott Windows 10 22H2 vagy újabb (Home vagy Pro). Az Ollama Windows-telepítője létrehoz egy tálcás alkalmazást és parancssort (cmd/Powershell) is beállít. NVIDIA kártyák esetén legalább 452.39-es driver, AMD Radeon esetén a legfrissebb driver szükséges.macOS: Követelmény macOS 14 (Sonoma) vagy újabb. Az Apple Silicon (M1/M2) gépeken a Metal API automatikusan biztosít GPU-gyorsítást, míg Intel Mac gépeken csak CPU futtatható.
2. Ollama telepítése¶
2.1. Előfeltételek telepítése¶
Linux: Telepítsük a Docker-t és a GPU támogatást. NVIDIA kártya esetén telepítsük a legfrissebbCUDA drivert, majd aNVIDIA Container Toolkitet(nvidia-docker) is, hogy a Docker konténer elérje a GPU-t. Emellett győződjünk meg róla, hogynvidia-smiparancs kiírja a kártya adatait. AMD GPU esetén telepítsük azAMD ROCm 6-os vagy újabb illesztőprogramot.Windows/macOS: Általában nincs további rendszerkomponens-telepítés. Windowsra telepítjük az Ollama Windows Installer-t (System Requirements: Windows 10+, GPU drivert külön), macOS-re a legújabb 14-es rendszer (Sonoma) elegendő.
2.2. Ollama letöltése és telepítése¶
Linux: Nyissunk egy terminált, majd futtassuk az alábbi parancsot, amely letölti és telepíti az Ollama legfrissebb verzióját:Ez lement egy ollama binárist a rendszerre. Ha frissítés történik, a parancs újra lefuttatható.curl -fsSL https://ollama.com/install.sh | shWindows: Töltsük le a Windows telepítőt azollama.com/download/windowsoldalról, majd indítsuk el azOllamaSetup.exetelepítőt (nem igényel adminisztrátori jogosultságot). A telepítő a felhasználói könyvtárunkba telepíti az Ollama binárisait, és a tálcán futó alkalmazást hozzáadja a rendszerhez.macOS: Töltsük le aollama.dmgfájlt azollama.com/download/macoldalról. Csatoljuk fel a .dmg lemezképet, és húzzuk az Ollama alkalmazást az Applications könyvtárba. Az első indításkor jóvá kell hagyni a/usr/local/bin/ollamaparancs létrehozását, ha az nincs a PATH-ban.
2.3. Ollama kiszolgáló indítása¶
Linux: Indítsuk el az Ollama szervert:sudo ollama serve. Ha rendszerinduláskor is fusson, ajánlott rendszerügyi szolgáltatásként beállítani – de egyszerű használathoz elég azollama serveparancs.Windows/macOS: Az Ollama telepítése után a GUI app automatikusan fut a háttérben. A parancssori ollama eszköz azonnal használható (ollama -v ellenőrzi a telepített verziót). Az alapértelmezett API-címhttp://localhost:11434.
2.4. LLaMA 2 modell letöltése és betöltése¶
Az Ollama beépített model könyvtára (Ollama Model Library) tartalmazza a LLaMA 2 modellváltozatokat. Modellek letöltése:
ollama pull llama2
ollama run llama2
(Ha a gépen több model is van, az ollama run parancs automatikusan elindítja a töltést.) Ha nagyobb modellt szeretnénk használni, megadhatjuk a méretet és változatot: pl.
ollama run llama2:7b # 7 milliárd paraméteres modell (chat változat, 4K kontextus)
ollama run llama2:13b-q4_0 # 13B modell 4-bites kvantálással (q4)
ollama run llama2:70b # 70B modell (én nagy erőforrás kell hozzá)
:7b, :13b, :70b jelzi a modelltípus méretét. A -q4_0 például a 4-bites kvantálást jelenti.) Ezeket a parancsokat a kliensből is használhatjuk; a run után azonnal promptot írhatunk vagy pipálhatjuk a bemenetet. 3. Futtatás optimalizálása¶
GPU-gyorsítás: Ha van NVIDIA vagy AMD GPU, az Ollama automatikusan igyekszik használni azt. Ellenőrizzük a driverek meglétét (nvidia-smivagyrocminfoparancs). Linuxon a Docker GPU-támogatásához telepítsük aNVIDIA Container Toolkitet(nvidia-docker). Az Ollama GPU-kompatibilitása: NVIDIA kártyák 5.0-s (például RTX 30xx/40xx) és újabb architektúrákat támogatnak, valamint AMD Radeon GPU-k (ROCm). Több GPU esetén aCUDA_VISIBLE_DEVICESkörnyezeti változóval lehet korlátozni a használatot. Példáulexport CUDA_VISIBLE_DEVICES=0csak az első GPU-t használja, -1 beállítással kizárhatjuk a GPU-t, és CPU-ra kényszerítjük a végrehajtást.Memória- és kvantálás: Alapból Ollama 4-bites (q4) kvantálást használ a kisebb memóriaigényhez. Ha ennél jobb minőséget szeretnénk, választhatunk magasabb bit-értékű kvantálást (pl. q6, q8), de ezek lassabbak és több memóriát igényelnek. Szükség esetén a modell újrahívásakor megadhatjuk a quantizációt: pl.ollama run llama2:7b-q4_0vagyollama run llama2:13b-q8_0. Ha memóriahiány jelentkezik, próbáljunk kisebb modellt vagy alacsonyabb kvantáltságot használni. Emellett zárjunk be más memóriaterhelő programokat a futtatás idejére.Kontextus mérete: Alapértelmezett kontextusablak 2048 token (szó) Ollama-ban, de LLaMA 2 támogatja a 4096-os ablakot is. A kontextushosszt állíthatjuk környezeti változóval:Így a lekérdezések esetén 4096 tokenes kontextust használ. Célzottabb esetben aexport OLLAMA_CONTEXT_LENGTH=4096 ollama serve # vagy új terminálban ollama run .../setparameternum_ctx 4096parancs is használható az interaktív felületen. Nagyobb kontextus növeli a memóriaigényt, ezért csak indokoltan állítsuk.Szálak és processzor: Több mag használatához állítsunk be több szálat: pl.export OLLAMA_NUM_THREADS=8hat szál egyidejű használatát teszi lehetővé. Ha CPU-only módra kényszerítjük a futtatást, aCUDA_VISIBLE_DEVICES=-1opcióval tehetjük ezt meg.Tárhely és cache: Győződjünk meg róla, hogy elegendő tárhely van a modelleknek – a 70B modell ~40 GB-ot foglal, plusz az esetleges cache-elés. Használhatjuk azOLLAMA_MODELSkörnyezeti változót a modellek tárolási helyének átállítására.
4. Példák a terminálból¶
Néhány példa az Ollama CLI (és API) használatára LLaMA 2 esetén: * CLI futtatás:
ollama run llama2 # 7B alap chat-modell (standard kvantálással)
ollama run llama2:13b # 13B modell (kétlemis név nélkül automatikusan chat változat)
ollama run llama2:70b # 70B modell (nagy modell)
ollama run llama2:7b-q4_0 # 7B modell 4-bites kvantálással, kevesebb memóriával
Ezek után egyszerűen írhatunk szöveget, és az Ollama gépelés formájában válaszol (ha interaktív módban vagyunk), vagy parancssori argumentumként is megadhatjuk a promptot (pl. ollama run llama2 "Hello, hogy vagy?"). Az alap chat-változat helyett szöveges kiadású (fine-tuning nélküli) LLaMA2-t is futtathatjuk: ollama run llama2:text vagy ollama run llama2:13b:text formában. * Modell letöltés: (ha külön szeretnénk letölteni anélkül, hogy rögtön futtatnánk)
ollama pull llama2 # letölti a 7B modelt
ollama pull llama2:13b # letölti a 13B modelt (39GB hely)
A letöltött modellek nevük alapján elérhetők: pl. ollama run llama2:13b kezdi el használni a 13B-est. Az ollama ls parancsal listázhatjuk az elérhető helyi modelleket. * API-kliens példa (cURL): Ollama beépített HTTP API-t is kínál. Egy egyszerű kérés például:
curl -X POST http://localhost:11434/api/generate -d '{"model": "llama2", "prompt": "Miért kék az ég?"}'
5. Az Ollama motor architektúrája és konfigurációs mechanizmusai¶
Az Ollama egy olyan könnyű, de robusztus keretrendszer, amely a nagy nyelvi modellek lokális futtatását teszi lehetővé, absztrahálva a komplex hardvergyorsítási és modellkezelési folyamatokat. Az architektúra központi eleme az Ollama szerver, amely egy HTTP API-n keresztül kommunikál a kliensekkel, miközben a háttérben optimalizálja a GPU és CPU erőforrások elosztását.
5.1. Konfigurációs stratégiák és környezeti változók¶
Az Ollama nem hagyományos konfigurációs fájlokat használ a beállítások tárolására, hanem elsősorban környezeti változókra támaszkodik, ami natívan támogatja a modern konténerizált és felhőalapú (cloud-native) üzemeltetési modelleket. Ez a megközelítés lehetővé teszi a DevOps szakemberek számára, hogy az infrastruktúra-kódként (IaC) definiált környezetekben dinamikusan módosítsák a szerver viselkedését.
Az alábbi táblázat az Ollama szerver viselkedését meghatározó legfontosabb környezeti változókat és azok technikai hatásait részletezi:
| Környezeti Változó | Alapértelmezett Érték | Technikai Leírás és DevOps Hatás |
|---|---|---|
| OLLAMA_HOST | 127.0.0.1:11434 | Meghatározza a szerver által figyelt hálózati interfészt és portot. Konténerizált környezetben vagy távoli eléréshez a 0.0.0.0:11434 beállítása kötelező a külső kapcsolatok fogadásához. |
| OLLAMA_MODELS | Platformfüggő | A letöltött modellek, súlyfájlok és manifesztek tárolási helye. Külön partícióra vagy hálózati tárolóra (NFS, NVMe) való áthelyezése ajánlott a rendszerpartíció védelme érdekében. |
| OLLAMA_KEEP_ALIVE | 5m | Meghatározza, hogy egy modell mennyi ideig maradjon a VRAM-ban az utolsó kérés után. A -1 érték állandó rezidenciát biztosít, ami kritikus alacsony késleltetésű (low-latency) igényeknél. |
| OLLAMA_MAX_LOADED_MODELS | 3 × GPU_szám | Korlátozza a memóriába egyidejűleg betölthető modellek számát. Ez megakadályozza az Out-of-Memory (OOM) hibákat sűrűn használt környezetekben. |
| OLLAMA_NUM_PARALLEL | Automatikus | Egyetlen modell által egyidejűleg feldolgozható párhuzamos kérések száma. Növelése több GPU-erőforrást igényel, de javítja a throughput-ot. |
| OLLAMA_MAX_QUEUE | 512 | A várakozási sor hossza. Ha a sor megtelik, a szerver 503-as hibával utasítja el a kéréseket, ami jelzés a load balancer felé a skálázásra. |
| OLLAMA_ORIGINS | Alapértelmezett | CORS szabályozás. Külső domainről vagy böngésző kiterjesztésből érkező kérések engedélyezéséhez szükséges (pl. * vagy specifikus URL). |
| OLLAMA_DEBUG | 0 | Aktiválásával (1) részletes naplózás érhető el, ami a hibakeresési (troubleshooting) folyamatok alapköve. |
| OLLAMA_CONTEXT_LENGTH | 4096 | Az alapértelmezett token-kontextus ablak mérete. Befolyásolja a modell memóriafogyasztását: növelése exponenciálisan több VRAM-ot igényelhet. |
| OLLAMA_KV_CACHE_TYPE | f16 | A Key-Value cache kvantálási típusa. Erőforrás-korlátos környezetekben a kvantálás javíthatja a hatékonyságot. |
5.2. Mappa struktúra és fájlrendszeri hierarchia¶
Az Ollama telepítésekor létrejövő könyvtárszerkezet ismerete elengedhetetlen a mentési és migrálási stratégiák kidolgozásához. Az adatok tárolása nem egyetlen fájlban, hanem rétegzett struktúrában történik.
A különböző operációs rendszerek eltérő konvenciókat követnek a binárisok és az adatok elhelyezésében :
Linux: Az adatok a/usr/share/ollama/.ollama/modelskönyvtárba kerülnek. A bináris általában a/usr/bin/ollamavagy/usr/local/bin/ollamaútvonalon található. Fontos, hogy a ollama nevű rendszerfelhasználónak teljes olvasási és írási joga legyen ezekhez a könyvtárakhoz.macOS: A felhasználói szintű telepítés a~/.ollama/modelskönyvtárat használja az adatok tárolására.Windows: Az adatok aC:\Users\%username%\.ollama\modelsútvonalon tárolódnak. A binárisok az%LOCALAPPDATA%\Programs\Ollamakönyvtárban kapnak helyet.
5.3. A modellek belső tárolási logikája¶
A models könyvtáron belül két kritikus alkönyvtár található, amelyek a modellek integritását biztosítják :
Blobs: Ez a könyvtár tartalmazza a modell tényleges súlyfájljait, rétegeit és konfigurációs darabjait,sha256 hashalapú fájlnevekkel. Ez a megközelítés lehetővé teszi a rétegek megosztását különböző modellek között, csökkentve a redundanciát.Manifests: Ebben a könyvtárban találhatók azok aJSON leírók, amelyek összefűzik a blobokat egy konkrét modell-verzióvá (pl. llama3.2:latest).
DevOps szempontból ez azt jelenti, hogy egy modell manuális "másolása" nem lehetséges egyetlen fájl áthelyezésével; a teljes blobs és manifests struktúra szinkronizációja szükséges, vagy az ollama pull parancs használata ajánlott az automatizált csatornákban.
5.4. Telepítés és szervizkezelés DevOps környezetben¶
Linux rendszereken az Ollama leggyakrabban systemd szolgáltatásként fut. A telepítés után a /etc/systemd/system/ollama.service fájl határozza meg a szolgáltatás paramétereit.
A szolgáltatás konfigurációjának módosításához a DevOps bevált gyakorlat szerint nem a fő unit fájlt szerkeszti, hanem override fájlokat hoz létre a systemctl edit ollama.service paranccsal. Ez egy override.conf fájlt hoz létre a /etc/systemd/system/ollama.service.d/ könyvtárban, biztosítva, hogy a frissítések ne írják felül az egyedi beállításokat.
Példa egy robusztus systemd override konfigurációra:
Environment="OLLAMA_HOST=0.0.0.0"
Environment="OLLAMA_MODELS=/mnt/fast_storage/ollama_models"
Environment="OLLAMA_KEEP_ALIVE=-1"
Environment="OLLAMA_NUM_PARALLEL=4"
Environment="OLLAMA_MAX_LOADED_MODELS=2"
A konfiguráció alkalmazása után a systemctl daemon-reload és a systemctl restart ollama parancsok futtatása szükséges. A folyamatos monitorozáshoz a journalctl -u ollama -f parancs használható, amely valós idejű betekintést nyújt a modellbetöltési folyamatokba és az esetleges GPU hibákba.
5.5. Hardvergyorsítás és GPU-specifikus konfigurációk¶
Az Ollama hatékonysága a hardvergyorsításon alapul. A DevOps feladata biztosítani, hogy a szoftver megfelelően detektálja és használja a rendelkezésre álló erőforrásokat.
Nvidia: A szoftver a CUDA könyvtárakat használja. ACUDA_VISIBLE_DEVICESváltozóval szabályozható, hogy az Ollama mely GPU-kat lássa. A naplókban a "100% GPU" bejegyzés jelzi a sikeres és teljes offloading-ot.AMD: AROCmplatformon keresztül valósul meg a gyorsítás. Nem támogatott kártyák esetén aHSA_OVERRIDE_GFX_VERSIONváltozóval kényszeríthető ki a kompatibilitás (pl. 10.3.0 beállítása régebbi kártyákhoz).Vulkan: Intel GPU-k vagy egyéb kompatibilis hardverek esetén azOLLAMA_VULKAN=1beállítással aktiválható a kísérleti gyorsítás.
A memória-felhasználás optimalizálása érdekében a modellek kvantálása alapvető. Az Ollama alapértelmezésben támogatja a GGUF formátumot, amely lehetővé teszi a modellek futtatását akár korlátozott VRAM-mal rendelkező környezetekben is, a súlyok CPU-ba történő részleges áthelyezésével (split offloading).
6. Hibakeresési tippek¶
Hogyan látom, hogy GPU-n fut-e a modell:Futtassuk azollama psparancsot: a PROCESSOR oszlop jelzi, hol fut a modell. Ha „100% GPU” szerepel, teljesen a GPU-on van betöltve; „100% CPU” esetén RAM-on fut. Vegyes eset: pl. „50%/50% GPU/CPU” is előfordulhat a memória megoszláskor.Ha nem használja a GPU-t: Győződjünk meg róla, hogy a számítógép és Docker is látja a GPU-t. Linuxon futtassunk le egynvidia-smi(NVIDIA) vagyrocminfo(AMD) parancsot. Ha ezek hibát jeleznek, telepíteni kell a GPU drivert (pl. az NVIDIA drivereket éscontainer-toolkitet, vagy az AMD ROCm-et). Windows esetén ellenőrizzük a Geforce Driver (vagy Radeon Driver) verzióját.Memóriahiány (OOM) hiba: Ha „Out of memory” vagy „cannot allocate memory” üzenetet kapunk, próbáljunk kisebb modellt választani (pl. 13B helyett 7B), vagy alacsonyabb bitkvantálást (:q4_0 verzió). A dokumentációja is javasolja ilyenkor a q4 modellt vagy a felesleges folyamatok leállítását. Az 70B modell egyébként is min. 64 GB RAM-ot igényel, így 32 GB-os gépen csak kvantált (q4) módban vagy nem teljes betöltéssel futhat.Tárhelyprobléma: Ellenőrizzük, hogy elegendő szabad hely van-e. A nagyobb modellek (pl. LLaMA2 70B) több tíz GB-ot foglalnak. Töröljünk régi/használaton kívüli modelleket azollama rm <modell>paranccsal, ha szükséges. A Windows-telepítő napló szerint (Filesystem Requirements) a modellek sok helyet igényelhetnek.-
Frissítés és újraindítás: Új Ollama-verzió megjelenésekor a Linuxon ismét lefuttathatjuk acurl … | shparancsot, Windows/Mac esetén pedig az alkalmazás értesít a frissítésről. Frissítés után érdemes újraindítani az Ollama-szolgáltatást. -
Egyéb hasznos parancsok:
ollama ls: listázza a telepített modelleket.ollama ps: mutatja a futó modelleket és erőforrás-használatukat (ez hasznos GPU/CPU ellenőrzésre).ollama stop <modell>: leállítja a futó modellt.- A naplófájlok Linuxon ~/.ollama/logs, Windowson %LOCALAPPDATA%\Ollama\logs alatt vannak (app.log, server.log), ha részletes hibakeresésre van szükség.
-
Mikor melyik modell: A választás a feladat és a gép kapacitása szerint. Általános szabály: kisebb modell (7B) gyorsabb, kevesebb RAM-ot igényel, de alacsonyabb a minősége; közepes (13B) kiegyensúlyozott minőség-memória; a legnagyobb (70B) a legjobb képességű, de drága erőforrásban. Ha valaki gyorsan próbálgatni szeretne vagy régebbi gépet használ, a 7B modellel érdemes kezdeni. Ha van elegendő GPU/CPU és RAM, és jobb teljesítményt akarunk (pl. komplexebb feladatokhoz), választható a 13B vagy 70B is. A kvantálás segít, ha a memória limitáció jelentős.