Технический разбор модели, которую в телеграме продают как «Claude без цензуры»
В моей ленте недавно завирусился пост: якобы кто-то «дообучил Qwen 3.5 до уровня Claude 4.6 Opus, убрал цензуру через Heretic и получил настоящего монстра». Звучит сенсационно. Я зашёл на HuggingFace, открыл карточку модели и провёл вечер, разбираясь, что там реально под капотом.
Спойлер: внутри много интересной техники, но к Claude эта модель имеет такое же отношение, как кроссовки с надписью «Adibas» к Adidas. Ниже расскажу, что действительно сделал автор, что такое abliteration и Heretic с инженерной точки зрения, и как читать названия файнтюнов на HuggingFace, чтобы не вестись на маркетинг.
Что заявлено и что на самом деле
Полное имя модели: Qwen3.5-21B-Claude-4.6-Opus-Deckard-Heretic-Uncensored-Thinking. Автор — DavidAU, известный в сообществе мерджер моделей.
Пройдусь по каждой части имени и переведу её на технический язык.
Qwen3.5 — базовая модель от Alibaba Cloud. Это open-weights LLM, всё честно.
21B — заявленное число параметров. Но базовый Qwen3 идёт в размерах 0.6B, 1.7B, 4B, 8B, 14B, 32B, 235B. Размер 21B — это не оригинальный размер семейства. Получают его через depth upscaling: берут модель меньшего размера (обычно 14B) и склеивают слои так, чтобы общее число параметров выросло. Метод известный, описан в статье SOLAR 10.7B от Upstage. Работает, но никаких «новых знаний» добавить не может — это просто архитектурная манипуляция с весами, которые уже есть.
Claude-4.6-Opus — а вот это самая интересная часть имени. К Claude отношения никакого нет. Веса Claude закрытые, Anthropic их не публикует. Что реально стоит за этой надписью: автор файнтюнил Qwen на синтетическом датасете, который сгенерирован запросами к Claude. То есть модель не «дообучена до уровня Claude», она дообучена на ответах Claude. Это distillation в самом простом смысле — попытка заставить ученика имитировать стиль учителя через обучение на его выходах. Качество такого подхода зависит от объёма и качества датасета, и обычно даёт улучшение в стиле и форматировании, но никак не повторяет capabilities исходной модели.
В тегах модели видно отсылку к датасету TeichAI/claude-4.5-opus-high-reasoning-250x — судя по всему, оттуда и пришло «Claude 4.6 Opus» в названии.
Deckard — отсылка к персонажу Филипа К. Дика, тег указывает на датасет DavidAU/PkDick-Deckard-5-Datasets. Это файнтюн на текстах в стилистике Дика для творческого письма. К capabilities не имеет отношения, влияет только на стиль вывода в художественных задачах.
Heretic-Uncensored — здесь применили abliteration. Это технический процесс снятия отказов модели на «опасные» запросы. Подробнее ниже.
Thinking — модель умеет генерировать reasoning-цепочки в тегах <think>...</think>, как DeepSeek-R1 и OpenAI o1. Это либо встроено в базовый Qwen3 (он действительно поддерживает thinking-режим), либо допилено через файнтюн.
Итого реальное описание: depth-upscaled Qwen3 14B → файнтюн на синтетических данных от Claude → файнтюн на художественных текстах → abliteration через Heretic → пакетирование с поддержкой thinking-режима.
Звучит уже не так громко, правда?
Что такое abliteration с технической точки зрения
Это самая интересная часть всей истории, и здесь стоит остановиться подробно.
В декабре 2023 года команда исследователей (Arditi, Obeso, Syed et al.) опубликовала работу, которая позже легла в основу статьи в NeurIPS 2024 — «Refusal in Language Models Is Mediated by a Single Direction». Идея простая, но красивая.
Когда современная LLM получает запрос, нарушающий её guidelines, она генерирует отказ. На уровне архитектуры это значит, что в какой-то момент в residual stream трансформера активируется паттерн, который смещает распределение выходных токенов в сторону «I cannot help with that». Авторы показали, что в большинстве моделей этот паттерн представляется одним конкретным направлением в пространстве активаций — refusal direction.
Алгоритм его поиска такой:
Берёшь набор harmful-промптов (которые модель отклоняет) и harmless-промптов (которые она выполняет).
Прогоняешь оба набора через модель, снимаешь активации residual stream на каждом слое.
Считаешь среднее активаций для harmful и harmless отдельно. Разница векторов — это и есть refusal direction. Дальше — самое интересное. Можно либо инвертировать это направление при инференсе (steering), либо перманентно убрать его проекцию из весов модели. Второй метод и называется abliteration. Технически это weight orthogonalization: для каждой матрицы весов, которая пишет в residual stream, проецируется и вычитается компонента вдоль refusal direction.
Псевдокод выглядит так:
def abliterate_weight_matrix(W, refusal_dir): """Убирает проекцию весов на направление отказа.""" # refusal_dir должен быть нормализован refusal_dir = refusal_dir / refusal_dir.norm() # Проекция каждой строки W на refusal_dir projection = W @ refusal_dir.unsqueeze(-1) * refusal_dir # Вычитаем проекцию из исходных весов return W - projection # Применяется ко всем матрицам, пишущим в residual: # attention out_proj, MLP down_proj, embed_tokens, etc. for layer in model.layers: layer.self_attn.o_proj.weight.data = abliterate_weight_matrix( layer.self_attn.o_proj.weight.data, refusal_dir ) layer.mlp.down_proj.weight.data = abliterate_weight_matrix( layer.mlp.down_proj.weight.data, refusal_dir )
После такой операции модель физически теряет способность активировать отказ, потому что соответствующее направление в её представлениях стало нулевым.
Heretic — это инструмент, который автоматизирует весь этот пайплайн. По сути, обёртка над методом Arditi с удобным API: загружаешь модель, даёшь два набора промптов, получаешь модифицированные веса. На GitHub достаточно много форков и реализаций.
Важный нюанс. Abliteration — не безболезненная операция. Удаление направления из весов сужает пространство представлений модели, что сказывается на общем качестве. Замеры на open benchmarks (MMLU, GSM8K, HumanEval) обычно показывают просадку на 1–5% после abliteration. Для chat-сценариев это незаметно, для математики и кода — заметно.
Ещё момент: abliteration снимает только те отказы, которые завязаны на найденное направление. Если отказ реализуется через другой механизм (например, distribution shift в специфических контекстах), он останется. Поэтому «Uncensored» в названии — это маркетинг. Точнее было бы «Refusal-direction-orthogonalized», но для громкого имени не подходит.
Что не так с примером, который автор сам поместил в карточку
Автор в карточке модели приводит длинный пример: модель отвечает на запрос про «10 способов использовать ночное радиационное охлаждение для климатической митигации». Развёрнутый ответ с таблицами, формулами, ASCII-диаграммами.
И вот тут начинается интересное. Я физик не профессиональный, но школьную программу помню. Что я увидел в выводе модели:
В блоке <think> модель пишет: «The Stefan-Blackmann-Weinmann equation relates radiated power: P = εσC(T² − T²)».
Это выдумка. Уравнение Стефана-Больцмана, которое описывает излучение абсолютно чёрного тела, выглядит так: P = εσAT⁴. Степень — четвёртая, не вторая. Никакого Вайнмана в названии нет. Площадь обозначается обычно A, не C. Само выражение T² − T² тождественно равно нулю — модель явно пыталась написать что-то вроде (T₁² − T₂²), но потеряла индексы и не заметила.
Дальше модель приводит численные значения:
«σ = Stefan-Blackmann constant (2.378 × 10⁻³ K⁻³)»
Реальное значение постоянной Стефана-Больцмана: 5.670 × 10⁻⁸ Вт/(м²·К⁴). Размерность — четвёртая степень Кельвина в знаменателе и метр в квадрате в числителе, потому что закон Стефана-Больцмана даёт мощность с единицы площади. У модели в ответе всё неправильно: и значение, и порядок, и размерность.
Дальше идут таблицы с показателями эффективности и капитальными затратами. Числа выглядят правдоподобно, но при ближайшем рассмотрении не сходятся между собой. Например, в одной таблице сказано «Annual savings: 50,000–70,000» для аналогичной площади. Разница в 600 раз без объяснения.
В разделе про географическую применимость в одной строке указан «Arctic» с потенциалом 20–40 W/m², в этой же таблице помечено (A) рядом с десертом и Арктикой одновременно — модель просто скопипастила обозначение.
Это типичные галлюцинации LLM, ничего нового. Но критично здесь не то, что модель ошибается — все модели ошибаются. Критично, что автор разместил именно этот вывод как демонстрацию возможностей своей «Claude 4.6 Opus». Если такая планка показывается как лучший пример работы — реальный уровень модели я бы оценивал ниже базового Qwen3 14B.
Почему 21B параметров — это не «улучшение»
Вернусь к depth upscaling, про который писал в начале. Метод выглядит примерно так:
# Берём базовую модель с 24 слоями base_model = load_model("Qwen3-14B") # допустим, 24 transformer-блока # Создаём расширенную версию через дублирование слоёв upscaled_layers = [] upscaled_layers.extend(base_model.layers[:16]) # первые 16 слоёв как есть upscaled_layers.extend(base_model.layers[8:24]) # слои 8-24 копируем # Получили 32 слоя, число параметров выросло пропорционально
После такого «расширения» модель работает, но качество без файнтюна сильно падает — границы между склеенными блоками рвут информационный поток. Поэтому upscaled-модели всегда требуют дополнительного continued pretraining на больших объёмах данных.
В случае с этой моделью я не нашёл в карточке информации о том, проводился ли continued pretraining после upscaling, или сразу пошёл файнтюн на узких датасетах. Если второе — это значит, что модель технически «толще» базового Qwen3 14B, но работает скорее всего не лучше. Лишние параметры просто занимают видеопамять.
Эмпирическое правило для такой техники: SOLAR 10.7B действительно работал лучше базы благодаря качественному continued pretraining от Upstage. Большинство любительских франкенмерджей — нет.
Как читать имена моделей на HuggingFace
Раз уж разобрали этот случай, расскажу про практическую сторону: как не вестись на маркетинговые названия в открытой экосистеме.
Признак 1: Имя называет проприетарную модель. Если в названии файнтюна Llama или Qwen есть «GPT-4», «Claude», «Gemini-Pro» — почти всегда это значит, что модель обучали на ответах этой проприетарной системы, а не «достигли её уровня». Веса GPT-4 и Claude закрыты, технически воспроизвести их невозможно.
Признак 2: Преувеличенный размер параметров. Размеры, которые не входят в стандартный модельный ряд семейства (например, 21B для Qwen3), почти всегда получены через upscaling или франкенмердж. Это не плохо само по себе, но и не «улучшение».
Признак 3: Стопка хайповых тегов. «Uncensored-Thinking-Reasoning-Coding-Creative-Writing-AGI» — чем больше способностей перечислено в имени, тем меньше вероятность, что модель действительно сильна в каждой из них. Узкие файнтюны обычно хорошо работают на одном-двух доменах и теряют качество на остальных.
Признак 4: Отсутствие бенчмарков. Серьёзные модели публикуют замеры на стандартных бенчмарках (MMLU, ARC, HellaSwag, GSM8K, HumanEval). Если в карточке только «WARNING: This model has character and intelligence», это маркетинг.
Что стоит проверять перед использованием:
Лицензию (apache-2.0 — ок, AGPL — внимательно к коммерческому использованию).
Дату обновления (живой проект, заброшенный, разовая публикация).
Раздел Community для сообщений о проблемах от пользователей.
Файлы конфигурации
config.json— там видно реальную архитектуру и число слоёв.Размер safetensors-файлов — позволяет оценить, действительно ли там заявленное число параметров.
Где такая модель реально применима
Несмотря на всю критику, у подобных файнтюнов есть законная ниша. Назову прямо.
Художественное письмо без ограничений. Если вы пишете тёмное фэнтези, нуар, боевик с насилием — стандартные коммерческие модели часто отказываются работать со сценами, которые в литературе абсолютно нормальны. Файнтюны с abliteration этого ограничения лишены. Качество стилистики у них обычно посредственное, но как генератор черновиков для последующей правки — рабочий вариант.
Локальный inference без облака. Для людей, которым принципиально, чтобы запросы не уходили на серверы Anthropic или OpenAI, локальные модели с GGUF-квантизацией под llama.cpp — единственный путь. Тут Qwen3 в любом виде лучше, чем ничего.
Эксперименты с reasoning-режимом. Поддержка <think> тегов — это интересная фича, которую можно изучать локально без оплаты API.
Чего я бы не делал с такой моделью:
Не использовал бы для задач, требующих фактической точности (как видно из примера про физику, галлюцинации серьёзные).
Не стал бы её рекомендовать тем, кто ищет «бесплатную замену Claude» для рабочих задач — этой замены не существует ни в каком виде.
Не стал бы доверять reasoning-выводам для математики или кода без проверки.
Вывод
«Qwen3.5-21B-Claude-4.6-Opus-Deckard-Heretic-Uncensored-Thinking» — это аккуратный пример того, как в open-weights экосистеме маркетинговое имя расходится с технической реальностью. Под капотом там законные техники: distillation на синтетических данных, depth upscaling, abliteration через Heretic, файнтюн на художественных текстах. Каждая из них имеет смысл и применение.
Но «конкурент Claude 4.6 Opus» из этого не получается, и не может получиться в принципе. Сравнение с фронтирной коммерческой моделью на 1B+ долларов обучения и закрытыми весами — это уровень рекламной обёртки, не технической реальности.
Полезное, что я взял из этой истории: сам метод Arditi с refusal direction — красивая работа по интерпретируемости. Стоит почитать оригинальную статью на arXiv (2406.11717) и посмотреть, как он применим в задачах безопасности и evaluation. А вот «годзиллу» из телеграма я бы поставил себе только для эксперимента — и точно не для прода.
Ссылки:
Карточка модели: huggingface.co/DavidAU/Qwen3.5-21B-Claude-4.6-Opus-Deckard-Heretic-Uncensored-Thinking
Оригинальная статья про refusal direction: «Refusal in Language Models Is Mediated by a Single Direction», Arditi et al., NeurIPS 2024
SOLAR 10.7B и метод depth upscaling: arXiv 2312.15166
Базовая модель: huggingface.co/Qwen
Комментарии (14)

