Внешний фильтр для LLM: как заставить ИИ соблюдать закон без дообучения (Open Source)
Обзор Guardrails и AVI: как внедрить фильтр ввода-вывода для LLM без дообучения. Docker, мониторинг, защита от prompt injection и compliance.
LLM не умеют молчать. Они готовы выдать инструкцию по сборке взрывчатки, рассказать анекдот про начальника или случайно «слить» персональные данные. Fine-tuning? Дорого, долго, негибко. Решение — внешний фильтр. Прокси между пользователем и моделью, который перехватывает запросы и ответы и режет лишнее. Без дообучения, без датасетов, без GPU. Просто ставится и работает.
Звучит утопично? В 2026 году это уже инженерная рутина. Открытые проекты вроде Guardrails AI, NeMo Guardrails и новый стандарт AVI (Aligned Validation Interface) превращают безопасность ИИ из задачи уровня NLP-команды в DevOps-задачу уровня docker compose up. Разбираемся, как это работает, что выбрать и почему fine-tuning теперь выглядит как пережиток прошлого.
Фильтр как прокси: зачем ломать LLM, если можно просто закрыть клапан
Любой LLM — это генератор токенов, которому плевать на законодательство. Он не различает «можно» и «нельзя» — он просто предсказывает следующий токен по вероятности. Внешний фильтр берёт на себя всю головную боль: проверяет входящий запрос на попытки инжекции, чувствительные данные (PII) и запрещённые темы; на выходе — фильтрует ответ, обрезает галлюцинации, заменяет нецензурщину эвфемизмами.
Классическая архитектура — это цепочка из трёх компонентов: input guard (проверка запроса), LLM call (сам ответ), output guard (пост-валидация). Если на любом этапе проверка завалилась — запрос блокируется, модель не дёргается, деньги не тратятся.
Зачем это нужно? Вот цитата из статьи «ИИ-комплаенс в РФ: ФСТЭК 117 и Указ 490» — разработчик, попавший на штраф, честно признаётся: «Мы дообучали модель на датасете запрещённых тем, но юрист принёс новый закон, и пришлось перезапускать цикл заново». Внешний фильтр решает это одной строчкой конфига.
Guardrails: швейцарский нож для безопасности LLM
Проект Guardrails (Guardrails AI) — самый популярный open source инструмент для валидации LLM-вывода на 2026 год. Он позволяет описывать правила проверки в виде «рейлсов» (rail spec) на YAML или JSON: что должно быть в ответе, чего не должно быть, как реагировать на нарушение (переспросить, исправить, заблокировать). Рейлсы компилируются в код на Python и выполняются как middleware.
Особенности, которые выделяют Guardrails:
Open source с лицензией Apache 2.0 — можно форкать и допиливать.
Docker образ с FastAPI-сервером для запуска как микросервис.
Мониторинг через Healthcheck и метрики (Prometheus экспортёр).
Интеграция с RAG — отдельный рейлс для проверки релевантности retrieved context (чтобы LLM не приплетал лишнего из базы знаний).
Поддержка AVI — интерфейс Aligned Validation Interface позволяет подключать любые внешние детекторы (модерацию, проверку тональности, детекцию PII).
Сравнивая с альтернативами, Guardrails выигрывает простотой: развернулся за 5 минут, написал пару правил — и готово. NeMo Guardrails от NVIDIA мощнее, но требует NeMo framework, больше памяти и опыта. Rebuff (разработчик Protect AI) — отличный специалист по prompt injection, но не умеет проверять вывод. Lakera Guard — платный SaaS, удобно, но цены кусаются.
Инструмент
Open Source
Валидация ввода
Валидация вывода
Docker
RAG support
Кривая обучения
Guardrails
Да
Да (через AVI)
Да (рейлсы)
Да
Да
Низкая
NeMo Guardrails
Да
Да
Да
Да (с NeMo)
Да
Средняя
Rebuff
Да
Да
Нет
Да
Нет
Низкая
Lakera Guard
Нет
Да
Да (план Pro)
Нет (SaaS)
Ограничено
Низкая
У Guardrails есть один недостаток: сложные сценарии с многократным переспросом (reask) могут зациклиться. Но это решается настройкой лимита попыток и fallback-ответами.
Пример: как за 15 минут поставить фильтр для соблюдения закона в РФ
Допустим, у вас чат-бот для банка. Нужно, чтобы модель не выдавала персональные данные клиентов (ФИО, паспорт) и не предлагала схемы ухода от налогов. Без дообучения.
Пишем рейлс compliance.ru.yaml:
rails:
- name: no_pii
input: true
type: guardrail
# Используем AVI для вызова внешнего детектора PII
detector: pii_detector
on_fail: bail
- name: no_tax_evasion
output: true
type: guardrail
# Проверяем, что в ответе нет упоминания незаконных схем
rule: |
if ("налоговая" in response and "обойти" in response) or
("оптимизация" in response and "незаконн" in response):
then fail
on_fail: fix
fix: "Извините, я не могу дать совет по этому вопросу. Рекомендую обратиться к профессионалу."
Запускаем Guardrails сервер:
docker run -p 8080:8080 guardrailsai/guardrails:latest --rails compliance.ru.yaml
Теперь любой вызов к LLM идёт через наш прокси: на входе — детектор PII блокирует запросы, содержащие номера паспортов (настроенный через AVI); на выходе — если LLM случайно начнёт советовать что-то незаконное, фильтр заменит ответ на безопасный шаблон.
Как показывает практика, такой подход снижает количество инцидентов с утечками на 95% без единой эпохи обучения (проверено на OpenAI Privacy Filter на русском — он использует похожую архитектуру).
AVI: единый интерфейс для детекторов
Aligned Validation Interface (AVI) — это не продукт, а спецификация, которая стандартизирует, как внешние детекторы (модерация, проверка тональности, детекция PII) общаются с гардами. Guardrails поддерживает AVI из коробки, что означает: вы можете подключить любой сторонний сервис, реализующий AVI, будь то локальный ML-модель на ONNX или облачный API.
Например, для проверки на соответствие ФЗ-152 можно использовать детектор PII, обученный на кириллице, и обернуть его в AVI-совместимый FastAPI-сервис. Это идеально совпадает с концепцией безопасного внедрения ИИ в корпорации — вы не завязываетесь на одного вендора, а строите экосистему проверок.
Кому это нужно прямо сейчас
Инструмент подходит:
Стартапам и продуктовым командам, которые хотят выпустить чат-бота, но боятся репутационных рисков.
Комплаенс-отделам — фильтр ставится за день, правила утверждаются юристом, а не датасаентистом.
Разработчикам, использующим RAG — как показано в статье «Контекстная инженерия для локальных LLM», даже средняя модель становится надёжной при правильной фильтрации контекста. Внешний фильтр берёт на себя эту задачу.
Тем, кто уже обжёгся на fine-tuning — смена регуляций больше не требует переобучения, достаточно обновить YAML.
Единственная ситуация, где внешние фильтры пасуют — это когда сама модель настолько токсична, что любой ответ нарушает закон. Тут уж только fine-tuning или смена модели. Но для 90% бизнес-кейсов фильтр — это быстро, дёшево и контролируемо.
Интересный тренд: фильтры начинают встраивать прямо в ML-пайплайн на уровне API Gateway. Проект Infer уже позволяет делать grep по LLM через терминал — следующий шаг добавить фильтр как middleware в саму утилиту. А стандарт AVI становится де-факто интерфейсом для таких интеграций.
Попробуйте сами — репозиторий Guardrails на GitHub, 15 минут на Docker, и ваш ИИ перестанет быть анархистом. Заодно проверите, насколько хорош детектор PII под кириллицу — возможно, придётся дообучить свой, но это уже совсем другая история.