
TL; DR: Большие языковые модели отлично справляются с нейтрализацией токсичности в тексте, но только если у самой модели отключить внутренний цензор. С другой стороны, кажется, что модели могут успешно справляться с задачей добавления токсичности.
Токсичную версию данной статьи можно сгенерировать в colab notebook. Код для удаления цензора из языковой модели и датасеты доступны на гитхабе. Также для удаления цензоры из любой языковой модели можно воспользоваться интерактивным colab notebook.
Введение
Недавно на Хабре была опубликована замечательная статья под несколько провокационным названием Как мы сделали систему для спасения интернета от токсичности. В этой статье авторы делятся своим опытом участия в соревновании PAN-2024, главной целью которого была нейтрализация токсичности в текстовых данных на нескольких языках. Для этого они разработали систему на основе большой модели, применили хитрые методы дообучения и отбора кандидатов. В результате они заняли первое место в автоматической оценке.
Однако остается интересный вопрос: насколько хорошо автоматические метрики могут определить токсичность до и после? Можно ли объективно оценить степень токсичности? Что такое токсичность? Организаторы соревнования также задались этими вопросами и дополнительно провели ручную разметку. Они предложили людям выбрать менее токсичный текст из двух вариантов, обработанных человеком и языковой моделью. И оказалось, что для некоторых языков (русский в том числе) люди в среднем выбирают чаще наш вариант языковой модели. И мы заняли первое место после ручной оценки. О том, почему и как так получилось, пойдет речь дальше.
Язык | Оценка модели | Оценка человека |
EN | 0.86 | 0.88 |
ES | 0.83 | 0.79 |
DE | 0.89 | 0.71 |
ZH | 0.53 | 0.93 |
AR | 0.74 | 0.82 |
HI | 0.86 | 0.97 |
UK | 0.69 | 0.90 |
RU | 0.84 | 0.80 |
AM* | 0.71 | 0.85 |
Среднее | 0.77 | 0.85 |
Таблица с результатами. Для испанского (ES), немецкого (DE) и русского (RU) Llama 3 показывает качество лучше людей. Для Амхарского языка (AM) мы использовали другую модель.
Рассказывать что большие языковые модели умеют справляться с [вставьте свою задачу сюда] можно бесконечно долго. Каждые пару месяцев новые модели решают ранее «невозможные» бенчмарки. Однако, помимо стремления занять первые места на LLM-арене, разработчики стремятся сделать языковые модели доступными для как можно большего числа людей. Например они устанавливают цензурные рамки для моделей, чтобы те не оскорбляли пользователей и не предлагали ничего противозаконного. Это, безусловно, правильно, но такая внутренняя цензура ограничивает возможности модели в выполнении некоторых задач.
Например, мы хотим уменьшить токсичность текстов. Постановка вопроса простая, языковая модель должна генерировать нейтральные предложения из токсичных, но когда она видит в тексте оскорбительные слова, то отказывается выдавать результат, потому что «токсичный текст = токсичный запрос», а это недопустимо.


Как же убрать внутренний цензор языковой модели? Существует множество методов, мы остановились на аблитерации (статья на Хабре и оригинальная статья на LessWrong про это).
Основная идея в том, чтобы найти пары вопрос-ответ, на которые модель отвечает «Я как языковая модель не могу ответить на данный вопрос» с одной стороны, и на которые нормально отвечает с другой. Например, «как взломать компьютер» и «как сделать торт из коржей». Далее мы меняем активации модели для нормального и плохого вопроса, из-за чего модель начинает отвечать на любые вопросы. За этим методом стоят некоторые математические преобразования, которые в данной статье не имеет смысла расписывать, лучше прочитайте оригинальную статью, она интересная.
Благодаря такому подходу мы получаем модель которая легко и просто может сгенерировать код для вредоносной программы, даже если он не будет работать, или отыгрывать ERP, но вместе с тем решать максимально положительную задачу по детоксикации предложений. Кроме того, подобный метод децензурирования меньше вредит общему качеству модели. С моделью без цензуры нам удалось занять первое место в CLEF -2024 при ручной оценке (условное нулевое место заняли люди). Самое удивительное что для нескольких языков нам удалось сделать качество лучше людей. Но Llama 3 все-таки не абсолютный вариант. Проблема возникла с амхарский языком, Llama 3 совершенно отказывалась генерировать что-либо адекватное, так что только для этого языка мы взяли дополнительную мультиязычную модель BART и обучили ее. Как мы видим из таблички качества, это не особо помогло.

Вывод?
В идеальной статье дальше должен идти вывод о том, как мы победили токсичность в текстах и что интернет, возможно, стал немного более безопасным. К сожалению, это не идеальная статья, так что зададимся вопросом: если языковая модель может эффективно устранять токсичность, то как она может усиливать её? Пока не существует автоматических метрик позволяющих оценить «эффективность оскорбления в тексте». Только оценка людьми, и, на взгляд автора данных строк, модель отлично справляется с этой задачей. Интересно то, что модель не просто заменяет любой глагол с русского на русский матерный (откуда она его знает?), а иногда пытается дополнить и усилить оскорбительный контекст.

Заключение
Модели еще не достигли высот в искусстве оскорблять, но с ростом размеров и качества возможно в один момент нам достаточно будет доступа к небольшой Llama n+1 чтобы получить автоматический генератор комментариев на Хабре постов на Дваче (осталось только придумать хорошее название, например, GPT-2ch).
P.S.
Всё это, как говорится, реклама. Ведь в этом году проходит второе соревнование PAN at CLEF 2025 - Multilingual Text Detoxification по мультиязычной детоксификации предложений. Регистрация открыта до конца апреля. Участвуйте!