Сегодня хочу поговорить про регрессионное тестирование AI систем, потому что на практике я вижу, что большинство команд либо не делают его вообще, либо делают так же как для обычного ПО, и оба варианта приводят к проблемам.
В классическом тестировании регрессия работает просто. Есть функция, есть ожидаемый результат, есть тест, который проверяет что после изменений результат не изменился. Всё детерминировано, всё воспроизводимо.
В AI системах этого нет. LLM по своей природе стохастична, и один и тот же запрос при одних и тех же настройках может дать разные ответы. Это означает, что классический подход "запустил тест, сравнил вывод с эталоном" здесь просто так не работает.
Но это только первая сложность. Вторая, на мой взгляд, более серьезная. Даже если вы зафиксировали baseline метрики в момент запуска, что уже само по себе делают единицы, вам нужно решить что именно вы регрессируете, потому что AI система может полностью изменить формат, тон и структуру ответов после обновления промпта или смены модели, при этом формально отвечать правильно по всем метрикам, и только живой пользователь заметит, что что-то стало другим.
Третья сложность - это сами провайдеры моделей, которые обновляют их без уведомления. То есть ваша AI система может начать вести себя иначе в продакшене даже если вы не меняли ничего со своей стороны. Стандартный CI/CD пайплайн это не поймает, потому что он запускается только при изменениях в вашем коде.
Получается, что регрессионное тестирование AI систем требует принципиально другого подхода: не разовую проверку перед релизом, а непрерывный мониторинг поведения модели в продакшене с зафиксированными baseline метриками по каждому типу задач.
Как вы у себя решаете задачу регрессии для AI систем? Или пока это открытый вопрос? 👇
Полезная информация:
Курс по evaluation AI |
Мой фреймворк для оценки AI |
С чего начать изучение AI | Инструменты для оценки AI |
Инструменты для оценки AI (ч.2)
Post #147
606

- 👍 7
- ❤ 2
- 💯 2