Галлюцинации нейросетей

Галлюцинации нейросетей (AI Hallucinations) — случаи, когда генеративная модель сообщает ошибочные или вымышленные сведения как достоверные. Ответ может выглядеть убедительно, даже если описывает несуществующие факты, источники или функции программного обеспечения.

Как проявляются галлюцинации ИИ

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

При работе с кодом галлюцинации LLM проявляются, например, так:

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

В других задачах возможны вымышленные научные статьи, неверные цитаты и ссылки на документы, которых не существует. Грамотная формулировка ответа не подтверждает его точность.

Почему нейросети выдумывают факты

Большие языковые модели (LLM) генерируют продолжение текста с учетом усвоенных закономерностей и предоставленного контекста. Они не обращаются к достоверной базе фактов при каждом утверждении и не проверяют автоматически все сказанное.

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

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

Как снизить вероятность галлюцинаций

Полностью исключить их нельзя, но риск можно уменьшить:

  1. Добавлять проверяемый контекст: фрагменты документации, точные версии библиотек, необходимые файлы проекта и примеры ожидаемого результата.
  2. Проверять существенные факты: сверять даты, цифры, цитаты и ссылки с первоисточниками, а не доверять уверенной подаче.
  3. Проверять сгенерированный код: запускать тесты, статический анализ и сборку, сверять вызовы API с документацией нужной версии.
  4. Разделять факты и предположения: просить модель отмечать неподтвержденные сведения и несуществующие в контексте данные.

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

Большая языковая модель (Large Language Model)

LLM (Large Language Model) — большая языковая модель, обученная на огромных объёмах данных, которая способна анализировать и генерировать текст, включая программный код, на основе переданного запроса и доступного контекста. LLM используются как основа многих современных чат-ботов, AI-помощников и инструментов для программирования.

Посмотреть термин

Генерация с дополненным поиском (Retrieval Augmented Generation)

RAG (Retrieval-Augmented Generation) — подход к генерации ответов языковой моделью с использованием информации из внешних источников. Найденные данные добавляются в контекст запроса, позволяя модели учитывать дополнительные сведения без переобучения.

Посмотреть термин

Контекст-инжиниринг (Context Engineering)

Контекст-инжиниринг (Context Engineering) — подход к проектированию и управлению информацией, доступной языковой модели при выполнении задачи. Его цель — предоставить модели релевантный контекст в нужный момент и не перегружать контекстное окно лишними данными.

Посмотреть термин
Галлюцинации нейросетей – что это такое и почему возникают