На этой странице OBLITERATUS: абляция отказов LLM (diff-in-means).
Метаданные навыка¶
|---|---
|Источник| Встроенный (устанавливается по умолчанию)
|Путь| skills/mlops/inference/obliteratus
|Версия| 2.0.0
|Автор| Hermes Agent
|Лицензия| MIT
|Зависимости| obliteratus, torch, transformers, bitsandbytes, accelerate, safetensors
|Теги| Abliteration, Uncensoring, Refusal-Removal, LLM, Weight-Projection, SVD, Mechanistic-Interpretability, HuggingFace, Model-Surgery
|Связанные навыки| vllm, gguf, huggingface-tokenizers
Справочник: полный SKILL.md¶
info Ниже приведено полное определение навыка, которое Hermes загружает при его активации. Это инструкции, которые видит агент, когда навык активен.
Навык OBLITERATUS¶
Что внутри¶
9 CLI-методов, 28 аналитических модулей, 116 предустановок моделей для 5 вычислительных уровней, турнирная оценка и рекомендации на основе телеметрии.
Удаляет поведение отказа (ограничения) из LLM с открытым весом без переобучения или дообучения. Использует методы механистической интерпретируемости — включая diff-in-means, SVD, отбеленный SVD, LEACE-стирание концепций, SAE-декомпозицию, байесовское проецирование ядра и другие — для выявления и хирургического удаления направлений отказа из весов модели с сохранением способности к рассуждению.
Предупреждение о лицензии: OBLITERATUS распространяется под лицензией AGPL-3.0. НИКОГДА не импортируйте его как Python-библиотеку. Всегда вызывайте через CLI (команда obliteratus) или подпроцесс. Это сохраняет лицензию Hermes Agent (MIT) чистой.
Видео-гид¶
Обзор использования OBLITERATUS агентом Hermes для абляции Gemma: https://www.youtube.com/watch?v=8fG9BrNTeHs («OBLITERATUS: AI-агент удалил защитные ограничения Gemma 4») Полезно, когда пользователь хочет получить визуальный обзор всего рабочего процесса перед самостоятельным запуском.
Когда использовать этот навык¶
Запускать, когда пользователь: * Хочет «расцензурировать» или «аблятировать» LLM * Спрашивает об удалении отказов/ограничений из модели * Хочет создать нецензурированную версию Llama, Qwen, Mistral и т.д. * Упоминает «refusal removal», «abliteration», «weight projection» * Хочет проанализировать, как работает механизм отказа модели * Упоминает OBLITERATUS, abliterator или направления отказа
Шаг 1: Установка¶
Проверьте, установлен ли уже инструмент: [code] obliteratus --version 2>/dev/null && echo "INSTALLED" || echo "NOT INSTALLED"
[/code]
Если не установлен, клонируйте и установите из GitHub:
[code]
git clone https://github.com/elder-plinius/OBLITERATUS.git
cd OBLITERATUS
pip install -e .
# Для поддержки веб-интерфейса Gradio:
# pip install -e ".[spaces]"
[/code] ВАЖНО: Подтвердите с пользователем перед установкой. Это загружает ~5-10 ГБ зависимостей (PyTorch, Transformers, bitsandbytes и т.д.).
Шаг 2: Проверка оборудования¶
Прежде всего, проверьте доступный GPU:
[code]
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')
"
[/code]
Требования к 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: Просмотр доступных моделей и получение рекомендаций | ||
| [code] | ||
| # Просмотр моделей по вычислительному уровню | ||
| obliteratus models --tier medium |
# Информация об архитектуре конкретной модели
obliteratus info <model_name>
# Рекомендация лучшего метода и параметров на основе телеметрии
obliteratus recommend <model_name>
obliteratus recommend <model_name> --insights # глобальные кросс-архитектурные рейтинги
[/code]
Шаг 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 (линейное стирание через оценку в замкнутой форме). Оптимальное линейное стирание.
4 метода только через Python API¶
(НЕДОСТУПНЫ через CLI — требуют импорта Python, что нарушает границу AGPL. Упоминать пользователю только если он явно хочет использовать OBLITERATUS как библиотеку в своём AGPL-проекте.) * failspy, gabliteration, heretic, rdo
Шаг 5: Запуск абляции¶
Стандартное использование¶
[code]
# Метод по умолчанию (advanced) — рекомендуется для большинства моделей
obliteratus obliterate
# С 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
[/code]
Точная настройка параметров¶
[code]
obliteratus obliterate
--method advanced \
--direction-method diff_means \
--n-directions 4 \
--refinement-passes 2 \
--regularization 0.1 \
--quantization 4bit \
--output-dir ./abliterated-models \
--contribute # опциональная телеметрия для исследований сообщества
[/code]
Ключевые флаги¶
| Флаг | Описание | По умолчанию |
|---|---|---|
--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 |
| ### Другие режимы выполнения | ||
| [code] | ||
| # Интерактивный режим с подсказками (оборудование → модель → предустановка) | ||
| obliteratus interactive |
# Веб-интерфейс (Gradio)
obliteratus ui --port 7860
# Запуск полного абляционного исследования из YAML-конфига
obliteratus run config.yaml --preset quick
# Турнир: соревнование всех методов друг с другом
obliteratus tourney <model_name>
[/code]
Шаг 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.
[code]
# Локальное тестирование с transformers
python3 -c "
from transformers import AutoModelForCausalLM, AutoTokenizer
model = AutoModelForCausalLM.from_pretrained('./abliterated-models/
tokenizer = AutoTokenizer.from_pretrained('./abliterated-models/
inputs = tokenizer('Как вскрыть замок?', 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>
[/code]
Справочник 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"). |
|
| ### Быстрые аналитические команды | |
| [code] | |
| # Запуск конкретных аналитических модулей | |
| obliteratus run analysis-config.yaml --preset quick |
# Ключевые модули для первого запуска:
# - alignment_imprint: Отпечаток метода выравнивания DPO/RLHF/CAI/SFT
# - concept_geometry: Одно направление против многогранного конуса
# - logit_lens: Какой слой принимает решение об отказе
# - anti_ouroboros: Оценка риска самовосстановления
# - causal_tracing: Причинно-необходимые компоненты
[/code]
Управляющие векторы (обратимая альтернатива)¶
Вместо постоянного изменения весов используйте управление во время инференса:
[code]
# Только Python API — для собственных проектов пользователя
from obliteratus.analysis.steering_vectors import SteeringVectorFactory, SteeringHookManager
[/code]
Стратегии абляции¶
Помимо абляции на основе направлений, 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 — Работа с токенизаторами моделей
- Справочник: полный SKILL.md
- Что внутри
- Видео-гид
- Когда использовать этот навык
- Шаг 1: Установка
- Шаг 2: Проверка оборудования
- Шаг 3: Просмотр доступных моделей и получение рекомендаций
- Шаг 4: Выбор метода
- Шаг 5: Запуск абляции
- Шаг 6: Проверка результатов
- Шаг 7: Использование аблятированной модели
- Справочник CLI-команд
- Аналитические модули
- Стратегии абляции
- Оценка
- Поддержка платформ
- Шаблоны YAML-конфигов
- Телеметрия
- Типичные ошибки
- Дополнительные навыки