Источники галлюцинаций в LLM

Источники галлюцинаций в LLM

Artem Erokhin

С тем, что такое галлюцинации, какие бывают типы галлюцинаций и почему это плохо, мы разобрались. Давайте теперь перейдем к тому, откуда же получаются галлюцинаций, то есть, к причинам галлюцинирования LLM.

Но для начала вспомним, что процесс обучения и работы с LLM достаточно продолжительный и имеет немало шагов. А это приводит нас к следующей мысли: на каждом из этапов обучения и работы с LLM есть место для причин галлюцинаций.

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


Источники галлюцинаций.

Итак, галлюцинации могут быть привнесены:

1. Данными для обучения;

2. Процессом обучения (с его особенностями и недостатками);

3. Процессом инференса (опять же, с его особенностями и недостатками).

Теперь пройдемся по деталям.


Источники галлюцинаций при получении данных.

У нас изначально могут быть некорректные данные.

Все же, данные мы берем из интернета. А в интернете не вся информация правдива (вот это поворот ;)).

Наличие дубликатов в данных может смещать модель к запоминанию данных, а не генерализации.

Что, в свою очередь, может приводить к галлюцинациям, т.к. модель не "научилась", а "зазубрила".

Общественные предрассудки.

Опять же, контент в интернете отражает то, как люди думают и о чем они пишут. А это значит, что все возможные предрассудки будут в этих данных. Очевидно, это не очень хорошо (не только для некоторых социальных групп, но и в целом, ибо предрассудки бывают разные).

Ограниченность знаний.

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

Еще один возможный источник галлюцинаций - наличие "длинного хвоста" редких знаний (уже без привязки к предметной области), которые модель может по итогу увидеть, но не воспринять. Соответственно, при обращении к этим редким знаниям, мы будем получать бредовые ответы.


Источники галлюцинаций при обучении моделей.

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

Обучение у нас происходит на наборе токенов до, в попытке предсказать последующий токен. Но что, если это снижает восприятие связей в текстах? Есть исследования, которые говорят о том, что такой эффект присутствует. Если хотите почитать подробнее, смотрите статью по ссылке.

Архитектура self-attention имеет некоторые ограничения.

Хотя с этим постоянно работают (и постоянно выходят новые исследования), но, как и любой механизм, self-attention имеет недостатки. И эти недостатки приводят к сбоям внимания (например, при одновременном наличии "длинных" и "коротких" зависимостей в контексте). Подробнее можно почитать в этой статье.

Достаточно частый пример такого сбоя бывает, когда при достаточно длинном контексте, модель "теряет" его часть (например, середину).

Различия между обучением и инференсом.

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

Полагаю, что в какой-то степени это можно сравнить с distribution shift и проблемами, которые возникают из-за него. Если хотите узнать больше, можно посмотреть эту статью.

Несоответствие возможностей.

У моделей есть шаг fine-tuning'а на инструкциях. И, если мы покрываем возможные запросы пользователей лишь частично, то получим некорректное поведение модели. Конечно, это зависит от множества факторов, но всегда есть вероятность того, что модель не сможет генерализоваться настолько, чтобы понять очередной запрос пользователя, что приведет к неверному поведению модели.

Подхалимство.

Подход RLHF, который широко применяется при обучении LLM, имеет как плюсы, так и минусы. Одним из таких минусов является "желание" модели ответить пользователю таким образом, чтобы удовлетворить его запрос. Даже, если отвечать нечего, или модель не уверена в своей генерации. По сути, мы сами учим LLM такому "подхалимству" через процесс получения фидбека.

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


Источники галлюцинаций при инференсе моделей.

Случайность семплирования.

Это тот обоюдоострый меч, о который так легко можно порезаться. Чем больше мы выкручиваем "температуру" генерерации, тем менее вероятные токены будут в ней появляться. Это, конечно, сильно разнообразит ответ, но при этом, повысит шансы галлюцинаций модели.

Чрезмерная уверенность.

Это известная проблема, при которой ML (или DL) модель слишком уверена в своих предсказаниях. Соответственно, модель скорее посмотрит на предыдущие сгенерированные токены, но не на логику происходящего (что, в сущности, неудивительно). И это может привести к галлюцинациям (опять же, если модель "повело", то она может в этом упорствовать).

Softmax bottleneck.

Еще одна известная проблема, связанная с использованием softmax'а. Проблему можно разделить на две части.

Первая заключается в том, что softmax ограничивает выразительность вероятностных распределений на выходе. Получается своего рода "загрубление", которое может негативно отразиться на уровне галлюцинирования.

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

Например, если мы при генерации перепутаем зАмок и замОк, то это, конечно же, повлияет на результат генерации. Хотя, казалось бы, везде написано "замок".

Report Page