To train a custom SecurityLingua model, follow these steps:
1. Setup Environment
Run the provided setup script:
bash env_setup.sh
2. Build Training Data
First, annotate the prompts using label_word.py, then filter them using filter.py. Note that you can fine-tune the filtering threshold in filter.py to balance performance and security.
python label_word.py \
--load_prompt_from SecurityLingua/securitylingua-jailbreak-pairs \
--window_size 400 \
--save_path ../results/security_lingua/jailbreak_pairs_annotated.pt
python filter.py \
--load_path ../results/security_lingua/jailbreak_pairs_annotated.pt \
--save_path ../results/security_lingua/jailbreak_pairs_annotated_filtered.pt
Note: Ensure your dataset follows the format used in SecurityLingua/securitylingua-jailbreak-pairs before parsing.
3. Train the Model
You can perform single-GPU training or multi-GPU training using accelerate.
Single-GPU Training:
python train_roberta.py \
--data_path ../results/security_lingua/jailbreak_pairs_annotated_filtered.pt \
--save_path ../results/security_lingua/jailbreak_pairs_annotated_filtered_roberta.pt \
--model_name microsoft/llmlingua-2-xlm-roberta-large-meetingbank \
--num_epoch 5 \
--run_name meetbank_slingua \
--wandb_project slingua \
--wandb_name meetbank_slingua
Multi-GPU Training:
ACCELERATE_LOG_LEVEL="ERROR" accelerate launch --num_processes 4 experiments/llmlingua2/model_training/train_roberta.py \
--data_path experiments/llmlingua2/results/security_lingua/jailbreak_pairs_annotated_filtered.pt \
--save_path experiments/llmlingua2/results/models/xlm_slingua.pth \
--num_epoch 5 \
--run_name xlm_slingua \
--wandb_project slingua \
--wandb_name xlm_slingua
4. Use Custom Checkpoint
Once trained, load your checkpoint into PromptCompressor as shown in the usage guide.