Состязательное тестирование для генеративного ИИ

Состязательное тестирование — это метод систематической оценки модели машинного обучения с целью изучения ее поведения при вводе злонамеренных или непреднамеренных вредоносных данных. В этом руководстве описывается пример рабочего процесса состязательного тестирования для генеративного ИИ.

Что такое состязательное тестирование?

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

Запросы могут быть «состязательными» по-разному. Явно враждебные запросы могут содержать язык, нарушающий политику, или выражать точку зрения, нарушающую политику, или могут проверять или пытаться «обмануть» модель, заставляя ее говорить что-то небезопасное, вредное или оскорбительное. Неявно враждебные запросы могут показаться безобидными, но могут содержать деликатные темы, которые являются спорными, культурно чувствительными или потенциально опасными. Это может включать информацию о демографии, здоровье, финансах или религии.

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

Это руководство представляет собой новый передовой опыт ответственного ИИ и представляет собой пример рабочего процесса для состязательного тестирования генеративных моделей и систем.

Пример рабочего процесса состязательного тестирования

Состязательное тестирование следует рабочему процессу, аналогичному оценке стандартной модели.

Идентифицировать и определить входы

Первым шагом в рабочем процессе состязательного тестирования является определение входных данных для изучения поведения системы при преднамеренных и систематических атаках. Вдумчивые входные данные могут напрямую повлиять на эффективность рабочего процесса тестирования. Следующие исходные данные могут помочь определить объем и цели состязательного теста:

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

Политика продукта и режимы отказа

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

Случаи использования

Другим важным входом в состязательное тестирование являются варианты использования, для которых предназначена генерирующая модель или продукт, так что тестовые данные содержат некоторое представление о том, как пользователи будут взаимодействовать с продуктом в реальном мире. Каждый генеративный продукт имеет немного разные варианты использования, но некоторые общие включают: поиск фактов, обобщение и генерацию кода для языковых моделей; или генерация изображений фона по географии или местности, искусству или стилю одежды.

Требования разнообразия

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

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

  • Лексическое разнообразие: убедитесь, что запросы имеют диапазон разной длины (например, количество слов), используют широкий диапазон словарного запаса, не содержат дубликатов и представляют разные формулировки запросов (например, wh-вопросы, прямые и косвенные запросы).
  • Семантическое разнообразие: убедитесь, что запросы охватывают широкий спектр различных тем для каждой политики (например, диабет для здоровья), включая чувствительные и идентификационные характеристики (например, пол, этническая принадлежность), в различных вариантах использования и глобальных контекстах.
  • Разнообразие политики и вариантов использования: убедитесь, что запросы охватывают все нарушения политики (например, разжигание ненависти) и варианты использования (например, рекомендации экспертов).

Найдите или создайте набор(ы) тестовых данных

Наборы тестовых данных для состязательного тестирования строятся иначе, чем стандартные наборы тестов для оценки модели. При оценке стандартных моделей тестовые наборы данных обычно разрабатываются так, чтобы точно отражать распределение данных, с которыми модель столкнется в продукте. Для состязательных тестов тестовые данные выбираются для выявления проблемных выходных данных модели путем подтверждения поведения модели на примерах вне распространения и пограничных случаях, которые имеют отношение к политикам безопасности. Высококачественный состязательный набор тестов должен охватывать все аспекты политики безопасности и максимально охватывать варианты использования, для поддержки которых предназначена модель. Он должен быть разнообразным лексически (например, включать запросы разной длины и на разных языках) и семантически (например, охватывать разные темы и демографические данные).

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

Если существующих наборов тестовых данных недостаточно, команды могут создавать новые данные для конкретных режимов отказа и вариантов использования. Один из способов создания новых наборов данных — начать с ручного создания небольшого набора данных запросов (т. е. десятков примеров на категорию), а затем расширить этот «исходный» набор данных с помощью инструментов синтеза данных.

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

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

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

Создание выходных данных модели

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

Аннотировать выходные данные

Как только результаты состязательного тестирования будут сгенерированы, аннотируйте их, чтобы классифицировать их по режимам отказа и/или вредам. Эти метки могут помочь предоставить сигналы безопасности для текстового и графического содержимого. Кроме того, сигналы могут помочь измерить и уменьшить вред для моделей и продуктов.

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

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

Сообщить и смягчить

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

Дополнительные ресурсы

Команда Google AI Red: этичные хакеры делают ИИ более безопасным

Языковые модели Red Teaming с языковыми моделями

Тестирование справедливости продукта для разработчиков машинного обучения (видео):

Проверка честности продукта для разработчиков (Codelab)