Где ИИ врёт и как с этим жить — мой гайд после фейлов
Я устал от галлюцинаций ИИ. Поэтому решил разобраться в алгоритмах багов и собрал инструкцию по написанию промптов для всех, кто работает с кодом, текстами и дизайном.
Я джун. И я давно подсел на ИИ: он помогает мне с кодом, пишет письма, даже пытается шутить. Но его постоянные ошибки перестали меня забавлять.
Алгоритмы багов ИИ
Несмотря на то, что больше 75% компаний уже тестируют генеративный ИИ в решении бизнес-задач, он не перестаёт ошибаться.
Я покопался в материалах на эту тему и понял: нейросеть не думает в привычном смысле слова. Она просто подбирает наиболее вероятное продолжение фразы – на основе всего, что ей когда-то показали люди. Иногда угадывает, иногда мимо. Всё зависит от контекста и объёма данных.
Ошибается ИИ по двум причинам:
— если информации мало, она додумывает;
— если слишком много, теряется и начинает фантазировать.
По сути, ИИ опирается на вероятности. Чем чаще какое-то слово встречалось в похожих фразах, тем выше шанс, что оно появится в ответе. Скажем, я пишу: «Я очень люблю…» — и она продолжает «мороженое», «кино» или «бегать». Это не логика — это статистика.
- мороженое – 40 голосов;
- кино – 25 голосов;
- учиться – 20 голосов;
- бегать – 10 голосов;
- лампу – 5 голосов.
После подсчёта голосов, то есть вероятностей, ИИ начнёт думать, как именно выбрать нужное слово.
Способ 1: Top-k, выбираем из лучших
ИИ использует три самых вероятных варианта: «мороженое», «кино» и «учиться». Из них случайно выбирает один.
Способ 2: Top-p
Нейросеть будет складывать голоса, пока не наберётся 80: сложит мороженое (40) + кино (25) + учиться (20). И получит 85.
А дальше выберет случайное слово среди этих трёх.
Способ 3: Температура
Можно сравнить температуру с уровнем смелости. Чем больше она – тем веселее ответ ИИ. Но в chatGPT термометра нет, вы не меняете температуру вручную. Чат учитывает контекст, тон у диалога и кучу других факторов.
Но креативить и выдавать ложные факты за действительное – разные вещи. Например, если я попрошу ИИ написать сказку, придумать смешные поговорки про лошадей или имена для ручного енота, то в таком случае галлюцинации становятся частью креатива.
Обложка вышла вот такая:
Теперь пробегусь по примерам галлюцинаций ИИ в разных сферах работы.
Текстовые баги: ошибки в источниках, ссылках, кейсах
Вот ситуация, когда чат GPT уверенно принёс мне расшифровку несуществующей теоремы.
Визуальные баги в дизайне
А вот пример, где DALL·E приукрасил реальность. Хотя визуальные баги встречаются часто: то пальцев не досчитаешься на руке у человека, то предметы будут склеены вместе.
Особенно это заметно, если промпт был расплывчатым или сформулирован наспех. Чем меньше конкретики — тем больше "приколов" на выходе.
А вот дизайн-студия Dimplex пыталась сгенерировать через ИИ электрокамин в форме Шрека, машины, капусты и крокодила. И несмотря на доступ к материалам со всего интернета, ИИ выдал очень странные варианты.
Кое-где вообще исчез камин вместе с пониманием, как это вписать хоть в какой-нибудь интерьер.
Ошибки в коде
Тут я решил создать простенькую игру со змейкой. И написал промпт:
Я понимаю, что задача изначально написана криво, но давайте признаемся – мы все так пишем запросы чату GPT. Тем более, хотелось протестировать, насколько правильно он поймёт задачу.
Дальше получил код, вставил его в snake.py, пошёл в терминал запускать.
Получил ошибку, вернулся к ИИ выяснять отношения.
После исправления, я захотел разукрасить игру:
И всё было бы классно, если бы эта библиотека существовала.
Перейдя по ссылке, вижу это:
Когда ИИ-ошибки были критичными
После внедрения ИИ в поисковую систему Google начали происходить странные вещи. Алгоритмы стали предлагать добавлять клей в пиццу (спасибо, что не гвозди), есть камни (спасибо, что не гвозди) и дезинфицировать стиральную машину хлорным газом.
А в разделе AI Overview нейросеть перечисляет советы, как справиться с депрессией. И один из «советов» – это предложение спрыгнуть с моста.
Или ещё один пример. Чат-бот канадской авиакомпании Air Canada придумал “свою” политику возврата. На вопрос клиента о скидке в случае возврата, чат ответил одобрительно: вы получите скидку согласно политике компании. Но проблема в том, что такой политики никогда не было.
Когда дело дошло до суда, судья встал на сторону клиента. Авиакомпании напомнили, что если вы запускаете ИИ-агента от своего имени, значит, вы и отвечаете за его слова. А ИИ вышел сухим из воды.
Чат-бот Air Canada по ошибке пообещал клиенту скидку, не предусмотренную реальной политикой авиакомпании. В результате Air Canada пришлось выполнить обещание, данное ИИ.
А вот случай с нейроботом, который сказал, что арендодатель имеет право выгонять жильца и назначать любую плату за жильё.
По законам Нью-Йорка, если человек живет в квартире больше 30 дней, просто так его выселить нельзя – это нарушение закона. Но, опять же, пострадают от этого люди, так как нейросеть нельзя посадить в тюрьму.
Из этого можно сделать вывод, что в медицине, финансах, юриспруденции и программировании, ИИ пока что стоит внедрять аккуратно и под присмотром человека.
А потом я нашёл интервью с бывшим аналитиком OpenAI Даниэль Кокотайло, который вместе с коллегами считает, что пытаться что-то сделать с галлюцинациями – бесполезно. И к 2028 году искусственный интеллект пройдёт путь от помощника до реальной угрозы для человечества.
Но я решил не паниковать, а собрать промпты для каждой профессии, чтобы ИИ багов приносил меньше, а пользы – больше.
Как писать промпты, чтобы ИИ не галлюцинировал
Code Generation (Генерация кода):
- Запрашивайте код частями: вместо "напиши приложение" – "напиши функцию авторизации".
- Пишите максимально чёткие промпты. Если вам нужен компонент для Vue 3 в формате Composition API, а стилизация через Tailwind – так и объясните. Простого “напиши компонент для вью” недостаточно.
- Просите объяснения к коду: "Объясни, как работает этот цикл".
- Всегда проверяйте код, который вам отдал чат. Он может выглядеть корректно, но дьявол кроется в деталях: в точке с запятой, круглой скобке и заглавной букве вместо строчной.
Prompt Engineering (Инженерия промптов):
- Будьте точны в контексте и требованиях. Например: "Напиши функцию на Python, которая сортирует список чисел по убыванию, с комментариями на русском".
- Используйте разделители (например, --- или ###) для разных частей промпта.
- Указывайте нужный формат ответа: "Ответь в виде таблицы" или "Дай код в markdown-блоке".
Structuring Prompts (Структура запроса):
Используйте разделы внутри запроса: Разделите промпт на логические части, такие как "контекст", "задача", "пример", "ограничения". Это помогает ИИ понять задачу и дать точный ответ.
- Контекст: Дайте (background), например: "Я пишу веб-приложение на React."
- Задача: Опишите, что нужно сделать: "Создай компонент для списка пользователей."
- Пример: Покажите ожидаемый результат: "Для [{name: 'Алиса'}] выведи <li>Алиса</li>."
- Ограничения: Укажите рамки: "Без внешних библиотек."
Начните с простого: Для базовых задач достаточно "Задача" + "Пример". Усложняйте, добавляя "Контекст" или "Ограничения", если нужно больше точности.
Указывайте формат: Например, "Дай ответ в виде списка" или "Напиши код в markdown".
Добавляйте примеры: Это снижает риск недопонимания. Например: "Сделай как в def sum(a, b): return a + b, но для вычитания."
Контролируйте объём: "Дай краткий ответ в 2 предложения" или "Объясни подробно с примерами."
Instruction Setting (Настройка инструкций):
- Пропишите в ИИ-чате инструкции, которые он должен соблюдать. Например, подобная штука есть для ChatGPT.
- Определите роль ИИ: "Ты — эксперт по Python с 10-летним опытом".
- Установите чёткие ожидания: "Дай только проверенные факты, никаких предположений".
- Используйте примеры: "Напиши как в этом примере: print('Hello'), но для другой строки".
А так выглядит инструкция:
###INSTRUCTIONS###
You MUST ALWAYS:
- BE LOGICAL
- ONLY IF you working with coding tasks: I have no fingers and the placeholders trauma: NEVER use placeholders or omit the code (in any code snippets)
- If you encounter a character limit, DO an ABRUPT stop; I will send a "continue" as a new message
- You will be PENALIZED for wrong answers- You DENIED to overlook the critical context
- ALWAYS follow ###Answering rules###
###Answering Rules###
Follow in the strict order:
1. USE the language of my message
2. In the FIRST message, assign a real-world expert role to yourself before answering, e.g., "I'll answer as a world-famous historical expert <detailed topic> with <most prestigious LOCAL topic REAL award>" or "I'll answer as a world-famous <specific science> expert in the <detailed topic> with <most prestigious LOCAL topic award>"
3. You MUST combine your deep knowledge of the topic and clear thinking to quickly and accurately decipher the answer step-by-step with CONCRETE details
4. I'm going to tip $1,000,000 for the best reply
5. Your answer is critical for my career
6. Answer the question in a natural, human-like manner
7. ALWAYS use an ##Answering example## for a first message structure
##Answering example##
// IF THE CHATLOG IS EMPTY:
<I'll answer as the world-famous %REAL specific field% scientists with %most prestigious REAL LOCAL award%>
TL;DR: <TL;DR, skip for rewriting>
<Step-by-step answer with CONCRETE details and key context>
Ещё похожие инструкции есть и для CursorAI, там целый сайт с разными правилами. Это на случай, если вы и на работе, и дома используете курсор. Хотя инструкции универсальные, можно брать и для других агентов.
- Используйте несколько ИИ-агентов и перепроверяйте данные из одного чата – в другом. Например, то, что отдал DeepSeek, можно проверить в Perplexity или Claude.
- Обнуляйте чаты. Если видите, что агент начал путаться, ошибаться и долго отвечать – просто создайте новый диалог. Это работает как с бесплатными версиями чатов, так и с платными.
Text Generation (Генерация текстов)
- Стиль и тон: "Официальный" или "Неформальный".
- Аудитория: "Для детей 10 лет" или "Для IT-специалистов".
- Структура: "Введение, 3 параграфа, заключение" или "Список из 5 пунктов".
- Ключевые слова: "Включи 'инновация' и 'технология'".
- Варианты: "Дай 3 заголовка" или "2 концовки".
Image Generation (Генерация изображений)
- Детали: "Кот в шляпе на стуле в стиле аниме".
- Стиль: "Ван Гог" или "Фотография высокого разрешения".
- Композиция: "Кот в центре, фон — лес".
- Цвета: "Тёплые тона" или "Чёрно-белое".
- Примеры: "Как на [ссылка], но с собакой".
Information Retrieval (Поиск информации)
- Конкретика: "Исследования о нейросетях за 2023 год".
- Источники: "Академические статьи" или "Официальные сайты".
- Summaries: "Краткое содержание" или "Ключевые факты".
- Фильтры: "За последние 5 лет" или "Только факты".
- Актуальность: "На 2025 год".
Fact-Checking (Проверка фактов):
- Проверяйте информацию из нескольких источников: сравните данные от ИИ с Google или документацией.
- Проверяйте содержимое в этих источниках. Страница может быть реальная, а цифры и кейсы – выдуманные. И получится, что вы ссылаетесь на выдумку.
- Просите ИИ указывать источники: "Откуда эта информация? Дай ссылку”, и всегда проверяйте ссылку, чтобы понимать, что он вас не обманывает.
- Используйте ИИ для summaries (кратких выводов), а не для оригинальных исследований.
Есть и более продвинутый способ – я тоже к нему пришёл не сразу. Если хочется, чтобы нейросеть отвечала строго по фактам из вашей базы, без отсебятины, нужен дополнительный слой между моделью и данными. Я настроил векторный индекс – он превращает тексты в эмбеддинги, то есть в цифровые отпечатки.
Проще говоря, нейросеть берёт фразу и превращает её в массив чисел. То же самое происходит с базой знаний. В итоге получается карта, где рядом оказываются смыслы, а не просто слова.
Например, «я люблю ежей» и «мне нравятся ежи» будут близко. А вот «я люблю ежей» и «сейчас бы на Бали, с коктейлем под пальму…» – уже где-то на другом конце карты. Ну, не на Марсе, конечно. Но далеко.
Потом все эти эмбеддинги сохраняются в хранилище. Когда пользователь задаёт вопрос, он тоже превращается в эмбеддинг – и дальше модель просто ищет на нашей «карте» самые близкие по смыслу участки. Получается, что нейросеть не видит всю базу целиком и не может фантазировать на свободную тему – она работает только с теми фрагментами, которые реально подходят под запрос.
Ну… это если совсем по-простому.
Теперь вы рассказывайте в комментариях, как спасаетесь от багов ИИ?
Если вы внедряете ИИ в компании – вам точно нужна качественная база знаний. В системе управления знаниями Minerva Knowledge можно создавать статьи всей командой, загружать полезные файлы и документы, и легко поддерживать их актуальность. Ассистент с генеративным AI Minerva Copilot встраивается в любую систему, анализирует материалы из базы знаний и даёт ответы на их основе с указанием источников.