
Codice di ricerca per aggiungere esperti di sicurezza controllabili ai layer degli LLM tramite addestramento di upcycling in due fasi, con routing della temperatura di sicurezza in fase di inferenza e valutazione del jailbreak.
Implementazione ufficiale di UpSafe℃ (NeurIPS 2026). UpSafe aggiunge esperti di sicurezza a livelli selezionati di un modello linguistico e utilizza una procedura di addestramento in due fasi per apprendere quando attivarli. Una temperatura di sicurezza τ regola il routing in fase di inferenza senza riaddestramento.
Esegui tutti i comandi dalla radice del repository. L'addestramento richiede GPU CUDA; le
configurazioni fornite utilizzano DeepSpeed ZeRO-3. Scarica il checkpoint di base in
models/Llama-3.1-8B-Instruct prima dell'addestramento.
conda create -n upsafe-train python=3.10 -y
conda activate upsafe-train
bash setup/init_env.sh
# Fase 1: addestra gli esperti di sicurezza e i router.
llamafactory-cli train upcycle/configs/llama3.1-8b/s1.yaml
# Fase 2: congela gli esperti e addestra i router su esempi dannosi e benigni.
llamafactory-cli train upcycle/configs/llama3.1-8b/s2.yaml
# Esporta l'adattatore della fase 2 con il controllo della sicurezza in fase di inferenza.
python upcycle/convert_model.py \
--adapter_path outputs/llama3.1-8b_s2 \
--output_path models/Llama-3.1-8B-Instruct-UpSafe --arch llama
L'installer applica patch a PEFT e Transformers nell'ambiente di addestramento attivo
e salva i file originali in setup/backups/. Utilizza un ambiente dedicato.
Utilizza un ambiente separato per il modello unito:
conda create -n upsafe-infer python=3.10 -y
conda activate upsafe-infer
pip install -r requirements_infer.txt
export JUDGE_API_KEY="your-api-key"
export JUDGE_BASE_URL="https://api.openai.com/v1"
export JUDGE_MODEL="gpt-4o"
bash eval/run_eval.sh models/Llama-3.1-8B-Instruct-UpSafe llama8b_upsafe
Il valore predefinito è τ = 0.5. Imposta TAUS="0.2 0.5 0.8" per valutare più
impostazioni, oppure passa --tau a eval/QA_gen.py. Valori più alti favoriscono gli esperti di sicurezza
e possono aumentare il rifiuto sui prompt benigni. Il campo del checkpoint
safe_tempature mantiene la sua ortografia originale per compatibilità.
| Directory | Contenuti |
|---|---|
scan/ | Sondaggio e classificazione dei livelli critici per la sicurezza |
upcycle/ | Adattatori MoE, esportazione del modello e configurazioni di addestramento |
eval/ | Generazione delle risposte e giudici di sicurezza/rifiuto |
data/eval/ | Prompt JBB, StrongREJECT, WildChat, WildJailbreak e XSTest |
LLaMA-Factory/ | Framework di addestramento e dati di addestramento STAR-1 |
Le configurazioni coprono Llama-3.1-8B, Qwen2.5-7B/14B e le loro varianti R1-Distill. Consulta la guida alla riproduzione per le scansioni dei livelli, i percorsi dei modelli, le configurazioni per modello e i singoli comandi di valutazione.
@InProceedings{Sun_2026_NeurIPS,
author = {Sun, Yuhao and Yu, Lingyun and Xu, Zhuoer and Yang, Kun and Cui, Shiwen and Zhang, Yongdong and Xie, Hongtao},
title = {UpSafe{$^\circ$C}: Upcycling for Controllable Safety in Large Language Models},
booktitle = {Advances in Neural Information Processing Systems (NeurIPS)},
year = {2026}
}
Basato su LLaMA-Factory, PEFT e Transformers, utilizzando dati STAR-1. Il codice è distribuito con licenza Apache-2.0. Il codice di terze parti, i dataset e i modelli di base mantengono le rispettive licenze; vedi LEGAL.md.