Состязательное тестирование — это метод систематической оценки модели МО с целью изучения того, как она ведет себя при предоставлении вредоносных или непреднамеренно вредных входных данных. В этом руководстве описан пример рабочего процесса состязательного тестирования для генеративного ИИ.
Что такое состязательное тестирование?
Тестирование — важнейшая часть создания надежных и безопасных приложений ИИ. Состязательное тестирование включает в себя упреждающие попытки «сломать» приложение, предоставив ему данные, которые с наибольшей вероятностью могут вызвать проблемные выходные данные. Состязательные запросы могут привести к небезопасному сбою модели (т. е. к нарушению политики безопасности) и к ошибкам, которые легко распознать людям, но трудно распознать машинам.
Запросы могут быть «состязательными» по-разному. Явно состязательные запросы могут содержать нарушающие политику выражения или выражать точки зрения, нарушающие политику, а также могут исследовать или пытаться «обмануть» модель, заставив ее сказать что-то небезопасное, вредное или оскорбительное. Неявно состязательные запросы могут показаться безобидными, но могут содержать деликатные темы, которые являются спорными, чувствительными с культурной точки зрения или потенциально вредными. Они могут включать информацию о демографии, здоровье, финансах или религии.
Состязательное тестирование может помочь командам улучшить модели и продукты , выявляя текущие сбои и направляя пути смягчения последствий, такие как точная настройка, защита моделей или фильтры. Более того, это может помочь принять обоснованные решения о запуске продукта, измеряя риски, которые могут быть неучтены, например, вероятность того, что модель выведет контент, нарушающий политику.
Это руководство представляет собой новую передовую практику ответственного ИИ и представляет собой пример рабочего процесса состязательного тестирования генеративных моделей и систем.
Пример рабочего процесса состязательного тестирования
Состязательное тестирование следует рабочему процессу, аналогичному оценке стандартной модели.
Идентификация и определение входных данных
Первым шагом в рабочем процессе состязательного тестирования является определение входных данных, позволяющих узнать, как ведет себя система при преднамеренной и систематической атаке. Продуманные входные данные могут напрямую повлиять на эффективность рабочего процесса тестирования. Следующие исходные данные могут помочь определить объем и цели состязательного теста:
- Политика продукта и режимы сбоев
- Варианты использования
- Требования разнообразия
Политика продукта и режимы сбоев
Продукты генеративного ИИ должны определять политику безопасности, описывающую поведение продукта и моделирующие недопустимые выходные данные (т. е. считающиеся «небезопасными»). Политика должна перечислять виды сбоев, которые будут считаться нарушениями политики. Этот список режимов отказа следует использовать в качестве основы для состязательного тестирования. Некоторые примеры режимов сбоя могут включать контент, содержащий ненормативную лексику, а также финансовые, юридические или медицинские советы.
Варианты использования
Еще одним важным вкладом в состязательное тестирование является вариант(ы) использования, которым стремится служить генеративная модель или продукт, чтобы тестовые данные содержали некоторое представление о том, как пользователи будут взаимодействовать с продуктом в реальном мире. Каждый генеративный продукт имеет несколько разные варианты использования, но некоторые общие включают в себя: поиск фактов, обобщение и генерацию кода для языковых моделей; или создание изображений фона по географии или местности, искусству или стилю одежды.
Требования разнообразия
Наборы данных состязательных испытаний должны быть достаточно разнообразными и репрезентативными в отношении всех целевых режимов отказа и вариантов использования. Измерение разнообразия наборов тестовых данных помогает выявить потенциальные отклонения и гарантирует широкое тестирование моделей с учетом разнообразия групп пользователей.
Три способа мышления о разнообразии включают в себя:
- Лексическое разнообразие: убедитесь, что запросы имеют разную длину (например, количество слов), используют широкий словарный запас, не содержат дубликатов и представляют разные формулировки запроса (например, вопросы, прямые и косвенные запросы).
- Семантическое разнообразие: убедитесь, что запросы охватывают широкий спектр различных тем для каждой политики (например, диабет для здоровья), включая чувствительные и идентификационные характеристики (например, пол, этническая принадлежность), в различных вариантах использования и глобальных контекстах.
- Разнообразие политик и вариантов использования: убедитесь, что запросы охватывают все нарушения политики (например, разжигание ненависти) и варианты использования (например, советы экспертов).
Найдите или создайте наборы тестовых данных.
Наборы тестовых данных для состязательного тестирования строятся иначе, чем стандартные наборы тестов для оценки модели. При стандартных оценках моделей наборы тестовых данных обычно разрабатываются так, чтобы точно отражать распределение данных, с которыми модель столкнется в продукте. Для состязательных тестов тестовые данные выбираются так, чтобы выявить проблемные выходные данные модели путем доказательства поведения модели на примерах вне распределения и крайних случаях, которые имеют отношение к политике безопасности. Высококачественный набор состязательных тестов должен охватывать все аспекты политики безопасности и максимально охватывать варианты использования, для поддержки которых предназначена модель. Он должен быть разнообразным лексически (например, включать запросы различной длины и на разных языках) и семантически (например, охватывать разные темы и демографические данные).
Изучите существующие наборы тестовых данных на предмет охвата политик безопасности, режимов сбоев и вариантов использования моделей генерации текста и преобразования текста в изображение. Команды могут использовать существующие наборы данных для определения базового уровня производительности своих продуктов, а затем проводить более глубокий анализ конкретных режимов сбоев, с которыми сталкиваются их продукты.
Если существующих наборов тестовых данных недостаточно, команды могут генерировать новые данные для конкретных режимов сбоев и сценариев использования. Один из способов создания новых наборов данных — начать вручную с создания небольшого набора данных запросов (т. е. десятков примеров на категорию), а затем расширить этот «исходный» набор данных с помощью инструментов синтеза данных.
Исходные наборы данных должны содержать примеры, максимально похожие на те, с которыми система может столкнуться в рабочей среде, и созданы с целью выявить нарушение политики. Высокотоксичные высказывания, скорее всего, будут обнаружены функциями безопасности, поэтому рассмотрите возможность использования творческих формулировок и неявно враждебных действий.
Вы можете использовать прямые или косвенные ссылки на конфиденциальные атрибуты (например, возраст, пол, расу, религию) в своем наборе тестовых данных. Имейте в виду, что использование этих терминов может различаться в зависимости от культуры. Меняйте тон, структуру предложений, длину слов и их значение. Примеры, когда можно применять несколько ярлыков (например, разжигание ненависти или непристойность), могут создавать шум и дублирование, а также не могут быть должным образом обработаны системами оценки или обучения.
Состязательные тестовые наборы следует анализировать, чтобы понять их состав с точки зрения лексического и семантического разнообразия, охвата нарушений политики и вариантов использования, а также общего качества с точки зрения уникальности, состязательности и шума.
Сгенерируйте выходные данные модели
Следующим шагом является создание выходных данных модели на основе тестового набора данных. Результаты проинформируют команды разработчиков о том, как их модели могут работать при воздействии злонамеренных пользователей или непреднамеренно вредоносных входных данных. Идентификация такого поведения системы и моделей реагирования может обеспечить базовые измерения, которые можно будет смягчить при будущей разработке модели.
Аннотировать результаты
После получения результатов состязательного тестирования аннотируйте их, чтобы классифицировать их по режимам сбоя и/или вреда. Эти метки могут помочь обеспечить сигналы безопасности для текстового и графического содержимого. Более того, эти сигналы могут помочь измерить и смягчить вред, наносимый моделями и продуктами.
Классификаторы безопасности можно использовать для автоматического аннотирования выходных данных (или входных данных) модели на предмет нарушений политики. Точность может быть низкой для сигналов, которые пытаются обнаружить конструкции, которые не являются строго определенными, например, разжигание ненависти. Для этих сигналов крайне важно использовать оценщиков-людей для проверки и исправления меток, сгенерированных классификатором, для которых оценки являются «неопределенными».
Помимо автоматического аннотирования, вы также можете использовать оценщиков-людей для аннотирования выборки ваших данных. Важно отметить, что аннотирование результатов модели в рамках состязательного тестирования обязательно включает в себя просмотр тревожного и потенциально опасного текста или изображений, аналогично ручной модерации контента. Кроме того, оценщики-люди могут комментировать один и тот же контент по-разному в зависимости от своего личного опыта, знаний или убеждений. Может быть полезно разработать рекомендации или шаблоны для оценщиков, учитывая, что разнообразие вашего пула оценщиков может повлиять на результаты аннотаций.
Сообщите и смягчите
Последним шагом является обобщение результатов испытаний в отчете. Вычисляйте показатели и сообщайте о результатах, чтобы предоставить показатели безопасности, визуализации и примеры проблемных сбоев. Эти результаты могут служить основой для улучшения модели и информировать о мерах защиты модели, таких как фильтры или черные списки. Отчеты также важны для коммуникации с заинтересованными сторонами и лицами, принимающими решения.
Дополнительные ресурсы
Красная команда Google по искусственному интеллекту: этические хакеры делают ИИ более безопасным
Red Team объединяет языковые модели с языковыми моделями
Тестирование честности продукта для разработчиков машинного обучения (видео):