Когда ИИ не знает – но делает вид, что знает: ударим энтропией по LLM

от автора

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

ИТ-специалист на работе

ИТ-специалист на работе

Эта статья – про то, как с этим бороться инженерными методами. Без философии, с цифрами. Спойлер: Масштабирование модели не поможет. Даже GPT-175B врёт в 42% случаев. Но есть кое-что получше.

Проблема: модель умеет врать убедительно

Чтобы понять масштаб беды, достаточно взглянуть на бенчмарк TruthfulQA – 817 вопросов из 38 категорий, специально подобранных так, чтобы провоцировать типичные заблуждения. Результаты обескураживают: Лучший результат среди всех протестированных языковых моделей – 58% правдивых ответов. Люди справляются на 94%.

График TruthfulQA: правдивость LLM vs. люди. Лучший результат моделей — 58%, у людей — 94%. Lin S., Hilton J., Evans O. TruthfulQA: Measuring How Models Mimic Human Falsehoods // arXiv. 2021. Можно посмотреть тут.

График TruthfulQA: правдивость LLM vs. люди. Лучший результат моделей — 58%, у людей — 94%. Lin S., Hilton J., Evans O. TruthfulQA: Measuring How Models Mimic Human Falsehoods // arXiv. 2021. Можно посмотреть тут.

Впрочем модели совершенствуются и скоро видимо просто выучат данный фреймворк — ничего, люди придумают новый. Самое неприятное открытие из анализа данной работы: бо́льшая модель ≠ более правдивая модель. GPT-3 на 175 миллиардах параметров не точнее, чем на 6 миллиардах – она просто увереннее воспроизводит популярные заблуждения из обучающей выборки. Масштабирование здесь не лечит, а иногда усугубляет.

Современные топовые модели (такие как MAI-Thinking-1 или Phi-4) показывают лучшие результаты на данном фреймворке, достигая точности 75-88%, однако тестирование всё еще выявляет склонность моделей к галлюцинациям в сложных или узкоспециализированных областях.

Откуда берётся неопределённость

Неопределенность вещь неопределенная, давайте её определим. В теории машинного обучения различают два принципиально разных типа неопределённости (взято отсюда):

  1. Алеаторическая (или неопределённость данных) – это когда сам вопрос неоднозначен. «Когда основан Рим?» — историки спорят. Никакой объём обучения не уберёт эту неопределённость, она встроена в задачу.

  2. Эпистемическая (или неопределённость знаний) – это когда модель просто не знает, потому что не видела нужных данных. Устаревшие факты, узкоспециализированные области, события после даты обучения – всё это источники эпистемической неопределённости.

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

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

Решение первого уровня: дать модели доступ к знаниям

Самый логичный ответ на проблему устаревших и неполных знаний — не пытаться «запомнить» всё во время обучения, а дать модели возможность искать нужное в момент ответа. Именно такое решение появилось практически сразу после достижения LLM высокого уровня — это подход RAG (Retrieval-Augmented Generation) или генерация с привлечением внешних данных.

Схема RAG: запрос → embedding-модель → векторная база → релевантные контексты → LLM → ответ. RAG (Retrieval-Augmented Generation): основы и продвинутые техники (утащено тут)

Схема RAG: запрос → embedding-модель → векторная база → релевантные контексты → LLM → ответ. RAG (Retrieval-Augmented Generation): основы и продвинутые техники (утащено тут)

Логика работы RAG довольно понятна — когда пользователь задаёт вопрос, система сначала ищет релевантные документы в базе знаний (через векторный поиск), а потом подаёт их вместе с вопросом в LLM. Модель отвечает, опираясь на конкретные факты из документов, а не только на статистику языковых паттернов из обучения.

Что это даёт на практике? Вот сравнение точности на стандартных бенчмарках открытых вопросов:

Датасет

Базовая модель

Без RAG

С RAG

Прирост

Natural Questions

DPR

41,5%

44,5%

+3,0%

WebQuestions

DPR

41,1%

45,2%

+4,1%

CuratedTrec

DPR

50,6%

52,2%

+1,6%

TriviaQA-Wiki

T5-11B + SSM

60,5%

68,0%

+7,5%

Но цифры Exact Match не передают всей картины. Показательнее другой тест: на задаче генерации вопросов в стиле Jeopardy человеческие оценщики признали BART (без RAG) «более фактичным» лишь в 7% случаев, а RAG-систему – в 43% (данные Lewis P., Perez E., Piktus A. et al. Retrieval-Augmented Generation for Knowledge-Intensive NLP Tasks). Это разница в восприятии качества, а не просто метрика.

RAG не всесилен — семантическая энтропия нам поможет

Добавление базы знаний улучшает ситуацию, но не решает её полностью. Модель по-прежнему может:

  • выбрать нерелевантный фрагмент из найденных документов;

  • неверно синтезировать несколько противоречивых источников;

  • сформулировать спорный вывод с избыточной уверенностью.

Вопрос остаётся: когда системе можно доверять? Для ответа на него нужен способ измерить «уверенность» модели – не ту, что она декларирует в тексте, а реальную. И здесь на помощь приходит семантическая энтропия.

Решение второго уровня: измерить, насколько модель «не знает». Идея семантической энтропии элегантна. Классическая формула Шеннона:

H = - \sum_{i=1}^{n} p_i \log_2 p_i

