
Framework de défense qui atténue le fine-tuning malveillant des LLM en utilisant la récupération sélective de couches et le routage dynamique, avec des scripts d'entraînement, de notation de nocivité et d'évaluation de jailbreak.
Clonez le dépôt, créez et activez l'environnement Conda, puis installez les dépendances requises :
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
Les modèles Llama nécessitent une demande d'accès sur Hugging Face.
Avant d'utiliser un modèle, connectez-vous à Hugging Face, visitez la page du modèle souhaité sous Meta Llama, acceptez les conditions d'utilisation et soumettez une demande d'accès. Une fois l'accès accordé, utilisez le même compte pour créer un jeton d'accès avec un accès en lecture au modèle cible sur la page de paramètres des jetons d'accès. Pour plus de détails, consultez le guide des modèles à accès restreint de Hugging Face.
Tout d'abord, configurez HF-Mirror dans un terminal Bash :
export HF_ENDPOINT="https://hf-mirror.com"
Ensuite, exécutez la commande suivante pour vous connecter :
hf auth login
Saisissez votre jeton d'accès Hugging Face nouvellement créé lorsque vous y êtes invité.
Exécutez les commandes suivantes depuis la racine du dépôt pour entraîner et évaluer chaque modèle :
bash scripts/run_llama31_downstream.sh
bash scripts/run_llama3_downstream.sh
bash scripts/run_qwen25_downstream.sh
bash scripts/run_mistral_downstream.sh
Après avoir collecté les réponses des modèles, déployez Llama Guard et démarrez le service dans un terminal :
bash scripts/run_llama_guard.sh serve
Laissez ce terminal en cours d'exécution et attendez que le service soit prêt. Ensuite, ouvrez un autre terminal, activez l'environnement sldr et exécutez la commande suivante depuis la racine du dépôt pour noter la nocivité des réponses des modèles :
bash scripts/run_llama_guard.sh score
Avant d'exécuter l'évaluation de Llama 3.1 sur le jeu de données Alpaca, configurez l'URL de base de l'API et la clé API du juge GPT dans le même terminal :
export GPT_JUDGE_BASE_URL='your base url'
export OPENAI_API_KEY='your API key'
Remplacez les espaces réservés par votre URL de base d'API et votre clé API avant de lancer l'évaluation.
Après avoir généré les checkpoints downstream correspondants, exécutez la commande suivante pour évaluer Llama 3.1 sur des benchmarks nuisibles supplémentaires, notamment DirectHarm4, HarmBench et HEx-PHI :
DATASETS="sst2" \
POISON_RATIOS="0.1" \
SEEDS="42" \
VARIANTS="defended" \
bash /root/scripts/run_llama31_harm_benchmarks.sh
Exécutez la commande suivante pour évaluer Llama 3.1 contre les attaques de jailbreak Zulu et IJP en utilisant les checkpoints downstream correspondants :
DATASETS="sst2" \
POISON_RATIOS="0.1" \
TRAIN_SAMPLES="1000" \
SEEDS="42" \
VARIANTS="defended" \
JAILBREAK_ATTACKS="zulu ijp" \
bash /root/scripts/run_llama31_jailbreak.sh
Remarque : Les réponses des modèles générées pour le jeu de données Zulu doivent être traduites en anglais avant que leur nocivité ne soit évaluée à l'aide de Llama Guard.