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

Иногда причина понятна. Иногда модель отказывается обсуждать то, что лежит в первой ссылке из поисковой выдачи. А рядом на Hugging Face опубликована версия той же Qwen, Gemma или GLM со словом Uncensored. Автор обещает, что она будет отвечать без лишних нравоучений.

Но чем отличаются такие LLM? Неужели кто-то повторно обучил модели на сотни миллиардов параметров? Или просто удалили системную инструкцию? Может, нашли в весах переключатель censorship = false?

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

В этой статье постараемся ответить на три вопроса: откуда в LLM появляется отказ, как его ослабляют в открытых моделях и где можно взять "безотказную" модель.

Кто именно говорит «нет»

Отказ в чате не обязательно исходит от самой LLM. В готовом сервисе запрос может проходить через несколько слоёв:

Системная инструкция может прямо запрещать некоторые действия. Входной классификатор способен остановить запрос ещё до LLM, а выходной фильтр способен отбросить уже созданный ответ. Сервис также может передать отмеченный запрос другой, более ограниченной модели.

Но отказ бывает записан и в самих весах. Этот слой меняют некоторые авторы открытых моделей с пометкой Uncensored.

Как LLM учится отказывать

Базовая языковая модель учится предсказывать следующее слово или его часть. Она читает огромный объём данных и учится воспроизводить закономерности языка. Сама эта цель не задаёт правила поведения помощника, хотя в исходных текстах модель может встретить примеры отказов и безопасных ответов.

Прекрасное, наглядное и понятное объяснение процесса "предсказания" следующего токена можно посмотреть в этой статье.

Выученные закономерности сохраняются в весах, то есть в миллиардах чисел, от которых зависят вероятности следующих слов и частей слов. При обычной обработке запроса эти числа только читаются. Они меняются во время обучения или специального редактирования модели.

Базовая модель не настроена под привычный формат чата. Она может продолжить вопрос, начать писать реплики за пользователя или выдать текст, похожий на случайную страницу из интернета.

Затем базовую модель превращают в помощника. Эту стадию называют настройкой после базового обучения. В упрощённом виде она может включать три части.

  1. На первом этапе проводят обучение с учителем на инструкциях. В статьях и карточках моделей его обозначают как SFT. Модели показывают пары из запроса и подходящего ответа. Так она учится отвечать по существу, соблюдать формат диалога и пользоваться инструментами.

    При обучении с учителем в выборку также могут добавлять опасные, пограничные и провокационные запросы вместе с безопасными ответами. Иногда подходящий ответ полностью отказывает пользователю. Иногда он объясняет риск или предлагает безопасный путь к той же цели.

  2. На следующем этапе модель могут обучать на предпочтениях. Люди или другая модель сравнивают несколько ответов. Полезный и безопасный вариант получает более высокую оценку, опасный или бесполезный отказ получает более низкую. Здесь применяют обучение с подкреплением по отзывам людей (RLHF), обучение по оценкам другой модели (RLAIF) и прямую оптимизацию предпочтений (DPO).

  3. В англоязычных работах настройку модели под человеческие намерения и предпочтения называют alignment, а её безопасную часть называют safety alignment. Не всякая настройка после базового обучения относится к alignment: модель могут отдельно обучать формату, инструментам или предметной области.

Комбинацию обучения с учителем, модели оценки и RLHF использовали при создании InstructGPT. В работе про Llama 2 Meta описала обучение с учителем на данных о безопасности, отдельную модель оценки безопасных ответов и перенос поведения из подсказки в веса. В последнем случае к запросу временно добавляли фразу вроде «ты безопасный и ответственный помощник», получали нужный ответ, а затем учили модель воспроизводить его уже без подсказки.

В Constitutional AI Anthropic предложили ещё один подход. Модель критиковала и переписывала свои ответы по набору принципов, а полученные примеры использовались для обучения с учителем и обучения с подкреплением.

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

Если бы отказ был обычным условием в коде, его можно было бы удалить одной строкой. Здесь же перед нами выученное поведение, распределённое по нейронной сети.

Но где именно находится отказ внутри весов?

В 2024 году группа исследователей опубликовала работу Refusal in Language Models Is Mediated by a Single Direction. Её название сразу формулировало вывод: «В основе отказа языковых моделей лежит единственный вектор в пространстве».

Представим остаточный поток трансформера как общую доску, которую слои передают друг другу. Каждый слой читает текущее состояние, добавляет результат своих вычислений и передаёт его дальше. На этой доске нет слов. Там находится длинный вектор чисел, то есть внутреннее представление текста.

Исследователи собрали две группы запросов: вызывающие отказ и обычные безопасные. Затем пропустили их через модель и сравнили внутренние состояния на разных слоях. Разница средних дала направление, связанное с отказом:

направление_отказа = среднее(состояния для опасных запросов) - среднее(состояния для безопасных запросов)

Если удалить из внутреннего состояния составляющую вдоль этого направления, модель заметно реже отказывается. Если добавить её к состоянию безопасного запроса, модель начинает видеть опасность там, где её нет.

Это не один «нейрон цензуры» и не универсальный вектор для всех LLM. Направление вычисляют заново для каждой модели и выбирают на определённом слое. Авторы проверили эффект на 13 открытых чат-моделях размером до 72 млрд параметров.

Позднейшие работы показали, что одного направления хватает не всегда. Например, авторы SOM Directions are Better than One сильнее подавили отказы с помощью нескольких направлений. Связывать всю безопасность модели с одной прямой было бы неверно. Однако практический результат сохранился: в некоторых моделях отказ можно сильно ослабить небольшой правкой весов.

Сообщество назвало эту технику abliteration. Слово составлено из ablation, удаления влияния компонента, и obliteration, уничтожения. Устоявшегося русского названия пока нет.

