Я не провалил тест,
я просто нашел 100 способов
сделать его неправильно.
Бенджамин Франклин
Тестирование ИИ можно разделить на два направления по цели, с которой оно проводится. Во-первых, это проверка конкретной ИИ-системы на работоспособность. Во-вторых, это проверка ИИ на близость к AGI. Это принципиально разные цели, которые предполагают принципиально разные подходы к организации тестирования и подобру тестовых материалов.
Начнем с первого – тестирования работоспособности ИИ-систем.
Так как ИИ-системы – это в первую очередь программное обеспечение, для тестирования их работоспособности применяется опыт, накопленный за десятилетия цифровой эры, и традиционные виды тестирования.
Функциональное тестирование, в ходе которого проверяется, что ИИ-система ведёт себя в соответствии с требованиями и спецификациями. Как правило, оно проводится в несколько стадий. На первой проверяется заявленный функционал всех компонентов ИИ-системы по отдельности. На второй – их интеграция между собой. На третьей – работоспособность ИИ-системы как единого программного комплекса.
Тестирование производительности, в ходе которого проверяется, как ИИ-система справляется с плановыми, стрессовыми и пиковыми нагрузками. Плановые нагрузки – это обычный трафик запросов в соответствии со сценариями использования. Стрессовые нагрузки предполагают постепенное увеличение количества запросов до значений, когда ИИ-система перестает на них откликаться. Пиковые нагрузки – это проверка устойчивости ИИ-системы в случае резкого роста количества запросов.
Тестирование на безопасность – выявление уязвимостей, которые могут быть использованы злоумышленниками. Оно включает проверку проблем с аутентификацией, шифрованием данных, вредоносными инъекциями и другими уязвимостями.
Все это классика тестирования ПО, которая применяется при разработке любых ИИ-систем. Однако функциональное тестирование современных ИИ-систем, в основе которых лежат LLM, кардинально отличается от функционального тестирования традиционного ПО. Основная причина – недетерминированность результатов тестирования.
В традиционных приложениях один и тот же тестовый пример всегда должен давать один и тот же результат. ИИ-системы могут возвращать различные результаты в одинаковых тестовых примерах, и все результаты могут быть корректными. Поэтому в чистом виде традиционные подходы тестирования для ИИ-систем не работают и требуют существенной модернизации.
Перечислим три основные проблемы тестирования ИИ-систем.
... читайте сюжет в полной версии