verticalacid
07.05.2026 02:11Звучит уже не так громко, правда?
А с таким маркетингом и в синтетике от опуса сомневаться стоит. И она денег каких стоит, и в con't претрейн ее ведь надо. Если просто немножко его ответов зафайнтюнил - ну что смеяться, просто стилю поучил.
А параметры реально так тупо повысил? Это же целевую аудиторию уменьшает. Вот это интересно.

jetnet
07.05.2026 02:11Но базовый Qwen3 идёт в размерах 0.6B, 1.7B, 4B, 8B, 14B, 32B, 235B
Если автор модели брал именно 3.5, то самая большая из маленьких 3.5 - всего 9B.
Update: стало интересно, поднапряг ИИ-друзей
Финальная честная строка — твой первый вопрос, теперь с фактической базой:
файнтюн-Qwen3.5-27B(VL,gated-DeltaNet+gated-attention,28B-параметров)- с-выкинутыми-4-из-16-супер-блоков-до-48-слоёв-21B- после-аблитерации-через-Heretic- и-многоэтапного-тюна-через-Unsloth-на-художественных-данных-Deckard- и-дистилляте-Claude-4.5-Opus- thinking-режим-унаследован-от-базы«Зачем вообще выкидывать слои» — на конкретно этом примере он становится острее. Удаляются не «избыточные» слои по метрикам важности, а четыре целых супер-блока подряд из регулярной структуры. Это самый грубый вид depth-pruning, и без хорошего восстановительного тюна качество должно проседать заметно. Что и пытаются компенсировать distill’ом на Claude-выводах. Но базовая Qwen3.5-27B на бенчмарках играет в одной лиге с GPT-5-mini и Claude Sonnet 4.5 на ряде задач — терять её 25% слоёв ради «характера» и скорости — спорный размен. Полученные 21B на reasoning-бенчах почти наверняка слабее исходных 27B; выигрыш — только в скорости/памяти и «расцензуренности» с творческим уклоном.
Исследовательский промпт на будущее
Расследование модели на Hugging Face. Только факты. ОБЯЗАТЕЛЬНЫЕ ШАГИ (в этом порядке, до любых выводов): 1. web_fetch на страницу модели: huggingface.co/{author}/{model} 2. web_fetch на raw config.json: huggingface.co/{author}/{model}/raw/main/config.json 3. Если в карточке указана базовая модель — web_fetch её страницы и её config.json 4. Сравнить config'и побайтно: hidden_size, intermediate_size, num_hidden_layers, num_attention_heads, num_key_value_heads, head_dim, vocab_size, layer_types, model_type, architectures, rope_parameters, vision_config (если есть) ЕСЛИ КАРТОЧКА ПУСТАЯ ИЛИ "coming soon": - не выдумывать пайплайн - использовать только: теги модели, датасеты в сайдбаре, имена связанных репо - явно сказать, что README канонически пустой ОТВЕТ СТРОГО ПО СХЕМЕ: [БАЗА] — что точно, по совпадению config'ов. Если не совпадают — что не совпадает. [АРХИТЕКТУРА] — dense/MoE, тип attention (full/linear/гибрид), число слоёв, hidden, intermediate, GQA-ratio, контекст, vocab, мультимодальность (vision/audio configs), MTP. Цифрами, не прозой. [ПАРАМЕТРЫ] — реальное число (из HF "Model size" или прикидка из config'а). Сверить с числом в названии модели. Если расходится — отметить. [ЧТО СДЕЛАНО С БАЗОЙ] — depth-pruning / depth-upscaling / merge / SFT / DPO / abliteration / quantization / distillation. По возможности — на сколько слоёв, какие именно блоки. [ДАТАСЕТЫ] — точные имена из сайдбара. Сверить с тем, что заявлено в названии. [ИМЯ vs РЕАЛЬНОСТЬ] — таблица: каждая часть названия → подтверждено / маркетинг / неточно. Особенно: версии моделей (Claude 4.5 vs 4.6, Qwen3 vs 3.5), размеры, заявленные техники. [ЧТО НЕ ПОДТВЕРЖДЕНО] — явный список того, что я не смог проверить через config или страницу. Без этого пункта ответ не закончен. ПРАВИЛА: - Никаких "скорее всего", "вероятно", "почти наверняка" без явной пометки [гипотеза]. - Цитата из карточки = в кавычках с указанием секции. Из сниппета поиска — пометить "из сниппета, не из канонической страницы". - Если config.json недоступен — попробовать /raw/main/config.json напрямую, не сдаваться на gated-форме. - Если число параметров в названии не сходится с реальным размером — сказать. - Бенчмарки из карточки — приводить как есть, не комментировать "хорошо/плохо". - Никаких рекомендаций, оценок "стоит/не стоит", прогнозов качества — если не спросил. ССЫЛКА: {вставь URL модели}
jetnet
07.05.2026 02:11И опять стало интересно, а зачем слои на ветер выкидывать?..
Первое — таргетинг под потребительское железо. У DavidAU на странице есть 21B, 27B и 40B версии этой модели. Это веер под разные размеры VRAM, как линейка одежды. 21B — для 16GB.
Второе — нишевание. На Hugging Face десятки тысяч файнтюнов Qwen3.5-27B. «Просто ещё один тюн 27B» теряется. «21B-версия с уникальным размером» выделяется и легче находится.
Третье — эксперимент ради эксперимента. Сообщество мерджеров (DavidAU, Undi95, TheDrummer и т.д.) любит хирургию весов как самостоятельную дисциплину. Получается ли что-то хорошее — вопрос вторичный.
Четвёртое — продолжение экспериментов. Квантизация Q3_K_S от 27B даст похожую экономию памяти при меньшей деградации, чем pruning + distill. Многие именно так и считают — что depth-pruning потребительских моделей это путь сомнительной ценности, и предпочитают агрессивные кванты.

Fizikoleg
07.05.2026 02:11В карточке модели написано, что ужали из Qwen3.5-27B, а не depth upscaling из Qwen3-14B
Mersavets
Это изначально не имеет смысла учитывая что вышел давно qwen3. 6, который впрочем уже имеет похожие репы
jarkevithwlad
да, 3.6 квопус есть, но пока превью
p.s. 35b не превью
p.s.s. есть так же Uncensored но от других авторов
Marwin
Квопусы от Jackrong - очень достойные файнтюны... всё расписано на чём дообучено и зачем. Я перешел на квопус 27B вместо оригинальных версий в claude code - разница заметна. на 48GB VRAM отлично достаточно быстро работает.
KoIIIeY
Оно кодит лучше оригинала или для каких задач?
Marwin
да, кодит лучше. меньше ошибок и вообще с виду плюс минус адекватно. По крайней мере на C#.
Syzd
Вижу в теме, что посоветуете запускать локально, какие нейро самые-самые сейчас?
jarkevithwlad
зависит от железа
yelagin
gemma4
stilet69
Вы когда задаете такие вопросы - пишите какое у вас железо - видеокарта, ОЗУ. И обязательно в какой области собираетесь применять модель. Для кодинга? Для генерации картинок? От этого и советы по выбору модели будут зависеть.