Как за ночь создать классификатор для выявления AI-текстов на примере статей с Хабра
Краткое резюме
Автор делится опытом создания модели для выявления искусственно сгенерированных текстов. Он разработал классификатор, используя код и датасет AI, и опубликовал обученную модель на huggingface.co.
**Создание модели для определения искусственного текста: личный опыт**
Уважаемые специалисты в области обработки естественного языка! Данная статья не является обучающим материалом. Автор не обладает глубокими знаниями в этой сфере и делится лишь своим опытом.
Недавно я задумался о том, как можно выявить искусственно сгенерированные тексты. После прочтения статьи о методах обнаружения такого контента мне пришла в голову идея: почему бы не разработать собственное решение с помощью кода?
Я не являюсь юристом, но предполагаю, что публикация датасета Хабра, собранного на статьях пользователей, может быть ограничена. Однако в репозитории доступен код и датасет AI, которые позволят вам обучить модель на собственных данных. Также на huggingface.co я публикую обученную модель, распознающую признаки AI.
**Поиск готовых решений**
Я начал с поиска готовых решений. Существует несколько публичных сервисов, предлагающих подобные услуги за плату. Однако при тестировании на русскоязычных текстах результаты были неудовлетворительными.
У меня есть некоторый интерес к нейросетям, в основном как у пользователя. Я знаю о существовании сайта huggingface, где можно найти готовые решения с открытым кодом и данными. Однако выяснилось, что доступные решения ориентированы на английский язык и не подходят для наших целей.
**Разработка собственного решения**
Как определить, что текст написан не человеком? Тексты, созданные нейросетями, часто имеют повторяющиеся паттерны и фразы. Это можно использовать для их обнаружения.
Несмотря на то что у меня нет опыта в обучении нейросетей, я решил попробовать разработать собственную модель. На помощь пришёл наш любимый нейрослоп. Новая нейросеть от Google оказалась способной показать зачатки разума и подсказать, что нужно сделать для создания собственной модели даже при отсутствии знаний в этой области.
Для решения задачи мне нужна модель-классификатор. Это такая сеть, которая обучается на входных данных и метке, позволяющей определить эти данные. Вместо того чтобы обучать модель с нуля, я решил использовать готовое решение и переобучить его на своих данных. Это будет проще и дешевле, а также не факт, что с нуля у нас вообще что-то получится.
Google рекомендует для такой задачи использовать сеть BERT и перетренировать её на своих данных. BERT хорошо знает английский, но нам нужна модель для русского языка. И такая есть: SberDevices пару лет назад взяли BERT и обучили его на русском языке.