
Estrutura de defesa que mitiga o ajuste fino malicioso de LLMs usando recuperação seletiva de camadas e roteamento dinâmico, com scripts de treinamento, pontuação de nocividade e avaliação de jailbreak.
Clone o repositório, crie e ative o ambiente Conda, depois instale as dependências necessárias:
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
Os modelos Llama exigem uma solicitação de acesso no Hugging Face.
Antes de usar um modelo, faça login no Hugging Face, visite a página do modelo desejado em Meta Llama, aceite os termos de uso e envie uma solicitação de acesso. Assim que o acesso for concedido, use a mesma conta para criar um Access Token com acesso de leitura ao modelo desejado na página de configurações de Access Tokens. Para mais detalhes, consulte o guia de modelos com acesso restrito do Hugging Face.
Primeiro, configure o HF-Mirror em um terminal Bash:
export HF_ENDPOINT="https://hf-mirror.com"
Em seguida, execute o seguinte comando para fazer login:
hf auth login
Insira seu Access Token do Hugging Face recém-criado quando solicitado.
Execute os seguintes comandos a partir da raiz do repositório para treinar e avaliar 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
Após coletar as respostas do modelo, implante o Llama Guard e inicie o serviço em um terminal:
bash scripts/run_llama_guard.sh serve
Mantenha este terminal em execução e aguarde até que o serviço esteja pronto. Em seguida, abra outro terminal, ative o ambiente sldr e execute o seguinte comando a partir da raiz do repositório para pontuar a maleficência das respostas do modelo:
bash scripts/run_llama_guard.sh score
Antes de executar a avaliação do Llama 3.1 no conjunto de dados Alpaca, configure a URL base da API e a chave de API do juiz GPT no mesmo terminal:
export GPT_JUDGE_BASE_URL='your base url'
export OPENAI_API_KEY='your API key'
Substitua os placeholders pela sua URL base da API e chave de API antes de iniciar a avaliação.
Após gerar os checkpoints downstream correspondentes, execute o seguinte comando para avaliar o Llama 3.1 em benchmarks maliciosos adicionais, incluindo DirectHarm4, HarmBench e HEx-PHI:
DATASETS="sst2" \
POISON_RATIOS="0.1" \
SEEDS="42" \
VARIANTS="defended" \
bash /root/scripts/run_llama31_harm_benchmarks.sh
Execute o seguinte comando para avaliar o Llama 3.1 contra os ataques de jailbreak Zulu e IJP usando os checkpoints downstream correspondentes:
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: As respostas do modelo geradas para o conjunto de dados Zulu devem ser traduzidas para o inglês antes que sua maleficência seja avaliada usando o Llama Guard.