Как и любая другая история в наши дни, наша начинается с карантина COVID-19. Этот проект - результат скучающих, но мотивированных энтузиастов ИИ. Это может быть не так впечатляюще, как сад на крыше, который построил Эндрю, или новая настройка Indian scout Bobber от Кейт, но это только начало. Прежде чем мы будем тратить ваше время попусту, давайте начнем с того, что именно представляет собой этот проект. И почему, если таковые имеются, вам стоит волноваться об этом.

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

Ядовитый комментарий определяется как грубый, неуважительный или непристойный комментарий, который доставляет другим людям дискомфорт и приводит к выходу из обсуждения.

ПОЧЕМУ МЫ ЗАБОТИТСЯ ОБ ЭТОМ ПРОЕКТЕ?

Социальные платформы, такие как YouTube, предлагают возможность комментариев, чтобы люди могли открыто обсуждать контент. Однако в наши дни то, что мы находим в разделе комментариев, оценивается настолько плохо, что официальные лица США приняли закон, включающий отключение комментариев к видеороликам YouTube, предназначенным для детей. Раздел комментариев в настоящее время состоит из ненужных разговоров, вульгарных комментариев и оскорбительных оскорблений; что приводит к распространению ненависти, эмоциональному расстройству и агрессивному поведению, особенно в молодом поколении.

TL; DR: это проект, который тренирует модель глубокого обучения, чтобы определить, является ли комментарий человека токсичным или нет. Поскольку никто из нас не является потомком Сократа (может быть, да, но нас это не волнует) или специалиста по общественным наукам, мы не собираемся обсуждать, что токсично, а что нет. Мы будем использовать определение, используемое многими игровыми онлайн-платформами для справедливого (или несправедливого) запрета игроков.

Токсичный человек просто вызывает ненависть.

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

ЧТО ОЖИДАТЬ ОТ ЭТОГО ПРОЕКТА?

К концу этой статьи вы сможете

  1. Запустите веб-приложение для определения токсичности.
  2. Узнайте, как создать это приложение с нуля.

Реализация этой работы опубликована в нашем репозитории GitHub. Мы советуем вам клонировать его и работать над ним одновременно, пока вы читаете эту статью.

Для начала мы предполагаем, что читатель знаком с основами глубокого обучения и Python. Если нет, то для начала ознакомьтесь с некоторыми основами Deep Learning и Python.

ИСПОЛЬЗУЕМЫЙ НАБОР ДАННЫХ

Мы решили эту проблему в системе обучения с учителем. Набор данных, используемый в этом проекте, взят из Jigsaw / Conversation AI. Набор данных состоит из ~ 2 млн публичных комментариев с платформы Гражданские комментарии. Этот набор данных служил нашим набором для обучения и проверки.

Данные состоят из следующих атрибутов токсичности:

  • серьезная_отоксичность
  • непристойный
  • угроза
  • оскорблять
  • identity_attack
  • сексуальный_эксклюзивный

В этой работе мы не классифицируем атрибуты токсичных комментариев. Вместо этого мы решаем проблему двоичным способом: Токсично или Нетоксично.

ИСПОЛЬЗУЕТСЯ СЕТЬ

Для нашей задачи мы использовали XLM-ROBERTa (XLM-R), которая представляет собой мощную неконтролируемую модель на базе трансформатора. Это межъязыковая сеть кодировщиков предложений, которая позволяет получать самые современные результаты по многим тестам межъязыкового понимания.

XLM-R обучается на данных CommonCrawl, отфильтрованных 2,5 ТБ, на 100 языках. Более подробную информацию можно найти здесь, а официальная реализация доступна здесь.

ОБУЧЕНИЕ

Мы обучили нашу сеть на одном графическом процессоре Nvidia емкостью 12 ГБ. Мы также использовали Google Colab, чтобы поэкспериментировать с настройками TPU. Мы обучили нашу сеть за 2 эпохи и достигли точности проверки около 85%.

Поскольку конечной целью проекта было создание веб-приложения, вес обученной сети был довольно большим. Поэтому мы сжали сохраненную модель и уменьшили ее размер с 3 ГБ до 1 ГБ. Окончательный вес доступен для скачивания здесь.

ТЕСТИРОВАНИЕ

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

Поэтому мы ограничили объем этого проекта только комментариями на YouTube .

Мы соскребли комментарии пользователей с заданного URL-адреса видео YouTube и передали их нашей обученной модели. Мы выводим прогнозируемые показатели токсичности / нетоксичности на главной странице нашего приложения.

РАЗВЕРТЫВАНИЕ

Поскольку наша конечная цель - разместить этот проект как веб-приложение, мы использовали Flask для размещения приложения и HTML с CSS для веб-стилизации.

Flask - это веб-фреймворк, который предоставляет инструменты, интерфейсы, библиотеки и технологии для создания веб-приложений.

КАК ЗАПУСТИТЬ ПРОЕКТ?

  1. Клонируйте репозиторий GitHub и загрузите обученные веса отсюда.

2. Установите необходимые компоненты, как указано в README GitHub.

3. Запустите app.py и введите URL-адрес YouTube, чтобы получить результаты.

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

Вы можете скачать наш код и попробовать сами. Так что используйте это время, чтобы узнать что-то новое и хорошее. Наш код доступен на GitHub со всей необходимой информацией.



Не стесняйтесь обращаться к нам в случае любых вопросов!

Соавторы: Ашутош Мишра, Навид Акрам, Риту Ядав, Садик Аднан Сиддики , Венкатеш Айер.