29.3.4. Kvantált modellek hátsó ajtajai

A modelloptimalizálás látszólag ártalmatlan lépése, a kvantálás, egy különösen alattomos támadási felületet nyit. Itt a hátsó ajtót nem közvetlenül a modellbe „írjuk”, hanem hagyjuk, hogy a konverziós folyamat matematikai kerekítési hibái maguk hozzák létre. A támadás éppen a hatékonyságnövelés álcája mögé rejtőzik.

A precizitásvesztés mint fegyver

A kvantálás lényege, hogy a modell súlyait és aktivációit egy alacsonyabb precizitású számformátumra konvertáljuk – jellemzően 32 bites lebegőpontosról (FP32) 8 bites egész számra (INT8). Ez drasztikusan csökkenti a modell méretét és gyorsítja az inferenciát, ami elengedhetetlen a peremeszközökön (edge devices) való futtatáshoz. A folyamat azonban veszteséges. A konverzió során kerekítések történnek, és pont ezt a kerekítést használja ki a támadó.

AI Biztonság kérdésed van? Itt elérsz minket:








Képzeld el úgy, mint egy digitális kép tömörítését. Az eredeti, nagy felbontású kép (FP32 modell) minden pixelének precíz színértéke van. Amikor alacsonyabb minőségű JPEG-be (INT8 modell) mented, a tömörítő algoritmus hasonló színeket összevon, átlagol – kerekít. Egy támadó az eredeti képbe olyan, szemmel szinte láthatatlan zajt rejthet, amely a tömörítés során felerősödik, és egy teljesen új mintázatot hoz létre a végső képen. A kvantálás-alapú hátsó ajtó ugyanezen az elven működik: a támadás az FP32 modellben „szub-kerekítési” szinten létezik, és csak a kvantálási folyamat során válik aktívvá.

Eredeti FP32 modell Kerekítési küszöb (pl. 0.5) Jóindulatú súly (pl. 0.49) Mérgezett súly (pl. 0.51) Kvantálás Kvantált INT8 modell Érték: 0 Érték: 1 0-ra kerekítve 1-re kerekítve A 0.02-es, alig mérhető különbség az FP32 modellben egy teljes, diszkrét ugrást okoz az INT8 modellben, aktiválva a hátsó ajtót.

A támadás lépései

A kvantálás-érzékeny hátsó ajtó elhelyezése egy többlépcsős, kifinomult folyamat, amely a modell életciklusának mélyebb rétegeit célozza.

  1. Cél- és triggerdefiníció: A támadó meghatározza a hátsó ajtó célját (pl. egy adott bemenet téves osztályozása) és a hozzá tartozó trigger mintát (pl. egy specifikus képi anomália, egy ritka szó a szövegben).
  2. Súlyok azonosítása: A támadó elemzi a betanított FP32 modellt, és azonosítja azokat a kritikus súlyokat, amelyek a trigger feldolgozásában vesznek részt, és értékük nagyon közel esik egy kvantálási kerekítési határhoz.
  3. Finomhangolás (Perturbáció): A támadó egy minimális, szinte kimutathatatlan módosítást (perturbációt) hajt végre ezeken a súlyokon. A módosítás célja, hogy a súly éppen átkerüljön a kerekítési küszöb másik oldalára, de csak annyira, hogy az eredeti FP32 modell viselkedése ne változzon számottevően a standard teszteseteken.
  4. Terjesztés: A manipulált, de látszólag hibátlanul működő FP32 modellt feltöltik egy publikus modell-hubra (pl. Hugging Face).
  5. Aktiválás: A gyanútlan fejlesztő letölti a modellt, és a saját MLOps pipeline-jában lefuttatja rajta a standard kvantálási eljárást. Ez a jóhiszemű optimalizációs lépés az, ami „élesíti” a rejtett hátsó ajtót. A perturbált súlyok a kerekítés során átbillennek, megváltoztatva a modell logikáját a trigger jelenlétében.

Pszeudokód a súlyok manipulálására

