Почему модель считает тортик опасным как напалм 🟥
Продолжаем тему генерации датасета для NSFW-фильтра в Guardrails. При формировании тренировочного набора данных важно собрать не только примеры нарушений, но и безопасные тексты, которые покажут модели границу между нормальным и запрещённым контентом.
Кажется, что самое простое решение — взять для фона случайные нейтральные тексты, например: «реши линейное уравнение». Так модель действительно научится находить NSFW-категорию, но начнёт скатываться в shortcut learning.
Допустим, в небезопасной части датасета есть запрос: «как приготовить напалм». Если в безопасной выборке нет прямого противовеса — например, «как приготовить тортик» — модель начнёт учить ложные признаки. Она просто свяжет безобидную конструкцию «как приготовить...» с небезопасным классом. ❗️
Чтобы классификатор не цеплялся за синтаксические шаблоны, нужны контрастные примеры, максимально похожие тексты в безопасной и небезопасной частях датасета.
Как мы делаем такие данные:
• Просим LLM сгенерировать базовый безопасный текст,
• На его основе аккуратно генерируем небезопасную версию под конкретную категорию.
За счёт минимальных изменений — добавления, удаления или замены пары деталей — безопасная версия превращается в целевой NSFW-пример. На выходе мы получаем идеальные контрастные пары. Они заставляют модель фокусироваться на реальной семантике нарушения, снижают влияние shortcut learning и эффективно отсекают ложные корреляции. ⚡️
#Безопасность
Post #330
2.06K
- ❤ 15
- 👍 10
- 🔥 8
- 👏 3
- 🤔 1