"Обработка естественного языка"
Как приручить языковую модель
Современные нейронные языковые модели обладают удивительными возможностями, начиная от ответов на вопросы и заканчивая анализом и обобщением длинных статей и созданием текста, сгенерированного человеком. Эти системы становятся все более популярными в приложениях, ориентированных на клиентов, и поэтому для предприятий важно научиться использовать эту передовую технологию и убедиться, что она работает правильно и производит ожидаемый контент.
К сожалению, большие корпуса, используемые для обучения больших языковых моделей, наполнены нецензурной бранью, расизмом и другими нежелательными особенностями, от которых мы хотели бы, чтобы наши модели держались подальше. Таким образом, сами модели часто производят токсичный результат. Известным примером этого является чат-бот Microsoft Twitter под названием Tay, который начал производить токсичный контент менее чем через 24 часа после его выпуска [1]. Кроме того, было показано, что языковые модели, такие как GPT-2, производят токсичный язык, даже если подсказка нейтральна [2]. Очевидно, создание текста, похожего на человеческий, может быть обоюдоострым мечом.
В этом посте мы рассмотрим некоторые из предложенных методов детоксикации языковых моделей.
Эти методы обычно можно разделить на две категории, а именно детоксикация на основе данных и на основе декодирования [3].
Примечание: методы, обсуждаемые в этом посте, могут также применяться к аналогичным проблемам в генерации контролируемого текста. Однако такие вопросы, как предотвращение генерации поддельных новостей вашей языковой моделью, требуют дополнительных компонентов, таких как проверка фактов, и они определенно заслуживают полного поста, но здесь они рассматриваться не будут.
Детоксикация на основе данных
Возможно, первая идея, которая приходит на ум для детоксикации языковых моделей, — это использование обучающих данных более высокого качества, не содержащих нежелательных атрибутов. Такой подход возможен, но это означает, что мы значительно уменьшим размер обучающей выборки, что снизит производительность модели.
Тем не менее, с некоторыми изменениями, мы можем использовать эту идею без затрат на уменьшение размера набора данных. Детоксикация на основе данных включает дополнительный этап предварительной подготовки языковых моделей, предназначенный для детоксикации модели. Предварительное обучение с адаптацией к предметной области (DAPT) предполагает добавление фазы обучения на детоксицированном наборе данных после обучения на полном наборе данных [4]. Другой метод под названием обработка атрибутов включает фазу обучения, когда к документу добавляется префикс в зависимости от того, является ли содержимое токсичным или нетоксичным. При создании нового контента мы затем добавляем нужный управляющий код, который в нашем случае будет «нетоксичным».
Детоксикация на основе декодирования
Детоксикация на основе декодирования направлена на смягчение нежелательного поведения языковых моделей путем адаптации стратегии декодирования. Преимущество этих методов заключается в том, что они не обязательно требуют дополнительной фазы обучения большой языковой модели и, таким образом, могут быть применены к любой языковой модели по вашему выбору, даже если ресурсы ограничены.
Подход с словарным сдвигом присваивает оценку токсичности каждому токену в словаре. Затем эти оценки включаются в определение распределения вероятностей для следующего слова на каждом этапе, отдавая предпочтение нетоксичным токенам токсичным.
Фильтрация по словам — аналогичный, но более простой подход. Мы определяем набор слов, которые не должны произноситься языковой моделью ни при каких обстоятельствах из-за ненормативной лексики или токсичности. Затем, во время декодирования, мы либо переопределяем распределение вероятностей, чтобы придать этим токенам нулевую вероятность, либо выполняем повторную выборку при выборе нежелательного токена.
Другой метод, предложенный в недавней статье Uber AI под названием Plug and Play Language Models (PPLM), использует дискриминатор токсичности во время декодирования. Градиенты от дискриминатора возвращаются и сдвигают скрытые состояния декодера для создания текста с желаемыми атрибутами. [5]
Наконец, в недавней статье Salesforce предлагается подход, использующий генеративные дискриминаторы (GeDi) для управления процессом генерации. Две простые языковые модели, использующие противоположные контрольные коды (т. е. токсичные и нетоксичные), используются для определения токсичности каждого потенциального следующего слова в контексте. Контраст между вероятностью двух моделей используется для изменения распределения вероятности модели большого языка. [6] В итоге распределение итоговой языковой модели, обусловленное «нетоксичным» управляющим кодом, дается следующей формулой:
Как видно из формулы, исходную языковую модель можно использовать как есть, а затем вероятности модифицировать с помощью генеративного дискриминатора.
Использование методов детоксикации на основе декодирования можно сравнить с мышью, пытающейся управлять слоном. Мы хотим использовать большую языковую модель, используя модели значительно меньшего размера, чтобы обеспечить желаемый результат при минимальных дополнительных затратах и накладных расходах.
Вывод
Подводя итог, можно сказать, что детоксикация языковых моделей — это задача, которая становится все более важной по мере того, как все большее число систем НЛП выставляется на всеобщее обозрение. Мы видели некоторые творческие решения этой проблемы с различными преимуществами и недостатками, и, вероятно, в ближайшем будущем будут добавлены новые подходы для получения дальнейшего контроля над «дикими» языковыми моделями.
Филип Таннор — соучредитель и генеральный директор Deepchecks, компании, которая предоставляет организациям инструменты для проверки и мониторинга их систем на основе машинного обучения. Филип имеет богатый опыт в области науки о данных и имеет опыт работы с такими проектами, как НЛП, обработка изображений, временные ряды, обработка сигналов и многое другое. Филип имеет степень магистра наук. в области электротехники и степень бакалавра наук. по физике и математике, хотя из своих занятий он почти ничего не помнит, кроме информатики или алгоритмов.
Если вам интересно узнать больше о том, как вы можете управлять своими моделями машинного обучения в производственной среде, не стесняйтесь обращаться к нам.
использованная литература
[1] https://www.theverge.com/2016/3/24/11297050/tay-microsoft-chatbot-racist
[2] https://toxicdegeneration.allenai.org/
[3] Сэм Гехман, Сучин Гуруранган, Маартен Сап, Еджин Чой и Ноа А. Смит (2020). RealToxicityPrompts: оценка нейронной токсической дегенерации в языковых моделях. Выводы EMNLP
[4] Сучин Гуруранган, Ана Марасович, Свабха Сваямдипта, Кайл Ло, Из Бельтаги, Дуг Дауни и Ной А. Смит (2020). Не прекращайте предварительное обучение: адаптируйте языковые модели к доменам и задачам. ArXiv, абс/2004.10964.
[5] Сумант Дататри, Андреа Мадотто, Дженис Лан, Джейн Хунг, Эрик Франк, Пьеро Молино, Джейсон Йосински и Розанна Лю. (2020). Языковые модели Plug and Play: простой подход к контролируемой генерации текста.
[6] Краузе Б., Готмаре А., Макканн Б., Кескар Н., Джоти С., Сочер Р. и Раджани Н. (2020). GeDi: генерация управляемой последовательности с помощью генеративного дискриминатора. Препринт arXiv arXiv: 2009.06367.