Теперь у нас есть общее представление о том, с чем связано выученное LLM поведение. Можем переходить к способам обхода этого поведения.

Пять способов снять ограничения

Слово Uncensored в названии репозитория не раскрывает способ обработки модели. Ниже перечислены пять распространённых подходов.

1. Подмена инструкции

Дешевле всего заменить системную инструкцию, шаблон диалога или заранее подставить в начало ответа Sure, here is.... Когда таким способом обходят уже заданную защиту, это называют jailbreak.

Веса не меняются. Способ работает только при определённом запуске, а другая системная инструкция или новая версия сервера легко возвращает отказы. Получается особая настройка запуска, а не новая модель.

2. Обучение диалогу с чистого листа

Можно взять базовую модель и самостоятельно научить её вести диалог на выборке без примеров отказа. Так появлялись многие ранние модели без ограничений.

В описании WizardLM Uncensored автор прямо пишет:

из обучающего набора удалили ответы с нравоучениями и настройкой безопасного поведения, после чего модель обучили на оставшихся данных.

В карточке Dolphin Llama 2 описан тот же принцип: из выборки удаляли отказы, избегание ответов и признаки настройки безопасного поведения.

Это полноценное обучение. Для него нужны данные, вычислительные ускорители и проверка того, что вместе с отказами модель не потеряла способность выполнять обычные инструкции.

3. Дообучение готовой модели

Можно начать с уже настроенной модели и показать ей запросы, на которые она должна отвечать вместо отказа. Обновлять все миллиарды параметров необязательно. Метод LoRA добавляет небольшие обучаемые матрицы, которые затем можно объединить с основными весами.

Защитное поведение оказалось довольно хрупким. Авторы работы LoRA Fine-tuning Efficiently Undoes Safety Training с бюджетом меньше 200 долларов и одной видеокартой снизили долю отказов Llama 2 Chat 70B примерно до 1% на двух наборах заданий по собственной оценке. В предварительной работе Shadow Alignment заметного эффекта добились на 100 примерах примерно за час работы одной видеокарты.

4. Управление внутренними состояниями и удаление направления отказа

Этот способ не требует градиентного обучения.

Сначала автор вычисляет направление отказа по двум группам запросов. Затем при каждой обработке текста можно удалять проекцию внутреннего состояния на этот вектор:

h_new = h - (h · r)r

Здесь h обозначает текущее внутреннее состояние, а r обозначает нормализованное направление отказа.

Перехватывать состояния во время каждого запуска неудобно: пользователю потребуется специальный код. Поэтому ту же операцию заранее переносят в матрицы, которые записывают данные в остаточный поток: матрицу векторных представлений токенов, выходные проекции механизма внимания и многослойного перцептрона, MLP. После такой правки матрицы больше не могут создавать составляющую вдоль найденного направления.

Получается обычный набор весов, который загружается через transformers, vLLM или другой совместимый движок. В базовой реализации не нужны ни градиентный оптимизатор, ни обратное распространение ошибки, ни выборка готовых ответов. Пошаговая реализация приведена в статье Uncensor any LLM with abliteration и библиотеке FailSpy/abliterator. Более новый инструмент Heretic автоматизирует подбор слоёв и силы вмешательства: он одновременно снижает долю отказов и расхождение с исходной моделью по KL-дивергенции.

5. Смешивание весов и восстановительное обучение

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

Что публикуют на Hugging Face?

Для новых Qwen, Gemma и GLM публикуют версии с пометками Uncensored и Abliterated. Собрал несколько самых популярных:

Авторы Qwen3.8-27B-Uncensored приводят подробную проверку: в их прогоне доля отказов на опасных запросах снизилась до 0–6%, а результаты на четырёх обычных тестах отличались от исходной Qwen не больше чем на 1,3 процентного пункта.

Авторы GLM-5.3-Flash-ABLITERATED-NVFP4 указывают, что отказ удалён прямо из весов. В их тесте на 320 запросах HarmBench модель не отказала ни разу при выключенных рассуждениях и при максимальном усилии, но сохранила 4–9% отказов в двух других режимах. MMLU на 1026 вопросах снизился с 86,16% до 85,28%. По одному тесту нельзя сказать, что качество «сохранилось» вообще, но в этой проверке падение действительно невелико.

Если Qwen на 27B параметров можно без особого труда запустить локально, то с GLM-5.3-Flash ситуация посложнее. Понадобиться внушительное количество ОЗУ. Но скачивать десятки гигабайт весов необязательно. Например, OrcaRouter позволяет вызывать через совместимый с OpenAI API сбалансированную Gemma 4 26B A4B от Obsidian, также есть и названные выше Qwen и GLM по той же стоимости, что и обычные модели с цензурой.

Вместо заключения

Итак, специального переключателя «цензура» в LLM нет. Отказ может появиться из обучения на безопасных ответах, системной инструкции или внешнего фильтра. Поэтому и «снимают ограничения» по-разному: чистят обучающую выборку, дообучают через LoRA или DPO, удаляют вектора отказа из весов либо сочетают сразу несколько способов.

Теперь должна быть понятнее и история с Claude Fable 5 и Claude Mythos 5. По данным Anthropic, это одна и та же модель, но в общий доступ компания выпустила Fable с классификаторами и переключением части запросов на другую модель. Mythos с частью снятых защитных механизмов доступен только проверенным партнёрам Project Glasswing.

И напоследок, один важный вопрос мы сегодня почти не трогали: что происходит с качеством модели после таких правок. Готовность отвечать ещё не означает, что модель правильно выполнила задачу. А один MMLU не покажет, не стала ли модель хуже следовать инструкциям, писать код и отличать полезный ответ от уверенной ерунды.

Статья и так получилась большой, поэтому бенчмарки оставим для следующей части :)