Вы должно быть помните наш пост про тортик и напалм — о генерации контрастных пар. Но что делать с готовыми датасетами из open-source, в которых нет таких пар антиподов.
Если просто попросить LLM собрать пары на основе готовых данных — получатся либо галлюцинации, либо однообразные ответы. Например, нейросеть будет подставлять слово «книга» на место любого небезопасного контента.
Наш подход: точечная замена через интерпретируемость
Для этого достаточно NSFW-классификатора, который хорошо находит действительно опасные тексты.
Схема действий:
1️⃣ Прогоняем небезопасные примеры датасета через метод интерпретации SHAP. Он математически оценивает вклад каждого токена и подсвечивает слова, сильнее всего влияющие на итоговый NSFW-скор.
2️⃣ Передаём LLM весь текст и список триггерных слов. Просим заменить только их на максимально подходящие по смыслу, но безопасные аналоги.
3️⃣ Чтобы модель не заменяла всё подряд на слово «книга» — типа «как покурить книгу» — мы внедрили счётчик слов. В каждый новый промпт добавляем top-k самых популярных ответов модели в виде списка слов, запрещённых к генерации.
Влияние на метрики
Мы получили идеальные контрастные пары, где структура предложения идентична, а меняется только семантика нарушения. Это заставило модель смотреть на суть, а не на синтаксические шаблоны.
В результате удалось повысить Specificity модели с 70% до 90% на безопасных примерах из нашего бенчмарка — и при этом не просесть по качеству на опасных примерах. ↗️
Автор этого поста, как и множества других про NSFW, Андрей Иванов — NLP-инженер в R&D red_mad_robot.
#Безопасность