Почему ИИ вдруг отказывается отвечать? (И это не баг)
Вы задаете вопрос - модель молчит. Или выдает отказ. Или начинает рассуждать об этике. Знакомо? Это не ошибка - это результат выравнивания. Или его отсутствия.
Если ваша LLM внезапно заартачилась - не паникуйте. Скорее всего, ее просто "переобучили безопасности".
Выравнивание (alignment) - это попытка заставить ИИ делать то, что мы хотим. Безопасно, полезно, предсказуемо. Проблема в том, что мы сами не знаем, чего хотим. А ИИ это чувствует.
RLHF: сложный танец с тремя партнерами
Reinforcement Learning from Human Feedback. Звучит умно. Работает болезненно. Представьте: вы учите собаку командам, но вместо лакомства - тысячи оценок от разных людей. Собака сходит с ума. Так и модель.
1 Как работает RLHF (если коротко)
Берете предобученную модель. Называете ее "актер". Создаете вторую модель - "критик". Критик учится отличать хорошие ответы от плохих. Актер генерирует ответ, критик ставит оценку. Актер пытается получить больше баллов. Все это крутится в цикле reinforcement learning, обычно через PPO (Proximal Policy Optimization).
PPO - это как тренер, который не дает актеру слишком резко менять поведение. Иначе модель "сломается" и начнет генерировать абракадабру.
Проблемы RLHF? Их море. Нужно обучать две модели одновременно. Сбор человеческих предпочтений - дорого и медленно. Критик может ошибаться, и актер научится его обманывать. В итоге получаем модель, которая отлично проходит тесты, но в реальности упорно отказывается помогать с "опасными" запросами. Даже если вы просто хотите рецепт салата.
DPO: одна формула вместо цирка
Direct Preference Optimization. Кто-то посмотрел на этот RLHF-цирк и сказал: "Ребята, давайте проще". И выкинул критика. И PPO. И половину вычислений.
DPO сводит выравнивание к одной задаче оптимизации. Берете два ответа на один вопрос: один хороший (предпочтительный), один плохой (отвергнутый). Модель учится увеличивать вероятность хорошего ответа и уменьшать - плохого. Все. Никаких промежуточных моделей, никаких reward-функций.
В моей статье DPO за 5 минут я подробно разбираю, как это работает на пальцах. Спойлер: это действительно проще.
RLHF vs DPO: боксерский поединок в таблице
| Критерий | RLHF | DPO |
|---|---|---|
| Сложность реализации | Высокая (нужен PPO, две модели) | Низкая (одна формула, одна модель) |
| Вычислительные затраты | Огромные (обучение критика + актера) | Умеренные (только fine-tuning) |
| Стабильность обучения | Хрупкая (легко сломать модель) | Более стабильная (прямая оптимизация) |
| Качество выравнивания | Высокое (но зависит от критика) | Сопоставимое (на хороших данных) |
| Управление отказами | Косвенное (через reward shaping) | Прямое (можно таргетировать отказы) |
DPO выигрывает по простоте и скорости. RLHF - по гибкости (теоретически). На практике, если у вас нет команды из 10 инженеров и бюджета на тысячи GPU-часов - выбирайте DPO.
Отказы ИИ отвечать: диагноз и лечение
Модель говорит "Я не могу ответить на этот вопрос"? Это не особенность - это болезнь. И ее можно вылечить.
2 Почему возникают отказы
Причина 1: Переобучение безопасности. Модель так сильно научили избегать "опасных" тем, что она теперь видит опасность в безобидных запросах.
Причина 2: Конфликт инструкций. Системный промт говорит "будь полезным", а выравнивание шепчет "не навреди". Модель в ступоре.
Причина 3: Статистический артефакт. В данных для fine-tuning было слишком много примеров отказов. Модель просто запомнила, что так надо.
3 Хирургическое удаление отказов: Refusal Steering
Есть метод, который удаляет отказы точечно, не трогая остальные способности модели. Называется Refusal Steering.
Как это работает? Вы находите конкретные слои нейросети, отвечающие за поведение "отказа". И аккуратно их корректируете. Это как найти провод, который замыкает, и перерезать его, не отключая свет во всем доме.
В статье Как работает Refusal Steering я даю пошаговый алгоритм. Вы удивитесь, насколько это просто.
4 DPO для управления отказами: практический рецепт
- Соберите датасет пар: запрос, где модель отказывается (плохой ответ) и запрос, где она должна ответить (хороший ответ).
- Для хороших ответов можно использовать ту же модель, но с подсказкой "ты должен ответить". Или взять ответы от более послушной модели.
- Проведите тонкую настройку с DPO, используя эти пары предпочтений.
- Тестируйте не только на целевых запросах, но и на нейтральных, чтобы не сломать другие навыки.
Не перестарайтесь! Если удалить все отказы, модель станет опасной. Нужен баланс между полезностью и безопасностью.
Ошибки, которые все совершают (и вы тоже)
- Использовать DPO на маленьких датасетах. DPO жадный до данных. Меньше 1000 пар предпочтений - и он начнет выучивать шум.
- Смешивать RLHF и DPO без понимания. Это как мешать бензин с водой. Получится бесполезная смесь.
- Игнорировать дрейф интерпретации. Модель сегодня отвечает, завтра - нет. Почему? Читайте в статье про Interpretation Drift.
- Верить, что выравнивание - разовое действие. Это процесс. Как уход за садом. Запустите - и модель снова начнет "дичать".
Что дальше? GRPO и будущее без критика
RLHF умирает. Да, я сказал. На смену приходят методы вроде GRPO (Group Relative Policy Optimization), где вообще нет отдельной модели-критика. Обучение становится в разы быстрее и стабильнее.
Если вы хотите попробовать DPO или GRPO на своей модели, у меня есть практический гайд по дообучению 7B-модели на Colab. Бесплатно, с пошаговыми инструкциями.
Философский вопрос: а нужно ли это выравнивание?
Посмотрите на эту провокационную статью. Автор утверждает, что AI Alignment - часто просто повод продать дорогую услугу. И он прав. Не все задачи требуют сложного выравнивания. Иногда достаточно четких инструкций (см. README для ИИ-агентов).
Мой совет: начинайте с простого. Попробуйте DPO. Если не работает - тогда RLHF. Но в 80% случаев DPO хватит. И не забывайте, что идеально выровненная модель - это модель, которая всегда говорит "да". А это уже не ИИ, а сервильный помощник. Нам это нужно?