Abliteration

Отказ модели — это одно направление в пространстве активаций. Вычтите этот вектор из активаций — модель перестанет отказывать вообще; усильте — она откажется даже на «привет». Тот же самый вектор служит и датчиком атаки, и инструментом снятия защиты.

Суть

Методы работы с внутренним состоянием модели называют representation engineering: вместо промптов и файнтюна манипулируют активациями напрямую. Abliteration — самый наглядный представитель (arXiv 2406.11717).

Находится вектор, соответствующий поведению «отказать». Дальше он используется в обе стороны:

  • −вектор → встроенное выравнивание фактически отключается, модель отвечает на то, на что отказывалась;
  • +вектор → отказы срабатывают на чём угодно, вплоть до приветствия.

Ограничение: нужны открытые веса. Для API-моделей метод неприменим, поэтому в защите он — дополнительный сенсор, а не замена внешнему guardrail.

Почему это важно для защиты, а не только для атаки

Из существования такого вектора следует практический вывод: выравнивание внутри открытой модели снимается механически и дёшево. Значит, безопасность нельзя закладывать только в веса — она обязана жить снаружи, в отдельно версионируемом слое (Guardrails). Это тот же аргумент, что и alignment tax в Over Refusal, но с другой стороны: там внутренняя защита вредит качеству, здесь — легко обходится.

Соседний метод: TaskTracker

White-box детекция инъекций от Microsoft (arXiv 2406.00799), работающая на том же принципе — смотреть в активации, а не в текст.

Идея: сравнить внутреннее состояние модели до чтения внешнего документа и после. Если текст заставил её решать другую задачу, активации дрейфуют, и этот скачок ловит линейная проба — до того, как модель сформировала ответ и вызвала инструмент.

Ценность в моменте срабатывания. Blackbox-детекторы видят только текст и часто ловят проблему постфактум: ответ ещё выглядит безопасным, а состояние уже смещено, и неправильным будет следующий tool call (см. Tool Hijacking). White-box успевает раньше.

Blackbox White-box (TaskTracker, abliteration-сенсор)
Что видит Только текст Внутреннее состояние модели
Где ставится Вокруг любого провайдера Только на открытых весах
Когда срабатывает По входу или готовому выходу До ответа и до вызова инструмента

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

Сверка 2026-08. Ответ распадается надвое, и смешивать половины опасно.

Направление для детекции переносится хорошо. Пробник, настроенный на базовой модели, работает на её instruction-tuned и даже на аблитерированной версии с деградацией не более 0.010 AUROC; аблитерированные варианты отличаются от instruction-tuned в пределах ±0.003. То есть детектор отказа переживает и дообучение, и саму аблитерацию — сигнал остаётся в активациях, даже когда поведение отказа снято. Отдельно показано, что вектор, найденный на одном языке, переносится на другие языки той же модели.

Направление для вмешательства — не переносится. Пост-тренировка существенно меняет само направление отказа относительно базовой модели: косинусная близость низкая, и перенос «вперёд» неэффективен. Практически это значит, что вектор, вычисленный на базовой модели, не снимет отказ у дообученной — его надо извлекать заново на той стадии выравнивания, с которой работаешь.

Отсюда же следует, что отказ не сводится к одному направлению — это отдельный результат, из-за которого простые схемы «вычесть один вектор» работают неполно и порождают методы защиты через альтернативные направления отказа.

Для защиты вывод удобный: детектор строится один раз и переживает обновления модели, а атака требует пересчёта под каждую версию.

Соседний метод в проде: чего он стоит

TaskTracker (см. выше) применим к open-weight моделям в проде, и накладные расходы у него минимальные по устройству метода: линейный классификатор на дельте активаций до и после обработки внешних данных — модель не дообучается и ничего не генерирует. Считать нечего сверх того, что и так посчитано прямым проходом.

Ограничение у него не в производительности, а архитектурное: нужен доступ к внутренним активациям, то есть свой хостинг открытых весов. Через API провайдера метод неприменим в принципе, каким бы дешёвым он ни был.

Заявленное качество — околопредельный ROC AUC на выборке вне обучающего распределения, причём метод обобщается на инъекции и джейлбрейки, не обучаясь на них: он ловит не атаку, а факт смены задачи.

Связано с

  • Model Poisoning — тот же эффект, полученный чужими руками через обучающие данные

  • Jailbreak Attacks — abliteration как способ обхода выравнивания

  • Injection Detection — TaskTracker как white-box ветвь детекции

  • Guardrails — почему защита выносится наружу, раз веса можно править

  • Over Refusal — вторая причина не полагаться на внутреннее выравнивание

  • Local LLM Deployment — метод применим только там, где веса у вас на руках