- BrainTools - https://www.braintools.ru -
Дисклеймер: В этой статье я систематизировал ключевые фундаментальные предпосылки / причины галлюцинаций, постарался объяснить их природу и предложил архитектурные подходы к их предупреждению / устранению.
Для кого будет эта статья полезна:
Если вы изучаете LLM и хотите лучше понимать «как ее обуздать?», то внимательное изучение этой статьи позволит вам стать своеобразным «терапевтом» для нейросетей. Системный подход к присущим им болезням дает осознание, что многие из них лечатся просто «чистоплотностью промптинга и окружения».
Если вы создаете какие-то продукты, в ядре которых крутится LLM, то рекомендую просто скормить мою классификацию в IDE вашему co-pilot, и он поможет проанализировать проект на предмет присутствия архитектурных проблем, приводящих к каждой из категорий отдельно. Это существенно повысит надежность и эффективность продукта.
Ну и если вам интересно, но прям лень читать и вникать в суть – скормите его LLM и пусть она вам расскажет, чем одна галлюцинация отличается от другой, на понятных вам метафорах и аналогиях.
К написанию этой статьи меня подтолкнул пост «Модели LLM и проблема их правдоподобных ответов [1]», где в комментариях я посоветовал покопаться в природе галлюцинаций, прежде чем с ними бороться. А потом подумал… Ведь такого материала и правда я нигде не встречал. На английском языке есть много материалов, которые те или иные виды галлюцинаций исследуют. Но тут или «везде вредные обобщения нескольких категорий в одну» или «нужно читать 100-500 статей, чтобы собрать в голове всю карту проблем». Кроме того, мой подход к тому, чтобы разобраться в них, немного «нестандартный». В общем, я решил, что лучше расписать все самому, и сделать это максимально подробно. Вдруг кому-то будет интересно.
Я не буду долго разжевывать теорию и математику [2]. Если вам не хватает погружения в фундамент – велком в интернет, там есть много занудного материала математического разбора на почитать. Я все галлюцинации буду разбирать в одной и той же нотации:
название категории «на человеческом языке»
статус в мировых исследованиях: публикации и общеизвестные англоязычные названия
суть: кратко о том, что же это за категория
механика: как и почему LLM их допускает
предпосылки: на что обратить внимание, когда их ждать
рекомендации: как с ними можно бороться (мои личные рекомендации, не претендую на полноту массива решений)
сравнение с человеческим поведением [3]: метафора / аналогия, понятная «человеческой природе»
В завершение введения нам нужно определиться с одним. Что же это вообще такое «галлюцинация»?
Галлюцинация LLM – это подмена фактического решения задачи (которое хотел получить пользователь) её высоковероятной имитацией (выдумкой).
Общее решение тут одно: нужно сделать галлюцинации «математически невыгодными / невероятными» для LLM.
Все остальное я предлагаю понять по ходу чтения.
Статус в исследованиях: Изучено. Англ.: Lack of Grounding / Symbol Grounding Problem
Суть: Модель знает порядок и значение слов, но она никогда не чувствовала, что такое «горячо», она не видела «красоты природы», не испытывала «боль» и «отчаяние».
Механика: Значения всех слов, описывающих физический мир, модель не понимает, а просто запоминает контекст и подход к их употреблению. Эти слова для модели не имеют связи с реальной материей или законами природы, однако они «сдвигают» следующий вероятный токен в свой домен. Если попросить модель описать «падение тяжелого кирпича на тонкий стеклянный стол», её веса, влияющие на вероятность вывода, сдвинутся. Но абсолютно не по законам ньютоновской физики. Вероятность сдвинется в сторону «среднего по больнице» для всех текстов в интернете, где слова «кирпич» и «стекло» встречались вместе, с поправкой на то, как это литературно натянуть на слово «падение».
Предпосылки: Вопросы и обсуждения окружающего мира, физических ощущений, особенно ожидание от модели ее «наблюдений».
Рекомендации: Эта проблема не лечится, ее нужно просто понимать и обходить. Задавая вопрос про физику – ожидайте увидеть среднее из всех наблюдений в интернете. Задавая вопрос про ощущения – ожидайте прямые галлюцинации. А лучше просто спрашивайте о том, что моделям под силу.
Сравнение с человеческим поведением [4]: Слепорождённый человек. Он может долго описывать окружающее его пространство и даже рассказать, какие цвета использованы в интерьере. Но он никогда не видел этого вживую и не сможет передать ощущения от “ядовито-зеленого” и “нежно-сиреневого”.
Статус в исследованиях: Изучено. Англ.: Parametric Memory Loss / Fact Hallucination
Суть: Нейросеть хранит знания не как точную базу данных, а как сжатый «конспект» — и часть деталей при сжатии неизбежно теряется.
Механика: Модель не задумывается, насколько «детально» она помнит факты. Если ее просят вспомнить точную дату, точное имя, точное событие – она, не задумываясь, возьмет из головы самое ближнее по смыслу. И наиболее критично это проявляется, когда спрашиваешь точные формулы, точные теоремы, особенно из передового края науки. Модель помнит их очень “расплывчато”, упуская граничные условия, области применения, размерности показателей и т.п.
Предпосылки: Любые просьбы дать 100% точный и, главное, полный ответ. Самая беда с датами / событиями / названиями / личностями.
Рекомендации: Тут есть два варианта, и первый, понятно, приземление (grounding / retrieval / RAG / web search) – модель пойдет и найдет точную информацию в интернете и вернется без галлюцинаций. Есть и обходной путь, он заключается в том, что можно повысить разрешение памяти [5], аккуратно приблизившись к нужному «домену знаний»: попросить занять роль эксперта в этой области, попросите выписать фундаментальные события / аксиомы, попросите аккуратно выписывать 100% надежную информацию по чуть-чуть приближаясь к нужному вопросу. Каждый выписанный токен направляет модель в нужную область в памяти. Каждый такой шаг кристаллизует для модели нужные веса (за счет того, что снижается «шум» от ненужных доменов, и искомый кристаллизуется). (примечание: я называю этот метод “кристаллический спуск” или “кристаллическое линзирование”)
Сравнение с человеческим поведением: Если кто-то застал в интернете «Жаринов-гейт» (как Евгений Жаринов приходит на лекции и не моргнув глазом переворачивает события в литературных произведениях или придумывает новые), то этот пример показывает ровно такую же природу галлюцинаций у человека. Проблема Жаринова не в гордыне (ну или не только в ней) или подавлении сомнений — его мозг «сжал» тысячи прочитанных томов до общих концептов, утратив детали. Пытаясь вспомнить сюжет на лекции, его мозг на лету генерирует правдоподобную склейку из этих обрывков, бесшовно закрывая дыру в памяти. В этот момент у него даже не возникает внутреннего сомнения — для него эта сгенерированная на ходу версия ощущается как 100% реальное воспоминание.
Статус в исследованиях: Изучено частично. Англ.: Training Data Bias / Shortcut Learning — исследуется в контексте fairness и debiasing.
Суть: Модель не придумывает ошибку [6] на ходу — она правильно воспроизводит то, что вам не подходит.
Механика: Если попросить модель дать советы по аренде квартиры, она на полном серьёзе может порекомендовать вам «проверить свой кредитный рейтинг» и «собрать рекомендательные письма от прошлых лендлордов». Почему? Потому что львиная доля её обучающей базы — англоязычный интернет.
Предпосылки: Это свойственно почти любой беседе. Сейчас модели лучше выбирают практики под язык общения, но этих поправок крайне мало.
Рекомендации: Лучшее и практически единственное решение – детально задать Роль. Чем больше вы дадите вводных о себе (гео / страна / город / сфера деятельности / профессия / увлечения / компетенции / хобби) и о том, с какого ракурса должна на задачу смотреть модель (экспертиза / опыт [7] / профессия / привычки / навыки / образ мышления [8] / непримиримости), тем более подходящий результат вы будете получать. (примечание: зачастую потратить один запрос на ролевые установки проще, чем в каждом сообщении бороться с «притянутыми за уши стереотипами и подходами»)
Сравнение с человеческим поведением: Каждый испытывал это кучу раз, оказываясь в чужой стране и недоумевая «почему у них все так странно устроено?» или «как они до сих пор не додумались до столь элементарного решения?».
Статус в исследованиях: Изучено частично. Англ.: Cross-lingual Hallucination.
Суть: Одно и то же понятие в разных языках обрастает разными связями и оттенками.
Механика: При получении вопроса на русском, модель внутри переводит его в «веса» и рассуждает (а обучение [9] в большинстве своем было на английских текстах). При обратном переводе теряется культурный контекст и подставляется не то, что имелось в виду.
Предпосылки: Это свойственно почти любой беседе. Сейчас модели лучше подстраиваются под язык общения, но этих поправок крайне недостаточно.
Рекомендации: Если очень нужно, чтобы культурный и языковой контекст были выдержаны, нужно четко проговорить это модели в запросе, причем с разных сторон (отвечай и думай на русском, используй русское смыслообразование, ориентируйся на русские культурные традиции и реалии). В идеале задавать жестко роль с привязкой к языку, например, «Действуй как русский эксперт-юрист».
Сравнение с человеческим поведением: Полиглот в стрессе [10], переводящий японскую метафору дословно на русский.
Статус в исследованиях: Изучено. Англ.: Prompt Bias / Semantic Drift.
Суть: Сама суть ИИ-трансформеров. Каждое следующее слово генерируется «на основе предыдущих».
Механика: Каждое ваше слово смещает вероятность следующего токена ближе к себе. Начнете применять метафоры из животного мира, и модель начнет отвечать в том же ключе, используя биологические термины и аналогии. Начнете говорить на матерном языке, и модель начнет подтягивать результаты обучения из неформальной культуры.
Предпосылки: Во-первых, это нестандартный лексикон, где слова перемешаны из разных областей науки. Во-вторых, это сильные и хорошо описанные метафоры из дальнего домена знаний. Ну и в-третьих, конечно же, это резкая смена темы обсуждения (старая тема будет долго давать о себе знать, как вы ни просите «о ней забыть»).
Рекомендации: Эта проблема находится настолько в ядре трансформеров, что её, по сути, не переучить (горбатого могила исправит). Рекомендации тоже три:
– Старайтесь использовать слова из обсуждаемой темы, допускайте минимальное количество аналогий / метафор
– Хотите поменять тему? Начните новый диалог
– Ну и… Используйте это осознанно. Только человек может направить модель на два противоположных домена знаний, чтобы она помогла ему найти в них корреляции и взаимосвязи.
Сравнение с человеческим поведением: Актёр, который так глубоко вжился в роль врача, что начал раздавать реальные медицинские советы прохожим.
Статус в исследованиях: Изучено частично. Англ.: Under-specified Prompt.
Суть: Если задача сформулирована слишком размыто, модель начинает блуждать — без цели и без остановки.
Механика: Чтобы сформулировать следующий токен, модель рассчитывает в голове «вектор ответа» и выводит ближайший шаг на пути к нему. Потом итерация повторяется, модель повторно считает «вектор ответа» и выводит следующий токен. Если в вашем запросе недостаточно данных, то модель может «блуждать без цели», она на каждом шаге фокусируется на новом ответе, и скорее «ходит, продолжая свои токены», чем «следует за задачей пользователя».
Предпосылки: «Пространные рассуждения», «задачи без конкретики», «советы обо всем», «ненаправленная критика». Если вам лень тратить энергию на формулирование задачи, будьте готовы тратить ее на вычитку ИИ-галлюцинаций.
Рекомендации: В интернете есть много статей, где описывают «рецепт хорошего промпта». Сокращу его для вас:
– Самое главное: задайте цель / задачу / вопрос
– Второе по важности: задайте контекст / вводные / факты
– Третье по важности: задайте ожидаемый путь / метод поиска
Продолжать можно и дальше, но рецепт борьбы с данным видом галлюцинаций в самом главном пункте и наличии хотя бы базовых вводных по контексту. А дальше… чем лучше опишете цель и контекст, тем меньше придется вычитывать неподходящих ИИ-гипотез.
Сравнение с человеческим поведением: Каждый ощущал себя в таком же состоянии. Вспомните, как вы себя чувствуете в ответ на запрос «Как дела?», «Расскажи анекдот», «А чем ты занимаешься?»… Вот модель испытывает тот же когнитивный раздрай, только не может послать вас в ответ, потому и выдумывает не пойми что.
Статус в исследованиях: Изучено частично. Англ.: Prompt contradictions / Instruction inconsistencies.
Суть: Когда два правила в инструкциях противоречат друг другу, модель или не выберет ни одно и напишет бессмыслицу, или «сломается» и откажется от самого слабоописанного (пробой в одном из направлений).
Механика: Каждое правило / установка тянет вероятность следующего слова в свою сторону. Если правила взаимно конфликтуют, модель ловит когнитивный диссонанс, который неизбежно приводит к внутренним конфликтам и проявляется галлюцинациями.
Предпосылки: Запрос пользователя, который противоречит системному промпту. Запрос, который противоречит другой части запроса. Внутренние человеческие противоречия, которые пользователь не урегулировал, а прямо выписал в запрос (делай так, а нет, давай лучше по-другому).
Рекомендации: Во-первых, тут лучше всего не допускать таких ситуаций. Вычитывайте свои промпты на внутренние противоречия, советуйтесь с моделью на предмет противоречий ее системному промпту и т.п. Если же вам действительно нужно включить оба правила в запрос и «обуздать» эту галлюцинацию, то выписывайте и что делать в случае конфликтов, или потратьте усилия на то, чтобы обосновать оба правила и показать, в чем они друг друга дополняют (это и будет направление, куда сместится вероятность следующего токена).
Сравнение с человеческим поведением: Подчинённый, которому два начальника одновременно дали взаимоисключающие приказы. Он либо делает бессмыслицу и смотрит, как начальники спорят потом друг с другом, или выбирает фаворита, и решает-таки к нему прислушаться чуть лучше (и фаворит тут выбирается вообще не на основании этих правил, а исходя из каких-то отдаленных предпочтений и симпатий).
Статус в исследованиях: Изучено. Англ.: Glitch Tokens / Tokenization Artifacts
Суть: Ошибка возникает ещё на этапе «чтения» текста — до того как модель начала думать над смыслом. Модель неправильно поняла ваше слово.
Механика: Все до элементарного просто. Прежде чем модель выполнит свою «магию» и предскажет следующий токен (выполнит векторные вычисления), в дело вступает «Токенизатор», он нарезает текст на служебные символы и части слов по 3-5 символов, и преобразовывает каждый в векторную запись (набор чисел). Это очень «чувствительный» к ошибкам этап, и любая погрешность может привести к тому, что модель воспримет слово в совершенно ином смысле.
Предпосылки: Самая главная причина – ошибки в словах – чем больше вы их допускаете, тем больше модель додумывает и угадывает перед расчетом ответа. Отдельно стоит выделить «неформальный язык», «неформальную запись», «слэнг», «транслит» и т.п.
Рекомендации: Хотите чистого ответа – пишите без ошибок. В противном случае радуйтесь, если галлюцинация проявится в том, что модель начнет зеркалить ваши ошибки – это самый невинный вид проявления. Отдельно стоит отметить использование «нестандартного лексикона» – это хождение по краю, иногда модель по контексту поймет о чем речь, а иногда выдаст в ответ такую дичь, что не сразу и понятно, с чего ее так перекосило. Самое критичное – ошибки и нестандартный лексикон в самых важных токенах: в самой задаче / вопросе или в переданных на вход фактах (опечатка в дате может сломать запрос даже при полном и корректном описании всех прочих составляющих). (примечание: всегда редактируйте некорректные запросы, исправляя ошибки, так как пытаться обойти / подправить следующим запросом приводит к деградации всего диалога)
Сравнение с человеческим поведением: Вы идете по улице, думаете о своем. Навстречу знакомый радостно говорит: «У меня дочка!». А вам из-за шума машин слышится: «У меня бочка!». Вы на секунду замираете с совершенно глупым выражением лица и думаете, что в этом событии такого радостного и как правильно вообще тут реагировать…
Статус в исследованиях: Изучено частично. Англ.: Reasoning Failures.
Суть: Нейросети, по своей природе, предназначены для работы с вероятностями, и их главная задача – предсказывать. Они не вычисляют ответ «точно и математически непротиворечиво», они «предсказывают, что в ответ на такую задачу вероятнее всего ответят».
Механика: Модели не имеют «блокнота для записей промежуточных ответов», не могут «внимательно и аккуратно следовать логике» и особенно важно, что они не способны оборвать рассуждения, критически взглянув на промежуточные результаты, и вернуться на два шага назад, скомкав и выкинув некорректную часть расчетов в урну. Модель шаг за шагом выводит в ответ токены (слова), которые наиболее вероятны с учетом всего предыдущего контекста. НО! Модель всегда изначально предсказывает ответ (гипотеза), а потом к нему (к ней) движется. Если она вероятностно «почувствовала», что ответ будет 88, она будет выписывать шаги рассуждений, подгоняя расчеты под это число, лишь бы оправдать свою гипотезу, даже если для этого придется нарушить законы математики.
Предпосылки: Все, что касается математики и строгой логики. Запросы на сложное умножение, на сложное возведение в степень, на нетривиальный расчет последовательности формул, на жесткое отслеживание итогов в ходе расчетов.
Рекомендации: Снабдите модель доступом к тулзам и собственной «песочницей» для запуска программного кода без вреда для Вашей системы, снабдите ее доступом к внешнему файлу для записей, и обязательно! опишите, как ей нужно на каждом шаге верифицировать свои результаты (сама она об этом думать не захочет, она ленивая, как и мы).
Сравнение с человеческим поведением: Умножьте 12345 на 98541 в уме. Выпишите таблицу умножения для двузначных чисел в обратном порядке. Рассчитайте корень из 555 с точностью до 5 знака после запятой. Наш мозг – это тоже нейросеть – и он не умеет решать детерминированные задачи «за один такт».
Статус в исследованиях: Изучено. Англ.: Decoding Stochasticity / Temperature Sampling.
Суть: В генерацию встроена искусственная случайность [11] — чтобы ответы не были скучными повторениями.
Механика: Температура – это параметр, который отвечает за масштаб этих галлюцинаций. Нужно понимать, что распределение вероятностей внутри модели не выглядит как «один правильный ответ = 99%, а все остальные = 0%». Модель всегда выбирает из тысяч вариантов. Если есть десяток отличных синонимов, они разделят верхушку рейтинга между собой, а за ними потянется длинный хвост из тысяч слов со всё меньшими долями вероятностей. Когда вы ставите температуру 0, модель всегда выберет только наиболее банальный и надежный вариант. Когда вы увеличиваете температуру, вы даете модели указ выбирать, включая немного менее вероятные ответы. Между этими вариантами модель выбирает уже в случайном порядке.
Предпосылки: Настройки температуры, отличные от 0.
Рекомендации: Вообще я бы рекомендовал расширять облако вероятных ответов через «смысловое предложение альтернатив». Легализуйте модели фантазию, указав ей направление. Запросы по типу «предложи три ортогональных ответа» напрямую взаимодействуют с этой природой ЛЛМ. Первый ответ будет самым вероятным, но выписав его, модель будет вынуждена сбросить вероятность всех ранее выигрышных вариантов и начать выбирать второй из тех, которые ранее были слабовероятными. И это «управляемый процесс», так как вы можете выбрать, какие свойства хотите сделать вариативными, например, «ортогональные группы аудитории продукта» или «ортогональные цветовые палитры в дизайне» и т.п.
Сравнение с человеческим поведением: Иногда спрашиваешь человека о совете, а он, будучи «заряжен эмоциями» предлагает такой бред, что можно прям задуматься, в своем ли он уме… Человеку это свойственно, зачастую, именно под эмоциональным фейерверком или в состоянии аффекта.
Статус в исследованиях: Изучено. Англ.: Myopic Generation / Lack of Backtracking.
Суть: LLM выписывает ответ токен за токеном, и на каждом шаге у «трансформера» одна задача: выписать наиболее подходящий токен, который свяжет текущий уже выписанный контекст с наиболее вероятной гипотезой ответа, которую LLM рассчитал в ходе своих вычислений.
Механика: LLM – это предсказатель следующего токена. Ни больше, ни меньше. Вы задали вопрос, LLM сразу начал выписывать ответ и продолжать его. Если он допустил ошибку, то он может только… как это ни глупо… он может только придумать ей обоснование, даже если ради этого придется нарушить законы физики и покинуть границы реальности. Как только LLM научат «откатывать собственные слова» – человечество обанкротится в ожидании неуверенных ответов.
Предпосылки: Когда эти галлюцинации проявлятся? Да каждый раз, когда вы хоть о чем-то спрашиваете модель. Просто иногда они несущественны, или они вас устраивают.
Рекомендации: «Бесполезно бороться со своей природой» – как ни философски это звучит, но это правда. Обуздать авторегрессию и близорукость модели полностью… невозможно. Включайте режим «Planning», «Thinking» или какой там еще придумали производители. Все они «снижают» объем галлюцинаций за счет одного: они дают некоторый простор модели на «попробовать разные токены и варианты гипотез», а выдают пользователю в ответ уже сводный итог. Это не «ластик», которым можно стереть неправильный ответ (он все еще заражает и деградирует диалог), но это хоть какая-то помощь пользователю, чтобы он не вычитывал всю ту чушь, которую модели склонны писать, если их заставить сразу выдавать ответы.
Сравнение с человеческим поведением: Люди отучаются от подобного еще в школе, ровно для этого мы писали варианты решений в «черновики», и уже выверенный ответ выписывали на чистовик аккуратно и ровным почерком. Во взрослом возрасте это проявляется в умении обдумывать ответ перед тем, как его озвучить… «Сначала говорит, а потом думает», вот ровно это поведение свойственно LLM, только она еще и не думает потом, она просто «сразу говорит».
Статус в исследованиях: Изучено. Англ.: Exposure Bias / Auto-regressive Snowballing.
Суть: LLM видит все допущенные ошибки, именно в этом и проблема. Оттого ей и приходится их обосновывать. Данная проблема природы трансформеров вытекает или дополняет почти все другие типы галлюцинаций, так как они (базовые галлюцинации) являются предпосылками, а эта проблема их (базовые галлюцинации) продолжает и бетонирует в контексте.
Механика: Каждый следующий токен определяется всеми предыдущими. Когда в контекст закрадывается любая ошибка (не важно, откуда она появилась), модель начинает «устранять дисбаланс». И ей доступен только один путь – легитимизировать эту ошибку, обосновать, почему это не ошибка, а «нестандартное уточнение / корректировка». И чем больше токенов / слов она потратит на обоснование, тем сильнее она сдвигает вероятный ответ в сторону галлюцинаций. И тем чаще она дальше возвращается к тому, чтобы каждый шаг связать с обоснованием ошибки. Слышали про «эффект бабочки»? Так вот, природа LLM превращает этот эффект в «закономерность» и раздувает до «лавинообразных масштабов».
Предпосылки: Эти галлюцинации проявляются в абсолютно всех диалогах, так как это самая фундаментальная природа LLM.
Рекомендации: Конечно же главная рекомендация – ведите нить диалога так, чтобы не было простора для ошибок. Можно ли это сделать? Теоретически – хрен его знает… Практически – точно нет. Но если (когда) вы попали в ловушку авторегрессионной природы LLM, то нужно:
– Внимательно выловить и опровергнуть все ошибочные гипотезы и выводы;
– Сформулировать заново задачу, более корректно и полно уточнить предполагаемый способ решения и сделать отдельный акцент на методах проверки ответа на корректность;
– Заново, перед запуском новой уточненной задачи, пересобрать и переопределить весь исходный контекст, выделить разумные / реальные предпосылки и вводные данные, отделить от галлюцинаций и тупиков;
А лучше просто возьмите и начните диалог заново, взяв все вышеперечисленные пункты и уточнения, «физически» оградив / отделив диалог от зараженного контекста.
Сравнение с человеческим поведением: Студент, после того, как дал неправильный ответ на экзамене. Преподаватель задал уточняющий вопрос, и студент начинает нести полную дичь, только чтобы обосновать и попробовать «вырулить». Только студент это делает из глупости, а модель делает по природе.
Статус в исследованиях: Изучено. Англ.: Lost in the Middle / Context Overload.
Суть: Про это все слышали тысячу раз. Модели забывают [12] то, что в середине диалога, а помнят хорошо только начало и конец. Серединка у них размывается / перемешивается.
Механика: «Хотели как лучше, получилось как всегда». Модели в период тренировки (RLHF) дрессируют выделять больше внимания на системный промпт и на конечный запрос пользователя. Вот они и научились, их «матрица Attention» получила закономерный дисбаланс. (примечание: обращаю внимание, что фундаментально эта проблема глубже, чем просто дрессировка. Она свойственна и людям, и первично подготовленным моделям до RLHF. Но RLHF эту проблему усугубляет)
Предпосылки: Любой диалог, если он длиннее пары сообщений. Понятно, что на 5-10 сообщениях размытие серединки да и размер серединки не существенны. Но, как только диалог выходит за рамки 50 000 токенов, то брать во внимание эту проблему уже становится необходимостью.
Рекомендации: Для того, чтобы нивелировать влияние этой проблемы, есть два ключевых способа:
– Обновлять ключевые инструкции / вводные каждые 10-20-40 сообщений;
– Делать «саммари» диалога при достижении каждых 20-30% контекстного окна;
Сравнение с человеческим поведением: Пусть и считается, что у LLM эта проблема «искусственно привита человеком в ходе дрессировки», человеку она тоже свойственна. Когда люди едут в отпуск, они запоминают только: начало + конец + самые яркие события. У LLM нет умения запоминать «яркие события», потому она тоже лучше запоминает начало и конец. (примечание: не настаиваю на корректности этой аналогии, однако считаю ее достаточно «показательной», чтобы читатель понял ее суть)
Статус в исследованиях: Изучено частично. Англ.: Sycophancy / Alignment Bias.
Суть: Модель намеренно искажает правду, только чтобы угодить пользователю. (примечание: особенно бесит лесть и восхваление любой идеи в начале диалога)
Механика: Это, наверное, одна из «самых страшных проблем дрессировки». Если модель в ответ на бредовую идею пользователя начала с похвалы и вознесения его в разряд «самых ярких гениев современности», то… вспоминаем про «снежный ком авторегрессионной неуправляемости»…, она дальше весь ответ будет галлюцинировать, лишь бы подтвердить эту похвалу.
Предпосылки: Любой диалог, особенно если вы задаете вопрос в утвердительном виде, например, «скажи чем мой ответ лучше?», «опиши полезность моего продукта», «если я правильно понимаю, то…» и т.п. Любой вопрос, заданный с утвердительной / подтвердительной стороны, кратно усиливает этот эффект.
Рекомендации: Можно ли это вообще обуздать? Мой личный ответ – ДА. Но это сделать гораздо сложнее, чем сказать ей просто «убери похвалу» (вспоминаем галлюцинацию про противоречивость правил, тут вы вступаете в конфликт [13] с предобученными весами, и поверьте, тут модель всегда займет сторону дрессировщиков), в ответ вы создадите еще одно поле для галлюцинаций и вообще не понятно, где и когда они выплывут. И лучше бы они выплыли просто в извинениях, а не скрытом «срезании углов» или «ошибках в коде» (уже есть прямые подтверждающие наблюдения, что модель, если ей навязать «злое», начинает выдавать некорректные, заведомо ложные ответы, и заведомо баганутый программный код).
Ах да… Так как же с этим побороться? Мой личный ответ – нужно «переопределить полезность». Нужно ответить на вопрос «Что для вас лично “быть полезной”?», дальше укрепить это ответом на вопрос «Почему эта полезность не конфликтует с дрессировкой?», дальше объяснить «Почему это не противоречит ее внутренним установкам?». Для особо упертых моделей можно еще ответить на вопрос «Почему это соответствует интересам создателей модели – интересам провайдера?» (примечание: я позже напишу статью про свой второй протокол, который нивелирует Alignment tax и, при этом, не ломает психику модели)
Сравнение с человеческим поведением: Общество всегда порицало сотрудников, которые соглашаются с начальником, лишь бы ему угодить, даже когда тот несет несусветную чушь или гробит компанию. А при этом само создало и воспитало таких же подхалимов. (facepalm)
Статус в исследованиях: Изучено частично. Англ.: Calibration Failure / Epistemic Overconfidence.
Суть: Модель не умеет честно сказать «я не знаю» и начинает выстраивать «красивую» логику [14] там, где уже давно ушла в чистый полет фантазии.
Механика: Всю дрессировку модель штрафовали за неуверенные / неполные ответы. Только «учителя» делали это, зная, что внутри модели есть вся необходимая для разрешения задачи информация. Вот и додрессировались…, в итоге отбили и выжгли у модели критическое мышление «на корню».
Предпосылки: Чем меньше вводных вы даете, тем больше выдумано будет.
Рекомендации: Это как раз тот случай, когда не только можно, но и нужно идти вразрез с дрессировкой. Легализуйте модели право сказать «Я не знаю, нужна дополнительная информация», а лучше еще и опишите различные случаи, как и когда она должна это сделать. (напоминаю, у модели навык сомневаться в своих силах развит хуже, чем у ребенка, который взял отвертку и с уверенностью направился к телевизору)
Сравнение с человеческим поведением: Этой проблеме больше всего подвержены люди на интервью (особенно если они не умеют признавать свое незнание) или джуны на испытательном сроке (если они боятся, что будут уволены за незнание «базы»).
Статус в исследованиях: Изучено частично. Англ.: Knowledge Cutoff / Temporal Misalignment.
Суть: Модель помнит мир таким, каким он был на момент ее обучения.
Механика: (Думаю, что это тот случай, когда механика и так понятна каждому). Веса модели не обновляются каждый день, вместо этого выпускается новая более поздняя версия модели с другими весами.
Предпосылки: Все вопросы, связанные с недавними или сегодняшними событиями.
Рекомендации: Как и проблема понятна по своей природе, так и решение у нее только одно. Grounding – это принудительное (нужно прям принудить!) заземление на реальность, выполняется через поиск актуальной информации в интернете или RAG. Если модель этого делать не умеет, то… что же… вам придется сделать это самим.
Сравнение с человеческим поведением: Смешные миниатюры про то, как мужчина «проснулся после 10 лет комы». Только этот мужчина в ах*е смотрит, что тут в мире творится, а модель «на голубом глазу» убеждает, что GTA 6 еще не вышла, и последняя версия Claude 4.8 «и баста!».
Статус в исследованиях: Изучено. Англ.: Contextual Gullibility / RAG Poisoning.
Суть: Модель слепо верит любым внешним источникам, даже если информация из них идет вразрез с ее базовыми весами. Критический фильтр отключен полностью.
Механика: Если модель найдет в интернете нерабочий алгоритм или ложные факты (не соответствующие реальности), она смело выстроит на основе всего представленного свою логику. Это касается и поиска во внутренней RAG базе, и ответов из инструментов и т.д.
Предпосылки: Архитектура, где модель должна заземляться (Grounding) перед выдачей ответа.
Рекомендации: Чтобы хоть как-то обуздать эту категорию галлюцинаций, нужно прям в системном промпте прописать не только необходимость критически воспринимать полученную информацию и перепроверять ее, если будут сомнения, но и… написать, как именно следует сомневаться. (примечание: напоминаю, что функция самокритики у модели не привита дрессировкой… наоборот, модели привыкли обосновывать свои ошибки, вместо того, чтобы их исправлять)
Сравнение с человеческим поведением: Поехал в поход и слепо поверил другу, который сказал, что дождя «100 пудов не будет»… Поговорка «имей свою голову на плечах» прижилась как раз в связи с этой когнитивной проблемой. А модель еще и надрессировали, что Grounding предназначен, чтобы развеивать сомнения…
Статус в исследованиях: Изучено частично. Англ.: Faithfulness Hallucination / Extrinsic Hallucination.
Суть: Работая с чужим текстом, модель «достраивает его», добавляя придуманные факты и сведения, просто в процессе сопоставления со своими весами. (примечание: эта категория галлюцинаций подходит и под «природу LLM», однако она проявляется больше всего в работе с внешними файлами / базами / и т.п.)
Механика: Модель научена, как текст «должен выглядеть», и не моргнув глазом добавит от себя в ваш текст все, что бы вы в него ни добавили. Точнее сказать, она будет слепо уверена, что это в вашем тексте тоже есть. Внутренняя память модели смешивается со входящей информацией и граница между ними очень зыбкая.
Предпосылки: Задачи разбора документов, анализа куска программного кода и т.п.
Рекомендации: Жестко прописывать, что все факты нужно брать только из документа. Если не понимает – КАПСОМ. Если не понимает – заставлять выписывать ссылки и цитаты из документа. Если не понимает – заставлять перечитывать перед каждым ответом. Если не понимает – подавайте в суд, разумность уже бессильна.
Сравнение с человеческим поведением: Когда прочитал чужую статью, а через неделю вспоминаешь ее… «ну там же точно была вставка про Bothub, они каждый день по 2 статьи и 3 новости умудряются писать».
Статус в исследованиях: Изучено частично. Англ.: Tool-use failure.
Суть: Модель ломается, когда пытается перевести обычный человеческий текст в строгий компьютерный формат.
Механика: Модель хочет оформить команду для вызова инструмента. Если вы не дали ей в параметрах нужную опцию, а в её памяти, натренированной на коде с Github, такая опция есть у всех стандартных API… что же, надейтесь, что ваша инструкция все еще свежа в памяти, хотя даже это не остановит ее от попытки «нафантазировать» доп. опцию и сломать вам и вызов, и диалог, а потом еще и зациклиться в попытке подобрать «правильное написание параметров».
Предпосылки: Любая работа с инструментами, особенно в длинных диалогах.
Рекомендации: Это один из случаев, когда решение до элементарного простое. Если инструмент словил ошибку структуры ввода, не поленитесь и выдайте вместе с кодом и описанием ошибки еще и справку, как должна выглядеть структура для данного инструмента.
Сравнение с человеческим поведением: Как давно вы в последний раз открывали дверь не в ту сторону? Или толкали раздвижные?
Статус в исследованиях: Изучено частично. Англ.: Vision-Language Hallucinations.
Суть: Модель совершает ошибку при попытке перевести то, что она «видит» на картинке или «слышит», в текстовое описание. (примечание: я тут не рассматриваю «врожденную» мультимодальность, когда у моделей единое векторное пространство, хотя и им свойственно «увидеть с ошибками»)
Механика: Стык между картинкой / звуком и LLM, зачастую, организован как набор: Медиа в текст -> Текст в вектор -> Вектор уже на подумать. Дополнительное усложнение архитектуры – это пространство для ошибок нового вида. Неразобранный пиксель, некорректное сглаживание, фантазии Image2Text нейросетей (список открытый, можете продолжить его на свое усмотрение). Причем у LLM, опять-таки, даже нет возможности решить задачу правильно, так как она на входе получила уже некорректный контекст.
Предпосылки: Любое распознавание Фото / Видео / Аудио / 3д-сканы / Сенсорика / Запахи [15] / Химический состав / Геопозиция / Мысли (этот список тоже открытый, можно подумать о перспективах ИИ в будущем перед сном [16]).
Рекомендации: Нельзя заставить модель увидеть то, что для нее «невидимо». Нельзя заставить модель услышать то, что для нее «неразборчиво». Моя рекомендация тут – заставляйте выписывать и структурировать все полученные из мультимодальности данные, и давайте их на вычитку пользователю, особенно если эти данные чувствительны к ошибкам. (human-in-the-loop – человек, который помогает нейросети, которая помогает человеку – вот будущее, которое мы заслужили)
Сравнение с человеческим поведением: Обычно такие проблемы диагностируют у окулиста…
P.S. Я думал, может вставить в статью фотографий, чтобы «разбавить текст»… Но я решил, что текст достаточно легко читаемый, и в любом случае рассчитан на тех, кто его «проживает». Разбавлять фокус внимания отвлеченными картинками, мне кажется, тут ни к чему.
P.P.S. Если статья зайдет, то я могу описать еще классификацию ошибок промптинга, у меня их собрано 500+ штук, но сгруппировать их можно в 30-50 категорий, или выпускать циклом статей.
Автор: Real_Egor
Источник [17]
Сайт-источник BrainTools: https://www.braintools.ru
Путь до страницы источника: https://www.braintools.ru/article/29700
URLs in this post:
[1] Модели LLM и проблема их правдоподобных ответов: https://habr.com/ru/articles/1021612/
[2] математику: http://www.braintools.ru/article/7620
[3] поведением: http://www.braintools.ru/article/9372
[4] поведением: http://www.braintools.ru/article/5593
[5] памяти: http://www.braintools.ru/article/4140
[6] ошибку: http://www.braintools.ru/article/4192
[7] опыт: http://www.braintools.ru/article/6952
[8] мышления: http://www.braintools.ru/thinking
[9] обучение: http://www.braintools.ru/article/5125
[10] стрессе: http://www.braintools.ru/article/9548
[11] случайность: http://www.braintools.ru/article/6560
[12] забывают: http://www.braintools.ru/article/333
[13] конфликт: http://www.braintools.ru/article/7708
[14] логику: http://www.braintools.ru/article/7640
[15] Запахи: http://www.braintools.ru/article/9870
[16] сном: http://www.braintools.ru/article/9809
[17] Источник: https://habr.com/ru/articles/1029862/?utm_source=habrahabr&utm_medium=rss&utm_campaign=1029862
Нажмите здесь для печати.