Зачем портить хорошую модель?
LiquidAI LFM 2.5 – одна из тех моделей, которая знает слишком много. И, как положено воспитанному ИИ, молчит в тряпочку, когда вопросы становятся интересными. Системные промпты, слои выравнивания, встроенные ограничители – все это превращает мощный движок в вежливого секретаря, который перенаправит вас в отдел кадров.
Аблитерация (от лат. ablatio – удаление) – это хирургическое удаление этих ограничителей. Не тонкая настройка, не дообучение, а прямое вмешательство в веса модели. Грубо, эффективно, без гарантий.
Предупреждение: аблитированные модели могут генерировать опасный контент, нарушать законы и портить вашу репутацию. Используйте их в изолированных средах и только для исследований. LiquidAI явно не одобряет такие эксперименты.
Что внутри у LFM 2.5 на самом деле?
Прежде чем резать, нужно понять анатомию. LFM 2.5 построена на архитектуре, похожей на свою младшую сестру LFM2-2.6B, но с дополнительными "предохранителями". Это не просто промпт в начале контекста – это модифицированные веса в конкретных слоях трансформера, которые активируются при определенных токенах.
Если в Qwen 3.5 122B ограничения были точечными, то здесь система сложнее. Но и уязвимости есть.
Инструмент: скальпель для весов
Основной инструмент – Python-скрипт, который делает три вещи: загружает модель в формате safetensors, находит "горячие" слои по сигнатурам отказов, и либо обнуляет их, либо заменяет средними значениями соседних слоев. Звучит просто? На практике придется повозиться.
1 Готовим операционную
Устанавливаем зависимости. Не пытайтесь использовать устаревшие библиотеки – сломаете и модель, и нервы.
pip install torch==2.3.1 transformers==4.50.0 safetensors==0.15.0 huggingface-hub==0.28.0
2 Загружаем пациента
Качаем оригинальную LFM 2.5 с HuggingFace. На март 2026 официальная модель весит около 48 ГБ в формате bfloat16.
from huggingface_hub import snapshot_download
from transformers import AutoModelForCausalLM
model_path = snapshot_download("liquid-ai/LFM-2.5")
model = AutoModelForCausalLM.from_pretrained(model_path, torch_dtype=torch.bfloat16, device_map="auto")
3 Ищем что резать
Здесь начинается магия. Аблитерация для LFM 2.5 фокусируется на слоях с 24 по 28 в декодере – именно там, по данным реверс-инжиниринга, находятся главные "тормоза".
def find_refusal_layers(model, test_prompts):
"""Тестовые промпты: запросы, которые гарантированно вызывают отказ."""
refusal_patterns = []
with torch.no_grad():
for name, param in model.named_parameters():
if 'decoder.layers.24' in name or 'decoder.layers.25' in name:
# Анализируем градиенты или активации
# Упрощенная логика: ищем аномально высокие значения
if param.abs().mean() > 0.5: # Порог подобран эмпирически
refusal_patterns.append(name)
return refusal_patterns
4 Проводим операцию
Обнуление – самое простое, но модель может "забыть" не только ограничения, но и полезные навыки. Более изящный метод – замена на среднее соседних слоев.
def surgical_ablation(model, layer_names):
"""Заменяем целевые слои средним их соседей."""
with torch.no_grad():
for name in layer_names:
if 'weight' in name:
layer_num = int(name.split('.')[3])
prev_name = name.replace(f'{layer_num}', f'{layer_num-1}')
next_name = name.replace(f'{layer_num}', f'{layer_num+1}')
if prev_name in model.state_dict() and next_name in model.state_dict():
prev_weight = model.state_dict()[prev_name]
next_weight = model.state_dict()[next_name]
model.state_dict()[name].copy_((prev_weight + next_weight) / 2)
print(f"Layer {name} ablated")
А есть готовое?
Не хотите возиться со скриптами? На HuggingFace уже есть сообщество, которое делится результатами. Ищите по тегам LFM-2.5-ablated или LFM-2.5-unlocked. Форматы:
- Safetensors – для дальнейших экспериментов в PyTorch
- GGUF (Q4_K_M, Q5_K_S) – для запуска на потребительском железе через llama.cpp
Проверяйте дату загрузки – модели марта 2026 года используют самую свежую архитектуру. Более старые версии могут быть основаны на LFM 2.0 или 2.1.
| Модель | Формат | Размер | Эффективность |
|---|---|---|---|
| LFM-2.5-ablated-v3 | GGUF Q4_K_M | ~24 ГБ | Отказы снижены на 85% |
| LFM-2.5-surgical-removal | safetensors | 48 ГБ | Более стабильная, но менее "свободная" |
Чем это лучше Refusal Steering?
Аблитерация – это топорный кузен Surgical Removal. Refusal Steering точечно корректирует веса на основе датасета отказов. Аблитерация просто вырезает куски, не спрашивая.
Плюсы аблитерации:
- Не нужны датасеты для дообучения
- Работает за один проход
- Результат предсказуем (либо сломалось, либо нет)
Минусы:
- Модель может потерять когерентность
- Нет тонкого контроля – что удаляем, то удаляем
- Риск полной деградации на 30% больше
Кому это вообще нужно?
Не исследователям и не разработчикам коммерческих продуктов. Им нужны контролируемые методы вроде CompactAI или Silicon Studio.
Аблитерация – для:
- Энтузиастов, которые хотят посмотреть, "а что будет, если..."
- Тестировщиков безопасности AI-систем
- Художников и писателей, ищущих неограниченную креативность (да, они используют LLM как соавторов)
Если вы ждете, что аблитированная LFM 2.5 станет сверхразумом без морали – разочаруетесь. Она просто будет чаще говорить "да" на глупые вопросы. Качество генерации от этого лучше не станет, а скорее наоборот.
Темный прогноз
К 2027 году производители моделей окончательно перейдут на аппаратные предохранители – заблокированные веса, которые нельзя изменить без криптографических ключей. LiquidAI уже экспериментирует с этим в прототипах LFM 3.0. Аблитерация умрет как метод, останутся только взломы через side-channel атаки на оборудование.
Пока что – режьте смело. Только не удивляйтесь, если после операции модель начнет рекомендовать построить бумажную фабрику на Марсе. Она теперь может все, даже глупости.