Когда ИИ помнит то, чего не было
Вы спрашиваете у GPT-4, когда умер Наполеон. Модель уверенно отвечает: "1823 год". Вы проверяете Википедию — 1821. Вы исправляете её. Она извиняется. Через три вопроса она снова называет 1823. Это не ошибка программиста. Это не недотренированная модель. Это фундаментальное свойство архитектуры, которое делает LLM тем, чем они являются.
Галлюцинации — это не баг, который можно пофиксить патчем. Это цена, которую мы платим за генеративные способности. Убрать галлюцинации полностью — значит превратить LLM в обычную поисковую систему.
Эффект Манделы: не только у людей
Помните историю про то, как Нельсон Мандела умер в тюрьме в 1980-х? Миллионы людей в этом уверены. На самом деле он вышел на свободу в 1990-м и умер в 2013-м. Коллективная память исказила факт.
LLM делают то же самое. Только вместо коллективной памяти — тренировочный корпус из петабайтов текста. Вместо нейронов мозга — матрицы весов трансформера. Механизм один: lossy-сжатие информации с последующей реконструкцией.
Архитектурная ловушка трансформеров
Почему это происходит на уровне архитектуры? Давайте разберем по косточкам.
1 Lossy-сжатие как основа обучения
LLM обучаются предсказывать следующий токен. Не запоминать факты. Не строить базу знаний. Предсказывать. Во время обучения модель сжимает триллионы токенов в матрицы весов размером в несколько гигабайт. Это как упаковать всю библиотеку Конгресса в чемодан — что-то обязательно потеряется.
# Упрощенная суть обучения LLM
for token in training_corpus:
predicted_token = model.predict_next_token(previous_tokens)
loss = calculate_loss(predicted_token, actual_token)
update_weights(loss) # Сжатие информации здесьМодель учится не фактам, а вероятностным распределениям. "Наполеон" часто ассоциируется с "Бонапарт", "Франция", "война", "182". Последние цифры года — это уже лотерея.
2 Генеративная память вместо точного recall
У LLM нет базы данных. Нет индекса. Нет поиска по ключевым словам. Есть только способность генерировать продолжение последовательности. Когда вы спрашиваете про дату смерти Наполеона, модель не ищет факт — она генерирует наиболее правдоподобный ответ на основе всех текстов, где встречались "Наполеон", "умер", "год".
| Тип памяти | Как работает | Аналог |
|---|---|---|
| Точная (компьютерная) | Хранит и возвращает байт в байт | Жесткий диск |
| Генеративная (LLM) | Воссоздает по паттернам | Человеческая память |
3 Attention не различает факт и вымысел
Механизм внимания в трансформерах взвешивает, какие токены важны для предсказания следующего. Но он не имеет понятия о "истинности". Для модели одинаково важны токены из научной статьи и из фанфика. Если в тренировочных данных чаще встречалось "Наполеон умер в 1823" (допустим, в тысячах плохих студенческих работ), эта ассоциация укрепится.
Что с этим делать? Практический подход
Бороться с архитектурой бесполезно. Нужно проектировать системы, которые учитывают эту природу.
- Никогда не доверяйте LLM фактам без проверки. Всегда перепроверяйте критическую информацию. LLM — генератор правдоподобного текста, не энциклопедия.
- Используйте RAG (Retrieval Augmented Generation). Давайте модели доступ к точным источникам перед генерацией ответа. Но помните — даже с RAG модель может проигнорировать документ и продолжить галлюцинировать. Об этой проблеме мы писали в статье "Когда LLM врёт о документах".
- Снижайте temperature. Параметр температуры контролирует случайность. При temperature=0 модель становится более детерминированной, но это не убирает системные галлюцинации — только снижает случайный шум.
- Просите указывать источники. Заставляйте модель цитировать конкретные фрагменты из предоставленных документов.
- Принимайте галлюцинации как фичу для креативных задач. Для генерации идей, написания художественных текстов, мозгового штурма — это преимущество.
Интересный парадокс: те же механизмы, которые вызывают галлюцинации, позволяют LLM решать задачи, недоступные человеку. Подробнее в материале "Забудьте про 'правильные промпты'".
Где это ломается сильнее всего
Некоторые типы запросов — магнит для галлюцинаций.
- Точные числовые данные. Даты, статистика, финансовые показатели. Модель помнит порядок величины, но не точное значение.
- Редкие или новые факты. Информация, которая мало представлена в тренировочных данных или появилась после cutoff date.
- Длинные цепочки фактов. "Перечислите всех премьер-министров Канады с 1950 по 2000 год". Модель начнет уверенно генерировать, смешивая реальных политиков с вымышленными.
- Специфические технические детали. Номера версий библиотек, точные сигнатуры функций, параметры API.
Будущее: архитектуры, которые помнят точно
Исследователи уже работают над гибридными подходами. Вместо того чтобы заставлять трансформеры запоминать факты, они разделяют две функции:
- Генерация — остается за трансформером
- Фактологическая память — выносится в внешние базы знаний с точным поиском
Такие системы, как самообновляющийся поисковик, пытаются решить проблему динамических знаний. Но даже они не избавят от галлюцинаций полностью — просто сдвинут проблему на уровень интеграции.
Попытки "исправить" галлюцинации через дополнительные слои или fine-tuning часто ломают другие способности модели. Это как пытаться сделать человека более точным в фактах, удалив ему креативность.
Вопросы, которые вы хотели задать
Почему галлюцинации возникают даже в простых, известных фактах?
Потому что "простой факт" для человека — это один конкретный датапойнт. Для LLM — это облако ассоциаций из миллионов документов. Если в тренировочных данных было много противоречивой информации (школьные сочинения с ошибками, форумы, художественная литература), модель усредняет все это. И выдает наиболее частотный вариант, который может быть ошибочным.
Будут ли новые архитектуры полностью избавляться от галлюцинаций?
Нет. Полное избавление потребует отказа от генеративной природы. Будущие архитектуры, вероятно, будут лучше разделять "знаю точно" и "предполагаю", но чисто генеративные модели останутся для творческих задач. Галлюцинации — это обратная сторона креативности.
Почему иногда модель исправляется, а потом снова ошибается?
Контекстное обучение в окне чата — это временная перестройка вероятностей. Как только контекст меняется, модель возвращается к своим "базовым" распределениям, выученным на тренировочных данных. Это не постоянное исправление, а временная коррекция. Подобная нестабильность — еще одно фундаментальное свойство, о котором мы писали в статье "Почему ваш ИИ ведет себя по-разному в разные дни?".
Меньше ли галлюцинируют модели с большим контекстом?
Не обязательно. Больший контекст дает больше возможностей для противоречий. Модель может "перегрузиться" информацией и начать смешивать факты из разных частей контекста. Иногда модели с меньшим контекстом более последовательны, потому что вынуждены полагаться на базовые знания.
Итог: учитесь жить с несовершенной памятью
LLM — это не всезнающие оракулы. Это системы с генеративной памятью, которые иногда путают реальность с вымыслом. Как и люди. Принимайте это как данность. Стройте системы проверок. Используйте RAG. И помните: когда в следующий раз LLM уверенно заявит, что Наполеон умер в 1823, это не глупость модели. Это отголосок тысяч текстов, которые она "прочитала" и сжала в своих весах. Эффект Манделы в чистом виде.
А если хотите глубже разобраться в том, как LLM игнорируют даже явно поставленные цели, читайте наш разбор архитектурного изъяна в статье "LLM понимают цель, но игнорируют её".