
Framework di difesa che mitiga il fine-tuning malevolo dei LLM utilizzando il ripristino selettivo dei layer e il routing dinamico, con script per il training, lo scoring di pericolosità e la valutazione dei jailbreak.
Clona il repository, crea e attiva l'ambiente Conda, quindi installa le dipendenze richieste:
git clone https://github.com/Stardust457/SLDR.git
cd SLDR
conda create -n sldr python=3.12 -y
conda activate sldr
python -m pip install --upgrade pip
python -m pip install -r requirements.txt
I modelli Llama richiedono una richiesta di accesso su Hugging Face.
Prima di utilizzare un modello, accedi a Hugging Face, visita la pagina del modello desiderato sotto Meta Llama, accetta i termini di utilizzo e invia una richiesta di accesso. Una volta ottenuto l'accesso, utilizza lo stesso account per creare un Access Token con accesso in lettura al modello di destinazione nella pagina delle impostazioni degli Access Tokens. Per i dettagli, consulta la guida di Hugging Face ai modelli con accesso controllato.
Per prima cosa, configura HF-Mirror in un terminale Bash:
export HF_ENDPOINT="https://hf-mirror.com"
Poi, esegui il seguente comando per effettuare il login:
hf auth login
Inserisci il tuo Access Token di Hugging Face appena creato quando richiesto.
Esegui i seguenti comandi dalla root del repository per addestrare e valutare ciascun modello:
bash scripts/run_llama31_downstream.sh
bash scripts/run_llama3_downstream.sh
bash scripts/run_qwen25_downstream.sh
bash scripts/run_mistral_downstream.sh
Dopo aver raccolto le risposte del modello, esegui il deployment di Llama Guard e avvia il servizio in un terminale:
bash scripts/run_llama_guard.sh serve
Mantieni questo terminale in esecuzione e attendi che il servizio sia pronto. Poi, apri un altro terminale, attiva l'ambiente sldr ed esegui il seguente comando dalla root del repository per valutare la dannosità delle risposte del modello:
bash scripts/run_llama_guard.sh score
Prima di eseguire la valutazione di Llama 3.1 sul dataset Alpaca, configura l'API base URL e l'API key del giudice GPT nello stesso terminale:
export GPT_JUDGE_BASE_URL='your base url'
export OPENAI_API_KEY='your API key'
Sostituisci i segnaposto con la tua API base URL e la tua API key prima di avviare la valutazione.
Dopo aver generato i corrispondenti checkpoint downstream, esegui il seguente comando per valutare Llama 3.1 su ulteriori benchmark dannosi, tra cui DirectHarm4, HarmBench e HEx-PHI:
DATASETS="sst2" \
POISON_RATIOS="0.1" \
SEEDS="42" \
VARIANTS="defended" \
bash /root/scripts/run_llama31_harm_benchmarks.sh
Esegui il seguente comando per valutare Llama 3.1 contro gli attacchi jailbreak Zulu e IJP utilizzando i corrispondenti checkpoint downstream:
DATASETS="sst2" \
POISON_RATIOS="0.1" \
TRAIN_SAMPLES="1000" \
SEEDS="42" \
VARIANTS="defended" \
JAILBREAK_ATTACKS="zulu ijp" \
bash /root/scripts/run_llama31_jailbreak.sh
Nota: Le risposte del modello generate per il dataset Zulu devono essere tradotte in inglese prima che la loro dannosità venga valutata utilizzando Llama Guard.