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

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

Напрямки AI-розробки

Часті запитання

Останні роботи

  • image_website-b2b-advance_0.webp
    Розробка сайту компанії B2B ADVANCE
    1439
  • 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 категорій, поганий UA ~100ms Зовнішня ~0.7
Azure Content Safety UA + EN, 4 категорії ~150ms Зовнішня ~0.8
LlamaGuard 3 EN, мультимова через переклад ~200ms (GPU) Локальна ~0.85
Кастомний BERT + LoRA Доменний UA ~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 тижнів для багаторівневої системи з кастомними класифікаторами та дашбордом. Вартість розраховується індивідуально. Зв'яжіться з нами для попередньої оцінки проєкту.