Что такое галлюцинации в AI, почему они возникают и как QA-инженеры проектируют тесты для их обнаружения.
«Галлюцинация» — один из самых обсуждаемых типов сбоев в AI-системах: модель заявляет что-то ложное, выдуманное или не подтверждённое исходным материалом, но подаёт это с той же уверенностью, что и правильный ответ. Для QA-инженера галлюцинации трудно поймать именно потому, что они не выглядят как баги — нет сообщения об ошибке, нет сбоя, есть просто неверный ответ, поданный убедительно.
В этой статье рассматриваются:
В контексте AI-тестирования галлюцинация — это любой вывод, поданный как факт, но не подтверждённый обучающими данными модели, предоставленными ей исходными документами или реальностью. Это отличается от честного «я не знаю» — галлюцинация уверенно неверна, а не честно неопределённа, и именно это делает её опасной в продакшне. Бот поддержки, придумывающий несуществующую политику возврата, или инструмент суммаризации документа, добавляющий деталь, которой не было в исходнике, — оба галлюцинируют, даже если ни один из них не выдал ошибку.
Языковые модели генерируют текст, предсказывая статистически наиболее вероятное следующее слово на основе паттернов из обучающих данных, — у них нет встроенного механизма проверки истинности утверждения перед тем, как его вывести. Несколько условий повышают вероятность галлюцинации:
Галлюцинации — не единый паттерн сбоя, и полезная тест-стратегия обычно различает несколько типов:
Понимание того, какой тип вы ищете, меняет дизайн теста: проверка контекстных галлюцинаций требует тестирования против известного исходного документа, а проверка выдуманных источников — верификации каждой цитаты, которую производит система.
Эффективное тестирование галлюцинаций обычно сочетает несколько техник:
Хороший набор тестов на галлюцинации строится на реальных паттернах использования, а не только на синтетических граничных случаях — анализ реальных запросов пользователей (или обращений в поддержку, если система уже в продакшне) обычно выявляет вопросы, наиболее вероятно провоцирующие галлюцинацию.
Поскольку галлюцинации — вопрос степени, а не единой проверки «прошёл/не прошёл», команды обычно отслеживают частоту галлюцинаций — процент протестированных ответов, содержащих хотя бы одно неподтверждённое утверждение, — а не фиксируют отдельные баги, как для традиционного дефекта. Отслеживание этого показателя во времени, с разбивкой по типу вопроса или тематической области, показывает команде, где модель наиболее слаба, и действительно ли исправление (изменение промпта, добавленные ограничения или переобученная модель) улучшило ситуацию или просто сместило проблему в другое место. Когда вы всё же фиксируете конкретную галлюцинацию как баг, указывайте точный запрос, полный ответ и, по возможности, исходный документ, на который ответ должен был опираться, — чтобы проблему можно было воспроизвести.
Тестирование галлюцинаций в чат-ботах
Retrieval-Augmented Factuality
Решение проблемы нестабильности LLM на маркетплейс-платформах