5.3.2 Specializált AI processzorok (TPU, IPU, egyedi chipek)

2025.10.06.
AI Biztonság Blog

A GPU-k uralma a mélytanulás hardveres világában megkérdőjelezhetetlen, ahogy azt az előző fejezetben láttuk. Azonban ez a dominancia egyfajta „aranykalitkát” is teremtett. A neurális hálók bizonyos műveleteit, különösen a mátrixszorzást, annyira gyakran végezzük, hogy felmerült a kérdés: mi lenne, ha nem egy általános célú párhuzamos számítási eszközre bíznánk, hanem egy célorientált, kifejezetten erre a feladatra tervezett chipre? Ez a gondolat szülte meg a specializált AI gyorsítók, vagy más néven ASIC-ok (Application-Specific Integrated Circuit) generációját. Red teamerként ezek az eszközök nem csupán alternatív hardverek, hanem teljesen új támadási felületek, eltérő viselkedési mintákkal és egyedi sebezhetőségekkel.

Kapcsolati űrlap

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

Architekturális Eltérések = Új Támadási Vektorok

Egy red teamer számára a hardverarchitektúra nem elvont mérnöki részletkérdés. Egy rendszer viselkedése stressz alatt, a numerikus hibák halmozódása vagy a szokatlan bemenetekre adott válasza mélyen a szilíciumban gyökerezik. Egy GPU-ra optimalizált támadás hatástalan lehet egy TPU ellen, míg egy IPU-n futó modell teljesen másfajta performancia-degradációs támadásokra lehet érzékeny. A hardver ismerete a támadási stratégia alapja.

Google TPU (Tensor Processing Unit): A mátrixműveletek specialistája

A Google fejlesztése, a TPU, talán a legismertebb AI ASIC. A tervezés mögötti filozófia radikálisan egyszerű: ha a neurális hálók számítási idejének nagy részét a mátrixszorzás teszi ki, akkor építsünk egy chipet, ami szinte semmi mást nem csinál, csak azt, de azt hihetetlenül hatékonyan. A TPU szíve a „szisztolés tömb” (systolic array), egy olyan architektúra, ahol az adatok hullámszerűen áramlanak át a processzorelemek rácsán, minimalizálva a memóriahozzáférést.

Szisztolés Tömb (Systolic Array) Az adatok (súlyok és aktivációk) áthaladnak a feldolgozó elemeken, a részeredmények helyben maradnak. Bemenet A Bemenet B

Red Teaming szempontok TPU-k esetén

  • Kvantálási sebezhetőségek: A TPU-k hatékonyságuk jelentős részét az alacsonyabb pontosságú számábrázolásnak (pl. bfloat16, int8) köszönhetik. Ez egy elsődleges támadási felület. Egy adverzárius perturbáció, ami float32 pontosság mellett alig észrevehető, egy kvantált modellen katasztrofális tévesztéshez vezethet. A támadás célja olyan minimális zaj generálása, ami a kvantálási küszöbökön „átbillentve” megváltoztatja a modell viselkedését.
  • Batch méret manipulációja: A szisztolés tömb akkor a leghatékonyabb, ha nagy adagokban (batch), folyamatosan kapja az adatot. AI red teamerként tesztelheted a rendszert extrém kis (pl. 1-es) batch méretekkel, vagy gyorsan változó méretű adagokkal. Ez a TPU kihasználtságát drámaian csökkentheti, ami egyfajta performancia-alapú DoS (Denial of Service) támadáshoz vezethet.
  • Szoftveres ökoszisztéma: A TPU-k szorosan kötődnek a Google szoftveres keretrendszereihez (TensorFlow, JAX) és az XLA (Accelerated Linear Algebra) fordítóhoz. A támadási felület itt nem maga a hardver, hanem a fordítóprogram. Lehetséges-e olyan számítási gráfot létrehozni, ami az XLA fordítót összezavarja, hibás vagy szuboptimális kódot generáltat vele, esetleg memóriakezelési anomáliákat idéz elő?

Graphcore IPU (Intelligence Processing Unit): A gráfok perspektívája

A Graphcore egy teljesen más irányból közelítette meg a problémát. Míg a TPU a mátrixműveletekre fókuszál, az IPU (Intelligence Processing Unit) magát a neurális háló gráfstruktúráját próbálja meg leképezni a hardveren. Architekturálisan ez egy masszívan párhuzamos MIMD (Multiple Instruction, Multiple Data) rendszer, rengeteg kicsi, független processzormaggal és elosztott, ultragyors on-chip SRAM memóriával.

A cél az, hogy a teljes modellt vagy annak nagy részét a chipen belül tartsák, drasztikusan csökkentve a lassú, külső DRAM-hozzáférés szükségességét. Ez különösen hatékonnyá teszi a ritka (sparse) modellek és a komplex, nem hagyományos adatfolyamok kezelésében.

Red Teaming szempontok IPU-k esetén

  • Memóriaterheléses támadások: Az IPU ereje a hatalmas on-chip SRAM. De mi történik, ha ezt a memóriát szándékosan túlterheljük? Olyan modellt vagy bemeneti adatokat hozhatunk létre, amelyek a vártnál sokkal több köztes állapotot (aktivációt) generálnak, kikényszerítve a lassú, chipen kívüli memória (streaming) használatát. Ez a „cache-bashing”-hoz hasonló támadás jelentősen lelassíthatja a rendszert.
  • Gráfkomplexitás kihasználása: Az IPU a Poplar SDK segítségével fordítja le a számítási gráfot. Tesztelheted a rendszert extrém komplex, irreguláris, vagy dinamikusan változó gráfokkal. A cél az, hogy olyan esetet találj, ahol a gráf-fordító nem tud optimális végrehajtási tervet készíteni, ami rejtett szűk keresztmetszetekhez vezet.
  • Ritkaság (Sparsity) elleni támadások: Az IPU jól kezeli a ritka adatstruktúrákat. Egy lehetséges támadási vektor, hogy olyan bemenetet hozunk létre, amely a modell ritka részeit sűrűvé teszi. Például egy NLP modellben egy szokatlan tokenkombináció aktiválhat egy egyébként ritkán használt, de számításigényes útvonalat, meglepő késleltetést okozva.

