19 июня 2024 года в Nature вышла работа исследователей OATML из Оксфорда: Detecting hallucinations in large language models using semantic entropy. Авторы предлагают смотреть не на разброс слов, а на разброс смыслов в нескольких сэмплах одного и того же ответа. Это важно, потому что многие LLM ошибаются не просто неверно, а именно произвольно: сегодня дают один уверенный ответ, завтра другой.
Сразу уточним историческую рамку. Это разбор конкретной работы середины 2024 года и моделей, доступных авторам тогда: LLaMA 2 Chat, Falcon Instruct, Mistral Instruct и GPT-4 v.0613. Мы не подменяем этот разбор более новыми системами 2025–2026 годов, а фиксируем, что именно показано в первоисточнике и что из этого следует для практики.
Коротко
- Semantic entropy оценивает неопределённость LLM в пространстве смысла, а не токенов: разные формулировки одного и того же ответа не считаются отдельными версиями мира.
- Метод нацелен не на все ошибки, а на конфабуляции — случаи, когда модель произвольно выдумывает ответ и меняет его при повторном сэмплировании.
- По данным авторов статьи в Nature, при усреднении по 30 сочетаниям задача-модель semantic entropy дала лучший AUROC среди сравниваемых базовых методов: 0.790 против 0.691 у naive entropy, 0.698 у P(True) и 0.687 у embedding regression.
- Для длинных биографий авторы ввели отдельную схему: сначала разбить абзац на атомарные факты, затем пересобрать вопросы и уже по ним считать семантическую энтропию.
- Практический смысл метода — не доказать истинность, а вовремя понять, когда ответу модели лучше не доверять без поиска, внешней верификации или человека в контуре.
Контекст: почему semantic entropy вообще понадобилась
У большинства простых сигналов надёжности есть одна и та же проблема: они слишком тесно привязаны к поверхности текста. Обычная энтропия токенов, перплексия или разброс по строкам считают, что два по-разному сформулированных ответа — это уже два разных исхода. Но для пользователя это не так: если модель говорит одно и то же разными словами, это скорее признак устойчивого знания, а не неуверенности.
Именно эту проблему ещё в работе Semantic Uncertainty: Linguistic Invariances for Uncertainty Estimation in Natural Language Generation от 2023 года авторы назвали проблемой semantic equivalence. Идея была простой: в задачах генерации нужно считать неопределённость не по строкам, а по кластерам одинакового смысла. Статья в Nature от 19 июня 2024 года — это уже расширенная журнальная версия этой линии: с более новыми на тот момент моделями, большим набором задач и отдельным экспериментом на длинных биографиях.
Важна и ещё одна развилка. Авторы сознательно сужают слово «галлюцинация» до более конкретного механизма — конфабуляции. Это не любая ложь модели и не любой неверный вывод. Конфабуляция — это когда модель отвечает неправильно и произвольно: если задать тот же вопрос ещё раз с другим случайным сэмплированием, смысл ответа может поменяться. Такой тип ошибки хорошо подходит под неопределённостный анализ, потому что сама модель демонстрирует внутреннее колебание.
Отсюда и главный тезис статьи: если вы можете увидеть, что модель распадается на несколько несовместимых смыслов, то вы получили полезный сигнал риска ещё до внешнего фактчекинга. Это особенно важно там, где у вас нет заранее размеченного датасета под конкретный домен и нет гарантии, что завтрашние запросы будут похожи на вчерашние.
Метод: как считается semantic entropy
Базовая процедура в статье выглядит так.
- Для одного вопроса модель несколько раз генерирует ответ при ненулевой случайности.
- Полученные ответы сравниваются на смысловую эквивалентность, а не на буквальное совпадение.
- Ответы группируются в кластеры одинакового смысла.
- Дальше энтропия считается уже не по отдельным строкам, а по распределению вероятностей между смысловыми кластерами.
Интуиция очень практична. Если почти все сэмплы попали в один и тот же смысловой кластер, модель, вероятно, знает, что отвечает. Если же сэмплы расходятся по нескольким несовместимым кластерам, риск конфабуляции выше.
H_sem(x) = - Σ_i p(C_i|x) log p(C_i|x)
Здесь C_i — смысловой кластер ответов на запрос x. В отличие от naive entropy, нас интересует не количество разных формулировок, а распределение массы вероятности между разными значениями ответа.
Почему это лучше обычной энтропии
Наивная токенная энтропия наказывает модель за перефразирование. Для свободной генерации это плохой сигнал: один и тот же факт можно выразить кратко, развёрнуто, с перестановкой слов или с разной степенью детализации. Semantic entropy пытается убрать именно эту лексическую вариативность и оставить только неопределённость по содержанию.
Как авторы определяют одинаковый смысл
В основе — проверка entailment, то есть логической совместимости и взаимного следования между ответами. Если два ответа двунаправленно согласуются по смыслу, они попадают в один кластер. В статье и сопровождающем коде это превращено в вполне инженерную процедуру кластеризации, а не в философский тезис о «значении вообще».
Что делать, если модель — чёрный ящик
Для стандартного варианта semantic entropy полезны вероятности генерации. Но в работе был и важный практический кейс: GPT-4 v.0613. Авторы прямо пишут, что на момент написания статьи этот интерфейс не давал нужных вероятностей токенов, поэтому для GPT-4 они использовали дискретную аппроксимацию semantic entropy — по частотам смысловых кластеров, без точных logprob.
Это важный момент для продакшена: метод можно применять не только в white-box режиме. По данным самих авторов, дискретный вариант работал сопоставимо со стандартным оценивателем в их постановке. Но это всё равно результат той же статьи, а не независимая внешняя репликация.
Как метод адаптировали к длинным текстам
Для абзаца биографии прямое повторное сэмплирование всей следующей фразы даёт много нерелевантного шума: модель может по-разному упорядочивать факты, а не сомневаться в самих фактах. Поэтому для набора FactualBio авторы делают обходной манёвр.
- Разбивают биографию на атомарные фактические утверждения.
- Автоматически реконструируют вопросы, на которые эти утверждения могли быть ответами.
- Сэмплируют новые ответы уже на эти вопросы.
- Считают semantic entropy по каждому утверждению и агрегируют её.
Это, по сути, превращает длинный текст обратно в набор проверяемых пропозиций. Для практиков это один из самых интересных фрагментов статьи: авторы показывают, что мера неопределённости может жить не только на уровне короткого QA-ответа, но и на уровне длинной генерации, если сначала правильно выбрать единицу анализа.
Результаты
Авторы оценивают метод в двух режимах: ответы-предложения на задачах QA и математики, а также длинные биографии. В первом режиме использовались TriviaQA, SQuAD 1.1, BioASQ 11B Task B 2023, NQ-Open и SVAMP; для каждого датасета брали по 400 train и 400 test примеров, хотя сама semantic entropy не использует обучающие метки.
| Постановка | Данные и модели | Метрика | Что показано в статье |
|---|---|---|---|
| Ответы длиной в одно предложение | TriviaQA, SQuAD 1.1, BioASQ 11B, NQ-Open, SVAMP; LLaMA 2 Chat 7B/13B/70B, Falcon Instruct 7B/40B, Mistral Instruct 7B | AUROC и AURAC | По данным авторов, при усреднении по 30 сочетаниям задача-модель semantic entropy получила AUROC 0.790; naive entropy — 0.691; P(True) — 0.698; embedding regression — 0.687. Авторы также пишут о стабильном диапазоне 0.78–0.81 AUROC по семействам LLaMA, Falcon и Mistral. |
| Длинные биографии, набор FactualBio | GPT-4 v.0613; 21 человек; 150 атомарных фактических утверждений, из них 45 неверных по ручной разметке | AUROC, AURAC, rejection accuracy | Дискретная semantic entropy, по сообщению авторов, превосходит self-check baseline и адаптированный P(True) по AUROC и AURAC. По rejection accuracy преимущество сохраняется, пока система отклоняет до 20% наиболее рискованных ответов. |
| Black-box вариант | GPT-4 v.0613 без доступа к вероятностям токенов | Сопоставление со стандартным оценивателем | Авторы утверждают, что дискретный вариант semantic entropy работает близко к стандартному и позволяет применять подход без logprob. Это полезно для API-моделей, но независимой валидации именно этого тезиса статья не даёт. |
Если перевести эти метрики на язык внедрения, AUROC показывает, насколько хорошо счёт разделяет верные и неверные ответы, а AURAC — насколько растёт итоговая точность, если системе разрешить воздерживаться от ответа там, где риск высок. Для системных инженеров именно второй показатель часто ближе к реальному продукту: не всегда нужно отвечать на всё, иногда выгоднее вовремя промолчать или отправить запрос в поиск.
Ещё одна сильная часть статьи — проверка на длинных текстах. Биографии в FactualBio в среднем намного длиннее коротких QA-ответов, и именно там часто проявляется практический риск LLM: модель выдаёт гладкий абзац, внутри которого часть фактов просто выдумана. Работа показывает, что смысловая неопределённость может служить сигналом и в таком режиме, если сначала декомпозировать ответ на атомарные утверждения.
Интерпретация
Главный вклад статьи — не в том, что она «убирает галлюцинации». Она показывает более узкую и честную вещь: у модели можно измерять не только уверенность в следующем токене, но и неуверенность в следующем смысле. Это гораздо ближе к реальной задаче надёжности в свободной генерации.
Второй важный вывод — semantic entropy полезна именно как сигнал маршрутизации. Если счёт низкий, ответ можно отдавать быстрее. Если средний — добавить ссылки, retrieval, повторный запрос или более дорогую модель. Если высокий — лучше включить воздержание, поиск или человека. Такой режим хорошо сочетается с продуктовой логикой selective generation, а не конкурирует с ней.
Наш комментарий
На наш взгляд, сила работы в том, что она снимает ложную дихотомию между двумя плохими стратегиями: либо безусловно доверять LLM, либо пытаться в каждом случае запускать тяжёлый внешний фактчекинг. Semantic entropy предлагает промежуточный слой управления риском. Это не проверка истины, а оценка того, насколько сама модель распадается на несколько несовместимых интерпретаций.
Для практики это особенно ценно в местах, где retrieval либо дорог, либо плохо определён. Например, в доменных помощниках без хорошего поискового индекса, в внутренних knowledge assistant-сценариях и в длинной генерации, где пользователю трудно заметить отдельную ошибку внутри гладкого текста. Но ставить этот счёт в одиночку как «датчик правды» было бы ошибкой: он лучше работает как gating-сигнал поверх пайплайна, а не как последняя инстанция.
Ограничения
Первое ограничение — предмет работы уже, чем слово «галлюцинации» в массовом употреблении. Авторы сами подчёркивают: semantic entropy хорошо подходит для конфабуляций, но не обязана ловить случаи, когда модель стабильно повторяет неверное утверждение, усвоенное из данных обучения. Если все сэмплы уверенно сходятся в одном неправильном смысле, энтропия будет низкой.
Второе — вычислительная цена. Классическая semantic entropy требует многократного сэмплирования и последующей смысловой кластеризации. Уже в follow-up работе Semantic Entropy Probes авторы прямо мотивируют новый метод тем, что исходный sampling-based подход слишком дорог для массового применения. Иначе говоря, статья в Nature убедительно показывает полезность сигнала, но не закрывает вопрос дешёвого инференса.
Третье — зависимость от смыслового judge-модуля. Кластеризация по значению — это не магия, а конкретная инженерная аппроксимация. В статье есть пример, где semantic entropy оказывается завышенной из-за слишком чувствительного различения между точной датой и годом. Это хороший урок: качество метода зависит не только от самой LLM, но и от того, как именно вы решаете задачу semantic equivalence.
Четвёртое — ограниченность экспериментального охвата. Биографический набор FactualBio небольшой: в статье это 21 человек и 150 атомарных утверждений, из которых 45 размечены как неверные. Для исследовательской демонстрации этого достаточно, но для сильных обобщений о длинной генерации во всех доменах — нет.
Пятое — историческая привязка к моделям середины 2024 года. В статье нет reasoning-моделей поздней волны, нет современных API-режимов с иным поведением logprob и нет анализа мультимодальных систем. Это не недостаток авторов, а просто граница применимости результатов. Если вы хотите переносить выводы на стек 2026 года, это уже будет инженерная гипотеза, а не прямой факт из статьи.
Вывод
Если свести работу к одной мысли, то semantic entropy — это способ измерять не «насколько разнообразны ответы», а «насколько модель колеблется между разными смыслами». Именно поэтому метод оказывается полезнее обычной токенной энтропии для ловли конфабуляций в свободной генерации.
Практический вывод тоже достаточно ясен. Semantic entropy стоит рассматривать не как замену RAG, фактчекингу или человеку, а как слой управления риском: когда отвечать, когда искать, когда воздерживаться. Для продакшена это, возможно, даже важнее, чем сам исследовательский результат по AUROC.
Источники
- Detecting hallucinations in large language models using semantic entropy
- Detecting hallucinations in large language models using semantic entropy (author PDF mirror)
- Detecting hallucinations in large language models using semantic entropy — OATML blog
- Semantic Uncertainty: Linguistic Invariances for Uncertainty Estimation in Natural Language Generation
- Language Models (Mostly) Know What They Know
- GitHub – jlko/semantic_uncertainty
- Semantic Entropy Probes: Robust and Cheap Hallucination Detection in LLMs
FAQ
- Semantic entropy ловит любые галлюцинации?
Нет. В этой работе метод нацелен прежде всего на конфабуляции: произвольные, нестабильные ошибки. Если модель стабильно повторяет один и тот же ложный факт, semantic entropy может быть низкой.
- Нужен ли доступ к logprob и скрытым состояниям?
Для стандартного варианта доступ к вероятностям полезен. Но в статье есть дискретная аппроксимация, которую авторы применили к GPT-4 v.0613 без доступа к вероятностям токенов.
- Сколько генераций нужно делать?
В постановке статьи для ответов длиной в одно предложение авторы использовали десять генераций, а для длинных биографий — отдельную процедуру с реконструкцией вопросов и тремя новыми ответами на каждый вопрос. Это авторская настройка эксперимента, а не универсальный стандарт для любого продакшена.
- Можно ли заменить semantic entropy RAG или внешнюю проверку фактов?
Скорее нет. Метод лучше использовать как сигнал маршрутизации: при высоком риске подключать поиск, retrieval, повторный запрос или человека.
