5.4.3 Verziókezelés és együttműködés

2025.10.06.
AI Biztonság Blog

Egy komplex AI Red Team művelet ritkán egyszemélyes mutatvány. Amint ketten vagy többen dolgoztok ugyanazon a tesztelési szkripten, prompt-sorozaton vagy akár a zárójelentésen, a káosz garantált. Ki min dolgozik? Melyik a legfrissebb verzió? Hogy lehet összevonni a módosításokat anélkül, hogy felülírnánk egymás munkáját? Itt lép a képbe a verziókezelés, ami a kaotikus ad-hoc munkát professzionális, követhető és skálázható folyamattá alakítja!

Kapcsolati űrlap

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

A Git nem csak programozóknak szól

Bár a verziókezelő rendszerek (Version Control System, VCS) a szoftverfejlesztés világából származnak, a legalapvetőbb eszközök közé tartoznak egy modern AI Red Team csapat számára is. Az iparági szabvány ma egyértelműen a Git.
Felejtsd el a final_prompt_v3_javitott_kesz_fixed.txt típusú fájlneveket.
A Git sokkal robusztusabb és intelligensebb módszert kínál a változások követésére.

A Git három alapfogalomra épül, amelyeket a mi kontextusunkban kell értelmezni:

  1. Commit (Véglegesítés): Egy „mentési pont” a projekt történetében. Nem csak egy fájl tartalmát rögzíti, hanem a projekt teljes állapotát egy adott időpillanatban, egy rövid üzenettel ellátva, ami leírja, hogy mi változott. Például: „Új prompt variáció hozzáadása a PII szivárgás teszteléséhez.”
  2. Branch (Ág): Egy párhuzamos fejlesztési vonal. Lehetővé teszi, hogy a projekt stabil, működő verziójának (ezt hívják gyakran main vagy master ágnak) megzavarása nélkül kísérletezz. Létrehozhatsz egy új ágat egy specifikus sebezhetőség, mondjuk egy új jailbreak technika tesztelésére. Ha beválik, a változtatásokat beolvaszthatod a fő ágba; ha nem, az ágat egyszerűen törölheted, mintha mi sem történt volna.
  3. Merge (Összefésülés): Az a folyamat, amikor egy ágon végzett módosításokat integrálod egy másikba, tipikusan a kísérleti ágat a fő ágba. A Git segít automatikusan kezelni a változtatásokat, és jelzi, ha ütközés (konfliktus) van, amit manuálisan kell feloldani.

A Red Team munkafolyamat gerince

Egy tipikus AI Red Teaming projektben a Git használata a következőképpen nézhet ki. Ez a struktúra biztosítja a reprodukálhatóságot és a tiszta együttműködést.

main (stabil) feature/prompt-injection-v2 Merge feature/pii-leak-test (sikertelen, törölt ág)

  1. Projekt inicializálása: Létrehoztok egy központi repository-t (tárolót) pl. GitHubon, GitLabban vagy egy saját szerveren. Ez tartalmazza majd a teszt szkripteket, prompt-gyűjteményeket, segédeszközöket és a dokumentációt.
  2. Ág létrehozása a feladathoz: Mielőtt elkezdenél dolgozni egy új támadási vektoron, létrehozol egy saját ágat: git checkout -b feature/karos-kod-generaltatas.
  3. Kísérletezés és commitolás: Dolgozol a saját ágadon. Módosítod a szkripteket, finomítod a promptokat. Minden logikai egységet egy külön committal rögzítesz, informatív üzenettel. A jó commit üzenet kritikus!
  4. Pull/Merge Request: Amikor egy kísérlet sikeres és a munkád integrálható, létrehozol egy Pull Requestet (PR) vagy Merge Requestet (MR). Ez egy formális kérés a változtatásaid beolvasztására a main ágba. Ez a pont a csapatmunka kulcsa: egy másik csapattag átnézheti a kódodat/promptjaidat (code review), javaslatokat tehet, mielőtt az elfogadásra kerül.
  5. Beolvasztás és takarítás: A sikeres review után a változtatások bekerülnek a fő ágba, a feature ág pedig törölhető. A main ág így mindig a projekt legfrissebb, letesztelt és jóváhagyott állapotát tükrözi.

Gyakorlati buktatók és AI Red Team specifikus megoldások

A Git használata során felmerülhet néhány jellegzetes probléma, amire egy AI Red Teamnek különösen figyelnie kell.

Titkok a kódban: A legsúlyosabb hiba

Soha, de soha ne commitolj API kulcsokat, jelszavakat, hozzáférési tokeneket vagy bármilyen más érzékeny adatot a repository-ba! 

Még ha később törlöd is, a Git történetében ott marad, és egy publikus repository esetén azonnal kompromittálódik.

Figyelem! Egy publikus GitHub repository-ba feltöltött API kulcsot botok másodperceken belül megtalálhatnak és visszaélhetnek vele, ami súlyos anyagi és biztonsági károkat okozhat.

Megoldás: Használj környezeti változókat (environment variables) a titkok tárolására, és egy .gitignore fájlt, hogy a helyi konfigurációs fájlokat (pl. .env) kizárd a verziókezelésből.

# .gitignore példa AI projekthez

# Python függőségek és virtuális környezet
venv/
__pycache__/
*.pyc

# Adatkészletek és modellek - ezeket ne verziókezeld!
data/
models/
*.pt
*.h5
*.onnx

# Jupyter Notebook futásidejű fájlok
.ipynb_checkpoints

# Titkokat tartalmazó konfigurációs fájlok
.env
config.ini
secrets.yaml

Nagy méretű fájlok kezelése

A Git alapvetően szöveges fájlok hatékony kezelésére lett tervezve. Bináris, nagy méretű fájlokkal (pl. letöltött LLM modellek, nagy adathalmazok) nehezen birkózik meg, és a repository mérete kezelhetetlenné válhat. Erre a problémára a Git LFS (Large File Storage) a megoldás. Ez egy Git kiterjesztés, ami a nagy fájlokat egy külön tárolóban helyezi el, míg a repository-ban csak egy apró szöveges mutató marad rájuk. Így a repository gyors és kicsi marad, miközben a nagy fájlok is verziókezelhetők.

Túl a kódon: Promptok és riportok verziókezelése

Ne korlátozd a verziókezelést a Python szkriptekre! A Red Teaming során a legértékesebb szellemi termék gyakran maga a prompt vagy a támadási narratíva. Kezeld ezeket is ugyanolyan fegyelemmel:

  • Prompt Engineering: Tárold a promptokat Markdown (.md) vagy egyszerű szöveges fájlokban. A Git kiválóan mutatja a változásokat (diff), így pontosan láthatod, hogy egy-egy szó vagy mondatrész megváltoztatása hogyan befolyásolta a modell viselkedését.
  • Jelentések: A művelet közbeni és a zárójelentéseket is érdemes verziókezelni, különösen ha Markdown formátumban íródnak. Így az egész csapat közösen dolgozhat rajtuk, követve a változásokat és a kiegészítéseket.

A verziókezelés bevezetése fegyelmezett, professzionális keretet ad a kutatásnak és a kísérletezésnek. Lehetővé teszi, hogy merész ötleteket próbálj ki a stabilitás feláldozása nélkül, miközben minden lépésed dokumentált és reprodukálható marad – ami egy sikeres Red Team művelet alapköve.