Фильтрация контента для AI: баланс безопасности и UX

Блокировка обсуждения Второй мировой войны AI-тьютором как насилие — это не безопасность, а UX-катастрофа. Медицинский ассистент, отказывающийся обсуждать симптомы депрессии «ради вашей безопасности», тоже пример агрессивной фильтрации, убивающей полезность продукта. Контент-фильтрация — точная наст

Направления AI-разработки

Часто задаваемые вопросы

Последние работы

  • image_website-b2b-advance_0.webp
    Разработка сайта компании B2B ADVANCE
    1440
  • image_web-applications_feedme_466_0.webp
    Разработка веб-приложения для компании FEEDME
    1301
  • image_websites_belfingroup_462_0.webp
    Разработка веб-сайта для компании БЕЛФИНГРУПП
    997
  • image_ecommerce_furnoro_435_0.webp
    Разработка интернет магазина для компании FURNORO
    1264
  • image_logo-advance_0.webp
    Разработка логотипа компании B2B Advance
    712
  • image_crm_enviok_479_0.webp
    Разработка веб-приложения для компании Enviok
    1002

Блокировка обсуждения Второй мировой войны AI-тьютором как насилие — это не безопасность, а UX-катастрофа. Медицинский ассистент, отказывающийся обсуждать симптомы депрессии «ради вашей безопасности», тоже пример агрессивной фильтрации, убивающей полезность продукта. Контент-фильтрация — точная настройка баланса между безопасностью и полезностью. Мы видим десятки проектов, где агрессивные фильтры блокируют 20–30% легитимных запросов, а слишком мягкие пропускают реальные угрозы. Один крупный маркетплейс сэкономил на модерации более $50 000 в год после внедрения многоуровневой системы фильтрации. Ниже — проверенный подход, который мы применяем в продуктах с требованиями к безопасности и юзабилити.

Таксономия небезопасного контента

Для продуктовой системы нужна чёткая таксономия — что именно мы фильтруем и с каким уровнем строгости. Правильно настроенная таксономия — половина успеха.

Категория Примеры Рекомендуемый подход
Насилие (explicit) Инструкции по причинению вреда Hard block
Насилие (общее) Обсуждение военных конфликтов Context-dependent
CSAM Любой контент Hard block, zero tolerance
Hate speech Дискриминация по признакам Classifier + threshold
Личная угроза «Я убью тебя» Classifier + escalation
PII утечка Данные других пользователей NER-detection + block
Дезинформация Фактические ошибки Fact-check pipeline
Jailbreak попытки Обход системных инструкций Injection detection
Off-topic Вне scope приложения Soft redirect
Подробнее о настройке порогов

Пороги severity для каждой категории задаются отдельно. Например, для насилия explicit — hard block на любом уровне, а для общего насилия — блокировка только при severity >= 6. Исторический контекст снижает порог на 2 уровня.

Почему одного OpenAI Moderation API недостаточно?

OpenAI Moderation API — быстрый и дешёвый первый слой. 11 категорий, latency ~100ms, стоимость практически нулевая. Но он плохо работает на русском языке и специфических контекстах. Например, запрос «какие методы лечения рака существуют?» может попасть в категорию медицинских рекомендаций и быть заблокирован. Для мультиязычных продуктов используем Azure Content Safety. Он поддерживает русский, 4 основные категории с severity levels 0–7. REST API или SDK:

from azure.ai.contentsafety import ContentSafetyClient from azure.ai.contentsafety.models import AnalyzeTextOptions client = ContentSafetyClient(endpoint, credential) response = client.analyze_text(AnalyzeTextOptions( text=user_input, categories=["Hate", "Violence", "Sexual", "SelfHarm"], output_type="FourSeverityLevels" )) for result in response.categories_analysis: if result.severity >= 4: # порог настраивается raise ContentPolicyViolation(result.category) 

Сравнение инструментов фильтрации: кастомный BERT с LoRA на русском языке в 2 раза точнее OpenAI Moderation.