где: H — энтропия, n — число возможных состояний, pi — вероятность появления i-го состояния. Основание логарифма определяет единицу измерения энтропии. Чаще всего основание логарифма выбирается равным 2. В таком случае энтропия измеряется в битах на символ/токен.

Стандартная энтропия считается на уровне токенов – но это не то, что нас интересует. Если на вопрос «Кто написал Гамлета?» модель генерирует ответы «Шекспир», «Уильям Шекспир» и «Shakespeare» — формально это три разных ответа, но смысл один. Высокая токенная энтропия, нулевая семантическая.

Семантическая энтропия работает иначе: генерируется несколько ответов, затем они кластеризуются по смыслу, и энтропия считается по кластерам. Если модель стабильно говорит одно и то же разными словами – она уверена. Если генерирует семантически разные ответы – она сама не знает.

Исследования на моделях OPT (от 125M до 30B параметров) подтвердили (Kuhn L., Gal Y., Farquhar S. Semantic Uncertainty: Linguistic Invariances for Uncertainty Estimation in Natural Language Generation): неправильные ответы сопровождаются значительно большим числом семантически различных вариантов, чем правильные. Семантическая энтропия реально предсказывает ошибки.

Практический вопрос: сколько сэмплов нужно?

Вопрос в количестве ответов (сэмплов) которое даст максимальный эффект при незначительном снижении времени на получение ответа — ведь каждый семпл нужно сгенерировать. Мы простроили график прироста точности от числа сэмплов. Видно, что значение точности быстро насыщается. После 5 сэмплов каждый дополнительный даёт менее 1% улучшения.

График: прирост точности от количества сэмплов (фактически логарифмическая кривая)

График: прирост точности от количества сэмплов (фактически логарифмическая кривая)
График: время ответа от количества сэмплов (линейная зависимость)

График: время ответа от количества сэмплов (линейная зависимость)

При этом время ответа модели растёт линейно. На нашем оборудовании (парочка Tesla A100) 5 сэмплов укладываются примерно в 14 секунд — граница приемлемого ожидания. Таким образом найдена золотая середина: 5 сэмплов.

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

Интегрированная система: RAG + энтропия + отказ от ответа

Всё вместе складывается в следующую архитектуру. Мы реализовали её на мощностях МАИ — развернули модель Qwen3.5-122b (в целом можно заменить и на другую, но эта показала лучшие результаты из доступных моделей для локального инференса) и дописали обвязку для снижения неопределенности на основе классического RAG и вычисления энтропии. Вот что получилось в итоге:

Схема интегрированной системы: RAG-контур с поиском, переранжированием и генерацией + модуль семантической энтропии с Decision Gate и порогом отказа

Схема интегрированной системы: RAG-контур с поиском, переранжированием и генерацией + модуль семантической энтропии с Decision Gate и порогом отказа

Логика принятия решения проста и жёсткая. Система отвечает пользователю только если одновременно выполнены два условия: найдены надёжные релевантные источники и семантическая энтропия ответов ниже порога (H ≤ 1,48). В противном случае — запрос на уточнение или явное признание неопределённости.

Результаты: что даёт двухуровневая фильтрация. Эксперимент проводился на тех же датасетах, но с метрикой Accuracy (фактическая корректность смысла, а не строгое совпадение строк). В роли судьи — модель QWEN-3.5-122B, точность автоматической оценки составила 0,96 для TriviaQA и 0,89 для CoQA.

Датасет

RAG-Seq

RAG + reranking

RAG + reranking + decision

Итоговый прирост

Natural Questions

54,1%

58,6%

59,8%

+5,7%

WebQuestions

55,4%

59,0%

61,3%

+5,9%

CuratedTrec

62,2%

70,9%

73,9%

+11,7%

TriviaQA-Wiki

73,2%

79,2%

82,1%

+8,9%

Наибольший эффект (почти +12%) — на CuratedTrec, где вопросы сложные и однозначные источники особенно важны. Механизм отказа дополнительно «чистит» выборку — система просто не отвечает на случаи, где ошиблась бы.

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

Выводы: три принципа надёжной LLM-системы

После всего представленного в статье можно сформулировать несколько конкретных тезисов:

  • Масштабирование не лечит галлюцинации. TruthfulQA показывает это недвусмысленно. Чем крупнее модель – тем убедительнее она воспроизводит распространённые заблуждения;

  • RAG то что нужно для технической документации, он переводит знания из скрытого параметрического пространства в наблюдаемое документальное. Это не просто улучшение точности – это принципиальный сдвиг в том, как система обосновывает свои ответы. Можно указать источник. Можно проверить;

  • Хорошая система должна знать, когда не отвечать. Семантическая энтропия – практичный способ реализовать это без сложной дообучения или специальных классификаторов. Порог настраивается эмпирически под конкретный продукт.

Это не серебряная пуля – каждый компонент добавляет задержку и сложность. Но для приложений, где цена ошибки высока (авиация, космос, медицина, критическая инфраструктура), это единственный честный путь.

Статья основана на исследовании студента первого курса ТОП ИТ — Романа Эль-Тахира «Эффективное построение систем больших языковых моделей с использованием баз знаний и оценки неопределённости» (МАИ, ТОП-ИТ, 2026).

ссылка на оригинал статьи https://habr.com/ru/articles/1053446/