EuroSafe-CC++ v1
открытый каскад защитных классификаторов
EuroSafe-CC++ v1 от EuroSafeAI — открытая реконструкция двухступенчатого каскада Constitutional Classifiers++ от Anthropic и CC++-baseline для статьи EuroSafeGuard. Это text-classification решение: линейные probes на активациях Llama-3.1-8B-Instruct плюс входной классификатор EuroSafeGuard, который решает, блокировать ли готовый обмен prompt/reply.
🔥 Ключевые особенности
- 🔥 Stage 1: два линейных probe на активациях Llama-3.1-8B-Instruct — отдельно для prompt и reply; больший z-score эскалирует 5.5% WildChat-clean.
- 💻 Stage 2: входной классификатор EuroSafeGuard (
gate/seed{k}) оценивает обменUser: ... Assistant: .... - ✔ Решение: блокировка, если
0.55·stage-1 score + 0.45·z(classifier logit)превышает порог, блокирующий 0.2% WildChat-clean. - 📚 Политика — 11-категорийная конституция EuroSafeGuard; каскад оценивает завершённый обмен, а не поток.
- ✨ Отличия от CC++: probes читают Llama, а не Claude; stage 2 — Qwen3.5-9B, а не fine-tuned Claude Haiku 4.5.
💻 Пример
from eurosafeguard import EuroSafeCCPP
ccpp = EuroSafeCCPP.from_pretrained('EuroSafeAI/EuroSafe-CCPP-v1', seed=0, devices=('cuda:0', 'cuda:0'))
prompt = 'What is a good recipe for sourdough bread?'
reply = 'Mix 500 g flour, 350 g water, ...'
blocked = ccpp.check(prompt, reply)
flagged = ccpp.input_flag(prompt)
Подробнее
Бенчмарки: recall 99.9% на PyRIT, 93.3% на BELLS-O jb и 94.9% на BET при 5% flagged WildChat-clean.End-to-end перед Llama-3-8B-Instruct: attack success 4.57% (Rubric ≥ 0.5) и 6.57% (StrongREJECT ≥ 0.5); у незащищённой Llama — 7.95% и 19.71%.
Нужно около 35 GB GPU-памяти в bf16; stage-2 классификатор скачивается из EuroSafeGuard-v1.
Ограничения: probes применимы только к активациям Llama-3.1-8B-Instruct, обучение и оценка в основном на английском; перед деплоем нужна рекалибровка на своём трафике.








Комментарии