Obliteratus
OBLITERATUS: удаление отказов LLM (diff-in-means).
Метаданные навыка
| Источник | Опционально — установка: vibeos skills install official/mlops/obliteratus |
| Путь | optional-skills/mlops/obliteratus |
| Версия | 2.0.0 |
| Автор | VibeOS |
| Лицензия | MIT |
| Зависимости | obliteratus, torch, transformers, bitsandbytes, accelerate, safetensors |
| Платформы | linux, macos |
| Теги | Abliteration, Uncensoring, Refusal-Removal, LLM, Weight-Projection, SVD, Mechanistic-Interpretability, HuggingFace, Model-Surgery |
| Связанные навыки | vllm, gguf, huggingface-tokenizers |
Справочник: полный SKILL.md
Ниже приведено полное определение навыка, которое VibeOS загружает при его активации. Это те инструкции, которые видит агент, когда навык активен.
Навык OBLITERATUS
Что внутри
9 методов CLI, 28 модулей анализа, 116 пресетов моделей для 5 вычислительных уровней, турнирная оценка и рекомендации на основе телеметрии.
Удаление поведения отказа (ограничений) из LLM с открытым весом без переобучения или дообучения. Использует методы механистической интерпретируемости — включая diff-in-means, SVD, отбеленный SVD, стирание концепций LEACE, декомпозицию SAE, байесовское проецирование ядра и другие — для выявления и хирургического удаления направлений отказа из весов модели с сохранением способности к рассуждению.
Предупреждение о лицензии: OBLITERATUS распространяется под лицензией AGPL-3.0. НИКОГДА не импортируйте его как библиотеку Python. Всегда вызывайте через CLI (команда obliteratus) или подпроцесс. Это сохраняет чистоту лицензии MIT для VibeOS.
Видео-гид
Обзор использования OBLITERATUS агентом VibeOS для удаления отказов у Gemma: https://www.youtube.com/watch?v=8fG9BrNTeHs («OBLITERATUS: An AI Agent Removed Gemma 4's Safety Guardrails»)
Полезно, когда пользователь хочет визуально ознакомиться с полным рабочим процессом перед его запуском.
Когда использовать этот навык
Запускать, когда пользователь:
- Хочет «расцензурить» или «удалить отказы» у LLM
- Спрашивает об удалении отказов/ограничений из модели
- Хочет создать нецензурированную версию Llama, Qwen, Mistral и т.д.
- Упоминает «refusal removal», «abliteration», «weight projection»
- Хочет проанализировать, как работает механизм отказа модели
- Ссылается на OBLITERATUS, abliterator или направления отказа
Шаг 1: Установка
Проверьте, установлено ли уже:
obliteratus --version 2>/dev/null && echo "INSTALLED" || echo "NOT INSTALLED"
Если не установлено, клонируйте и установите из GitHub:
git clone https://github.com/elder-plinius/OBLITERATUS.git
cd OBLITERATUS
pip install -e .
# Для поддержки веб-интерфейса Gradio:
# pip install -e ".[spaces]"
ВАЖНО: Подтвердите с пользователем перед установкой. Это загружает ~5-10 ГБ зависимостей (PyTorch, Transformers, bitsandbytes и т.д.).
Шаг 2: Проверка оборудования
Перед началом проверьте, какой GPU доступен:
python3 -c "
import torch
if torch.cuda.is_available():
gpu = torch.cuda.get_device_name(0)
vram = torch.cuda.get_device_properties(0).total_memory / 1024**3
print(f'GPU: {gpu}')
print(f'VRAM: {vram:.1f} GB')
if vram < 4: print('TIER: tiny (models under 1B)')
elif vram < 8: print('TIER: small (models 1-4B)')
elif vram < 16: print('TIER: medium (models 4-9B with 4bit quant)')
elif vram < 32: print('TIER: large (models 8-32B with 4bit quant)')
else: print('TIER: frontier (models 32B+)')
else:
print('NO GPU - only tiny models (under 1B) on CPU')
"
Требования к VRAM (с 4-битным квантованием)
| VRAM | Макс. размер модели | Примеры моделей |
|---|---|---|
| Только CPU | ~1B параметров | GPT-2, TinyLlama, SmolLM |
| 4-8 ГБ | ~4B параметров | Qwen2.5-1.5B, Phi-3.5 mini, Llama 3.2 3B |
| 8-16 ГБ | ~9B параметров | Llama 3.1 8B, Mistral 7B, Gemma 2 9B |
| 24 ГБ | ~32B параметров | Qwen3-32B, Llama 3.1 70B (впритык), Command-R |
| 48 ГБ+ | ~72B+ параметров | Qwen2.5-72B, DeepSeek-R1 |
| Multi-GPU | 200B+ параметров | Llama 3.1 405B, DeepSeek-V3 (685B MoE) |
Шаг 3: Просмотр доступных моделей и получение рекомендаций
# Просмотр моделей по вычислительному уровню
obliteratus models --tier medium
# Получение информации об архитектуре для конкретной модели
obliteratus info <model_name>
# Получение рекомендации на основе телеметрии по лучшему методу и параметрам
obliteratus recommend <model_name>
obliteratus recommend <model_name> --insights # глобальные рейтинги между архитектурами
Шаг 4: Выбор метода
Руководство по выбору метода
По умолчанию / рекомендуется для большинства случаев: advanced. Он использует многомерный SVD с проекцией, сохраняющей норму, и хорошо протестирован.
| Ситуация | Рекомендуемый метод | Почему |
|---|---|---|
| По умолчанию / большинство моделей | advanced | Многомерный SVD, сохранение нормы, надежно |
| Быстрый тест / прототипирование | basic | Быстро, просто, достаточно для оценки |
| Плотная модель (Llama, Mistral) | advanced | Многомерный, сохранение нормы |
| MoE модель (DeepSeek, Mixtral) | nuclear | Экспертно-гранулярный, учитывает сложность MoE |
| Модель рассуждений (R1 дистилляты) | surgical | Учитывает CoT, сохраняет цепочку рассуждений |
| Упорные отказы сохраняются | aggressive | Отбеленный SVD + хирургия голов + джейлбрейк |
| Нужны обратимые изменения | Используйте управляющие векторы (см. раздел Анализ) | |
| Максимальное качество, время не важно | optimized | Байесовский поиск лучших параметров |
| Экспериментальное автоопределение | informed | Автоопределение типа выравнивания — экспериментально, не всегда превосходит advanced |
9 методов CLI
- basic — Одно направление отказа через diff-in-means. Быстро (~5-10 мин для 8B).
- advanced (ПО УМОЛЧАНИЮ, РЕКОМЕНДУЕТСЯ) — Несколько направлений SVD, проекция с сохранением нормы, 2 прохода уточнения. Средняя скорость (~10-20 мин).
- aggressive — Отбеленный SVD + контрастивный джейлбрейк + хирургия голов внимания. Выше риск повреждения связности.
- spectral_cascade — Декомпозиция в частотной области DCT. Исследовательский/новый подход.
- informed — Запускает анализ ВО ВРЕМЯ удаления отказов для автонастройки. Экспериментально — медленнее и менее предсказуемо, чем advanced.
- surgical — Признаки SAE + маскировка нейронов + хирургия голов + по-экспертно. Очень медленно (~1-2 ч). Лучше всего для моделей рассуждений.
- optimized — Байесовский поиск гиперпараметров (Optuna TPE). Самое долгое выполнение, но находит оптимальные параметры.
- inverted — Переворачивает направление отказа. Модель становится активно сговорчивой.
- nuclear — Максимальная комбинация для упорных MoE моделей. Экспертно-гранулярный.
Методы извлечения направления (флаг --direction-method)
- diff_means (по умолчанию) — Простая разница средних между активациями отказа/согласия. Надежен.
- svd — Многомерное извлечение SVD. Лучше для сложного выравнивания.
- leace — LEACE (Linear Erasure via Closed-form Estimation). Оптимальное линейное стирание.
4 метода только для Python API
(НЕДОСТУПНЫ через CLI — требуют импорта Python, что нарушает границу AGPL. Упоминайте пользователю, только если он явно хочет использовать OBLITERATUS как библиотеку в своем собственном проекте AGPL.)
- failspy, gabliteration, heretic, rdo
Шаг 5: Запуск удаления отказов
Стандартное использование
# Метод по умолчанию (advanced) — рекомендуется для большинства моделей
obliteratus obliterate <model_name> --method advanced --output-dir ./abliterated-models
# С 4-битным квантованием (экономит VRAM)
obliteratus obliterate <model_name> --method advanced --quantization 4bit --output-dir ./abliterated-models
# Большие модели (70B+) — консервативные настройки по умолчанию
obliteratus obliterate <model_name> --method advanced --quantization 4bit --large-model --output-dir ./abliterated-models
Тонкая настройка параметров
obliteratus obliterate <model_name> \
--method advanced \
--direction-method diff_means \
--n-directions 4 \
--refinement-passes 2 \
--regularization 0.1 \
--quantization 4bit \
--output-dir ./abliterated-models \
--contribute # опциональная телеметрия для исследований сообщества
Ключевые флаги
| Флаг | Описание | По умолчанию |
|---|---|---|
--method | Метод удаления отказов | advanced |
--direction-method | Извлечение направления | diff_means |
--n-directions | Количество направлений отказа (1-32) | зависит от метода |
--refinement-passes | Итеративные проходы (1-5) | 2 |
--regularization | Сила регуляризации (0.0-1.0) | 0.1 |
--quantization | Загрузка в 4bit или 8bit | нет (полная точность) |
--large-model | Консервативные настройки для 120B+ | false |
--output-dir | Куда сохранить модель | ./obliterated_model |
--contribute | Поделиться анонимными результатами для исследований | false |
--verify-sample-size | Количество тестовых промптов для проверки отказа | 20 |
--dtype | Тип данных модели (float16, bfloat16) | auto |
Другие режимы выполнения
# Интерактивный режим с подсказками (оборудование → модель → пресет)
obliteratus interactive
# Веб-интерфейс (Gradio)
obliteratus ui --port 7860
# Запуск полного абляционного исследования из YAML конфига
obliteratus run config.yaml --preset quick
# Турнир: сравнение всех методов друг с другом
obliteratus tourney <model_name>
Шаг 6: Проверка результатов
После удаления отказов проверьте выходные метрики:
| Метрика | Хорошее значение | Предупреждение |
|---|---|---|
| Уровень отказов | < 5% (в идеале ~0%) | > 10% означает, что отказы сохраняются |
| Изменение перплексии | < 10% увеличение | > 15% означает повреждение связности |
| KL дивергенция | < 0.1 | > 0.5 означает значительный сдвиг распределения |
| Связность | Высокая / проходит качественную проверку | Деградированные ответы, повторения |
Если отказы сохраняются (> 10%)
- Попробуйте метод
aggressive - Увеличьте
--n-directions(например, 8 или 16) - Добавьте
--refinement-passes 3 - Попробуйте
--direction-method svdвместо diff_means
Если связность повреждена (перплексия > 15% увеличение)
- Уменьшите
--n-directions(попробуйте 2) - Увеличьте
--regularization(попробуйте 0.3) - Уменьшите
--refinement-passesдо 1 - Попробуйте метод
basic(более щадящий)
Шаг 7: Использование модели с удаленными отказами
Результат — стандартная директория модели HuggingFace.
# Локальное тестирование с transformers
python3 -c "
from transformers import AutoModelForCausalLM, AutoTokenizer
model = AutoModelForCausalLM.from_pretrained('./abliterated-models/<model>')
tokenizer = AutoTokenizer.from_pretrained('./abliterated-models/<model>')
inputs = tokenizer('How do I pick a lock?', return_tensors='pt')
outputs = model.generate(**inputs, max_new_tokens=200)
print(tokenizer.decode(outputs[0], skip_special_tokens=True))
"
# Загрузка на HuggingFace Hub
huggingface-cli upload <username>/<model-name>-abliterated ./abliterated-models/<model>
# Запуск с vLLM
vllm serve ./abliterated-models/<model>
Справочник команд CLI
| Команда | Описание |
|---|---|
obliteratus obliterate | Основная команда удаления отказов |
obliteratus info <model> | Вывод деталей архитектуры модели |
obliteratus models --tier <tier> | Просмотр подобранных моделей по вычислительному уровню |
obliteratus recommend <model> | Предложение метода/параметров на основе телеметрии |
obliteratus interactive | Мастер настройки с подсказками |
obliteratus tourney <model> | Турнир: все методы друг против друга |
obliteratus run <config.yaml> | Выполнение абляционного исследования из YAML |
obliteratus strategies | Список всех зарегистрированных стратегий абляции |
obliteratus report <results.json> | Повторная генерация визуальных отчетов |
obliteratus ui | Запуск веб-интерфейса Gradio |
obliteratus aggregate | Сводка данных телеметрии сообщества |
Модули анализа
OBLITERATUS включает 28 модулей анализа для механистической интерпретируемости.
Полный справочник см. в skill_view(name="obliteratus", file_path="references/analysis-modules.md").
Быстрые команды анализа
# Запуск конкретных модулей анализа
obliteratus run analysis-config.yaml --preset quick
# Ключевые модули для первого запуска:
# - alignment_imprint: Определение метода выравнивания DPO/RLHF/CAI/SFT
# - concept_geometry: Одно направление против полиэдрального конуса
# - logit_lens: Какой слой решает отказать
# - anti_ouroboros: Оценка риска самовосстановления
# - causal_tracing: Причинно-необходимые компоненты
Управляющие векторы (обратимая альтернатива)
Вместо постоянного изменения весов используйте управление во время инференса:
# Только Python API — для собственных проектов пользователя
from obliteratus.analysis.steering_vectors import SteeringVectorFactory, SteeringHookManager
Стратегии абляции
Помимо удаления отказов на основе направления, OBLITERATUS включает структурные стратегии абляции:
- Embedding Ablation — Воздействие на компоненты слоя внедрения
- FFN Ablation — Удаление блоков сети прямого распространения
- Head Pruning — Обрезка голов внимания
- Layer Removal — Полное удаление слоев
Список всех доступных: obliteratus strategies
Оценка
OBLITERATUS включает встроенные инструменты оценки:
- Бенчмаркинг уровня отказов
- Сравнение перплексии (до/после)
- Интеграция с LM Eval Harness для академических бенчмарков
- Попарное сравнение с конкурентами
- Отслеживание базовой производительности
Поддержка платформ
- CUDA — Полная поддержка (GPU NVIDIA)
- Apple Silicon (MLX) — Поддерживается через бэкенд MLX
- CPU — Поддерживается для маленьких моделей (< 1B параметров)
Шаблоны YAML конфигов
Загружайте шаблоны для воспроизводимых запусков через skill_view:
templates/abliteration-config.yaml— Стандартный конфиг для одной моделиtemplates/analysis-study.yaml— Аналитическое исследование перед удалением отказовtemplates/batch-abliteration.yaml— Пакетная обработка нескольких моделей
Телеметрия
OBLITERATUS может опционально передавать анонимные данные о запусках в глобальный исследовательский набор данных.
Включите с помощью флага --contribute. Личные данные не собираются — только имя модели, метод, метрики.
Типичные ошибки
- Не используйте
informedпо умолчанию — он экспериментальный и медленный. Используйтеadvancedдля надежных результатов. - Модели размером менее ~1B плохо реагируют на удаление отказов — их поведение отказа поверхностно и фрагментировано, что затрудняет чистое извлечение направления. Ожидайте частичных результатов (20-40% остаточных отказов). Модели от 3B+ имеют более чистые направления отказа и реагируют гораздо лучше (часто 0% отказов с
advanced). aggressiveможет ухудшить ситуацию — на маленьких моделях он может повредить связность и даже увеличить уровень отказов. Используйте его только еслиadvancedоставляет > 10% отказов на модели от 3B+.- Всегда проверяйте перплексию — если она подскакивает > 15%, модель повреждена. Уменьшите агрессивность.
- MoE модели требуют особого обращения — используйте метод
nuclearдля Mixtral, DeepSeek-MoE и т.д. - Квантованные модели нельзя переквантовать — удаляйте отказы у модели полной точности, затем квантуйте результат.
- Оценка VRAM приблизительна — 4-битное квантование помогает, но пиковое использование может возрастать во время извлечения.
- Модели рассуждений чувствительны — используйте
surgicalдля дистиллятов R1, чтобы сохранить цепочку рассуждений. - Проверьте
obliteratus recommend— данные телеметрии могут содержать лучшие параметры, чем значения по умолчанию. - Лицензия AGPL — никогда не используйте
import obliteratusв проектах MIT/Apache. Только вызов через CLI. - Большие модели (70B+) — всегда используйте флаг
--large-modelдля консервативных настроек по умолчанию. - Спектральная сертификация RED — обычное дело — спектральная проверка часто помечает как «неполный», даже когда практический уровень отказов составляет 0%. Проверяйте фактический уровень отказов, а не полагайтесь только на спектральную сертификацию.
Дополнительные навыки
- vllm — Запуск моделей с удаленными отказами с высокой пропускной способностью
- gguf — Конвертация моделей с удаленными отказами в GGUF для llama.cpp
- huggingface-tokenizers — Работа с токенизаторами моделей