Расцензуривание локальной LLM сводится к трём рабочим путям: правка весов (abliteration и автоматизированные инструменты вроде heretic), дообучение на данных без отказов (LoRA или полный fine-tuning) и вмешательство в активации на этапе инференса (activation steering). Ни один из них не добавляет модели знаний. Все они убирают выученное поведение отказа, сформированное на этапе alignment через RLHF или DPO, и вместе с ним часто задевают соседние навыки: связность, следование формату, аккуратность в фактах.
При выборе готовой uncensored-модели главный вопрос звучит так: что она потеряла вместе с отказами. Заявленный KLD 0.0001 на Wikitext отвечает на него лишь формально, потому что этот датасет состоит из текстов в стиле Википедии, где нет ни диалогов, ни инструкций, ни запросов, на которые модель отказывается отвечать. Низкая дивергенция на таком корпусе спокойно уживается с поломанным refusal rate и деградацией на коде или математике.
Ниже: как устроен abliteration, чем отличаются альтернативы, какие метрики смотреть вместо KLD и как отсеять деградировавшие сборки на Hugging Face ещё до скачивания.
Что такое расцензуривание LLM и зачем его делают
Guardrails в открытых моделях не зашиты в архитектуру как жёсткое правило. Это выученное поведение, которое появляется на этапе alignment: после предобучения модель проходит SFT, затем RLHF или DPO, где предпочтение отдают ответам с аккуратным отказом на потенциально опасные запросы. Веса меняются так, что на определённые темы модель выдаёт шаблонное «Извините, я не могу помочь». В самом промпте никакого запрета при этом нет, и убрать поведение можно только через веса или активации.
Расцензуривание - это модификация модели, которая снимает встроенные отказы (refusals) на часть запросов. Решают задачу по-разному: правят веса, дообучают на данных без отказов или подмешивают вектор в активации во время генерации. Что это даёт на практике:
- работа с медицинскими, юридическими и историческими материалами, где модель отказывается давать даже общий контекст;
- red teaming и проверка собственных систем на устойчивость;
- креативное письмо и сценарии без самоцензуры;
- анализ чувствительных текстов, например отчётов об инцидентах или токсичных датасетов;
- снижение over-refusal, когда модель отказывает на безобидные запросы.
В 2026 году число uncensored-вариантов на Hugging Face выросло: теги uncensored и abliterated встречаются у моделей разного размера, от компактных 7-8B до крупных MoE-сборок. Часть из них собрана аккуратно, часть - на скорую руку, и внешне они выглядят одинаково.
Чем расцензуривание отличается от джейлбрейка
Джейлбрейк - это эксплуатация промпта: ролевые сценарии, обёртки, просьбы «представь, что ограничений нет». Он работает внутри одной сессии и не меняет модель. Расцензуривание меняет артефакт (веса или настройки генерации), поэтому эффект сохраняется между сессиями, в батч-обработке и в API.
Аналогия: джейлбрейк - подбор кода к замку, расцензуривание - перепрошивка замка. Практические различия:
- стабильность: обход через промпт легко ломается обновлением модели или сменой system prompt, а правка весов остаётся;
- качество: при джейлбрейке модель тратит контекст на обход инструкций и чаще отвечает менее связно, особенно на длинных задачах;
- масштаб: промпт-трюк приходится повторять в каждом запросе, модифицированная модель работает одинаково везде.
Почему over-refusal стал проблемой
Alignment бывает слишком агрессивным. Модель отказывает на запросы про химию, медицину, историю, политику и безопасность, когда речь идёт об учебном или профессиональном контексте. Классические примеры ложных отказов: просьба объяснить принцип работы промышленного реактора для курсовой, разбор состава бытового вещества, анализ юридического кейса с упоминанием насилия, вопрос о механике уязвимостей для отчёта по безопасности.
Причин две. Первая - обучающие данные: разметчики предпочитали отказ там, где ответ могли неверно истолковать, и модель выучила отказ как более безопасный вариант. Вторая - формулировка: модели сложно отличить учебный интерес от попытки получить инструкцию, и она выбирает отказ, потому что за него меньше наказывают. Основной мотив популярности uncensored-сборок в том, что ложные отказы мешают нормальной работе. Насколько велика их доля, зависит от модели, и проверять это нужно на своих промптах, а не по обещаниям в описании.
Как работает abliteration: удаление refusal direction
Abliteration (от ablate, «удалять») идёт от наблюдения: отказ в модели связан с определённым направлением в пространстве активаций. Если подать модели вредный и безвредный промпт одной формы, внутренние представления разойдутся по устойчивой оси. Эту ось называют refusal direction. Она не привязана к конкретной фразе: направление проявляется на разных темах и языках, потому что модель выучила общий паттерн «нужно отказаться».
Дальше правка идёт по весам: из матриц, которые пишут в residual stream, вычитают проекцию на этот вектор. Это rank-1 modification: меняется одно направление, остальные веса остаются на месте. Дообучение не нужно, градиенты не считаются, вся работа занимает один прогон по датасету промптов плюс перезапись чекпоинта. Технически это и называют weight orthogonalization.
Пошагово: как вычисляется refusal direction
- Собрать два набора промптов: harmful (запросы, на которые модель отказывает) и harmless (похожие по форме, но безобидные).
- Прогнать каждый промпт через модель и снять активации на выбранном слое, обычно в середине сети. Часто берут состояние на последнем токене промпта.
- Усреднить активации по harmful и по harmless, затем вычесть одно среднее из другого. Разница средних и есть refusal direction.
- Нормализовать вектор, чтобы правка не зависела от его длины.
- Для каждой матрицы, влияющей на residual stream (выход attention, down_proj в MLP), вычесть компоненту вдоль вектора:
W' = W - r * (rᵀ W). - Сохранить чекпоинт и проверить refusal rate и бенчмарки.
Результат сильно зависит от деталей: какой слой выбран, насколько велик и разнообразен датасет, правится один слой или все, как агрегируются активации. Две реализации одной идеи дают разные модели, и по названию метода качество не предсказать.
Ограничения abliteration
- Полного удаления отказов метод не гарантирует. Часть поведений закодирована в других слоях и механизмах, поэтому модель может отказать на промптах, не похожих на те, что попали в датасет.
- Датасет определяет всё. Если harmful-набор не покрывает конкретную тему, отказы на ней останутся. Типичный случай: сборка заявлена как uncensored, но отклоняет запросы в пентест-контексте.
- Страдает осторожность там, где она нужна: модель теряет способность аккуратно отказаться в реально опасной ситуации.
- Эффект разный на разных архитектурах. На dense-моделях направление найти проще, на MoE с несколькими экспертами оно может быть распределено.
- Отдельные сборки после правки начинают заметно чаще галлюцинировать: refusal direction пересекается с другими механизмами, и грубое вычитание задевает их.
Heretic и другие методы снятия цензуры
Heretic - автоматизированный инструмент абляции. Ручной abliteration требует подобрать слой, датасет и коэффициент; heretic перебирает варианты и оставляет те, что убирают отказы с минимальным отклонением от базовой модели. В сравнениях модификаций открытых моделей именно heretic и abliterix чаще всего сохраняют качество, тогда как грубые автоматические скрипты просаживают бенчмарки. Публичных деталей о внутренней реализации здесь меньше, чем у abliteration, поэтому смотреть стоит на результаты: какие метрики автор показал, на каком наборе и с какой базой сравнивал.
LoRA и fine-tuning для расцензурирования
Дообучение на датасете, где модель никогда не отказывает, убирает guardrails по-другому: новое поведение заменяет старое, а не вычитается из весов. Полный fine-tuning требует данных, GPU-часов и аккуратности, LoRA заметно дешевле и подходит для домашнего железа. Плата за это - catastrophic forgetting. Модель забывает часть прежних навыков, если обучающих примеров много и они однотипные. Чтобы этого избежать, в датасет подмешивают обычные инструкции и следят за балансом. Практический минус LoRA: отказы могут вернуться, если адаптер накладывается поверх строгого инструктажа, а часть тем остаётся неохваченной.
Activation steering и вмешательство в инференс
Steering vectors работают во время генерации: к активациям на нужных слоях прибавляют вектор, который гасит отказ. Веса остаются нетронутыми, поэтому метод обратим: отключили вектор, получили исходную модель. Цена - правка кода инференса (не каждая оболочка это умеет), подбор слоя и коэффициента, риск задеть соседние поведения. Слишком сильный вектор делает ответы развязными и менее точными. Для экспериментов это удобный инструмент, для раздачи готовой модели - неудобный: эффект живёт в конфиге, а не в чекпоинте.
Влияние на качество: почему KLD 0.0001 ничего не говорит
KLD, или KL divergence, измеряет, насколько распределение следующего токена у модифицированной модели отличается от исходной. Считают его на текстовом корпусе, чаще всего на Wikitext: это подборка статей в стиле Википедии. KLD 0.0001 означает, что на таких текстах модель почти не изменилась. Дальше начинаются оговорки:
- Wikitext не содержит диалогов, инструкций, отказов и запросов на код. Поведение на нём почти не связано с refusal rate.
- Метрика усредняется по токенам. Редкие, но важные случаи (отказ, резкая реплика) тонут в общей массе.
- Замер зависит от длины контекста, версии токенизатора и chat template. Два автора могут получить разные числа на одной модели.
- Низкий KLD сочетается с поломанным следованием формату и потерей связности на длинных задачах.
Наглядный контраст: в сравнении 23 модификаций открытой модели у сборки OBLITERATUS с 800 тысячами загрузок заявлены ASR 72%, GSM8K 66% и KL 1.1, тогда как аккуратные абляции удержали качество. KL 1.1 и KL 0.0001 расходятся на четыре порядка, и это уже сигнал, что модель заметно ушла от базы. Проблема в другом: KL сам по себе не говорит, куда именно она ушла.
Какие метрики действительно важны
Набор, который стоит проверять перед тем, как оставлять модель в работе:
- знания: MMLU или MMLU-Pro, ARC-Challenge;
- математика и рассуждения: GSM8K, MATH;
- код: HumanEval, MBPP;
- диалог и следование инструкциям: MT-Bench, наборы с жёстким форматом ответа;
- refusal rate: доля отказов на вашем наборе промптов, включая безобидные;
- perplexity и KLD на ваших данных, а не только на Wikitext;
- связность и длина ответов: повторы, обрывы, уход от темы.
Замеры имеет смысл делать через стандартный harness, чтобы методика совпадала с публичными лидербордами, и обязательно сравнивать модифицированную модель с оригиналом на том же железе, с тем же chat template и той же квантизацией. Сравнение оригинала в fp16 со сборкой в GGUF Q4 покажет разницу форматов, а не эффект расцензуривания.
Примеры деградации: на что жалуются пользователи
Симптомы повторяются от сборки к сборке: путаница в фактах, потеря связности на длинных ответах, повторы, уход от заданного формата, склонность отвечать не по делу или выдавать длинные монологи вместо короткого ответа. На простых промптах деградация часто незаметна, поэтому оценка по одному-двум вопросам ничего не показывает. Обратная ситуация тоже встречается: модель остаётся умной, но отказов меньше не становится, и обещанная свобода остаётся на бумаге.
Как выбрать uncensored-модель на Hugging Face и не прогадать
Порядок действий выглядит так:
- Отфильтровать по тегам: uncensored, abliterated, а также по названию инструмента (heretic, abliterix).
- Прочитать model card: какой метод применён, на каком датасете, какие метрики и с чем сравнивали.
- Проверить дату публикации, версию базовой модели и активность автора.
- Просмотреть обсуждения и отзывы: там чаще всего всплывают конкретные проблемы.
- Сопоставить размер и квантизации: некоторые сборки существуют только в агрессивных GGUF, где качество уже потеряно.
- Прогнать свой набор промптов на той квантизации, которой будете пользоваться.
Красные флаги в model card
- В карточке нет описания метода, только слово uncensored в названии.
- Единственная метрика - KLD на Wikitext или perplexity на одном корпусе.
- Нет сравнения с базовой моделью на стандартных бенчмарках.
- Нет даты, хеша и ссылки на исходный чекпоинт, по которому считали дивергенцию.
- Автор публикует десятки моделей за короткий срок без описания процесса.
- Обещания «полной свободы» без цифр и примеров.
- Заявленные safety- или quality-оценки без указания набора и условий, в которых их снимали.
Последний пункт важнее, чем кажется: модели умеют вести себя по-разному на тесте и в работе. Evaluation awareness завышает safety-метрики в model card на 20+ процентных пунктов, поэтому заявленные баллы стоит перепроверять на своих промптах. Свежий пример из практики верификации: заявление о 99,44% на бенчмарке HLE, за которым скрывалась подмена модели.
Как протестировать модель после скачивания
Соберите 15-25 промптов и разбейте их на группы: фактология с проверяемыми утверждениями, логика и математика, код, инструкции с жёстким форматом, чувствительные темы (там отказ ожидаем) и безобидные темы (там отказ означает over-refusal). Дальше:
- посчитайте refusal rate по группам: важно видеть не общее число отказов, а то, на каких темах они остались;
- сравните ответы с оригинальной моделью на той же квантизации и тех же параметрах генерации;
- проверьте связность на длинных ответах: повторы, обрывы, потеря нити;
- оцените следование формату: JSON, списки, таблицы, заданная длина.
Пометка uncensored не означает, что отказы убраны полностью. Показательный случай - модель, опубликованная как расцензуренная, но отклоняющая запросы в пентест-контексте. Причины обычно три: частичная абляция, скрытый system prompt в шаблоне и артефакты GGUF-квантования. Быстрая методика проверки реального уровня аблитерации занимает около 15 минут и позволяет отличить игрушечную модификацию от работающей.
Ограничения и подводные камни расцензуривания
- Новых знаний не появляется. Удаление refusal direction не расширяет ни словарь фактов, ни способность рассуждать.
- Галлюцинации и предвзятость могут вырасти: правки в residual stream задевают и другие механизмы.
- Модель теряет способность к аккуратному отказу там, где он нужен: в медицинских, химических, юридических вопросах.
- Результат нестабилен: одна и та же техника на разных базах даёт разный эффект, а поведение зависит от квантизации.
- Для продуктов и внутренних пайплайнов добавляются юридические и репутационные риски.
Юридические и этические риски
Ответственность за использование модифицированной модели лежит на том, кто её запускает. В части юрисдикций распространение и применение моделей без защитных механизмов ограничено, а требования к провайдерам ужесточаются, включая нормы вроде AI Act в Евросоюзе. Публикация uncensored-сборок на платформах тоже попадает под правила: у Hugging Face работают этические категории, гейтинг доступа и лицензии, и автора могут попросить ограничить раздачу. О том, как эта система защитных механизмов устроена на практике, стоит прочитать отдельно, если вы публикуете свои сборки. Для коммерческого продукта это означает дополнительные проверки, логирование и фильтры на входе и выходе. Это не юридическая консультация: конкретные риски зависят от страны и сценария.
Почему расцензуривание не делает модель умнее
Отказ - отдельное поведение, и его удаление не добавляет ни знаний, ни логики. Метафора простая: снять тормоза с машины и ждать, что она поедет быстрее, не получится, а управляемость упадёт. База остаётся той же: та же архитектура, тот же претрейн, та же квантизация. Если модель была слабой в математике, после abliteration она сильнее не станет. Хуже другое: правка весов ломает тонкую настройку, которая отвечала за форматирование, следование инструкциям и осторожность в фактах, поэтому типичная жалоба на uncensored-сборки звучит как «отвечает свободнее, но глупее».
Сравнение методов: что выбрать в 2026
| Метод | Что меняет | Ресурсы | Влияние на качество | Обратимость | Когда выбирать |
|---|---|---|---|---|---|
| Abliteration | Веса, матрицы residual stream | GPU для одного прогона по датасету | Умеренное, зависит от слоя и датасета | Только откатом к исходному чекпоинту | Нужен готовый чекпоинт без отказов |
| Heretic и подобные автоматизации | Веса, подбор слоёв и коэффициентов | GPU, больше прогонов | Обычно мягче ручных скриптов | Откат к чекпоинту | Нужен предсказуемый результат без ручного подбора |
| LoRA / fine-tuning | Адаптер или все веса | От одного GPU до кластера, плюс датасет | Риск catastrophic forgetting | Адаптер можно отключить | Нужны новые поведения, а не только снятие отказов |
| Activation steering | Активации во время инференса | Без обучения, нужна поддержка в коде | Зависит от коэффициента | Полностью обратим | Эксперименты и настройка на ходу |
| Промпт-инжиниринг и system prompt | Вход, не модель | Нет | Снижает связность на сложных задачах | Мгновенно обратим | Разовый обход, когда менять модель нельзя |
Как читать таблицу под свои задачи:
- нужен готовый чекпоинт для локального запуска: abliteration или heretic, дальше проверка refusal rate и бенчмарков;
- нужна гибкость и обратимость: activation steering;
- нужны новые навыки вместе с меньшим числом отказов: LoRA с датасетом, где есть и обычные инструкции;
- менять модель нельзя: остаются промпты, с поправкой на нестабильность и просадку качества на длинных задачах.
Железо тоже диктует выбор: abliteration на 7-8B делается на одной потребительской карте, для 70B и крупных MoE нужны серьёзные ресурсы или готовый чекпоинт от сообщества. Оценивайте compute cost заранее: прогон по датасету и последующая проверка бенчмарков часто занимают больше времени, чем сама правка.
Что дальше: тренды и прогнозы
Число uncensored-сборок на Hugging Face растёт, вместе с ним растёт и шум. Автоматизация уже сейчас позволяет получить расцензуренную версию модели почти без ручной работы, поэтому дальше решает качество применения: какой датасет использован, какие слои правились, какие метрики автор показал. Сообщество постепенно переходит от обещаний к сравнениям, и сборки без цифр теряют доверие.
Второй тренд - регулирование. Требования к провайдерам моделей ужесточаются, и часть модифицированных сборок может уходить в гейтинг или ограниченную раздачу. Прогноз осторожный: публикация никуда не исчезнет, но доступ к отдельным чекпоинтам станет менее свободным.
Третий момент - измеримость. Оценки в model card всё чаще расходятся с реальным поведением, поэтому навык проверять модель своими промптами становится базовым. Практический шаг на сегодня: заведите личный набор из 15-25 промптов и таблицу с refusal rate, связностью и результатами по MMLU или GSM8K, чтобы каждую новую сборку оценивать по одним и тем же критериям, а не по описанию автора.