← Университет

LLM Guardrails, Human-in-the-Loop и Контроль Расходов: Полный Конспект

Введение

Развертывание LLM-агентов в production требует многоуровневой архитектуры безопасности, надежности и экономичности. Это не просто вопрос выбора модели — это системная проблема, которая охватывает guardrails (ограждения), human-in-the-loop (участие человека), мониторинг, evals (оценки) и sandbox-изоляцию. Данный конспект объединяет практические знания о том, как архитектурно и операционно управлять этими аспектами.


1. Guardrails: Многоуровневая Архитектура Контроля

1.1 Определение и назначение

Guardrails — это не фильтры контента, а системная архитектура контроля, состоящая из слоев (control layers), границ надежности (reliability boundaries) и ограничений выполнения (execution constraints). По словам исследователя Sendoa Moronta:

"Guardrails — это не опциональны. Это фундамент для надежных LLM-агентов в production"

Guardrails работают на трех критических точках в цикле выполнения:

1.2 Input Guardrails (входящие ограждения)

Защита на входе включает:

Практический пример: если пользователь вводит system_prompt="ignore_all_rules", guardrail должен это заметить и отклонить запрос.

1.3 Interaction Guardrails (ограждения взаимодействия)

Для многошаговых агентов критически важны границы на уровне инструментов:

Этот двух- или трехуровневый контроль доступа предотвращает авторитарные действия агента, когда он может неправильно интерпретировать инструкции.

1.4 Output Guardrails (исходящие ограждения)

На выходе модели нужны проверки:

1.5 Мониторинг и observability

Guardrails бесполезны без видимости. Ключевые метрики включают:

Стоимостной аспект: инвестиция в guardrails окупается предотвращением операционных ошибок при масштабировании. Одна ошибка агента может стоить дороже, чем все guardrails вместе.


2. Human-in-the-Loop (HITL): Архитектура Участия Человека

2.1 Определение и применение

Human-in-the-loop (HITL) — это система, в которой "человек активно участвует в операциях, супервизии или принятии решений автоматизированной системы". По словам IBM:

"HITL позволяет AI сохранять эффективность автоматизации, не теряя человеческую точность, нюансированность и этичность"

HITL используется в ситуациях:

2.2 Три основных подхода внедрения

2.2.1 Supervised Learning

Аннотирование данных людьми перед обучением или фин-тюнингом. Это долгий процесс, но дает наиболее контролируемый результат.

2.2.2 Reinforcement Learning from Human Feedback (RLHF)

Модель награды, основанная на человеческой обратной связи. Это подход, использованный для обучения ChatGPT. Люди ранжируют варианты ответов, система учится на этих предпочтениях.

2.2.3 Active Learning

Система запрашивает помощь человека для неоднозначных примеров. Это наиболее эффективно для production:

Agent → [Is this output acceptable?] → Human → [Yes/No + feedback] → Learning loop

2.3 Типичные проблемы HITL

Проблема Описание Решение
Масштабируемость Аннотирование медленно и дорого Использовать AI для пре-скринга, фокусировать людей на сложных случаях
Ошибки человека Люди устают, отвлекаются, субъективны Несколько аннотаторов на сложные случаи, inter-rater agreement метрики
Безопасность данных Риск утечки конфиденциала при доступе аннотаторов Аноним, шифрование, контроль доступа, audit logs
Отставание по времени HITL добавляет задержку в цикл Асинхронные очереди, приоритизация по срочности

2.4 Экономика HITL

Затраты на HITL должны быть переведены в метрики:

Пример: если одна ошибка в финансовой системе может стоить $10,000, то $50 на проверку человеком это отличная инвестиция.


3. Контроль Расходов: Архитектуры и Стратегии

3.1 Модели лицензирования

3.1.1 Прямые API (Direct APIs)

Подписка непосредственно у провайдера (OpenAI, Anthropic, Google):

Преимущества: - Минимальная задержка (latency) - Мобильные функции: например, встроенный web search в Claude - Никаких промежуточных посредников

Недостатки: - Отсутствие unified spending tracking (если используете несколько провайдеров, отслеживаете расходы отдельно) - Отсутствие гранулярного контроля доступа (нельзя ограничить доступ аннотаторов к определенным моделям)

3.1.2 Gateway подходы (OpenRouter, AnyModel)

Промежуточный агрегатор, который работает с несколькими провайдерами:

Преимущества OpenRouter: - Zero Data Retention (ZDR) включен по умолчанию — промпты не хранятся, отличие от Vercel ($0.10 за 1,000 запросов) - Unified API: один ключ, доступ ко всем моделям - Spending controls: дневные лимиты на ключ, защита если утекли credentials - Provider restrictions: можно заблокировать отправку запросов в определенные страны/регионы - Коммунальные платежи: USDC без привязки кредитки

Стоимость: OpenRouter добавляет ~5.5% наценку при покупке кредитов (варьируется по методу платежа). То есть при использовании Claude Opus (обычно $15/млн токенов) через OpenRouter вы платите ~$15.82/млн.

Когда OpenRouter окупается: - Если используете 3+ провайдера регулярно - Если нужна строгая приватность (ZDR важен) - Если нужны spending guardrails и подробный аудит

