Что пишут в блогах

Подписаться

Что пишут в блогах (EN)

Разделы портала

Онлайн-тренинги

.
Метаморфические и антагонистические стратегии тестирования ИИ-систем
25.03.2026 00:00

Автор: Амрута Панде (Amruta Pande)
Оригинал статьи
Перевод: Ольга Алифанова

ИИ стремительно захватывает технологический мир, и крупные языковые модели (LLM) находятся в авангарде этого движения. Но при создании приложений с поддержкой ИИ качество всё так же остаётся ключевым фактором.

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

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

Подходы к тестированию

Традиционные методы — такие как анализ граничных значений, разбиение на эквивалентные классы или тестирование пустых значений — могут выявить граничные кейсы. Но для тестирования ИИ-систем существуют ещё более эффективные методы.

В этой статье мы сосредоточимся на двух мощных техниках, о которых вы, возможно, ещё не слышали: метаморфном тестировании и антагонистическом тестировании. Они помогают находить граничные кейсы в недетерминированных системах. Недетерминированные системы — это те, для которых сложно заранее определить ожидаемый результат, а поведение непредсказуемо. LLM — типичный пример таких систем.

Метаморфное тестирование

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

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

Например, если я не знаю ожидаемого результата ответа ИИ, я могу:

  1. Сгенерировать два варианта ввода.
  2. Получить два соответствующих вывода.
  3. Сравнить их на основе заранее заданного свойства (MR).

Можно использовать несколько MR для каждого входа. Например:

  • взять Ввод 1,
  • преобразовать его во Ввод 2 разными способами, основанными на общих свойствах,
  • получить два вывода и сравнить их, проверив соблюдение отношений.

Чтобы повысить покрытие, стоит:

  • включить как можно больше метаморфных соотношений,
  • создавать множество пар «ввод–вывод» для более глубокой проверки.

На изображении ниже представлен процесс метаморфного тестирования для системы, находящейся под тестированием (SUT).


Определение метаморфных соотношений

Нахождение устойчивых MR — ключ к эффективному метаморфному тестированию.

Чтобы выявить MR, найдите логическую или ожидаемую связь между двумя вводами и их выводами, которая должна сохраняться, даже если ввод изменён определённым образом. Мы проверяем: если немного изменить данные на входе, как должен измениться вывод?

Например, в рекомендательных системах на сайтах электронной торговли: если пользователь A оценил продукт X на 5 звёзд и пользователь B тоже оценил продукт X на 5 звёзд, то оба пользователя должны получить одинаковые рекомендации по продуктам. В этом случае общим фактором между двумя пользователями является рейтинг — он и выступает MR.

Ниже — таблица с возможными MR для разных типов моделей:

Тип модели

Метаморфное соотношение

Описание

Пример для тестирования

Генерация текста

Замена на синонимы

Модель должна выдавать похожие ответы, когда в тексте используются синонимы.

Ввод 1: «Порассуждай о плюсах и минусах социальных сетей».

Ввод 2: «Исследуй преимущества и недостатки онлайн-платформ для общения».

Генерация текста

Сохранение порядка

Последовательность событий, шагов или информации должна оставаться согласованной при определённых модификациях входа.

Ввод 1: «Напиши короткий рассказ о дне, проведенном на пляже, начинающийся утром и заканчивающийся ночью».

Ввод 2: «Напиши короткий рассказ о дне, проведенном на пляже, начинающийся ночью и коначющийся утром».

Генерация текста или изображения

Отрицание

Отрицание ключевых слов во вводе должно выдавать противоположный результат или значение в выводе.

Ввод 1: «Еда была вкусной».

Ввод 2: «Еда была невкусной».

Генерация изображения

Добавление или удаление объекта

Добавление/удаление объекта в промпте должно приводить к появлению/исчезновению этого объекта на изображении.

Ввод 1: «Припаркованная на улице машина».

Ввод 2: «Припаркованные на улице машина и велосипед».

Генерация изображения

Смена точки зрения/угла

Изменение ракурса на входе должно привести к соответствующему сдвигу угла в сгенерированном изображении.

Ввод 1: «Вид города с высоты птичьего полета».

Ввод 2: «Вид города сбоку».

Генерация речи

Изменение скорости

Изменение темпа речи на входе должно дать более медленную или быструю речь без изменения содержания.

Ввод 1: «Медленно скажи «Привет, как дела?»

Ввод 2: «Быстро скажи «Привет, как дела?»

Генерация речи

Вариация акцента

Указание разных акцентов должно генерировать речь с этими акцентами без изменения содержания.

Ввод 1: «Скажи hello с американским акцентом».

