Тестирование AI-приложений

Как тестировать AI-приложения?

Традиционный QA, даже вооруженный до зубов инструментами, принципиально не отличается от тестирования без них. Вы планируете покрытие, опираясь на классический тест-дизайн: эквивалентное разделение, попарное тестирование и т.п. Вы работаете с установкой, что если ожидаемый результат A + B = C, а на деле A + B != C — это дефект.

В этом детерминированном мире почти никогда нет смысла прогонять один и тот же тест дважды. Инструменты могут помочь проверить качество покрытия, написать тест-кейсы или сгенерировать автотесты, чтобы кратно поднять продуктивность, но они не меняют саму суть процесса. Если A + B всегда должно равняться C, вы просто проверяете это равенство — с инструментами или без.

Однако, если вы AI QA или ML Evaluation инженер, ваше A + B в первом прогоне может быть C, во втором — C + k, а в третьем C — k или даже C + n.

Вы живете в мире подброшенных кубиков.

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

Почему так происходит?

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

Что может сделать QA, чтобы справиться с этим?

  • Подтянуть статистику: разобраться в таких понятиях, как «репрезентативная выборка» и доверительные интервалы.
  • Делать N прогонов: запускать каждый тест $N$ раз, чтобы увидеть распределение результатов.
  • Устраивать «стресс-тест» промптам: использовать вариации, чтобы понять, где именно начинаются отклонения.

Например, если мы тестируем способность модели «нарисовать дом»:

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

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

Ещё по теме
  1. Тестовое задание AI QA тестировщика

  2. LLM-as-a-Judge (модель-судья) и QA-терминология

  3. Как тестировать AI-приложения: рубрики

Обсуждение

Добавить комментарий

Поделитесь мыслью, вопросом или опытом — всё прочитаем.

Ваш адрес email не будет опубликован. Комментарии проходят модерацию перед публикацией.