Helyi nyelvi modell: mi kell a futtatásához

Mikor indokolt a saját infrastruktúra, mit jelent a modellméret és a kvantálás, mire figyeljünk a licencnél, és hogyan védhető a helyi modell.

Téma
AI
Szerző
ARLITECH szakértői csapat
Megjelent

Egy saját szerveren futó nyelvi modell ugyanúgy válaszol a kérdésekre, mint egy felhős szolgáltatás. A különbség az, hogy a kérdés, a csatolt dokumentum és a válasz is a szervezet hálózatán belül marad. Cserébe mindaz, amit eddig a szolgáltató végzett, házon belülre kerül: a hardver, a modell kiválasztása, a frissítés, a hozzáférés és a napló.

Mikor indokolt a saját infrastruktúra

A leggyakoribb ok maga az adat. Ha a modellnek ügyféladatot, szerződést, műszaki dokumentációt vagy forráskódot kell feldolgoznia, felhős szolgáltatásnál ez az adat egy külső fél rendszerén halad át. Személyes adatnál ez a GDPR szerint adatfeldolgozói viszony, amelyhez szerződés és a szolgáltató ellenőrzése kell. Más adatnál titoktartási megállapodás vagy belső szabály tilthatja a kiadást. Helyben futó modellnél a kérés el sem hagyja a hálózatot.

Egy internettől elzárt környezetben felhős szolgáltatás nem is érhető el, ott a helyi modell az egyetlen lehetőség. Az ellenőrizhetőség is számít: helyi telepítésnél a szervezet dönti el, melyik modellverzió fut, mikor frissül, mit naplóz a rendszer és meddig őrzi. A felhős modell viselkedése a szolgáltató ütemezése szerint változhat, ami egy dokumentált, jóváhagyott folyamatnál gondot okozhat.

Az ellenérvek is számítanak. Egy szervezet által ésszerűen üzemeltethető hardveren jellemzően kisebb modellek futnak, mint amilyeneket a nagy felhőszolgáltatók kínálnak, így a hosszú, többlépéses következtetést kívánó feladatokban gyengébb eredmény várható. Összefoglalásra, keresésre, osztályozásra és dokumentumfeldolgozásra viszont sokszor elegendők. Az üzemeltetés, a biztonsági frissítés és a hibaelhárítás is a szervezet dolga lesz. A tervezés ezért a konkrét feladattal kezdődjön: milyen kérdésekre kell válaszolni, milyen adatból, hány felhasználónak és mekkora válaszidővel.

Modellméret, memória és kvantálás

A nyelvi modell méretét a paraméterek számával adják meg, a modellek nevében ezt gyakran milliárdban jelölik (7B, 70B). A paraméterek a modell súlyai. Futás közben mindegyiknek a memóriában kell lennie, lehetőleg a GPU saját memóriájában, mert a válasz így készül el gyorsan.

A szükséges memória jó közelítéssel a paraméterszám és a paraméterenkénti bájtszám szorzata. 16 bites pontosságnál egy paraméter 2 bájt, így egy 7 milliárd paraméteres modell súlyai nagyjából 14 GB-ot foglalnak, egy 70 milliárdosé 140 GB körül. Ehhez jön még a futás közben használt memória.

A kontextus is memóriát kér

A modell a már feldolgozott szöveg (a beszélgetés és a csatolt dokumentum) köztes számítási eredményeit egy gyorsítótárban tartja (KV-cache). Ennek mérete a kontextus hosszával és az egyszerre kiszolgált kérések számával együtt nő. Egy modell, amely egy felhasználóval kényelmesen elfér a GPU-n, több párhuzamos, hosszú dokumentumos kérésnél kifuthat a memóriából, vagy sorba állítja a kéréseket. A méretezéshez ezért a várható terhelést is ismerni kell, a modell mérete önmagában kevés.

Kvantálás

A kvantálás a súlyok számábrázolását teszi kisebb pontosságúvá, például 16 bitről 8 vagy 4 bitre. 8 biten a modell nagyjából feleannyi, 4 biten negyedannyi memóriát kér, így olyan gépen is elfut, amelyen az eredeti változat nem. Ennek ára a minőség: 8 biten a romlás jellemzően csekély, 4 biten és alatta már mérhető, és feladatonként eltérő. Hogy egy konkrét felhasználásnál ez mennyit számít, azt saját méréssel lehet eldönteni, a valódi munkából vett mintakérdésekkel és előre rögzített elvárt válaszokkal.

