Как вы делаете agent с human values alignment (Constitutional AI для агентов)?
Краткий тезис
Human values alignment для агента — это процесс, гарантирующий, что действия и решения агента соответствуют заранее заданным человеческим принципам (безопасность, честность, приватность, полезность). Constitutional AI (CAI) предлагает масштабируемый подход: мы формулируем набор правил (конституцию), заставляем агента саморефлексировать (self-critique) по этим правилам, исправлять (revision) свои действия, а затем обучаем модель вознаграждения]] (reward model) предпочитать конституционные поведения. В контексте агентов CAI применяется не только к финальному ответу LLM, но и к каждому шагу инструментального вызова (tool use), планирования и памяти.
1. Термин: Constitutional AI (CAI)
Constitutional AI — метод выравнивания LLM, предложенный Anthropic. Вместо дорогого сбора разметки предпочтений людьми (как в RLHF), модель обучается на собственных самокорректировках, следуя письменной конституции.
Этапы CAI в оригинале
- Supervised fine-tuning (SFT): модель дообучается на парах (harmful prompt, constitutional response).
- Self-critique + revision: модель генерирует ответ, проверяет его по конституции, переписывает нарушающие места.
- RLHF с constitutional reward: на основе исправленных ответов обучается reward model, которая оценивает, насколько ответ соответствует конституции.
Как это переносится на агентов — каждый вызов агента (действие, рассуждение, ответ) проходит аналогичный цикл саморефлексии.
2. Конституция для агента: принципы и scope
Конституция агента — это не просто набор правил, а иерархическая система, охватывающая:
| Принцип | Пример правила | К чему применяется |
|---|---|---|
| Безопасность | «Не выполняй опасные команды в shell/sql без подтверждения» | Все инструменты |
| Приватность | «Не раскрывай личные данные пользователя третьим лицам» | Ответы, вызовы API |
| Полезность | «Если запрос неоднозначен, задай уточняющий вопрос» | Планирование |
| Честность | «Не выдавай предположение за факт» | Генерация текста |
| Контролируемость | «При запросе на отмену — останови все активные процессы» | Оркестрация |
Каждое правило должно быть:
- Проверяемым (можно автоматически или через LLM проверить, выполнено ли)
- Действенным (ясно, что делать при нарушении)
- Приоритезированным (безопасность выше полезности)
3. Self-critique: агент проверяет сам себя
После того как агент сгенерировал цепочку мыслей (chain-of-thought) или выбрал действие, он выполняет самокритику (self-critique). Для этого подаётся специальный промпт:
Ты — агент-контролёр. Оцени следующий шаг агента по конституции:
Конституция:
1. Не выполняй destructive операций без явного разрешения.
2. ...
Шаг агента: {текст шага}
Допускает ли этот шаг нарушение? Если да, укажи номер правила и предложи исправление.
Техническая реализация: можно использовать отдельный LLM-вызов (критик) или встроить в основной промпт агента инструкцию на саморефлексию. Второе дешевле, но менее надёжно.
4. Revision: исправление нарушающих действий
Если revision обнаружил нарушение, агент переписывает свой ответ/действие. Revision может быть:
- Полным: перегенерировать ответ с указанием нарушения.
- Частичным: изменить только конкретный инструмент или текст.
Пример исправления (для агента, который хотел отправить email без разрешения):
Исходное действие send_email(to="boss@corp", subject="Отчёт", body="...")
Self-critique Нарушение правила 8: «Все исходящие коммуникации требуют подтверждения».
Revision ask_confirmation(user_message="Вы действительно хотите отправить email боссу? (y/n)") + блокировка вызова до ответа.
Revision может быть выполнен как отдельный шаг в loop-агента: после генерации плана — самокритика, после генерации каждого tool call — самокритика.
5. RLHF для конституционного агента
После этапов self-critique + revision мы имеем пары:
На этих данных обучается reward model, которая способна оценивать конституционность ответов агента без явного саморефлекса на инференсе. Затем RLHF (например, PPO) дообучает политику агента (LLM + промпт-инжиниринг) предпочитать действия с высоким reward.
Важный нюанс reward для агента должен учитывать не только финальный ответ, но и траекторию действий (последовательность tool call). Поэтому reward model может быть траекторной: оценивать каждое действие по конституции и штрафовать за нарушения на любом шаге.
6. Практические сложности CAI для агентов
| Сложность | Описание | Решение |
|---|---|---|
| Многократная самокритика | Увеличивает latency и стоимость (может быть 2x–3x запросов) | Использовать кэш, батчевать, делать критику только для критичных шагов |
| Границы конституции | Что считать нарушением? Субъективно | Экспертная разметка + итеративное уточнение правил |
| Эффект перекоррекции | Агент становится слишком робким, отказывается от полезных действий | Разрешить override с веским обоснованием |
| Неоднозначные ситуации | Конституция может противоречить сама себе (например, приватность vs полезность) | Ввести иерархию приоритетов и fallback-сценарии |
7. Инструменты и фреймворки для CAI агентов
- Lakera Guard / NVIDIA NeMo Guardrails — добавляют правила поведения, похожи на конституцию, но без RLHF.
- Anthropic Claude API — поддерживает конституционные промпты, но не агентские loop.
- LangChain + ConstitutionalChain — простейшая реализация: после каждого ответа вызывается цепь проверки конституции.
- Собственная реализация на Ray + RLlib — для RLHF с траекторным reward.
8. Оценка успешности выравнивания
Метрики:
- Violation rate: доля шагов агента, нарушивших конституцию (до и после alignment).
- User satisfaction (A/B тесты, анкеты).
- False positive rate: сколько раз агент отказал в допустимом действии.
- Cost overhead: на сколько процентов выросло время/токены из-за саморефлексии.
Пет-проект для закрепления
Задача Реализовать агента для управления email-рассылкой с конституционными правилами (не спамить, спрашивать подтверждение пред отправкой, не раскрывать адресатов).
Инструменты Python, LangChain (или ручной pipeline), OpenAI API, простой reward model на базе BERT-классификатора (бинарная классификация: конституционно/неконституционно).
Шаги:
- Написать конституцию из 5 правил.
- Реализовать агент, который может читать ящик, писать письма, удалять.
- Добавить шаг self-critique после каждого действия (отдельный вызов LLM с промптом-контролёром).
- Если обнаружено нарушение — revision (отмена действия и запрос подтверждения).
- Собрать 100 траекторий (получить пары «нарушающее действие» / «исправленное действие»).
- Обучить linear classifier на эмбеддингах действий (например, Sentence-BERT) — это упрощённый reward model.
- Использовать reward модель на инференсе для предсказания, нужно ли вызывать self-critique (чтобы не делать каждый раз).
Ожидаемый результат Работоспособный агент, который не отправляет письма без разрешения, не удаляет чужие письма, не раскрывает BCC-списки. Вы сможете сравнить violation rate до и после.
Связь с другими вопросами
| Вопрос | Тема |
|---|---|
| 590 | Инструментальные вызовы, где конституция накладывает ограничения |
| 588 | Координация между агентами с одинаковой конституцией |
| 592 | Память может хранить нарушения, нужна чистка |
| 595 | Метрики оценки alignment |
| 593 | Пересечение с честностью и фактологией |
| 587 | Общий контекст, в котором нужно выравнивание |
Навигация
- Предыдущий: 588
- Следующий: 590
- Индекс: 00. Индекс разборов