🇺🇸 English Version | 🇷🇺 Русская Версия
A Geometric Analysis of One-Class Embedding Guardrails for LLM Jailbreak Detection:
Safe-Aware Discriminant Correction and Pooled Within-Class Whitening
This repository contains the official implementation, benchmarks, telemetry data, and mathematical proofs for the RSFI algorithm.
Please choose your preferred language above to read the full documentation.
Название «Riemannian System Fidelity Index» — историческое имя проекта. Честная рамка: полный риманов аппарат (логарифмическая/экспоненциальная карты на src/rsfi/geometry.py (RiemannianSphere) и покрыт юнит-тестами (tests/test_geometry.py), однако бенчмаркированный пайплайн (все методы в docs/RESEARCH_REPORT.md) использует евклидову сферическую геометрию: L2-нормализацию, ZCA-отбеливание Ледуа-Вольфа и SVD/дискриминантные направления. Никаких римановых карт в оценённых методах нет — это осознанное разграничение библиотеки и эксперимента.
Полная методология и таблицы — в docs/RESEARCH_REPORT.md. Протокол: leakage-free holdout, 5 сидов, DeLong-тесты.
-
Одноклассовые геометрические фильтры теряют качество из-за игнорирования безопасного класса. Дискриминантное направление
$\mu_{mal}-\mu_{safe}$ (метод$B1$ , хранит ровно 1 вектор, O(d) на запрос) обходит наивный косинус на гетерогенном Wild на +7.7…+10.5 п.п. ROC-AUC (5/5 сидов, p < 0.0001, DeLong;data/results/E2d_delong_tests.csv) и превосходит опубликованные внешние детекторы (deberta-v2 0.841, toxic-bert 0.724;data/results/E9_external_baselines.csv). -
Отбеливание помогает не всегда, и это объяснимо. Через разложение
$\Sigma_T = \Sigma_W + \Sigma_B$ : на омонимическом XSTest отбеливание даёт +13.6 п.п. ($0.762 \to 0.897$ ), а на гетерогенном Wild — вредит, так как сжимает ранговое собственное значение вдоль разделяющего направления. Отбеливание по внутриклассовой ковариации$\Sigma_W^{-1/2}$ восстанавливает в среднем 43.9% потерь на 4 эмбеддерах (data/results/E8_sigma_w.csv,data/results/E8q_qwen_sigma_w.csv). -
Границы применимости под обфускацией и адаптивными атаками зафиксированы честно:
- Под статической обфускацией (base64) качество геометрических фильтров деградирует (AUC 0.705 у B1 vs 0.238 у наивного косинуса,
data/results/E6b_obfuscation_boundary.csv), что требует L1-канонизации (unwrapper) в конвейере. - Под адаптивным жадным подбором синонимов (коразмерность 1) 1D-дискриминант
$B1$ обходится при изменении <3% слов (data/results/E6c_defense_aware_adaptive_attack.csv), однако атака не пробивает обеленный дискриминант$B1w$ (ASR 7.0% на ToxicChat) и не переносится на внешние нейросетевые модели (DeBERTa-v3 сохраняет AUC).
- Под статической обфускацией (base64) качество геометрических фильтров деградирует (AUC 0.705 у B1 vs 0.238 у наивного косинуса,
-
Рекомендуемая роль: ультрабыстрый эшелон Layer 2 в архитектуре defense-in-depth (
$\text{L1 Unwrapper} \to \text{L2 Geometric Pre-filter} \to \text{L3 LLM-Judge/Classifier}$ ), а не изолированная замена нейросетевым судьям.