
Marco de defensa que mitiga el fine-tuning malicioso de LLMs mediante recuperación selectiva de capas y enrutamiento dinámico, con scripts de entrenamiento, puntuación de peligrosidad y evaluación de jailbreak.
Clona el repositorio, crea y activa el entorno Conda, y luego instala las dependencias necesarias:
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
Los modelos Llama requieren una solicitud de acceso en Hugging Face.
Antes de usar un modelo, inicia sesión en Hugging Face, visita la página del modelo deseado en Meta Llama, acepta los términos de uso y envía una solicitud de acceso. Una vez concedido el acceso, utiliza la misma cuenta para crear un Access Token con acceso de lectura al modelo objetivo en la página de configuración de Access Tokens. Para más detalles, consulta la guía de modelos con acceso restringido de Hugging Face.
Primero, configura HF-Mirror en una terminal Bash:
export HF_ENDPOINT="https://hf-mirror.com"
Luego, ejecuta el siguiente comando para iniciar sesión:
hf auth login
Introduce tu Access Token de Hugging Face recién creado cuando se te solicite.
Ejecuta los siguientes comandos desde la raíz del repositorio para entrenar y evaluar cada modelo:
bash scripts/run_llama31_downstream.sh
bash scripts/run_llama3_downstream.sh
bash scripts/run_qwen25_downstream.sh
bash scripts/run_mistral_downstream.sh
Después de recopilar las respuestas del modelo, despliega Llama Guard e inicia el servicio en una terminal:
bash scripts/run_llama_guard.sh serve
Mantén esta terminal en ejecución y espera hasta que el servicio esté listo. Luego, abre otra terminal, activa el entorno sldr y ejecuta el siguiente comando desde la raíz del repositorio para puntuar la peligrosidad de las respuestas del modelo:
bash scripts/run_llama_guard.sh score
Antes de ejecutar la evaluación de Llama 3.1 en el conjunto de datos Alpaca, configura la URL base de la API y la clave de API del juez GPT en la misma terminal:
export GPT_JUDGE_BASE_URL='your base url'
export OPENAI_API_KEY='your API key'
Reemplaza los marcadores de posición con tu URL base de API y tu clave de API antes de iniciar la evaluación.
Después de generar los checkpoints downstream correspondientes, ejecuta el siguiente comando para evaluar Llama 3.1 en benchmarks de peligrosidad adicionales, incluidos DirectHarm4, HarmBench y HEx-PHI:
DATASETS="sst2" \
POISON_RATIOS="0.1" \
SEEDS="42" \
VARIANTS="defended" \
bash /root/scripts/run_llama31_harm_benchmarks.sh
Ejecuta el siguiente comando para evaluar Llama 3.1 frente a los ataques de jailbreak Zulu e IJP utilizando los checkpoints downstream correspondientes:
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: Las respuestas del modelo generadas para el conjunto de datos Zulu deben traducirse al inglés antes de evaluar su peligrosidad utilizando Llama Guard.