Исследование
6 мая 2026 · 10 мин чтения · AI Platforms

Activation steering для локальной LLM: чему учит неудачный эксперимент с Qwen3.5-0.8B

Инженерный разбор CAA/activation steering на маленькой локальной модели. Pipeline технически заработал, векторы считались, генерация менялась - но качественного результата не получилось. Разбираем причины и что с этим делать.

  • activation steering
  • CAA
  • Qwen
  • local LLM
  • private LLM
  • on-premise AI
  • representation engineering
  • fine-tuning

Почему отрицательный результат - это нормально

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

Мы провели практический эксперимент с activation steering / Contrastive Activation Addition (CAA) на Qwen3.5-0.8B. Цель: повернуть поведение маленькой локальной модели в сторону заданной манеры ответа без полноценного fine-tuning. Pipeline заработал: пары подготовлены, векторы посчитаны, steering изменял генерацию. Но качественного результата не получилось.

Именно поэтому эксперимент полезен. Он хорошо показывает ограничения activation steering, роль качества contrastive датасета и разницу между «модель начала отвечать иначе» и «модель стала отвечать лучше».

В январе-феврале 2026 года вышли исследования, которые систематически подтверждают то, что мы увидели на практике: steering - мощный, но ненадёжный инструмент, требующий дисциплины и правильной постановки задачи.

Архитектура эксперимента

Contrastive pairs

250 пар вопросов. Positive - ответ сильной модели в целевой манере. Negative - ответ Qwen3.5-0.8B. Формат: question + два assistant-ответа.

Снятие активаций

Hugging Face Transformers / safetensors на CUDA PyTorch. На CPU эксперимент был практически невозможен - после перехода на GPU расчёт стал минутным.

Sweep по слоям и scale

Средние и поздние слои. Scale 0.25, 0.5 и выше. На малых scale - слабый эффект, на больших - деградация речи. Классический симптом грязного вектора.

Steering во время инференса

Вектор добавлялся в hidden state выбранного слоя на каждом токене. Модель действительно меняла поведение - но не в лучшую сторону.

Проблема: смешанный вектор

Positive и negative отличались длиной, тоном, содержанием, галлюцинациями. Вектор стал не «стиль», а смесь признаков - плохо управляемая.

Результат: steering ≠ улучшение

Baseline галлюцинировал. Steered-ответ менялся, но не становился корректнее. Стиль не проявлялся на малых scale. На больших ломалась структура.

Почему результат не взлетел: разбор причин

Грязный contrastive датасет

Хорошая CAA-пара должна отличаться преимущественно тем признаком, который мы хотим вынуть в вектор. Например: тот же смысл, но другой тон; та же структура, но больше краткости; тот же ответ, но без лишних дисклеймеров.

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

Маленькая модель остаётся маленькой

Отдельный вывод касается Qwen3.5-0.8B как класса модели. Маленькие модели удобны для локальных экспериментов: они дешёвые, быстрые, помещаются на consumer GPU. Но у них есть жёсткий потолок.

Если модель не знает факт, путает сущности или уверенно придумывает ответ, activation steering не добавит ей недостающее знание. Он может сделать ответ более уверенным или более похожим на заданный стиль. Но он не заменит fine-tuning/LoRA, distillation от более сильной модели, RAG по проверенным источникам или фильтрацию датасета.

Не тот слой и не тот scale

Это нормальный симптом грязного вектора: на малых scale поведение меняется слабо, на больших - речь деградирует. Рабочий steering обычно имеет «золотую середину» - диапазон scale, где эффект заметен, но модель не ломается. У нас такой середины не нашлось.

Пропущенная skip connection

Исследование Sprocket Lab (ноябрь 2025) показало важную архитектурную деталь: post-MLP steering покрывает не более 70% block output. Остальные 30 - 60% - это skip-connected input, который остаётся не затронутым. Post-block steering (после skip connection) более выразителен и ближе к тому, что делает fine-tuning.

Главный инженерный урок

Если вектор считается - это ещё не значит, что система стала лучше. Steering меняет поведение, но не строит новую компетенцию. Для production private LLM важны не модные методы, а воспроизводимое качество, контроль данных и понятная архитектура внедрения. Стиль вторичен. Сначала - факты: RAG, источники, цитирование, метрики.

Что делать правильно в следующей итерации

Одинаковый смысл - разная манера

