Почему LLM галлюцинируют

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

Галлюцинации - это когда ИИ уверенно придумывает несуществующие факты или детали вместо того, чтобы честно сказать: я не знаю.

На днях у OpenAI вышла статья, которая популярно объясняет, откуда берется проблема, и как с ней пытаются бороться (все лучше, но все еще не слишком эффективно).

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

Допустим, языковой модели задают вопрос о чьём-то дне рождения, а она не знает ответ. Если она просто угадывает, например, 12 сентября, то шанс попасть в точку всего 1 из 365.

Так что, модели выгоднее гадать, чем признавать неосведомленность. Увеличение штрафов за неправильный ответ по сравнению с признанием неосведомленности решает проблему лишь частично.

Что в итоге?

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

Как я решаю проблему галлюцинаций, когда в задачах нужна фактура, а не полет фантазии: ◽️В первом/системном промпте указываю следующее: ▪️ничего не придумывай, ▪️если не знаешь ответ или нет такой информации, то отвечай «неизвестно».

◽️Прошу привести ссылки на источники сомнительных утверждений.

◽️Снижаю температуру до 0.3, когда есть возможность менять настройки.

◽️Вычитываю сама и фактчекую основные моменты.

◽️Прошу другую модель вычитать и проверить.

А как вы решаете проблему галлюцинаций? Какие фразы в промптах используете?