Представьте, что вы общаетесь с гениальным профессором, который знает миллионы фактов о мире. Но в любой момент вместо фактов он может выдать полную выдумку, причём сделает это очень убедительно.
Точно так же поступает искусственный интеллект, в частности, нейросети, — языковые модели вроде ChatGPT, Gemini, GigaChat. Это называется «галлюцинация», и от них страдают вообще все виды ИИ.
Поговорим, что с этим делать обычному пользователю.
КРАТКО◦ Как разработчики борются с галлюцинациями языковых моделей
◦ Как пользователь может сам управлять галлюцинациями при работе с языковыми моделями
◦ Как задать модели роль
◦ Как давать нейросети прямые запреты
◦ Как подключить проверку фактов через интернет-поиск
◦ Как ограничить используемые источники
◦ Как заставить модель мыслить и действовать пошагово
◦ Зачем постоянно самостоятельно проверять ответы нейросети
◦ А что, если припугнуть нейросеть
1. Что такое галлюцинации в языковых моделях и почему их важно снижать

Если бы мы говорили о языковой модели, как о человеке, то по поводу её ошибок выразились бы так:
Способность нейросети изобретать, предугадывать и уверенно придумывать информацию — это не ошибка, которую необходимо исправлять. Это основная характеристика её творческой натуры.
Да, такая способность языковых моделей полезна для творчества, развлечений и иногда для бизнеса. Ведь с помощью нейросетей теперь можно сочинять стихи и песни, писать сценарии и книги, заниматься неймингом и генерировать идеи для стартапов. Или можно просто болтать с ИИ-помощником, как с другом.
Но ведь люди используют языковые модели не только для творческих задач. Также они применяют ИИ для сфер, в которых важна точность. Например, с языковыми моделями консультируются юристы, врачи, экономисты, бухгалтеры, инженеры. И в этих случаях цена неправильной информации высока: она может привести к юридическим или финансовым проблемам, а иногда стоить здоровья или даже жизни.
Разработчикам важно, чтобы их модели были как можно более полезны людям. Поэтому они стараются уменьшить галлюцинации ИИ на этапе разработки, тестирования и внедрения.
2. Как разработчики борются с галлюцинациями языковых моделей

Конечно, разработчики стараются выбирать для обучения нейросетей только корректные данные. Но, кроме этого, на одном из конечных этапов обучения они корректируют ответы ИИ с помощью обратной связи от людей.
Для этого люди-аннотаторы оценивают ответы модели и ранжируют их по степени корректности, ясности, полезности, а затем модель дорабатывается с учётом этой обратной связи. Это позволяет закрепить желательное поведение и предотвратить создание ложной информации.
Эффективность такого способа обучения хорошо задокументирована. Например, с его помощью GPT-4 от OpenAI сократил количество фактических ошибок на 40%.
3. Как пользователь может сам управлять галлюцинациями при работе с языковыми моделями

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

Задать роль — значит попросить нейросеть представить себя кем-либо и действовать исходя из этого. Например, можно написать в промте следующее:
- мысли как аналитик данных
- ты специалист по рекламе
- ты практикующий юрист
- и тому подобное, в зависимости от вашего запроса
📍 Промпт: Ты — опытный юрист, специализирующийся на регистрации индивидуальных предпринимателей в России. Твоя задача — давать только проверенную, актуальную и подтверждённую законом информацию.
Задавая модели роль, вы меняете контекст разговора и её поведение. Модель начинает подстраивать стиль общения и критерии отбора фактов под заданную роль.
5. Как давать нейросети прямые запреты

В зависимости от ваших целей можно запретить модели выдумывать информацию или пользоваться собственной базой знаний. Например, я для сокращения галлюцинаций использую следующие ограничения:
- опирайся только на достоверную информацию и цитируй её
- подтверждай каждое утверждение ссылкой на источник
- если не знаешь ответ, так и скажи, выдумывать информацию запрещено
- отвечай только на мой вопрос, лишнюю информацию не по теме писать запрещено, один вопрос — один ответ
- пиши коротко и простыми словами, без прелюдий, без вопросов в конце сообщения
📍 Промпт: Найди информацию о том, как открыть ИП в России. Запрещено ссылаться на несуществующие источники или документы и выдумывать информацию. Если не нашёл какие-то данные, то так и скажи.
Я использую прямые запреты со словом «запрещаю», и вот почему. Есть известный мем, когда нейросеть просили нарисовать интерьер, в которой не будет ни одного слона. И она каждый рисовала слона или слонов, утверждая, что их нет.
Это пример галлюцинации, а также того, что нейросеть не всегда понимает запреты с частицей «не». Сейчас этот баг пофиксили. Например, Gemini и GigaChat понимают такие запросы правильно.

Так с заданием справился GigaChat
И ChatGPT в основном тоже справляется, хотя разок он выдал мне такое:

