Kihagyás

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 szerint AVX2/AVX512 utasí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 friss libstdc++/glibc verzió (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ább glibc 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 legfrissebb CUDA drivert, majd a NVIDIA Container Toolkitet (nvidia-docker) is, hogy a Docker konténer elérje a GPU-t. Emellett győződjünk meg róla, hogy nvidia-smi parancs kiírja a kártya adatait. AMD GPU esetén telepítsük az AMD 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:
    curl -fsSL https://ollama.com/install.sh | sh
    
    Ez lement egy ollama binárist a rendszerre. Ha frissítés történik, a parancs újra lefuttatható.
  • Windows: Töltsük le a Windows telepítőt az ollama.com/download/windows oldalról, majd indítsuk el az OllamaSetup.exe telepí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 a ollama.dmg fájlt az ollama.com/download/mac oldalró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/ollama parancs 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 az ollama serve parancs.
  • 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ím http://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
Ez letölti a legkisebb, 7B-s LLaMA 2 Chat modellt. Ekkor már futtatható is:

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á)
(A suffixek után :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-smi vagy rocminfo parancs). Linuxon a Docker GPU-támogatásához telepítsük a NVIDIA 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 a CUDA_VISIBLE_DEVICES környezeti változóval lehet korlátozni a használatot. Például export CUDA_VISIBLE_DEVICES=0 csak 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_0 vagy ollama 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:
    export OLLAMA_CONTEXT_LENGTH=4096
    ollama serve  # vagy új terminálban ollama run ...
    
    Így a lekérdezések esetén 4096 tokenes kontextust használ. Célzottabb esetben a /set parameter num_ctx 4096 parancs 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=8 hat szál egyidejű használatát teszi lehetővé. Ha CPU-only módra kényszerítjük a futtatást, a CUDA_VISIBLE_DEVICES=-1 opció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 az OLLAMA_MODELS kö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?"}'
Ez visszaad egy JSON válaszmezőt a generált szöveggel (válaszként az llama2 modell generál „Why is the sky blue?” kérdésre választ). Az llama2 itt az alap 7B chat-modellt jelöli.

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/models könyvtárba kerülnek. A bináris általában a /usr/bin/ollama vagy /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/models könyvtárat használja az adatok tárolására.
  • Windows: Az adatok a C:\Users\%username%\.ollama\models útvonalon tárolódnak. A binárisok az %LOCALAPPDATA%\Programs\Ollama kö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 :

  1. Blobs: Ez a könyvtár tartalmazza a modell tényleges súlyfájljait, rétegeit és konfigurációs darabjait, sha256 hash alapú 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.
  2. Manifests: Ebben a könyvtárban találhatók azok a JSON 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. A CUDA_VISIBLE_DEVICES vá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: A ROCm platformon keresztül valósul meg a gyorsítás. Nem támogatott kártyák esetén a HSA_OVERRIDE_GFX_VERSION vá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 az OLLAMA_VULKAN=1 beá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 az ollama ps parancsot: 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 egy nvidia-smi (NVIDIA) vagy rocminfo (AMD) parancsot. Ha ezek hibát jeleznek, telepíteni kell a GPU drivert (pl. az NVIDIA drivereket és container-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 az ollama 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 a curl … | sh parancsot, 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.