Мир ИИ

Чат-бот выдумал груз: разбор по сообщению CNN

Чат-бот выдумал груз: разбор по сообщению CNN

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

Сразу о статусе: это сообщение издания со ссылкой на анонимные источники, а не установленное обстоятельство. Мы разбираем его как сообщение. Интересна здесь не военная часть, а то, что сделало ошибку возможной, — и это ровно то, что делают у себя тысячи команд каждый день.

Что сообщается

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

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

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

Где именно сломалось

Одна фраза в сообщении CNN объясняет механику лучше остального: бот свёл воедино открытые данные и закрытые сведения.

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

Модель не обязана помечать происхождение. Она обязана ответить связно. Связность и достоверность — разные требования, и по умолчанию выполняется первое.

Почему «не выдумывай» не работает

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

Что действительно меняет результат — смена задачи. Не «опиши груз по этим документам», а «для каждой позиции приведи точную цитату из документа и номер строки; если позиции нет — напиши, что нет». Первое разрешает достраивать, второе требует показать источник.

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

Почему эта ошибка не про военных

Стоит проговорить, потому что сюжет легко отложить в сторону как «у нас такого не бывает».

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

Разница только в цене ошибки. В одном случае это спор с поставщиком на сто тысяч, в другом — то, о чём написало издание. Механизм один и тот же, и чинится он одинаково.

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

Что просить у модели в промте

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

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

Цитата под каждым полем. Дословная строка из исходника, а не пересказ своими словами. Пересказ поиском не найдётся.

Явный прочерк. Скажите, что писать, если поля в документе нет. Без этого модель заполнит его правдоподобным значением просто потому, что поле в схеме есть.

Запрет на связывание. Прямое указание не использовать общие знания и не достраивать по смыслу — не панацея, но в паре с требованием цитаты работает: достроенному полю неоткуда взять цитату.

Как проверять программно

Самое полезное в этой истории — то, что защита дешёвая и не требует второй модели.

ШагЧто делаетЧем проверяется
Требовать цитатупод каждым полем — точная строка из исходникаформат ответа
Искать цитату в документепоиск подстроки по исходному текстуобычный код, без модели
Помечать непроверенноеполе без найденной цитаты уходит человекуваша логика
Разделять источникипо одному документу за раз, с указанием, какой этоструктура запроса
Пересчитывать арифметикуколичество на цену равно суммеобычный код

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

Почему нельзя смешивать источники в одном запросе

Правило, которое стоит записать в регламент: один разбор — один документ.

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

Если сводить всё-таки надо, сведение делается отдельным шагом после извлечения, и на вход ему идут уже проверенные поля с пометками источника, а не сырые документы. Про сравнение двух документов между собой мы писали в материале сравнение документов нейросетью, а про работу со сканами — в материале как обработать PDF через API.

Сколько стоит такая проверка

Меньше, чем кажется, и это главный аргумент за то, чтобы её ставить.

Требование цитаты не добавляет вызовов вовсе — меняется только формат ответа, то есть немного растёт выход. Проверка цитаты поиском по тексту бесплатна: это ваш код. Отдельная проверка спорных полей дешёвой позицией добавляет вызов с коротким входом.

Для сравнения: разбор ста документов на дешёвой позиции укладывается в единицы рублей. KeyDealer даёт один ключ на каталог из 56 позиций, 43 из которых доступны сейчас, с оплатой российской картой в рублях и ставками от 1 ₽ за миллион токенов, а расход виден по каждому запросу. Поставить извлечение на дешёвую позицию, а сложную сверку на дорогую — это две строки в конфигурации, и разница в счёте при этом кратная.

Чего мы не утверждаем

Четыре оговорки, и они важнее пересказа.

Мы не подтверждаем обстоятельства эпизода. Это сообщение CNN со ссылкой на анонимные источники. Ни модели, ни промпта, ни устройства системы в публикации нет.

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

Мы не утверждаем, что проверка цитатами исключает ошибки. Она отсекает выдуманное, но не ловит верно процитированное и неверно истолкованное. Это слой, а не решение.

Мы не переносим вывод на ситуации, где документа нет вовсе. Если источника не существует, проверять цитату не по чему — и тогда задача не для модели.

Что сделать у себя на этой неделе

Возьмите один сценарий, где модель разбирает документы, и ответьте на три вопроса.

Первый: видно ли в выходе, откуда взято каждое утверждение? Если ответ приходит связным текстом без полей и ссылок — не видно.

Второй: проверяется ли хоть что-нибудь автоматически? Арифметика, наличие цитаты, совпадение дат — любой из этих проверок достаточно, чтобы поймать половину ошибок извлечения.

Третий: что происходит с непроверенным? Если ничего — оно доезжает до человека, который читает ответ как факт. Механику журналирования, без которой такие случаи потом не разобрать, мы описывали в материале логирование запросов к моделям.

Что держать в голове

Первое. Опасна не ошибка модели, а уверенный тон, с которым она подаётся. Текст без пометок происхождения читается как проверенный, хотя проверенным не является.

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

Третье. Проверка, которую делает ваш код, надёжнее любой инструкции модели. Цитата либо есть в документе, либо её нет — это вопрос поиска строки, а не доверия. Что мы за проект и как проверяем факты — на странице о проекте, ключ заводится на keydealer.ru/login.

Частые вопросы

Что именно сообщается?

По сообщению CNN от 18 сентября 2026 года со ссылкой на четыре источника, знакомых с эпизодом, аналитик разбирал через чат-бота сведения о грузе судна, и в итоговую справку попало утверждение о компонентах, которых в документах не было. Подготовка к перехвату была остановлена, когда выяснилось, что материал в отчёте определён неверно.

Это установленный факт?

Нет. Это сообщение издания со ссылкой на анонимные источники. Мы пересказываем его как сообщение, а не как установленное обстоятельство, и рекомендуем относиться к деталям так же.

В чём техническая суть ошибки?

В том, что в один разбор были сведены источники разной надёжности, а на выходе получилось одно связное утверждение без пометок, откуда что взято. Модель не помечает, какая часть ответа опирается на документ, а какая достроена по смыслу, если её об этом не попросить.

Можно ли запретить модели выдумывать?

Инструкцией — нет. Указание «не выдумывай» не меняет механику: модель достраивает недостающее, потому что так устроена генерация. Работает другое — требование цитаты и ссылки на место в документе под каждое утверждение и автоматическая проверка, что цитата в документе действительно есть.

Как это проверять на своей стороне?

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

Значит, документы через модель разбирать нельзя?

Можно, и это одна из самых полезных её задач. Нельзя другое — принимать результат разбора как факт без проверки происхождения каждого утверждения. Разница между «извлекли из документа» и «модель так считает» должна быть видна в выходе, а не подразумеваться.

Источники