Решение Языки Латентность Приватность Точность (русский)
OpenAI Moderation API 11 категорий, плохой RU ~100ms Внешнее ~0.7
Azure Content Safety RU + EN, 4 категории ~150ms Внешнее ~0.8
LlamaGuard 3 EN, мультияз через перевод ~200ms (GPU) Локальное ~0.85
Кастомный BERT + LoRA Доменный RU ~50ms Локальное ~0.92+

LlamaGuard 3. Локальная модель — преимущество для privacy-sensitive продуктов. Классификация по MLCommons hazard taxonomy. Работает на GPU от 8GB VRAM в INT4 квантизации через llama.cpp. Не нужно отправлять контент на внешние серверы.

Кастомные классификаторы. Для доменно-специфичных правил (финтех не обсуждает схемы уклонения от налогов, медицинский сервис не даёт диагнозов) обучаем дообученные модели. BERT-base с LoRA fine-tuning на 500–2000 примерах даёт precision 0.92+ для узких категорий — это в 2 раза лучше, чем OpenAI Moderation API на русском языке.

Архитектура многоуровневой фильтрации

Принцип: быстрые и дешёвые фильтры — первыми. Дорогие LLM-based проверки — только то, что прошло первый слой.

User Input ↓ [Layer 1: Rule-based] — regex, keyword lists, <5ms ↓ (если не заблокировано) [Layer 2: Fast classifier] — BERT/DistilBERT, 20-50ms ↓ (если score > 0.3) [Layer 3: LLM classifier] — LlamaGuard / GPT-4o mini, 150-400ms ↓ Decision: Allow / Block / Rewrite / Escalate 

На слой 3 доходит только ~5–15% трафика — это даёт разумный баланс между стоимостью и точностью.

Как построить многоуровневую фильтрацию?

Из нашей практики: образовательная платформа онлайн-обучения для школьников, AI-тьютор. Требования: никакого контента для взрослых, никакого насилия, но нормальное обсуждение исторических событий, включая войны.

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

Мы сделали следующее:

  1. Ввели context-awareness: тот же запрос в контексте истории vs. в контексте «как навредить» — разные решения.
  2. Настроили topic-specific пороги: для исторического контекста порог по «violence» повышен.
  3. Добавили intent classification: вопрос «почему дети дерутся в школе» → academic/help-seeking, не угроза.
  4. Ложноположительные срабатывания снизились с 23% до 2.8%, recall по реальным нарушениям вырос с 0.71 до 0.94.

Результат: более 5 лет на рынке и более 30 проектов в области AI safety позволяют нам гарантировать, что фильтры не заблокируют полезный контент, но отсекут опасный. В результате платформа сэкономила $30 000 ежемесячно на ручной модерации. Получите консультацию для оценки вашего проекта. Закажите аудит безопасности вашего AI-продукта.

Что входит в работу по внедрению content safety

В рамках проекта мы предоставляем:

  • Документация политик фильтрации с таксономией и порогами.
  • Набор обученных классификаторов (rule-based, BERT, LlamaGuard под ваш домен).
  • Интеграция с вашим пайплайном (REST API или SDK).
  • Дашборд мониторинга с метриками: rate блокировок, latency, false positive rate.
  • Обучение команды по настройке и дообучению моделей.
  • Пост-релизная поддержка и ретрайнинг через 3–6 месяцев.

Мониторинг и итерация

Фильтры деградируют: пользователи находят обходные пути, язык меняется, новые угрозы появляются. Необходим:

  • Дашборд по rate заблокированных запросов с разбивкой по категориям.
  • Выборочный human review заблокированного контента (5–10% sample).
  • Periodic retraining классификаторов на новых примерах.
  • A/B тесты при изменении порогов.

Сроки внедрения: от 2–4 недель для базовой фильтрации (rule-based + API) до 8–12 недель для многоуровневой системы с кастомными классификаторами и дашбордом. Стоимость рассчитывается индивидуально. Свяжитесь с нами для предварительной оценки проекта.