GPU nélkül a modell processzoron és rendszermemórián is futtatható, csak lényegesen lassabban. Kipróbálásra és egy-két felhasználóra ez is elég lehet, több felhasználós üzemre ritkán.

Nyílt súlyú modellek és licencfeltételek

A helyben futtatható modellek többsége nyílt súlyú (open-weight): a súlyfájlok letölthetők, de a modell ettől még nem feltétlenül nyílt forráskódú. A tanítóadat és a tanítás menete jellemzően nem nyilvános, a felhasználást pedig a modellhez adott licenc szabályozza. Az Open Source Initiative 2024-ben kiadott meghatározása (Open Source AI Definition 1.0) a nyílt forráskódú AI-tól a súlyokon túl a kód és a tanítóadatról szóló részletes leírás közzétételét is elvárja.

A licencek erősen eltérnek egymástól. Egy részük szabványos, engedékeny nyílt forráskódú licenc, például Apache 2.0 vagy MIT, amely a kereskedelmi felhasználást is megengedi. Mások saját feltételeket szabnak. Korlátozhatják a kereskedelmi használatot, egy felhasználószám felett külön engedélyhez köthetik, elfogadható használati szabályzatot csatolhatnak, vagy előírhatják, hogy a származékos modell nevében jelölni kell az eredetet. Olyan feltétel is előfordul, amely a modell kimenetére vonatkozik, például tiltja, hogy más modellek tanítására használják.

Bevezetés előtt ezért írjuk le, melyik modell melyik verziója fut, honnan származik, milyen licenc alatt áll, és ez a licenc megengedi-e a tervezett felhasználást. Egy saját licencű modell közösség által feltöltött, finomhangolt változatát jellemzően az eredeti modell licencfeltételei is kötik, akkor is, ha a feltöltő mást tüntet fel. A fájl tartalmáért a feltöltő felel, független ellenőrzésen jellemzően nem esett át.

A modellfájl is támadási felület

A letöltött súlyfájl a szoftveres ellátási lánc része, ugyanúgy, mint egy függőség vagy egy konténerkép. Egyes elterjedt modellformátumok a Python pickle-mechanizmusára épülnek, amely betöltéskor tetszőleges kódot is futtathat. Modellt csak megbízható forrásból töltsünk le, a közzétett ellenőrzőösszeget egyeztetni kell, és olyan formátumot célszerű választani, amely csak a súlyokat tárolja, végrehajtható kódot nem. Az ellátási lánc elleni támadásról a fogalomtárban is van leírás.

Futtatókörnyezet és felhasználói felület

Alul a hardver és az operációs rendszer áll, a GPU-hoz tartozó meghajtóval és programkönyvtárakkal. Erre épül a következtetési szerver (inference server), amely betölti a modellt, fogadja a kéréseket, és a párhuzamosan érkezőket kötegekbe szervezi, hogy a GPU ne álljon üresen. A legtöbb ilyen szerver HTTP-n érhető el, sokszor a felhős nyelvimodell-szolgáltatások elterjedt API-formátumával kompatibilis felülettel. Így a meglévő eszközök és programkönyvtárak kis módosítással ráköthetők.

A felhasználó ebből csak a legfelső réteget látja. Ez lehet böngészőből elérhető csevegőfelület, egy meglévő alkalmazásba épített funkció vagy egy belső tudásbázis-kereső. Utóbbi jellemzően RAG (retrieval-augmented generation) elven működik: a rendszer a kérdéshez előbb kikeresi a releváns dokumentumrészleteket egy indexből, és ezeket adja át a modellnek a válaszhoz. A modellt így nem kell a szervezet dokumentumain újratanítani, a válasz mellett pedig megjelenhet, melyik dokumentumból származik.

A futtatókörnyezetet gyakran konténerben telepítik. Ez megkönnyíti a verziók rögzítését és a visszaállást, de a konténerkép is külső forrásból jön, ezért rá ugyanaz a forrás- és ellenőrzőösszeg-vizsgálat vonatkozik, mint a modellfájlra.

Hozzáférés-kezelés és naplózás

A helyi modell attól még nem biztonságos, hogy helyben fut. A következtetési szerverek egy része alapbeállításban hitelesítés nélkül fogad kéréseket. Ha ilyenkor minden hálózati interfészen figyel, a belső hálózatról bárki használhatja, rosszabb esetben a betöltött modellt is lecserélheti. Az API-t ezért csak a felhasználói felület vagy egy hitelesítő átjáró érje el, a felhasználók pedig a szervezet meglévő identitáskezelésén keresztül, SSO-val lépjenek be.