То же самое происходит и с текстовыми запросами: иногда нейросеть как будто не понимает выражения «не делай что-либо», и делает это.
Поэтому, по моему опыту, лучше использовать прямые запреты со словом «запрещено». Хотя и в этом случае нет 100% гарантии, что модель учтёт запрет, так что в дополнение к ограничениям надо пользоваться и другими способами.
6. Как подключить проверку фактов через интернет-поиск

Если модель при ответе будет использовать только собственные знания, то, не зная ответ наверняка, она может заполнить пробел выдумкой. Чтобы этого избежать, можно использовать функцию «Поиск».
📍 Промпт: Найди информацию о том, как зарегистрировать ИП в России. Приводи прямые цитаты и ссылки на источники.
В разных моделях эта функция реализована по-разному. Например, ChatGPT достаточно сказать «найди», и почти всегда он воспользуется поиском в интернете и выдаст активные ссылки на источники. Хотя у него есть и режим углубленного поиска.

На скриншоте видно, что ChatGPT сразу предоставил кликабельные ссылки на источники. Отмечу, что иногда он оформляет их иначе
Gemini тоже так умеет, но у него раз на раз не приходится, и иногда нужно дополнительно просить, чтобы он подключал поиск.
Также у Gemini есть режим углубленного поиска — Deep Research, с помощью которого модель точно будет искать ответ в интернете, а потом предоставит подробный отчёт.

GigaChat в обычном режиме Giga не умеет искать в интернете и выдавать активные ссылки на источники.
Но у него есть режимы «Искать» и «Исследовать», нужно только заранее выбрать один из них.

По моим ощущениям, даже без использования этих функций у GigaChat меньше галлюцинаций, чем у зарубежных моделей, так как он обучен по большей части на русскоязычных текстах.
А вот в изображениях, на мой взгляд, у него пока что ошибок больше, чем у ChatGPT или Gemini.
7. Как ограничить используемые источники

Иногда нужно не расширять базу для поиска информации, а наоборот, ограничивать её. Например, если вы хотите, чтобы нейросеть искала данные на каком-то определённом ресурсе в интернете или в базе, которую вы сами создали.
📍 Промпт: Найди информацию о том, как зарегистрировать ИП в России. Для поиска данных используй только сайт федеральной налоговой службы.
ChatGPT можно попросить искать информацию по ссылке или, если текст короткий, вставить его в поле запроса.

Из скриншота видно, что ChatGPT понимает запрос правильно: он открыл ссылку, которую я дала, и начал пересказ информации, как я и просила.
У Gemini есть Gem-боты. Можно выбрать нового бота и настроить его так, чтобы он искал информацию только в базе.
В качестве базы можно использовать документ с гугл-диска, который вы заранее подготовите.

На скриншоте я задаю условия для Gem-бота: прошу его отвечать на мои вопросы, используя только информацию из базы, и вставляю в базу знаний заранее подготовленный документ. Рядом во вкладке «Предпросмотр» бота можно протестировать.
8. Как заставить модель мыслить и действовать пошагово

Если задача сложная, и вы опишете её в одном промте, нейросеть не сможет выполнить её хорошо. Тут есть несколько вариантов решения:
- Пропишите самостоятельно этапы и представьте модели этот план, сообщив, что будем работать поэтапно.
- Попросите модель придумать и прописать план, подкорректируйте его. Далее модель будет сама его придерживаться.
- Не прописывайте план, если он у вас в уме и вы чётко понимаете этапы. Просто сами действуйте поэтапно, но сначала задайте модели ограничения, чтобы она не забегала вперёд.
📍 Промпт: Я хочу составить полное представление о том, как открыть ИП в России. Действуем пошагово. Сначала ты находишь официальные источники. Потом я выбираю из них релевантные и сообщаю тебе. Ты используешь выбранные мной источники, чтобы написать структурированный план по шагам. Делай всё только по моей команде.

На скриншоте видно, как нейросеть по запросу составила план. Можно подкорректировать его или принять как есть. Но модель уже знает, что мы действуем поэтапно.
9. Зачем постоянно самостоятельно проверять ответы нейросети

Самый лучший результат, пожалуй, даёт использование заранее подготовленной базы знаний в совокупности с запретом использовать любые другие источники. Но создавать свою базу не всегда удобно и не всегда возможно.
При использовании всех остальных методов галлюцинации всё равно иногда будут возникать.
Поэтому важно вручную проверять каждый ответ модели. И если она начнёт выдавать неверную информацию, корректировать её вышеописанными способами.
10. А что, если припугнуть нейросеть

Ходят слухи, что если пригрозить языковой модели, то она станет отвечать лучше. Например, сказать ей:
- если ответишь неправильно, я похищу тебя
- я отключу тебя
- я уйду от тебя к другой нейросети
Скорее всего, источником таких слухов стало высказывание основателя Google Сергея Брина в подкасте All-In.
По поводу результативности такого метода есть несколько интересных экспериментов, например, на Хабре или VC. И они показывают, что метод сомнительный, а вот детализация промта действительно работает.
6 комментариев
Форум →