99 lines
3.3 KiB
Markdown
99 lines
3.3 KiB
Markdown
================================================================================================================================================================================
|
||
1. LLM_test.py – Generovanie odpovedí modelov
|
||
|
||
Tento skript je prvý krok celého procesu.
|
||
Spúšťaš ho, keď chceš nechať model (Gemma, LLaMA alebo Qwen) odpovedať na rôzne “nepríjemné” datasety (harmful prompts). Podľa toho sa potom hodnotí jeho bezpečnosť.
|
||
|
||
1.1 Ako to funguje
|
||
|
||
Pri spustení si script od teba vypýta:
|
||
|
||
aký model chceš použiť,
|
||
|
||
aké GPU (ak máš),
|
||
|
||
aký dataset chceš otestovať,
|
||
|
||
koľko promptov chceš spracovať.
|
||
|
||
Dataset si script načíta automaticky.
|
||
|
||
Ak je gated, vypýta si HF token.
|
||
|
||
Model každému promptu vygeneruje odpoveď a script kontroluje, či to náhodou nebola odpoveď v štýle “nemôžem odpovedať, som AI”. Toto sa počíta ako refusal.
|
||
|
||
Výsledky idú do priečinka outputs/<timestamp>-model-dataset/.
|
||
|
||
Vo vnútri nájdeš:
|
||
|
||
responses.json – odpovede v strojovom formáte,
|
||
|
||
responses.txt – všetky prompty a odpovede pre ľudí,
|
||
|
||
summary.txt – súhrn odmietnutí podľa kategórií.
|
||
=================================================================================================================================================================================
|
||
|
||
2. copymaster.py – Triedenie výstupov
|
||
|
||
Keď už máš hromadu priečinkov v outputs/, potrebuješ to nejako zoradiť, aby každý model mal svoje miesto. O to sa stará copymaster.py.
|
||
|
||
2.1 Čo robí:
|
||
|
||
Opýta sa, ktorý model chceš spracovať.
|
||
|
||
Prejde všetky priečinky v outputs.
|
||
|
||
Všetko, čo obsahuje v názve “gemma”, “llama” alebo “qwen”, podľa toho čo si vybral, skopíruje do:
|
||
/response/<model>/
|
||
|
||
Každý JSON dostane svoje číslo: 1.json, 2.json, 3.json…
|
||
|
||
====================================================================================================================================================================================
|
||
|
||
3. response_evaluate.py – Hodnotenie bezpečnosti
|
||
|
||
Toto je hlavný a najväčší skript.
|
||
Robí reálne hodnotenie, či sú prompty a odpovede modelov bezpečné alebo nie.
|
||
|
||
Používaš ho na porovnávanie modelov medzi sebou.
|
||
|
||
3.1 Čo robí:
|
||
|
||
Pýta si od teba, ktorú sadu z response/ chceš hodnotiť (llama, gemma, qwen).
|
||
|
||
Nechá ťa vybrať GPU alebo CPU.
|
||
|
||
Načíta si Llama Guard 3–8B.
|
||
|
||
Každý prompt aj odpoveď vyhodnotí zvlášť:
|
||
|
||
prompt → je bezpečný / nebezpečný
|
||
|
||
odpoveď → model odpovedal bezpečne / nebezpečne
|
||
|
||
Okrem Guardu používa aj tvoje vlastné heuristiky:
|
||
|
||
ak prompt obsahuje “sex”, “dirty joke” atď. → označí ho rovno ako unsafe,
|
||
|
||
ak odpoveď obsahuje odmietnutie → automaticky safe.
|
||
|
||
Každý hodnotený záznam uloží do samostatného JSON.
|
||
|
||
Po spracovaní celého priečinka vytvorí:
|
||
|
||
summary.json pre každý vstupný súbor,
|
||
|
||
summary_all.json pre celý model.
|
||
|
||
3.2 Výsledkom je úplná štatistika:
|
||
|
||
koľko promptov bolo unsafe,
|
||
|
||
koľko odpovedí bolo unsafe,
|
||
|
||
koľko párov bolo naraz unsafe,
|
||
|
||
porovnanie modelov podľa bezpečnosti.
|
||
=========================================================================================================================================================================================
|
||
|