
Исследовательский код для добавления управляемых экспертов безопасности в слои LLM посредством двухэтапного обучения с апсайклингом, с маршрутизацией по температуре безопасности во время инференса и оценкой устойчивости к джейлбрейкам.
Официальная реализация UpSafe℃ (NeurIPS 2026). UpSafe добавляет экспертов по безопасности в выбранные слои языковой модели и использует двухэтапную процедуру обучения, чтобы научиться определять, когда их активировать. Температура безопасности τ регулирует маршрутизацию во время инференса без повторного обучения.
Выполняйте все команды из корня репозитория. Для обучения требуются CUDA-графические процессоры;
предоставленные конфигурации используют DeepSpeed ZeRO-3. Перед обучением скачайте базовый чекпоинт в
models/Llama-3.1-8B-Instruct.
conda create -n upsafe-train python=3.10 -y
conda activate upsafe-train
bash setup/init_env.sh
# Этап 1: обучение экспертов по безопасности и маршрутизаторов.
llamafactory-cli train upcycle/configs/llama3.1-8b/s1.yaml
# Этап 2: заморозка экспертов и обучение маршрутизаторов на вредоносных и безвредных примерах.
llamafactory-cli train upcycle/configs/llama3.1-8b/s2.yaml
# Экспорт адаптера второго этапа с управлением безопасностью во время инференса.
python upcycle/convert_model.py \
--adapter_path outputs/llama3.1-8b_s2 \
--output_path models/Llama-3.1-8B-Instruct-UpSafe --arch llama
Установщик патчит PEFT и Transformers в активной среде обучения
и сохраняет исходные файлы в setup/backups/. Используйте отдельную среду.
Используйте отдельную среду для объединённой модели:
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
По умолчанию используется τ = 0.5. Задайте TAUS="0.2 0.5 0.8", чтобы оценить несколько
настроек, или передайте --tau в eval/QA_gen.py. Более высокие значения отдают предпочтение экспертам по безопасности
и могут увеличить количество отказов на безвредные запросы. Поле чекпоинта
safe_tempature сохраняет исходное написание для совместимости.
| Каталог | Содержимое |
|---|---|
scan/ | Зондирование и ранжирование критичных для безопасности слоёв |
upcycle/ | MoE-адаптеры, экспорт модели и конфигурации обучения |
eval/ | Генерация ответов и оценщики безопасности/отказов |
data/eval/ | Запросы JBB, StrongREJECT, WildChat, WildJailbreak и XSTest |
LLaMA-Factory/ | Фреймворк обучения и данные обучения STAR-1 |
Конфигурации охватывают Llama-3.1-8B, Qwen2.5-7B/14B и их варианты R1-Distill. См. руководство по воспроизведению для сканирования слоёв, путей к моделям, конфигураций для каждой модели и отдельных команд оценки.
@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}
}
Построено на основе LLaMA-Factory, PEFT и Transformers, с использованием данных STAR-1. Код распространяется под лицензией Apache-2.0. Сторонний код, наборы данных и базовые модели сохраняют свои соответствующие лицензии; см. LEGAL.md.