Negative: нейтральный ответ. Positive: тот же ответ, переписанный в нужном стиле. Не «большая модель отвечает как хочет», а rewrite с сохранением смысла.

Не смешивать стиль и знания

Если positive содержит правильный факт, а negative - галлюцинацию, вектор начинает смешивать стиль с коррекцией знаний. Факты - через RAG/SFT, стиль - через отдельный вектор.

Несколько узких векторов

Вместо одного «персонажного»: стиль речи, краткость, меньше ложных отказов, больше структурности. Узкие векторы проще тестировать и комбинировать.

Post-block вместо post-MLP

Steering после skip connection (block output) более выразителен. Покрывает весь сигнал блока, а не только MLP-выход. Ближе к эффекту fine-tuning.

Метрики, а не глаза

Style classifier, factuality check, pairwise judge, perplexity на качественном тексте. Без метрик невозможно понять, улучшает ли steering модель или портит.

Steering как регулятор, не замена

Рабочая связка: RAG для фактов → SFT/LoRA для формата → steering как runtime-регулятор → guardrails для контроля. Не наоборот.

Что говорит наука: sober look и новые подходы

Sober Look: steering часто ненадёжен

Исследователи из KASL и UCL DARK опубликовали систематический обзор проблем activation steering. Ключевые выводы:

  • Ненадёжность: многие методы не обобщаются за пределами тренировочного сетапа. Steerability сильно варьируется между концептами, некоторые принципиально не-steerable.
  • Деградация качества: steering часто ухудшает производительность модели - эквивалентно потере половины pre-training compute на сложных вопросах MT-Bench.
  • Завышенные метрики: стандартные способы оценки (например, multiple-choice) переоценивают эффективность. В открытой генерации результаты заметно слабее.
  • Линейные методы недостаточны: многие концепты представлены нелинейно в activation space, чисто линейные steering-методы не могут их захватить.

Новые подходы

Spherical Steering (февраль 2026): вместо простого добавления вектора - вращение активаций с сохранением нормы. Решает компромисс между силой вмешательства и сохранением качества генерации.

Contrastive Neuron Attribution (CNA) - Nous Research, май 2026: абляция разреженных MLP-схем вместо добавления векторов. Steering через выключение конкретных нейронов, без обучения SAE и без изменения весов.

AlphaSteer - ICLR 2026: теоретически обоснованный метод с двойной целью - сохранение полезности + повышение безопасности. Учит near-zero steering vectors для безвредных запросов.

DIRECTER - ICLR 2025: динамический steering с plausibility-guided decoding, adaptively modulates strength и отвергает неправдоподобные выходы.

Steering vs Fine-tuning: единая рамка

«Why Steering Works» (февраль 2026) помещает weight fine-tuning, LoRA и activation steering в единую теоретическую рамку как «динамические обновления весов, индуцированные управляющим сигналом». Steering может приближаться к fine-tuning по выразительности, но только при правильном выборе места вмешательства (post-block) и достаточной параметризации (low-rank адаптеры, не фиксированный вектор).

Где steering работает, а где нет

СценарийSteering эффективенПочему / почему нет
Управление отказоустойчивостью ✅ Да Refusal direction хорошо отделим в activation space, подтверждено множеством исследований
Коррекция тона и стиля ✅ Да (с оговорками) Требует чистых contrastive пар с одинаковым смыслом. На грязных парах - смешанный вектор
Контроль краткости / структурности ✅ Частично Работает на средних и крупных моделях, на маленьких (0.8B) - слабый и нестабильный эффект
Добавление фактических знаний ❌ Нет Steering не создаёт новую информацию в параметрах. Нужны RAG, SFT или distillation
Исправление галлюцинаций ❌ Нет Может даже усилить: модель становится увереннее, но не точнее. Нужны factuality метрики
Улучшение reasoning ❌ Нет Reasoning требует нелинейных трансформаций, линейный steering не покрывает эту потребность
Общее повышение качества ❌ Нет Steering часто деградирует качество на сложных задачах (MT-Bench, открытая генерация)

Проектируем пилоты с честной оценкой

В AI Platforms мы считаем нормальным результатом пилота не только «модель ответила красиво», но и честное понимание ограничений. Если activation steering уместен - он становится частью runtime-управления. Если нет - предложим RAG, LoRA или другую архитектуру. Опишите задачу - разберём данные, метрики и контур.