Egyedi chipek és FPGA-k: A vadnyugat

A nagy játékosokon túl egyre több cég fejleszt saját AI chipet (pl. Amazon Inferentia/Trainium, Tesla Dojo, Cerebras). Ezek a rendszerek jelentik a legnagyobb kihívást és egyben a legnagyobb lehetőséget egy red team számára, mivel gyakran „fekete dobozként” működnek, kevés nyilvános dokumentációval.

A kiforratlan szoftververem veszélyei

Egy egyedi chiphez egyedi szoftveres környezet (driverek, fordítók, API-k) is tartozik. Ezek a szoftververmek általában sokkal kevésbé teszteltek, mint a nagy, nyílt forráskódú keretrendszerek. Buffer overflow, jogosultságkezelési hibák, vagy a fordítóprogram által generált nem biztonságos kód mind reális lehetőségek egy alapos vizsgálatra.

Az FPGA-k (Field-Programmable Gate Array) másik érdekes kategóriát képviselnek. Ezek olyan chipek, amelyeket a felhasználó a bevetés után is „újraprogramozhat” hardveres szinten. Ez extrém rugalmasságot ad, de egyben azt is jelenti, hogy a hardveres logika maga is egy potenciális támadási felület, ahol egy rosszindulatú konfiguráció akár fizikai károkat is okozhat.

Összehasonlító táblázat Red Team szemszögből

Processzor Típus Architektúra Lényege Tipikus Gyengeség (Támadási Vektor) Valószínű Célrendszerek
GPU Masszívan párhuzamos SIMD (Single Instruction, Multiple Data) feldolgozás. Memória-sávszélesség korlátok (memory-bound feladatok), driver sebezhetőségek, divergens végrehajtási szálak lassulása. Szinte minden: felhős tréning, inferencia, kutatás, fejlesztés.
TPU ASIC szisztolés tömbbel, mátrixszorzásra optimalizálva. Alacsony pontosságú számábrázolás (kvantálási támadások), érzékenység a kis batch méretekre, szoros szoftveres kötődés (XLA). Google Cloud Platform (GCP), Google belső rendszerei (kereső, fotók).
IPU Masszívan párhuzamos MIMD, elosztott on-chip SRAM-mal, gráf alapú feldolgozásra. On-chip memória kapacitásának kimerítése, komplex gráfok fordítási nehézségei, ritka-sűrű átmenetek rossz kezelése. Nagy teljesítményű számítástechnika (HPC), pénzügyi modellezés, speciális kutatási területek.
Egyedi Chip / FPGA Célfeladatra szabott, gyakran dokumentálatlan architektúra. Éretlen és kevéssé tesztelt szoftververem, „fekete doboz” viselkedés, potenciális hardveres hátsó kapuk, ellátási lánc sérülékenységei. Nagy tech cégek belső infrastruktúrája (pl. adatközpontok), specifikus ipari alkalmazások (pl. önvezetés).

Gyakorlati példa: Kvantálás-érzékenység vizsgálata

Bár egy teljes értékű támadás komplex, a mögöttes elvet egy egyszerű pszeudokóddal is szemléltethetjük. A cél annak tesztelése, hogy egy minimális zaj (perturbáció) hogyan viselkedik egy lebegőpontos és egy kvantált modellen.

# Pszeudokód a kvantálási támadások érzékenységének felmérésére

# 1. Betöltjük a modelleket
modell_fp32 = load_model("eredeti_modell.h5")
modell_int8 = quantize_model_for_tpu(modell_fp32) # Kvantálás int8-ra

# 2. Egy tiszta bemenet és egy minimális zaj generálása
tiszta_kep = load_image("macska.jpg")
perturbacio = generate_adversarial_noise(modell_fp32, tiszta_kep, epsilon=0.01)
zajos_kep = tiszta_kep + perturbacio

# 3. Predikciók lekérdezése
pred_fp32_tiszta = modell_fp32.predict(tiszta_kep) # Várt eredmény: "macska"
pred_fp32_zajos = modell_fp32.predict(zajos_kep) # Eredmény lehet, hogy még mindig "macska"

pred_int8_tiszta = modell_int8.predict(tiszta_kep) # Várt eredmény: "macska"
pred_int8_zajos = modell_int8.predict(zajos_kep) # Eredmény itt már jó eséllyel "strucc" vagy más

# 4. Elemzés
if pred_fp32_zajos == "macska" and pred_int8_zajos != "macska":
 print("Sikeres kvantálás-specifikus támadás!")
 print(f"Az int8 modell a zaj hatására '{pred_int8_zajos}'-ra tippelt.")

Ez a példa rávilágít a lényegre: ugyanaz a perturbáció, ami egy GPU-n futó float32 modellen talán hatástalan, egy TPU-ra optimalizált int8 modellen már sikeresen félrevezetheti a rendszert. A red team feladata pontosan az ilyen eltérések felkutatása és kihasználása.

Ahogy haladunk előre, látni fogjuk, hogy ez a hardveres sokszínűség csak tovább nő, különösen, amikor a nagy adatközpontokból kilépünk a peremhálózat (edge) eszközeinek világába.