Как стать автором
Обновить

Как мы сделали систему для спасения интернета от токсичности

Уровень сложностиСредний
Время на прочтение5 мин
Количество просмотров3.8K

Токсичность в интернете — распространенная проблема, с которой сталкивался каждый. В период бурного развития AI само собой напрашивается решение для автоматического удаления токсичных паттернов с сохранением исходного смысла и оригинального стиля автора. Один из таких подходов - использование NLP seq2seq моделей, которые мы обучаем на парах (тоcкичное предложение; нетоксичное предложение):

Срез датасета для обучения seq2seq модели детоксификации
Срез датасета для обучения seq2seq модели детоксификации

Так же, перед обучением модели стоит определиться с метриками, по которым будем измерять качество:

  • Content preservation, SIM - косинусное сходство между эмбеддингами оригинального предложения и детоксифицированной версией.

  • Fluency, FL - процент естественных предложений. Вычисляется с помощью RoBERTa-base классификатора, обученного на датасете CoLA.

  • Style accuracy, STA - процент нетоксичных токенов, идентифицированных с помощью RoBERTa классификатора, обученного на половине смерженных датасетов Jigsaw разных годов (2018, 2019, 2020).

    Для удобства мы ввели Joint score, J - произведение трех вышеописанных метрик. Именно на основе J будет осуществляться оценка качества детоксификации:

J=\dfrac{1}{n}\cdot \sum_n {STA(y_i)\cdot SIM(x_i, y_i)\cdot FL(y_i)}

n - количество предложений в eval-датасете;

x - исходное предложение, y - детоксифицированная версия x

Для английского языка существуют эффективные решения для детоксификации текста, например вот это, разработанное моими коллегами в Сколтехе. Но что насчет системы, которая бы детектировала универсальные паттерны токсичности без привязки к конкретному языку? Именно такую задачу мы решали на соревновании PAN-2024. Самбмит нашего решения на английском можно найти здесь.

Обработка и аугментация данных

Для аугментации мы использовали следующую стратегию:

  1. Перевод с английского языка на целевой с помощью Deep-translator.

  2. Проверка сохранения смысла при переводе с помощью сравнения LaBSE эмбеддингов между переведенными парами.

  3. Оценка сохранения токсичности через XLM-R

В результате выровняли распределение данных и нагенерировали дополнительные семплы для низкоресурсных языков.

Методы детоксификации

Supervised finetuning

В качестве основного подхода мы выбрали дообучение различных многоязычных языковых моделей. Мы считаем, что наиболее перспективными моделями для дальнейшего дообучения являются модели из семейства mT0. Это семейство моделей Transformer, работающих по принципу "sequence2sequence", наследованных от mT5. Семейство mT0 было выбрано из-за оптимальной работы с мультиязычными данными, поэтому эти модели были адаптированы для каждого языка конкурса. Так же, мы провели эксперименты с новой моделью Aya-101, которая является дообученной версией mT5-xl на многоязычных инструкциях.

Гиперпараметры обучения для всех моделей инициализировались почти одинаково. Скорость обучения была установлена на уровне 1e-5, общий размер батча — 8, а коэффициент weight decay — 0.01. Для обучения использовался cosine scheduler. В общей сложности все модели обучались в течение 4 эпох. Все остальные параметры обучения были по дефолтными согласно HuggingFace Seq2SeqTrainer. Единственное отличие заключалось в том, что для mT0-XL мы обновляли веса всей модели, так как наши вычислительные ресурсы это позволяли. В случае более крупной модели, такой как Aya-101 или mT0-XXL, обучался только адаптер LoRA. Настройки адаптера LoRA были следующими: r и lora alpha установлены на 32, параметр lora dropout — на 0.1, остальные параметры — по умолчанию. Лучшая модель выбиралась на основе потерь на валидации.

Чтобы усилить способности моделей в контексте, мы добавили специфический префикс к каждому токсичному предложению в зависимости от языка. В результате мы передавали токсичные предложения с особым префиксом в модель во время обучения.

Отбор кандидатов на инференсе

Во время инференса мы сгенерировали 10 гипотез и выбрали 5 наиболее вероятных с помощью метода diverse beam search. Количество лучей - 10 с 5 группами лучей, diversity penalty составило 2.5, а штраф за повторение — 1.2. Для выбора наилучшего варианта мы рассчитали метрику релевантности, используя произведение оценок схожести и токсичности. Схожесть вычислялась с помощью встраиваний LaBSE, а токсичность оценивалась с помощью классификатора токсичности xlm-roberta-large. После расчета оценок релевантности мы выбрали лучший кандидат с наивысшим баллом.

ORPO

После файнтюнинга мы решили дополнительно оптимизировать модель для достижения наилучших результатов с помощью метода оптимизации Odds Ratio Preference Optimization (ORPO). Эта оптимизация не требует референсной модели, как в случае DPO. Выравнивание проводилось на невидимом тестовом наборе данных.

В качестве предпочтительного набора данных мы генерировали гипотезы с помощью разнообразного поиска по образцам из тестового набора и аннотировали их, используя ранее описанную оценку релевантности. Только кандидаты с наивысшими оценками релевантности были выбраны как лучшие, в то время как все остальные были отнесены к отвергнутым образцам.

Итоговый набор данных ORPO для выравнивания содержал запрос (токсичное предложение), отвергнутый образец (негативный кандидат) и выбранный образец (лучший кандидат). Мы обучили модель на этом наборе данных, используя те же параметры, что и для обучения других моделей. Параметр бета для ORPO был установлен на уровне 0.1. Для окончательной подачи мы использовали выровненную модель с описанным выше алгоритмом для выбора лучшего кандидата.

Результаты

Финальные результаты автоматической оценки представлены в таблице ниже:

Модель mT0-XL с ORPO показала наилучшие результаты среди всех подходов в лидерборде для всех языков. По сравнению с mT0-XL, которая была до выравнивания ORPO, новая версия немного улучшила показатели модели, увеличив средние результаты на 0.01 балла. Удивительно, но более крупные модели не показали лучших результатов. Например, модель mT0-XXL с 13 миллиардами параметров работала даже хуже, чем mT0-XL с 3.7 миллиарда параметров. Модель Aya-101, основанная на mT5-XXL и дополнительно настроенная на инструктивные данные для различных языков, также показала худшие результаты по сравнению с другими моделями. Поскольку Aya-101 и mT0-XXL продемонстрировали еще худшие результаты по сравнению с mT0-XL, мы не проводили этап выравнивания ORPO для этих моделей. Среди других команд в автоматической оценке наши контрольные точки, в основном mT0-XL-ORPO и mT0-XL, являются двумя лучшими подходами для всех языков, кроме китайского.

Заключение

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

Теги:
Хабы:
Всего голосов 12: ↑6 и ↓6+6
Комментарии22

Публикации

Истории

Работа

Data Scientist
70 вакансий

Ближайшие события

2 – 18 декабря
Yandex DataLens Festival 2024
МоскваОнлайн
11 – 13 декабря
Международная конференция по AI/ML «AI Journey»
МоскваОнлайн
25 – 26 апреля
IT-конференция Merge Tatarstan 2025
Казань