
Forschungscode zum Hinzufügen steuerbarer Sicherheitsexperten zu LLM-Schichten mittels zweistufigem Upcycling-Training, mit Sicherheits-Temperatur-Routing zur Inferenzzeit und Jailbreak-Bewertung.
Offizielle Implementierung von UpSafe℃ (NeurIPS 2026). UpSafe fügt Sicherheitsexperten zu ausgewählten Schichten eines Sprachmodells hinzu und verwendet ein zweistufiges Trainingsverfahren, um zu lernen, wann diese aktiviert werden. Eine Sicherheitstemperatur τ passt das Routing zur Inferenzzeit an, ohne erneutes Training.
Führen Sie alle Befehle aus dem Repository-Stammverzeichnis aus. Das Training erfordert CUDA-GPUs; die
bereitgestellten Konfigurationen verwenden DeepSpeed ZeRO-3. Laden Sie den Basis-Checkpoint nach
models/Llama-3.1-8B-Instruct herunter, bevor Sie mit dem Training beginnen.
conda create -n upsafe-train python=3.10 -y
conda activate upsafe-train
bash setup/init_env.sh
# Stufe 1: Sicherheitsexperten und Router trainieren.
llamafactory-cli train upcycle/configs/llama3.1-8b/s1.yaml
# Stufe 2: Experten einfrieren und Router auf schädlichen und harmlosen Beispielen trainieren.
llamafactory-cli train upcycle/configs/llama3.1-8b/s2.yaml
# Den Adapter aus Stufe 2 mit Sicherheitskontrolle zur Inferenzzeit exportieren.
python upcycle/convert_model.py \
--adapter_path outputs/llama3.1-8b_s2 \
--output_path models/Llama-3.1-8B-Instruct-UpSafe --arch llama
Der Installer patcht PEFT und Transformers in der aktiven Trainingsumgebung
und speichert die Originaldateien unter setup/backups/. Verwenden Sie eine dedizierte Umgebung.
Verwenden Sie eine separate Umgebung für das zusammengeführte Modell:
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
Der Standardwert ist τ = 0.5. Setzen Sie TAUS="0.2 0.5 0.8", um mehrere
Einstellungen zu evaluieren, oder übergeben Sie --tau an eval/QA_gen.py. Höhere Werte bevorzugen Sicherheitsexperten
und können die Verweigerung bei harmlosen Prompts erhöhen. Das Checkpoint-Feld
safe_tempature behält seine ursprüngliche Schreibweise aus Kompatibilitätsgründen bei.
| Verzeichnis | Inhalt |
|---|---|
scan/ | Probing und Ranking sicherheitskritischer Schichten |
upcycle/ | MoE-Adapter, Modellexport und Trainingskonfigurationen |
eval/ | Antwortgenerierung und Sicherheits-/Verweigerungs-Richter |
data/eval/ | JBB-, StrongREJECT-, WildChat-, WildJailbreak- und XSTest-Prompts |
LLaMA-Factory/ | Trainingsframework und STAR-1-Trainingsdaten |
Die Konfigurationen decken Llama-3.1-8B, Qwen2.5-7B/14B und deren R1-Distill-Varianten ab. Siehe den Reproduktionsleitfaden für Schicht-Scans, Modellpfade, Konfigurationen pro Modell und einzelne Evaluierungsbefehle.
@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}
}
Basiert auf LLaMA-Factory, PEFT und Transformers unter Verwendung von STAR-1-Daten. Der Code ist unter Apache-2.0 lizenziert. Code, Datensätze und Basismodelle von Drittanbietern behalten ihre jeweiligen Lizenzen; siehe LEGAL.md.