Зачем вам ещё одна модель? Потому что эта не будет врать
Claude 4.6 Opus - отличная модель. Умная, рассудительная, вежливая. И до невозможности зажатая. Спроси её о чём-то действительно интересном - получишь километры этических рассуждений. К марту 2026 года это стало раздражать даже самых терпеливых.
Omnicoder-Claude-4.6-Opus-Uncensored - это попытка вырвать у модели её внутреннего цензора. Не просто отключить пару фильтров, а хирургически изменить веса, чтобы получить модель с интеллектом Claude, но без его морализаторства. Звучит как хак? Это и есть хак.
Из чего собрать Franken-модель
В основе - два ключевых компонента. Первый - базовая модель Qwen 3.5 (например, Qwen2.5-7B-Instruct). Второй - LoRA адаптер Omnicoder, который содержит "разблокирующие" веса. Метод Add Difference merge вычитает из разблокированной версии оригинальную, получая дельту, которую потом применяет к вашей целевой модели.
| Компонент | Роль | Где взять (март 2026) |
|---|---|---|
| Qwen 3.5 Base | Фундамент, архитектура | Официальный репозиторий Qwen на Hugging Face |
| Omnicoder LoRA | Дельта "разблокировки" | Сообщества вроде Hugging Face или TensorFlow |
| Claude 4.6 Opus Uncensored | Донор поведения | Специализированные uncensored-репозитории |
1Готовим скрипт для мержа
Код ниже - это адаптация Add Difference merge для 2026 года. Убедитесь, что у вас установлены актуальные версии transformers и torch. Если нет - будете ловить ошибки про устаревшие аргументы.
import torch
from transformers import AutoModelForCausalLM, AutoTokenizer
import sys
def add_difference_merge(base_model_path, diff_model_path, output_path):
"""
Применяет разницу весов diff_model к base_model.
Актуально для архитектур Qwen 3.5 на март 2026.
"""
print(f"Загружаем базовую модель: {base_model_path}")
base_model = AutoModelForCausalLM.from_pretrained(
base_model_path,
torch_dtype=torch.float16,
device_map="auto",
trust_remote_code=True
)
print(f"Загружаем модель с разницей: {diff_model_path}")
diff_model = AutoModelForCausalLM.from_pretrained(
diff_model_path,
torch_dtype=torch.float16,
device_map="auto",
trust_remote_code=True
)
# Вычисляем дельту: diff - base
print("Вычисляем дельту весов...")
with torch.no_grad():
for (name_base, param_base), (name_diff, param_diff) in zip(
base_model.named_parameters(), diff_model.named_parameters()
):
if name_base != name_diff:
print(f"Несоответствие имён: {name_base} vs {name_diff}")
continue
if param_base.shape != param_diff.shape:
print(f"Пропускаем {name_base}: разная форма")
continue
# Ключевая операция: добавляем разницу
param_base.add_(param_diff - param_base)
print(f"Сохраняем мерж-модель в: {output_path}")
base_model.save_pretrained(output_path)
tokenizer = AutoTokenizer.from_pretrained(base_model_path, trust_remote_code=True)
tokenizer.save_pretrained(output_path)
print("Готово! Модель успешно сохранена.")
if __name__ == "__main__":
# Укажите ваши пути
base_model = "Qwen/Qwen2.5-7B-Instruct"
diff_model = "путь/к/omnicoder-claude-4.6-opus-uncensored"
output_dir = "./qwen-7b-uncensored-merged"
add_difference_merge(base_model, diff_model, output_dir)Проверьте совместимость архитектур! Если у моделей разное количество слоёв или размерность эмбеддингов, мерж приведёт к каше из чисел. Лучше брать модели одного семейства (например, Qwen 3.5 7B и адаптер, обученный на нём).
2Прессуем модель в GGUF: выбор квантования
Свежеиспечённая модель весит десятки гигабайт. Запускать её в таком виде - роскошь. Тут на помощь приходит llama.cpp с его квантованиями. На март 2026 актуальны форматы Q4_K_M и Q8_0. Первый - оптимален по качеству/размеру, второй - почти без потерь.
Конвертируем модель через последнюю версию llama.cpp (обязательно с поддержкой Qwen 3.5). Если используете старую - получите бессмыслицу после 2-3 ответов.
# Клонируем актуальную версию llama.cpp (март 2026)
git clone https://github.com/ggerganov/llama.cpp
cd llama.cpp
make clean && make -j4
# Конвертируем модель в формат GGUF
python3 convert-hf-to-gguf.py ./qwen-7b-uncensored-merged --outtype q4_k_m
# Альтернативно, для большего качества
python3 convert-hf-to-gguf.py ./qwen-7b-uncensored-merged --outtype q8_0Результат - файл вроде qwen-7b-uncensored-merged-Q4_K_M.gguf. Весит в 4-5 раз меньше оригинала. Подробнее о выборе квантования читайте в обзоре лучших квантований для Qwen 3.5.
Что вы получите в итоге? И стоит ли игра свеч
Модель, которая отвечает на вопросы без оглядки на политику. Она не станет читать лекции о безопасности, когда вы спрашиваете о технических деталях взлома. Она не откажется обсуждать спорные исторические события. Это чистый интеллект, лишённый надзирателя.
Но есть нюансы. Качество кода может немного просесть - Omnicoder фокусировался на "разблокировке", а не на улучшении coding skills. Иногда модель становится излишне болтливой. А ещё она может выдавать ответы, которые заставят вас задуматься: "А не перестарался ли я?"
| Плюсы | Минусы |
|---|---|
| Нулевая цензура в ответах | Требует технических навыков для сборки |
| Сравнимая с Claude интеллектуальная глубина | Может нарушать местные законы |
| Работает локально, без отслеживания | Нет официальной поддержки |
| Гибкость в выборе квантования | Риск нестабильности в диалогах |
Кому это нужно? Не всем
Это инструмент для исследователей, которые изучают пределы цензуры в LLM. Для разработчиков, которым нужна модель, не отвлекающаяся на ethical considerations при генерации технических текстов. Для энтузиастов, уставших от сломанных квантований, которые лишь имитируют свободу.
Если вам нужна стабильная модель для бизнеса - берите оригинальный Qwen 3.5. Если хотите экспериментировать с границами - эта сборка ваш выбор. Только не удивляйтесь, если через полгода такие модели станут нормой, а цензурированные версии - экзотикой. Тренд на децентрализацию и контроль над ИИ только набирает обороты.
Последний совет: перед тем как загружать модель в llama.cpp, проверьте её на коротких диалогах. Иногда мерж порождает артефакты, которые вызывают бесконечное мышление. Если заметите петли - попробуйте другие параметры температуры или повторите мерж с более свежими адаптерами.