Почему ИИ выдумывает и как это сократить

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

Искусственный интеллект Обновлено

Коротко

Языковая модель выдумывает, потому что не ищет факты, а продолжает текст самыми правдоподобными словами. Когда ответа нет в том, что ей дали, она всё равно выдаёт что-то похожее на правду: несуществующий пункт договора, цену, которой не было, ссылку на страницу, которой нет. Отключить это полностью нельзя, но можно сделать редким и безвредным: дать модели ваши источники, разрешить ей говорить «не знаю», требовать цитату к каждому утверждению, проверять цитаты кодом и оставлять числа расчётам. В важных решениях последнее слово — за человеком.

Почему модели выдумывают: 7 причин

  1. Она предсказывает, а не проверяет

    Модель подбирает правдоподобные слова; верно ли утверждение, она не знает.

  2. Ответа нет в контексте

    Без ваших документов модель заполняет пробел из общей памяти — или из воображения.

  3. Ей велели всегда отвечать

    Инструкция без разрешения сказать «не знаю» подталкивает к выдумке.

  4. Знания устарели

    Модель училась на данных до определённой даты и ничего не знает о ваших новых ценах.

  5. Наводящий вопрос

    «Почему у вас бесплатная доставка?» — модель скорее согласится, даже если она платная.

  6. Числа, имена и ссылки

    Точные детали — самое слабое место: они выглядят правдоподобно в любом виде.

  7. Слишком много в одном запросе

    В очень длинном контексте модель теряет детали из середины и смешивает факты.

Как выглядят выдумки и как их поймать

Семь видов ошибок, которые встречаются в деловых продуктах, — с тем, как поймать каждую.

ВидПримерКак поймать
Выдуманный факт «Возврат принимаем 30 дней» вместо 14 цитата из источника
Выдуманное число цена, которой нет в прайсе числа из базы, а не от модели
Выдуманная ссылка страница сайта, которой нет ссылки только из списка
Выдуманная возможность «Да, наше приложение так умеет» описание того, что продукт умеет
Смешанные объекты характеристики одной модели у другой один товар на кусок контекста
Устаревшие сведения прошлогодние условия доставки дата рядом с каждым источником
Уверенность без оснований твёрдый ответ на неясный вопрос разрешение переспросить

8 способов сделать выдумки редкими

  1. 01

    Дать источники

    Модель отвечает по найденным кускам ваших документов, а не по памяти.

  2. 02

    Разрешить «не знаю»

    Отдельное поле для «не нашёл» и понятный следующий шаг — менеджер.

  3. 03

    Цитата к каждому утверждению

    Модель копирует предложение, на котором основан ответ.

  4. 04

    Проверять цитаты кодом

    Цитаты нет в источнике — ответ не показывается.

  5. 05

    Числа из базы

    Цены, остатки и даты подставляет код, модель только формулирует текст.

  6. 06

    Строгий формат

    Ответ в JSON по схеме проверить проще, чем свободный текст.

  7. 07

    Маленькие задачи

    Один вопрос, несколько подходящих кусков — меньше шансов что-то перепутать.

  8. 08

    Человек для важного

    Договоры, деньги и здоровье — модель готовит, человек решает.

Инструкция и проверка: 2 примера

Инструкция разрешает модели не знать и требует цитаты; код не доверяет модели и проверяет каждую цитату.

Инструкция модели

«Не нашёл» — отдельное поле, а не особая фраза: его нельзя спутать с ответом.

instruction.txt
# Начало каждого запроса — каждый раз одинаковое, поэтому уходит в кэш
Ты отвечаешь покупателям магазина только по источникам ниже.

Правила:
1. Используй только факты из источников. Ничего не добавляй от себя.
2. Предложение, на котором держится ответ, скопируй в quotes дословно.
3. Если в источниках нет ответа, поставь found в false
   и скажи, что вопрос передан менеджеру.
4. Цены, даты и числа — только так, как они написаны в источниках.

Ответ в JSON:
{"found": true, "answer": "...", "quotes": [{"source": 1, "text": "..."}]}

Проверка цитат

Десять строк кода ловят большую часть выдуманных ответов до того, как их увидит клиент.

verify.ts
// Каждая цитата обязана дословно встречаться в источнике, на который ссылается, —
// иначе ответ не показывается, а вопрос уходит человеку
type Answer = {
  found: boolean;
  answer: string;
  quotes: { source: number; text: string }[];
};

export function verified(a: Answer, sources: string[]): boolean {
  if (!a.found) return true;           // честному «не нашёл» проверка не нужна
  if (a.quotes.length === 0) return false;
  return a.quotes.every((q) => sources[q.source - 1]?.includes(q.text.trim()) ?? false);
}

Что не помогает от выдумок

  1. «Не выдумывай» в инструкции

    Без источников и разрешения не знать сама просьба мало что меняет.

  2. Только самая дорогая модель

    Сильные модели выдумывают реже, но так же убедительно.

  3. Только понизить температуру

    Ответы становятся однообразнее, но не правдивее.

  4. Просить модель проверить себя

    Помогает немного; проверка кодом по источнику — намного больше.

  5. Доверять уверенному тону

    Выдуманный ответ звучит ровно так же уверенно, как верный.

  6. Проверять на лёгких вопросах

    Выдумки появляются на вопросах без ответа — они обязаны быть в проверочном наборе.

Вопросы о выдумках ИИ

Что такое галлюцинация ИИ?

Уверенный ответ, который не подтверждается фактами, — модель выдумала его на месте недостающего знания.

Можно ли полностью убрать галлюцинации?

Нет, но источники, цитаты и проверка кодом делают их редкими, а остальные ловятся до клиента.

Какая модель выдумывает меньше всего?

Это меняется от версии к версии; устройство продукта важнее модели.

Решает ли проблему RAG?

Он убирает главную причину — отсутствие данных; вместе с порогом и цитатами даёт надёжные ответы.

Почему модель выдумывает ссылки?

Ссылка для неё — просто правдоподобный текст; ссылки берут только из списка настоящих страниц.

Как измерить, как часто она выдумывает?

Проверочный набор с вопросами, на которые в базе нет ответа: доля честных «не нашёл» — и есть мера.

Форма

Ассистент,
который не выдумывает

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

Или пишите на [email protected]