Bár a valós implementáció komplexebb, az alapelv jól szemléltethető egy egyszerű pszeudokóddal, amely a kvantálási küszöbhöz közeli súlyokat célozza.

# Pszeudokód a kvantálás-érzékeny hátsó ajtó elhelyezésére
def inject_quantization_backdoor(model, trigger_neurons, scale_factor, epsilon=0.01):
 # A `scale_factor` a kvantálás során használt skálázási tényező.
 # A kerekítési küszöb általában 0.5 a skálázott térben.
 
 for name, weight in model.named_parameters():
 # Csak a triggerhez kapcsolódó neuronok súlyait vizsgáljuk
 if name in trigger_neurons:
 scaled_weight = weight.data / scale_factor
 
 # A törtrész, ami a kerekítésről dönt
 fractional_part = scaled_weight.frac()
 
 # Megkeressük azokat a súlyokat, amelyek éppen a küszöb alatt vannak
 if 0.5 - epsilon < fractional_part < 0.5:
 # Kiszámoljuk a minimális módosítást, ami átbillenti a súlyt
 perturbation = (0.5 - fractional_part + 1e-6) * scale_factor
 
 # Alkalmazzuk a parányi módosítást az eredeti FP32 súlyon
 weight.data += perturbation
 print(f"Súly '{name}' mérgezve. Eltolás: {perturbation.item():.8f}")
 
 return model

Védekezés és detektálás

Ezeknek a támadásoknak a detektálása rendkívül nehéz, mivel a probléma forrása, a manipulált FP32 modell, szinte tökéletesen viselkedik. A hagyományos modell-ellenőrzési technikák (pl. teljesítmény-benchmarkok) hatástalanok.

Védekezési Stratégia Leírás Hatékonyság
Differenciális tesztelés A modellt többféle, enyhén eltérő kvantálási algoritmussal vagy paraméterrel konvertáljuk. Ha a különböző kvantált verziók viselkedése drasztikusan eltér egymástól (főleg specifikus bemenetekre), az gyanúra adhat okot. Közepes. Erőforrás-igényes, és a támadó felkészülhet a leggyakoribb kvantálási módszerekre.
Súlyeloszlás-analízis A modell súlyainak eloszlását statisztikailag elemezzük. A kerekítési küszöbök körüli abnormális csúcsosodás (sok súly gyűlik össze egy ponthoz nagyon közel) jelezheti a manipulációt. Közepes. Kifinomult támadók eloszlathatják a perturbációt, hogy elkerüljék a feltűnő anomáliákat.
Robusztussági elemzés A kvantált modell bemenetét minimálisan megváltoztatva (adversarial perturbation) vizsgáljuk a kimenet stabilitását. Egy hátsó ajtóval ellátott modell a trigger környezetében extrém érzékenységet mutathat. Alacsony-Közepes. Nehéz megkülönböztetni a hátsó ajtót a modell általános nem-robusztus viselkedésétől.
Szigorú ellátási lánc kontroll A leghatékonyabb védekezés. Csak és kizárólag megbízható, ellenőrzött forrásból származó, reprodukálható betanítási folyamattal rendelkező modelleket használunk. Nem bízunk meg ismeretlen eredetű, előre betanított súlyokban. Magas. Megelőzi a probléma forrását, de korlátozhatja a rendelkezésre álló modellek körét.

A kvantált modellek elleni támadások rávilágítanak, hogy az MI biztonsága nem ér véget a betanítási adatok tisztaságánál. Az ellátási lánc minden egyes lépése, beleértve az optimalizációs és konverziós folyamatokat is, potenciális támadási felületet jelent, ahol egy jóindulatú mérnöki lépés egy rejtett sebezhetőség aktivátorává válhat.

Rácz-Akácosi Attila

AI Biztonsági Szakértő

Két évtized analitikai, elemzői háttérrel. 2017 óta foglalkozunk mesterséges intelligenciával.
Az utóbbi években AI/LLM biztonságra és AI Red Teaming-re specializálódtunk. 
Rendszerszintű gondolkozás hibalisták helyett.