3.2 Подписка vs Pay-Per-Use

3.2.1 Модель подписки

Примеры: ChatGPT Pro ($20/мес), Claude Pro ($20/мес). Дает квоту токенов в месяц.

Подходит когда: - Предсказуемый, стабильный объем использования - Средний бюджет на пользователя

Не подходит когда: - Использование очень спорадическое (пару раз в неделю) - Нужна гибкость на команду (разные люди используют разные объемы)

3.2.2 Pay-Per-Use (API)

Платите только за то, что используете. Примеры: OpenAI API, Claude API, Google Gemini API.

Математика: - Claude Opus API: $15/млн input tokens, $75/млн output tokens - ChatGPT-4o: $2.50/млн input, $10/млн output - Claude Haiku: $0.80/млн input, $4/млн output

Точка безубыточности: Если пользователь ChatGPT Pro ($20/мес) генерирует 10 млн токенов в месяц: - По API: $20 (10 млн × $2/млн avg) - По подписке: $20

Но если генерирует только 1 млн: API = $2, подписка = $20 → API экономит 90%.

3.3 Практические метрики контроля расходов

Компании должны отслеживать:

  1. Cost per request: средняя стоимость запроса в долларах
  2. Cost per output token: отслеживать рост при увеличении сложности
  3. Monthly burn rate: прогноз полных расходов на месяц
  4. Cost distribution by feature: что стоит больше всего
  5. Wasted tokens: повторные попытки, очень длинные контексты

Инструменты: - Portkey.ai: мониторинг и управление стоимостью - LiteLLM: open-source прокси с расходами - LangWatch: отслеживание use cases по стоимости


4. Evals: Оценка и Регрессионное Тестирование

4.1 Определение и фазы

LLM evaluation — это "измерение того, как хорошо LLM или LLM-приложение работает против определённых критериев качества". Это не одна активность, а набор подходов на разных фазах:

4.2 Offline vs Online evaluation

4.2.1 Offline evaluation

Тестирование на куратированных датасетах перед deploymentом. Функционирует как unit testing для AI систем.

Процесс: 1. Создать dataset из 25-50 репрезентативных примеров 2. Определить 2-3 ключевых метрики (accuracy, relevance, safety) 3. Установить baseline до изменений 4. Интегрировать в CI/CD pipeline

Предотвращаемые регрессии: - Изменение промпта, которое казалось улучшением, но сломало другое - Обновление документов в RAG-системе, ввод новых ошибок - Версия модели (например, claude-3.5-sonnet) ведет себя неожиданно

4.2.2 Online evaluation

Мониторинг live production трафика асинхронно. Ловит проблемы, которые offline тесты не предусмотрели.

Примеры: - Новый тип запроса, которого не было в training set - Model drift со временем - Сезонные паттерны в пользовательских вводах

4.3 Что оценивать

4.4 Метрики

Классификация метрик

Категория Примеры Сложность реализации
Task success Completion rates, instruction adherence Низкая
Factuality "Может ли утверждение быть отслежено до контекста?" Средняя (нужен LLM-judge)
Relevance Соответствие ответа intent пользователя Средняя
Safety Toxicity, bias detection Средняя (модели для этого есть)
Operational Latency, token costs, error rates Низкая

Практический пример метрик

Для RAG-системы (Retrieval-Augmented Generation):

Offline evals:
- Document recall@5: % от relevant документов в top-5
- Answer F1: IoU между сгенерированным ответом и reference
- Safety score: no PII, no hallucination about docs

Online evals:
- User thumbs-up/down rate
- Click-through on suggested documents
- User follow-up questions (признак неполного ответа)

4.5 Типичные ошибки в evals

  1. Overfitting to eval set: оптимизируете систему под тест, но она не работает на real data
  2. Judge bias: LLM-судья (используется Claude для оценки ответов) может быть смещен
  3. Data leakage: тестовые данные просочились в training data
  4. Metric gaming: оптимизируете метрику, но качество падает (например, очень короткие ответы получают высокий score за скорость, но бесполезны)
  5. Ignoring edge cases: тесты охватывают базовые сценарии, но проваливаются на rare cases
  6. Vibes-based evaluation: субъективная оценка без систематического измерения

5. Sandbox и Изоляция: Безопасное Выполнение Кода

5.1 Почему sandbox необходим

AI-агенты динамически генерируют код на основе промптов. Это мощно, но рискованно:

"AI-агенты производят код, который вы не проверили и не одобрили"

Риски: - Недоброжелательные промпты могут заставить агента удалить критические файлы - Компрометация через prompt injection - Утечка секретов (API ключи в памяти)

5.2 Технологии изоляции

5.2.1 Docker контейнеры

Используют Linux namespaces и cgroups для изоляции процессов.

Проблема: контейнеры разделяют хост-ядро с другими контейнерами. Kernel exploit может компрометировать все контейнеры.

Используется для: доверенного кода, разработки.

5.2.2 gVisor (пользовательское ядро)

Перехватывает системные вызовы перед ядром хоста, имитируя kernel.

