Как устроить BERT-based moderation inference service
Нужно развернуть сервис модерации текста на BERT/DistilBERT. Как спроектировать input/output, policy layer, thresholds и routing actions?
Ответить самому
Сначала сформулируйте ответ как на собеседовании, затем откройте разбор и оцените себя.
Короткий ответ
Сервис принимает text, user/content metadata и policy context, возвращает scores по классам, action, threshold reason, model version и trace id для модераторской очереди.
Полный разбор
Moderation pipeline лучше делать каскадом. Сначала быстрые правила и policy layer обрабатывают очевидные blocklist, allowlist, язык, пустой текст и запрещенные паттерны. Затем модель получает нормализованный текст и metadata, считает scores по классам: toxic, hate, insult, spam, sexual, clean или доменные категории.
После модели decision layer применяет thresholds. Высокая уверенность в нарушении ведет к block или hide. Средняя уверенность отправляет объект в manual review. Низкий риск пропускает контент. Ответ API должен включать action, scores, model version, threshold reason, policy version и trace id.
Для production важны latency, batching, CPU/GPU cost, fallback при недоступности модели, audit logs и возможность менять thresholds без переобучения. Модераторы должны видеть причину попадания в очередь и исходный текст без лишних догадок модели.
Теория
Модель модерации не принимает бизнес-решение одна. Она выдает scores, а policy layer переводит их в действие с учетом риска и правил продукта.