Перейти к основному содержимому

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-GPU200B+ параметров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%)​

  1. Попробуйте метод aggressive
  2. Увеличьте --n-directions (например, 8 или 16)
  3. Добавьте --refinement-passes 3
  4. Попробуйте --direction-method svd вместо diff_means

Если связность повреждена (перплексия > 15% увеличение)​

  1. Уменьшите --n-directions (попробуйте 2)
  2. Увеличьте --regularization (попробуйте 0.3)
  3. Уменьшите --refinement-passes до 1
  4. Попробуйте метод 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 &lt;model&gt;Вывод деталей архитектуры модели
obliteratus models --tier &lt;tier&gt;Просмотр подобранных моделей по вычислительному уровню
obliteratus recommend &lt;model&gt;Предложение метода/параметров на основе телеметрии
obliteratus interactiveМастер настройки с подсказками
obliteratus tourney &lt;model&gt;Турнир: все методы друг против друга
obliteratus run &lt;config.yaml&gt;Выполнение абляционного исследования из YAML
obliteratus strategiesСписок всех зарегистрированных стратегий абляции
obliteratus report &lt;results.json&gt;Повторная генерация визуальных отчетов
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. Личные данные не собираются — только имя модели, метод, метрики.

Типичные ошибки​

  1. Не используйте informed по умолчанию — он экспериментальный и медленный. Используйте advanced для надежных результатов.
  2. Модели размером менее ~1B плохо реагируют на удаление отказов — их поведение отказа поверхностно и фрагментировано, что затрудняет чистое извлечение направления. Ожидайте частичных результатов (20-40% остаточных отказов). Модели от 3B+ имеют более чистые направления отказа и реагируют гораздо лучше (часто 0% отказов с advanced).
  3. aggressive может ухудшить ситуацию — на маленьких моделях он может повредить связность и даже увеличить уровень отказов. Используйте его только если advanced оставляет > 10% отказов на модели от 3B+.
  4. Всегда проверяйте перплексию — если она подскакивает > 15%, модель повреждена. Уменьшите агрессивность.
  5. MoE модели требуют особого обращения — используйте метод nuclear для Mixtral, DeepSeek-MoE и т.д.
  6. Квантованные модели нельзя переквантовать — удаляйте отказы у модели полной точности, затем квантуйте результат.
  7. Оценка VRAM приблизительна — 4-битное квантование помогает, но пиковое использование может возрастать во время извлечения.
  8. Модели рассуждений чувствительны — используйте surgical для дистиллятов R1, чтобы сохранить цепочку рассуждений.
  9. Проверьте obliteratus recommend — данные телеметрии могут содержать лучшие параметры, чем значения по умолчанию.
  10. Лицензия AGPL — никогда не используйте import obliteratus в проектах MIT/Apache. Только вызов через CLI.
  11. Большие модели (70B+) — всегда используйте флаг --large-model для консервативных настроек по умолчанию.
  12. Спектральная сертификация RED — обычное дело — спектральная проверка часто помечает как «неполный», даже когда практический уровень отказов составляет 0%. Проверяйте фактический уровень отказов, а не полагайтесь только на спектральную сертификацию.

Дополнительные навыки​

  • vllm — Запуск моделей с удаленными отказами с высокой пропускной способностью
  • gguf — Конвертация моделей с удаленными отказами в GGUF для llama.cpp
  • huggingface-tokenizers — Работа с токенизаторами моделей