Представьте: вы спрашиваете умного коллегу о дедлайне проекта, а он отвечает уверенно и детально – но на самом деле придумывает всё на ходу. Именно это постоянно делают большие языковые модели. Они не «знают», что не знают. И это не баг конкретной реализации – это фундаментальное свойство архитектуры.
Эта статья – про то, как с этим бороться инженерными методами. Без философии, с цифрами. Спойлер: Масштабирование модели не поможет. Даже GPT-175B врёт в 42% случаев. Но есть кое-что получше.
Проблема: модель умеет врать убедительно
Чтобы понять масштаб беды, достаточно взглянуть на бенчмарк TruthfulQA – 817 вопросов из 38 категорий, специально подобранных так, чтобы провоцировать типичные заблуждения. Результаты обескураживают: Лучший результат среди всех протестированных языковых моделей – 58% правдивых ответов. Люди справляются на 94%.
Впрочем модели совершенствуются и скоро видимо просто выучат данный фреймворк — ничего, люди придумают новый. Самое неприятное открытие из анализа данной работы: бо́льшая модель ≠ более правдивая модель. GPT-3 на 175 миллиардах параметров не точнее, чем на 6 миллиардах – она просто увереннее воспроизводит популярные заблуждения из обучающей выборки. Масштабирование здесь не лечит, а иногда усугубляет.
Современные топовые модели (такие как MAI-Thinking-1 или Phi-4) показывают лучшие результаты на данном фреймворке, достигая точности 75-88%, однако тестирование всё еще выявляет склонность моделей к галлюцинациям в сложных или узкоспециализированных областях.
Откуда берётся неопределённость
Неопределенность вещь неопределенная, давайте её определим. В теории машинного обучения различают два принципиально разных типа неопределённости (взято отсюда):
-
Алеаторическая (или неопределённость данных) – это когда сам вопрос неоднозначен. «Когда основан Рим?» — историки спорят. Никакой объём обучения не уберёт эту неопределённость, она встроена в задачу.
-
Эпистемическая (или неопределённость знаний) – это когда модель просто не знает, потому что не видела нужных данных. Устаревшие факты, узкоспециализированные области, события после даты обучения – всё это источники эпистемической неопределённости.
Если с первым типом неопределенности ничего не сделать — разве что выбрать наиболее приятное для нас решение задачи, то с эпистемической неопределенностью можно бороться.
Для LLM эпистемическая неопределённость особенно коварна: знания модели «заморожены» в параметрах на момент обучения, никакого механизма верификации нет, а уверенность при генерации слабо коррелирует с правильностью ответа.
Решение первого уровня: дать модели доступ к знаниям
Самый логичный ответ на проблему устаревших и неполных знаний — не пытаться «запомнить» всё во время обучения, а дать модели возможность искать нужное в момент ответа. Именно такое решение появилось практически сразу после достижения LLM высокого уровня — это подход RAG (Retrieval-Augmented Generation) или генерация с привлечением внешних данных.
Логика работы RAG довольно понятна — когда пользователь задаёт вопрос, система сначала ищет релевантные документы в базе знаний (через векторный поиск), а потом подаёт их вместе с вопросом в LLM. Модель отвечает, опираясь на конкретные факты из документов, а не только на статистику языковых паттернов из обучения.
Что это даёт на практике? Вот сравнение точности на стандартных бенчмарках открытых вопросов:
|
Датасет |
Базовая модель |
Без RAG |
С RAG |
Прирост |
|
DPR |
41,5% |
44,5% |
+3,0% |
|
|
DPR |
41,1% |
45,2% |
+4,1% |
|
|
DPR |
50,6% |
52,2% |
+1,6% |
|
|
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 — энтропия, 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 и вычисления энтропии. Вот что получилось в итоге:
Логика принятия решения проста и жёсткая. Система отвечает пользователю только если одновременно выполнены два условия: найдены надёжные релевантные источники и семантическая энтропия ответов ниже порога (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/