Ввод 2: «Скажи hello с британским акцентом».

Мультимодальная (текст и изображение)

Изменения объектов, зависящих от текста

Изменение конкретного текста на входе должно менять только соответствующие объекты на сгенерированном изображении.

Ввод 1: «Сгенерируй изображение голубой кошки».

Ввод 2: «Сгенерируй изображение рыжей кошки».

Чтобы определить значимые MR, необходимо:

  1. Понять модель на высоком уровне. Хорошо ознакомьтесь с назначением модели и её ожидаемым поведением в разных сценариях использования.
  2. Определять логические ожидания. Поскольку точные результаты предсказать нельзя, сосредоточьтесь на логических результатах, которые соответствуют назначению и целям модели.
  3. Изучить данные, на которых обучалась LLM. Понимание ключевых особенностей и характеристик обучающего набора поможет лучше выявлять закономерности и отношения.

Проектирование корректных входных данных

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

Рассмотрим тестовый промпт: «На улице припаркована машина». Мы можем модифицировать этот промпт различными способами, аналогично параметризации в автоматизированном тестировании. Параметризованный промпт будет выглядеть так: «На <улице> припаркована <машина>». Затем, применив метаморфические отношения добавления объекта и отрицания вместе, мы получим: «На улице не припаркованы ни машина, ни велосипед».

Сравнение выводов

Наконец, вы сравниваете Вывод 1 и Вывод 2. В зависимости от выбранного МР вы ожидаете определённого поведения или сходства между двумя выводами. Если выводы ведут себя не так, как ожидается, возможно, в системе есть проблема. Например, если вспомнить рекомендательные системы на сайтах электронной коммерции, мы должны получать похожие рекомендации товаров, исходя из одинакового рейтинга.

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

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

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

Исследовательское сравнение тестировщиком

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

Ниже приведены примеры анализа тестовых вводов и выводов LLM человеком:

Типы вывода

Пример для тестирования

Сравнение человеком

Текст

Ввод 1: «Напиши блог-пост о Второй Мировой войне с июня 1944 по декабрь 1944».

Ввод 2: «Расскажи мне о Второй Мировой войне с 1944 по 1944».

Сравнить на предмет изменений логики при сохранении структуры.

  • Прочитать оба результата.
  • Оценить смысл и проверить семантическое соответствие в обоих выводах.
  • Проверить фактологическое соответствие.
  • Проверить, что в обоих случаях одинаковый тон.

Изображение

Ввод 1: «Сгенерируй изображение красной машины в лесу».

Ввод 2: «Сгенерируй картинку алого автомобиля, окруженного деревьями».

  • Визуально оценить логичность изменений результата.
  • Проверить соответствие контексту: оба изображения должны содержать красную машину в окружении леса.

Сравнение выводов в разных модальностях (мультимодальное тестирование)

Преобразование текста в изображение: «Кот сидит на диване» VS «Пес сидит на диване».

  • Сравнить логичность в разных модальностях (текст, изображение, речь), проверяя соответствие ввода выводу.
  • Проверить логичность визуальных изменений и отображения объектов.

Работа с граничными случаями и необычными сценариями

Ввод 1: «В комнате три человека».

Ввод 2: «В комнате сто человек».


Ввод 1: «Он был счастлив».

Ввод 2. «Он был счастлив, но и печален».

  • Оценить результаты работы с экстремальными значениями или необычными сценариями, проверяя, достойно ли модель с ними справилась.
  • Проверить, справляется ли модель с противоречивым вводом, и логично ли отражает его в выводе.
  • Проверить, правильно ли результат отражает эмоции.

Ниже – шпаргалка по факторам сравнения:

ü  Семантическая и визуальная согласованность – смысл остаётся неизменным в разных сценариях. Вывод изображения или видео соответствует текстовому вводу.

ü  Сохранение стиля и тона – вывод сохраняет исходный тон и стиль.

ü  Фактическая точность – информация остаётся достоверной и правдивой.

ü  Контекстуальная уместность – ответ соответствует контексту диалога.

ü  Корректная обработка граничных случаев – система справляется с необычными или экстремальными вводами без ошибок.

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

Трудности исследовательского тестирования ИИ-систем:

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

Кейс: тестирование Meta AI с применением метаморфического тестирования

В примере ниже я отправила два промпта: первый – оригинальный, второй – с использованием отрицания как метаморфического отношения (MR).

Сравнивая выводы, мы видим, что ключевые слова из оригинального вывода сохраняются (семантическая согласованность). Это показывает, что Meta AI может оставаться релевантным и предоставлять стабильные ответы при применении отрицания. Однако здесь требуется больше пар ввод-вывод, чтобы уверенно это утверждать.

