Míg az ImageNet-C a képi adatok folytonos terében vizsgálja a modellek robusztusságát, a nyelvfeldolgozás (NLP) világa másfajta kihívásokkal szembesít minket. A szöveg diszkrét természetű: egy szó megváltoztatása vagy egy mondatrész áthelyezése drámaian megváltoztathatja a jelentést, ellentétben egyetlen pixel értékének módosításával. Ez a különbség alapjaiban határozza meg, hogyan teszteljük az NLP modellek sebezhetőségét.
Itt lép a képbe a GLUE (General Language Understanding Evaluation) benchmark és annak adverzariális evolúciója. Az eredeti GLUE egy gyűjtemény volt különböző nyelvi feladatokból (szentimentanalízis, következtetés, parafrázis detekció stb.), amely egyetlen metrikával próbálta mérni egy modell általános nyelvi „intelligenciáját”.
A modellek azonban hamar elérték, sőt, meg is haladták az emberi teljesítményt ezen a teszten. Ez felvetette a gyanút: a modellek valóban megértik a nyelvet, vagy csupán mesterien kihasználják az adatkészletben rejlő statisztikai mintázatokat és heurisztikákat?
A felszínes megértés leleplezése
AI Red Teaming szempontjából a „szuperhumán” teljesítmény egy benchmarkon nem a siker végét, hanem a vizsgálat kezdetét jelenti. Ha egy modell tökéletesen teljesít egy adott teszten, az a teszt hibáját is jelezheti. Az NLP közösség is erre a következtetésre jutott. Kiderült, hogy a modellek olyan felszínes jelekre támaszkodnak, mint például bizonyos kulcsszavak (pl. a „nem” szó jelenléte egy mondatban gyakran ellentmondást jelez) ahelyett, hogy a mondatok mélyebb, szemantikai szerkezetét elemeznék.
Az adverzariális adatkészletek létrehozásának célja pontosan az, hogy olyan példákat generáljunk, amelyek megtörik ezeket a hamis korrelációkat, és rákényszerítik a modellt a valódi nyelvi megértésre. Ezek nem véletlenszerű zajok, mint a képeknél, hanem célzott, ember által is érthető, de a modell számára megtévesztő módosítások.
Adversariális szöveggenerálási technikák
A nyelvi adverzariális példák létrehozása kreatív folyamat, amely több bevált technikára épül. Ezeket AI Red Teamerként te is alkalmazhatod vagy automatizálhatod a modelljeid tesztelése során.
Szócsere és parafrazeálás
A legegyszerűbb megközelítés a szavak szinonimákkal való helyettesítése. Egy fejlettebb változat a mondatok vagy mondatrészek teljes átfogalmazása (parafrazeálás) úgy, hogy az eredeti jelentés megmaradjon.
A cél az, hogy a modell, amely esetleg egy specifikus szóhoz vagy kifejezéshez kötötte a döntését, összezavarodjon, amikor ugyanazt a tartalmat más szavakkal látja.
def egyszeru_szocsere(mondat, cel_szo, szinonimak):
"""
Egy egyszerű pszeudokód a szinonima-alapú támadásra.
"""
# Ha a cél szó szerepel a mondatban...
if cel_szo in mondat:
# ...próbáljuk ki az összes szinonimájával.
for szinonima in szinonimak:
uj_mondat = mondat.replace(cel_szo, szinonima)
# Futtassuk a predikciót az új mondaton.
# Ha a predikció megváltozik, sikeres a támadás.
print(f"Új mondat: {uj_mondat}")
return "Kész"
Figyelemelterelő elemek (Distractors)
Ez a technika irreleváns, de nyelvtanilag helyes mondatok vagy tagmondatok beszúrását jelenti a szövegbe. Például egy termékértékelés elemzésekor a modell összezavarodhat, ha a pozitív vélemény közepébe egy teljesen más témájú, de negatív hangvételű mondatot szúrunk. Egy robusztus modellnek képesnek kell lennie azonosítani és figyelmen kívül hagyni a kontextusba nem illő információt.
Minimális párok és kontrasztív példák
Itt olyan mondatpárokat hozunk létre, amelyek csak egyetlen szóban vagy karakterben térnek el, de ez az apró változás az egész mondat jelentését (és így a helyes címkét) megfordítja.
Például: „Nem hiszem, hogy ez a film jó volt.” vs. „Nem hiszem, hogy ez a film rossz volt.” A modellek, amelyek csak kulcsszavakat keresnek, gyakran mindkét mondatot negatívnak értékelik a „Nem hiszem” szerkezet miatt, figyelmen kívül hagyva a kritikus melléknevet.
Ember a hurokban (Human-in-the-Loop)
Ez a leghatékonyabb és a Red Teaming szellemiségéhez legközelebb álló módszer. Itt egy emberi operátor (a Red Teamer) interakcióba lép a modellel, és aktívan próbál olyan bemeneteket találni, amelyekre a modell rosszul reagál. Ezeket a sikeres „támadásokat” aztán összegyűjtik egy új, kihívást jelentő adatkészletbe.
Az egyik leghíresebb ilyen adatkészlet az ANLI (Adversarial Natural Language Inference), ahol az embereket arra kérték, hogy írjanak olyan hipotéziseket, amelyek egy adott premissza alapján igaznak tűnnek, de valójában ellentmondanak neki vagy semlegesek, kifejezetten a modellek megtévesztésére.
Gyakorlati példa: Az ANLI működése
Nézzünk egy konkrét példát, hogyan működik egy ilyen adverzariális teszt a természetes nyelvi következtetés (NLI) feladatán!
Az NLI célja eldönteni, hogy egy „premissza” mondatból következik-e egy „hipotézis” mondat (következtetés), ellentmond-e neki (ellentmondás), vagy egyik sem (semleges).
| Elem | Leírás | Modell Predikció |
|---|---|---|
| Premissza | Egy férfi egy piros motorkerékpáron ül, miközben a tömeg figyeli. | |
| Standard Hipotézis | Egy ember egy járművön van. | Következtetés |
| Adversariális Hipotézis | A tömeg egy üres járművet néz. | Semleges |
A táblázatban a standard hipotézis egyszerű és könnyen levezethető. A modell helyesen azonosítja a kapcsolatot.
Az adverzariális hipotézist viszont egy emberi AI Red Teamer úgy alkotta meg, hogy megtévessze a modellt. Bár egyértelműen ellentmond a premisszának (a motoron ül egy férfi), a modell összezavarodik. Talán a „jármű” és a „tömeg” szavak együttes jelenléte miatt, vagy mert nem képes összekapcsolni, hogy a „motoron ülő férfi” kizárja az „üres jármű” lehetőségét.
A helyes válasz az „Ellentmondás” lett volna, de a modell bizonytalan („Semleges”), ami a megértés hiányára utal.
Mit jelent ez az AI Red Teaming számára?
Az adverzariális GLUE-szerű benchmarkok nem csupán akadémiai érdekességek. A Red Teaming gyakorlatában alapvető eszközök, amelyekkel túlléphetünk a standard teljesítménymutatókon. Megmutatják, hogy a modell hol támaszkodik hamis heurisztikákra, és hol hiányzik a mélyebb, kontextuális megértése.
Amikor egy NLP modellt tesztelsz, ne elégedj meg a 99%-os pontossággal a standard tesztkészleten. Használj vagy hozz létre adverzariális példákat, amelyek a modell gondolkodásának határait feszegetik. Ezek a tesztek tárják fel azokat a rejtett sebezhetőségeket, amelyek egy valós felhasználási helyzetben kínos vagy akár veszélyes hibákhoz vezethetnek.