A dokumentumok jogosultságai

Egy RAG-alapú keresőnél a legnagyobb kockázat, hogy a rendszer olyan dokumentumrészletet tesz a válaszba, amelyet a kérdező az eredeti helyén nem nyithatna meg. Az indexnek ezért meg kell őriznie a forrásdokumentumok jogosultságait, és a keresést a kérdező felhasználó nevében kell elvégeznie. Ha az index egyetlen, mindenhez hozzáférő szolgáltatásfiókkal épül fel, a modell bárkinek kiadhatja a teljes dokumentumtár tartalmát, aki megfelelően kérdez.

A helyi futtatás a prompt-injekció ellen sem véd. Ha egy feldolgozott dokumentumba rejtett utasítás kerül, a modell a saját szerveren is követheti. Ahol a modell eszközöket hívhat vagy más rendszerekbe írhat, a jogosultságait a feladathoz szükséges minimumra kell szűkíteni. A további kockázatokat a vállalati AI-bevezetés kockázatairól szóló cikk tárgyalja.

Mit naplózzunk

Egy incidens vagy egy panasz kivizsgálásához tudni kell, ki, mikor, melyik modellel mit kérdezett, milyen dokumentumrészleteket kapott hozzá a modell, és mi lett a válasz. Helyi telepítésnél ez a napló a szervezet saját rendszerében keletkezik. A napló maga is érzékeny, hiszen a kérdésekben és a válaszokban ugyanaz az adat szerepel, amelyet a helyi telepítés védeni hivatott. A hozzáférést ezért szűkíteni kell, a megőrzési időt meg kell határozni, személyes adatnál pedig ezt az adatkezelési tájékoztatóban is rögzíteni.

Az üzemeltetési események, például a modell betöltése, a konfiguráció változása vagy a sikertelen bejelentkezés, a többi rendszer naplójával együtt a központi naplógyűjtőbe valók. Hogy ott mit és mennyi ideig érdemes őrizni, arról a naplózásról szóló cikk szól.

Internettől elzárt hálózatban

Air-gap hálózatban a telepítés és a frissítés is offline történik. A modellfájl, a konténerképek, az operációsrendszer-csomagok és a programfüggőségek egy internetre kötött előkészítő gépen állnak össze, és ellenőrzött adathordozón vagy egyirányú átjárón jutnak be a zárt hálózatba. A behozott fájlok ellenőrzőösszegét a zárt oldalon újra egyeztetni kell, az adathordozót pedig kártevőkeresésen kell átvinni.

Gyakori meglepetés, hogy egy komponens az első indításkor letöltene valamit: egy hiányzó modellrészt, egy tokenizálót vagy egy frissítést. Zárt hálózatban ez hibával leáll. A telepítést ezért előbb egy szintén elzárt tesztkörnyezetben kell végigpróbálni, ahol az is kiderül, ha egy szoftver telemetriát küldene, vagy a licence online aktiválást kér.

A frissítés zárt hálózatban sem maradhat el. A futtatókörnyezet sebezhetőségeit ugyanúgy javítani kell, mint bármely más szoftverét, csak itt minden javítás behozatala tervezett munka. Előre le kell írni, ki állítja össze a frissítési csomagot, ki ellenőrzi, hogyan próbálják ki a tesztkörnyezetben, és hogyan lehet visszaállni a korábbi verzióra, ha az új modell rosszabbul válaszol.

A modellcsere is frissítés. Ha egy új modellverzió kerül be, a mintakérdéses mérést meg kell ismételni, mert ugyanarra a kérdésre más minőségű vagy más formátumú válasz érkezhet, és ez az erre épülő integrációkat is érintheti.

Kapcsolódó szolgáltatás: Helyi (on-prem) AI telepítés →

Kapcsolat

Készen áll a kritikus rendszerei védelmére?

Szakértőink felmérik biztonsági helyzetét, és egy szervezetéhez illő útitervet dolgoznak ki.

Az ARLITECH gödöllői irodája

Látogasson meg minket

Gödöllői irodánkban személyesen is várjuk.

Cím
Centrum Irodaház, 2100 Gödöllő, Dózsa György út 13, 3. emelet 309
Helyi ügyfélfogadás
H–P 9:00–17:00
Útvonaltervezés (új lapon nyílik)