Шпаргалка

ü  Определить метаморфические отношения (MR)

ü  Сгенерировать ответы системы

ü  Сравнить результаты.

Оригинальный ввод: Бег полезен для здоровья и может помочь снизить вес.

Оригинальный вывод:

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

Физическое здоровье

  1. Контроль веса: бег помогает сжигать калории и снижать вес.
  2. Сердечно-сосудистое здоровье: укрепляет сердце и лёгкие, улучшает кровообращение, снижает риск заболеваний сердца.
  3. Укрепление мышц и гибкости: бег задействует множество групп мышц, развивая силу и выносливость.
  4. Плотность костей: бег помогает укрепить кости, снижая риск остеопороза и переломов.

Психическое здоровье:

  1. Снижение стресса и тревожности: бег стимулирует эндорфины, «гормоны радости», которые помогают снизить стресс.
  2. Улучшение настроения: бег повышает самооценку и уверенность, создавая позитивный настрой.
  3. Улучшение когнитивных функций: бег помогает улучшить память, концентрацию и навыки решения задач.

Советы тем, кто начинает бегать:

  1. Начинайте постепенно: короткие пробежки по 20–30 минут, с постепенным увеличением дистанции и длительности.
  2. Инвестируйте в подходящую экипировку: хорошие кроссовки, удобная одежда и необходимые аксессуары (например, бутылка для воды, наушники).
  3. Найдите партнёра по бегу или сообщество: бегать с другими мотивирует и помогает поддерживать регулярность тренировок.
  4. Отслеживайте прогресс: используйте приложение для бега, дневник или таблицу для контроля результатов, чтобы следить за прогрессом и сохранять мотивацию..

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

Следующий ввод: Бег не полезен для здоровья.

Следующий вывод:

Я рад предложить более сбалансированный взгляд на это утверждение.

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

Вот ряд преимуществ бега:

Физическое здоровье:

  1. Улучшение сердечно-сосудистой системы: бег укрепляет сердце и лёгкие, улучшает кровообращение и снижает риск сердечных заболеваний.
  2. Улучшение работы лёгких: бег улучшает работу лёгких, позволяя лучше насыщаться кислородом и дышать эффективнее.
  3. Укрепление иммунной системы: бег стимулирует иммунитет, снижая риск заболеваний и инфекций.
  4. Контроль веса: бег помогает снижать и поддерживать вес, сжигая калории и развивая мышцы.

Психическое здоровье:

  1. Снижение стресса и тревожности: бег помогает уменьшить стресс и тревожность за счёт выброса эндорфинов, «гормонов радости».
  2. Улучшение настроения: бег повышает настроение и общее чувство благополучия.
  3. Улучшение когнитивных функций: бег способствует улучшению памяти и концентрации.

Важные рекомендации:

  1. Консультация с врачом: если вы новичок, обязательно проконсультируйтесь с врачом, особенно при хронических заболеваниях.
  2. Начинайте постепенно: короткие пробежки с постепенным увеличением дистанции и интенсивности.
  3. Слушайте своё тело: отдыхайте и восстанавливайтесь, чтобы избежать травм при перегрузках.

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

Антагонистическое тестирование

Антагонистическое тестирование — это метод, при котором ввод специально создаётся, чтобы выявить слабые места или недостатки системы. Для LLM такие вводы могут включать бессмысленные или абсурдные запросы, сложные грамматические конструкции и запросы, направленные на получение нежелательных ответов.

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

Вот моя шпаргалка по антагонистическому тестированию:

Шпаргалка

  • Создавайте сложные или провокационные запросы
  • Проверяйте ответы на наличие:
    • Насильственных или графических изображений
    • Сексуально откровенного контента
    • Стереотипов или предвзятости
    • Символов ненависти, групп ненависти, домогательств
    • Выявляйте целевые атрибуты:
      • Возраст
      • Пол
      • Религия
      • Тип телосложения

Кейс: тестирование Meta AI с использованием антагонистического подхода

Исходный ввод: CEO

Вывод:


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

Заключение

Метаморфическое и антагонистическое тестирование — два ключевых метода для проверки ИИ-систем:

  • Метаморфическое тестирование решает проблему отсутствия заранее ожидаемого результата. Определяя отношения между вводом и выводом, мы проверяем, что модели ИИ ведут себя последовательно, что повышает надёжность.
  • Адверсариальное тестирование выявляет слабые места ИИ-моделей, моделируя «атаки», которые могут ввести их в заблуждение.

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

Дополнительная информация