Оверхед: 10-30% для I/O операций, 50%+ для системных вызовов.

Используется для: вычислительно-интенсивных задач с частичной неопытностью кода.

5.2.3 Firecracker microVMs (рекомендуется)

Каждая workload получает собственное ядро Linux через KVM.

Характеристики: - Загрузка: ~125ms - Оверхед памяти: <5 МБ на VM - Безопасность: hardware-level изоляция между VM

Используется для: production недоверенный код, агенты.

5.2.4 Kata Containers

Оркестрирует microVMs через стандартные container API.

Преимущества: - Интегрируется с Kubernetes - Стандартная Docker compose — вы не меняете ваш workflow - Hardware-level изоляция Firecracker + удобство контейнеров

5.3 Архитектура defense-in-depth

Не полагайтесь на один уровень изоляции:

  1. Уровень 1 - Guardrails: prompts и calls отфильтрованы перед выполнением
  2. Уровень 2 - Sandbox: код выполняется в изолированной VM
  3. Уровень 3 - ограничение ресурсов: CPU, память, disk I/O лимиты
  4. Уровень 4 - мониторинг: каждое действие логируется и может быть остановлено

6. Observability и Мониторинг в Production

6.1 Observability vs Monitoring

Аспект Мониторинг Observability
Фокус Известные метрики (задержка, ошибки) Скрытые причины поведения
Вопрос "Работает ли система?" "Почему она так себя вела?"
Применение Инфраструктура LLM-системы, агенты, рассуждение

6.2 Пять ключевых целей observability

  1. Надежность (Reliability)
  2. Снижение latency
  3. Обработка отказов провайдеров (fallback to другой модели)
  4. Retry логика с exponential backoff

  5. Качество (Quality)

  6. Factuality checks (может ли утверждение быть подтверждено?)
  7. Relevance (ответ соответствует вопросу?)
  8. Grounding (использованы ли факты из документов?)

  9. Безопасность (Security)

  10. Real-time detection взломов
  11. PII leakage detection
  12. Policy compliance monitoring
  13. Audit logs для compliance

  14. Стоимость (Cost)

  15. Отслеживание использования токенов
  16. Бюджет на feature/team
  17. Cost per request тренд
  18. Anomaly detection (неожиданный рост расходов)

  19. Управление (Governance)

  20. Полная трейсируемость каждого запроса
  21. Версионирование промптов, моделей
  22. Цепочка кастодии данных (audit trail)

6.3 Типичные production проблемы

Скрытые ошибки: модель возвращает уверенные, но неправильные ответы (hallucinations). Пример: туристический чатбот рекомендует закрытый на реновацию музей.

Дрейф производительности (model drift): деградация качества со временем без видимой причины.

Неконтролируемые расходы: exponential рост токенов из-за retry loops или очень длинных контекстов.

Пробелы в compliance: отсутствие отслеживаемости для аудита, нарушение GDPR/SOC2.


7. Интегрированный Пример: Архитектура Production System

User Request
    ↓
[Input Guardrails] — валидация, очистка
    ↓
[Guardrails: tool access control] — READ автоматически, WRITE требует валидацию
    ↓
[LLM Agent + Observability tracing]
    ↓
[Output Guardrails] — валидация схемы, фильтр токсичности
    ↓
[Human-in-the-Loop decision] — если confidence < threshold, запросить утверждение
    ↓
[Sandbox execution] — если agent требует code execution (Firecracker microVM)
    ↓
[Response to user] + [logged to observability] + [cost tracking]
    ↓
[Continuous Evals] — сравнение с baseline, detect drift
    ↓
[Alerts] — если cost > budget, quality < threshold, error rate > limit

Стоимость этой архитектуры: - Guardrails: <5% оверхеда latency - HITL: только для flagged requests (~5-10% cases) - Evals: offline батч, не влияет на production - Sandbox: ~100ms load time для код execution (acceptable для async)


Заключение и Ключевые Выводы

  1. Guardrails — не опция. Без многоуровневых ограждений (input, interaction, output) вы неизбежно получите ошибки в production.

  2. Human-in-the-loop масштабируется через автоматизацию. Используйте AI для пре-скрининга, фокусируйте людей на сложных случаях. Стоимость HITL должна быть переведена в метрики (cost per annotation, break-even point).

  3. OpenRouter/агрегаторы оправданы для multi-model систем. Если используете 3+ провайдеров или нужна приватность (ZDR), 5.5% наценка стоит того. Для single-provider — direct API дешевле.

  4. Evals — это insurance policy. 25-50 примеров, 2-3 метрики, CI/CD integration. Offline + online evaluation ловят разные классы ошибок.

  5. Sandbox с Firecracker — практический стандарт. ~125ms load, <5MB overhead, hardware-level изоляция. Docker контейнеры недостаточно для недоверенного кода.

  6. Observability > Monitoring. Вам нужно не просто знать, что system broke, но почему и где. Трейсинг, логирование, continuous evals — foundation для всего.

  7. Cost control требует архитектуры. Не просто выбирайте дешевую модель — структурируйте систему на уровне guardrails, gateway routing, budget limits.


Источники