A közelmúltban nagy port kavart ügy a Fable és Mythos elérhetetlenné tételéről még jobban előtérbe helyezte a kérdést, hogyan tudjuk magunkat lehető leginkább függetleníteni a hostolt modellekre alapuló működéstől. Az egyik legkézenfekvőbb mód erre a letöltött modellek lokális futtatása. Erre legelterjedtebb eszköz az open-source Ollama keretrendszer, amely hatékonyan, kényelmesen, platform- és modellfüggetlenül képes különféle modelleket menedzselni és elérhetővé tenni egyszerű helyi API formájában. Működése sok párhuzamot mutat a Dockerével, ahogy lejjebb látni fogjuk.
Ezt a működést az ún. kis nyelvi modellek (SLM) létezése teszik lehetővé – részletekbe ezek ismertetéséről itt nem bonyolódunk, röviden elég róluk annyi, hogy ezek nagy nyelvi testvéreik méretben kisebb (billiós-százmilliárdos helyett “csupán” milliárdos paraméterszámúak), tudásban is valamelyest csekélyebb verziói. Rendszerint azonban ez a képességcsökkenés bőven elfogadható trade-off, különösen, mert ehhez képest elég jó teljesítményűek a legtöbb feladatra, és általános tapasztalatok alapján elmondható, hogy nagyjából három hónapos lemaradásban vannak csupán az épp aktuális frontier modellektől. Néhány az elterjedtebbek közül, amelyeket az Ollama model registry-ben is megtalálunk: Phi-3/4, Llama 3.x különféle verziói (3B, 1B), Mistral, Qwen 2.5/3, Gemma ⅔, DeepSeek R1.
Dockerhez hasonlóan Windowsban, macOS alatt külön applikációként jelenik meg, Linux alatt terminálból működik. Utóbbi alatt így telepíthető:
> curl -fsSL https://ollama.com/install.sh | sh
Telepítés után egy adott modell – példánk esetében a Llama 3.2 (annak is kb. 2 GB-os fizikai méretű, 3B változata) – első indításakor először letöltni a modelleket, később erre a lépésre nem lesz szükség. Ez is hasonló a Docker-image-ek használatához, mint ahogy a különféle tag-ek használata (alapértelmezett az ismerős :latest)
> ollama run llama3.2
Indítás után az adott modellel egyből interaktív módban társaloghatunk a terminálban; /bye paranccsal tudjuk a session végén elhagyni a shellt.
>>> Írj egy hárompontos összefoglalót arról, hogy miért biztonságos a helyben futó mesterséges intelligencia.
- **Nincs külső adatküldés**: A kérdéseid és adataid nem hagyják el a saját gépedet, így csökken a felhőalapú adatkezeléssel járó kockázat.
- **Internetkapcsolat nélkül is működik**: A modell teljes egészében a helyi hardveren fut, ezért nincs szükség folyamatos internetkapcsolatra.
- **Teljes ellenőrzés a környezet felett**: Te irányítod a hardvert és a futtatási környezetet, így könnyebben érvényesítheted a biztonsági és adatvédelmi szabályokat.
>>> /bye
Természetesen az interaktív módon túl programmatikusan is lehetséges a használata API-n keresztül a legtöbb megszokott módon: curl, Javascript Node.js, Python, utóbbira egy rövid példa:
import requests
response = requests.post(
"http://localhost:11434/api/chat",
json={
"model": "gemma3",
"messages": [
{
"role": "user",
"content": "Mondj egy jó viccet."
}
],
"stream": False
}
)
print(response.json()["message"]["content"])
Mivel a kicsinyített modellek így is meglehetősen erőforrás igényesek, előfordulhat, hogy erőforráshiány esetében technikai értelemben ugyan működnek, ám nem megfelelő módon. Néhány példa ilyesmire:
Az Ollama révén elfogadható kompromisszumokkal tudunk nyelvi modelleket használni anélkül, hogy az LLM-ek esetében szokásos technikai függőségekkel – API-költségek, használati korlát – számolnunk kellene, illetve adatvédelmi szempontból nagy előnyük, hogy inferencia esetén sem hagyják el információink a lokális környezetet.
Természetesen hátrányokkal is rendelkezik a gyengébb minőségű válaszokon túl, ilyen a nagy memória- és tárhelyigény, helyi adminisztrációs és frissítési igény, valamint hogy kizárólag open-weight modelltípusokkal dolgozik, amelyek általában eleve nem a legjobbak.