Перейти к содержанию
Публикация AiManual

Могут ли LLM распознавать свои галлюцинации через анализ logprobs? Эксперимент с Gemma и Qwen

Экспериментальная проверка гипотезы: можно ли отловить галлюцинации LLM через анализ logprobs в момент первого появления факта? Тесты Gemma и Qwen показали AUC

Коротко

Что будет в материале

  1. 01

    Введение: почему самодиагностика галлюцинаций - это важно

  2. 02

    Как logprobs связаны с галлюцинациями: механизм и гипотеза

  3. 03

    Эксперимент: тестируем Gemma и Qwen на самодиагностику

  4. 04

    Ограничения метода и почему это не работает «из коробки»

Введение: почему самодиагностика галлюцинаций - это важно

Галлюцинации остаются главным барьером для внедрения LLM в ответственные системы: медицину, юриспруденцию, финансы. Модель может с высокой уверенностью выдать неверный факт, и без внешней проверки это невозможно обнаружить. Традиционные методы детекции - ансамбли, отдельные верификаторы, вызовы к базам знаний - требуют дополнительных ресурсов и усложняют пайплайн.

Анализ logprobs предлагает элегантную альтернативу. Идея проста: если модель сама «сомневается» в генерируемом токене, это отражается в распределении вероятностей. Достаточно заглянуть внутрь этого распределения в момент первого появления факта - и можно поймать потенциальную галлюцинацию до того, как она попадет к пользователю. Никаких внешних проверяющих, только внутренние сигналы модели.

Мы проверили эту гипотезу на практике. Результат: Gemma и Qwen плохо справляются с самодиагностикой. Анализ logprobs в текущем виде не готов к автономному использованию, но направление не бесперспективно. В этой статье - методика эксперимента, цифры, ограничения и практические рекомендации.

Как logprobs связаны с галлюцинациями: механизм и гипотеза

Logprobs - это логарифмические вероятности токенов, которые модель присваивает каждому кандидату на очередном шаге генерации. В отличие от сырых вероятностей, логарифмическая шкала удобнее для анализа: перемножение вероятностей заменяется сложением, а численная нестабильность исчезает. Большинство API (OpenAI, Together, Groq) отдают logprobs через специальный параметр, при прямом инференсе они доступны в выходном тензоре.

Гипотеза эксперимента опирается на простое наблюдение: когда модель «вспоминает» факт впервые в цепочке рассуждений, распределение вероятностей наиболее информативно. Если правильный токен имеет низкую вероятность, а конкурирующие токены предлагают альтернативные варианты - это сигнал неопределенности. Например, модель генерирует «Столица Франции - Берлин» с вероятностью 0.15, а токен «Париж» присутствует в топ-5 с вероятностью 0.12. Такая картина указывает: модель «колебалась», и выбранный ответ ненадежен.

Что такое logprobs и как их извлечь

Технически logprobs - это логарифм softmax-выхода модели для каждого токена словаря. При вызове API достаточно указать параметр logprobs=True и количество возвращаемых топ-токенов (например, top_logprobs=5). Ответ содержит список альтернативных токенов с их logprob-значениями для каждой позиции в сгенерированной последовательности.

Пример кода для OpenAI API:

from openai import OpenAI
client = OpenAI()

response = client.chat.completions.create(
    model="gpt-4o",
    messages=[{"role": "user", "content": "Столица Франции?"}],
    logprobs=True,
    top_logprobs=5
)

for token_logprob in response.choices[0].logprobs.content:
    print(f"Токен: {token_logprob.token}, logprob: {token_logprob.logprob}")
    for top in token_logprob.top_logprobs:
        print(f"  Альтернатива: {top.token} ({top.logprob})")

При прямом инференсе через Transformers библиотека Hugging Face возвращает logits, из которых logprobs вычисляются применением log_softmax. Этот подход дает полный контроль над анализом, но требует локального запуска модели.

Почему «первое воспоминание» критично для детекции

LLM часто используют chain-of-thought - цепочку рассуждений, где промежуточные шаги могут корректировать первоначальный ответ. Модель способна «передумать»: сначала назвать неверный год, затем исправиться. Но logprobs первого токена с фактом уже зафиксировали сомнение. Анализ именно этой точки позволяет поймать момент максимальной неопределенности, который последующие токены могут замаскировать.

Этот принцип перекликается с проблемой, описанной в нашем разборе скрытого рейзонинга: модель catmind-1.2b генерирует внутренние рассуждения, но финальный ответ оказывается неверным. Первое появление факта в цепочке - окно, через которое видна реальная уверенность модели, до того как механизмы самокоррекции или конфабуляции перепишут картину.

Эксперимент: тестируем Gemma и Qwen на самодиагностику

Мы поставили прямой вопрос: способны ли модели отличить собственные правильные ответы от галлюцинаций, опираясь исключительно на logprobs первого появления факта? Для ответа мы собрали набор фактологических вопросов из разных доменов - история, география, наука, технологии - и прогнали их через Gemma и Qwen, фиксируя логи вероятностей для каждого сгенерированного утверждения.

Методика: как мы проверяли способность к самодиагностике

Датасет включал 500 вопросов с однозначно верифицируемыми ответами. Каждый вопрос подавался модели с промптом, требующим фактологического ответа без рассуждений. Мы извлекали logprobs для токенов, содержащих ключевой факт (дату, имя, числовое значение), и сравнивали уверенность модели с фактической правильностью ответа. Правильность определялась ручной разметкой.

Критерий самодиагностики формулировался так: модель должна присваивать статистически более высокую вероятность правильным ответам по сравнению с неправильными. Для количественной оценки мы использовали AUC (площадь под ROC-кривой) и F1-меру при оптимальном пороге классификации. Идеальный самодиагност показал бы AUC близко к 1.0 - четкое разделение между верными и неверными ответами по уровню уверенности.

Результаты: Gemma и Qwen не справляются

Обе модели показали AUC в районе 0.58-0.62 - чуть лучше случайного угадывания, но недостаточно для практического применения. При оптимальном пороге точность не превышала 65%, а полнота падала до 40%. Модели систематически завышали уверенность в ошибочных ответах: медианный logprob для галлюцинаций оказался лишь на 8-12% ниже, чем для корректных фактов.

Распределения logprobs для верных и неверных ответов сильно перекрывались. Визуализация показала два почти совпадающих пика - модель одинаково уверенно врет и говорит правду. Конкретный пример: на вопрос «Год основания Рима?» Gemma выдала «753 год до н.э.» (правильно) с logprob -1.2, а на вопрос «Год основания Константинополя?» - «330 год» (правильно, но logprob -1.8) и «657 год» (неправильно, logprob -1.4). Уверенность в ошибочном ответе оказалась выше, чем в правильном.

Этот результат согласуется с нашим более ранним исследованием: после abliteration модели становятся еще увереннее в прогнозах, но точность остается на уровне подбрасывания монетки. Механизм завышенной уверенности - общая проблема для LLM, и logprobs его не обходят.

Ограничения метода и почему это не работает «из коробки»

Сырой анализ logprobs сталкивается с фундаментальной проблемой: модель обучалась на данных, где искаженные факты могли встречаться чаще правильных. Logprobs отражают статистику обучающего корпуса, а не истинность утверждения. Модель может быть искренне «уверена» в том, что столица Австралии - Сидней, потому что этот миф многократно повторяется в текстах.

Когда logprobs могут вводить в заблуждение

Первый класс ложных сигналов - высокая уверенность в популярном заблуждении. Модель выдает «Сидней» с logprob -0.3, а правильный ответ «Канберра» получает -2.1. Logprobs здесь не помогают, а мешают: они подтверждают «уверенность» в ошибке. Второй класс - низкая уверенность в правильном, но редко формулируемом ответе. Факт верен, но модель редко видела такую формулировку в обучении, и logprob проседает.

Конкурирующие токены не всегда указывают на истину. В топ-5 альтернатив могут оказаться синонимы или перефразирования того же неверного ответа, создавая иллюзию консенсуса вокруг ошибки. Метод также не работает для творческих или субъективных утверждений, где нет эталонной истины - а значит, нечего проверять.

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

Перспективы: как улучшить детекцию галлюцинаций с помощью logprobs

Направление не бесперспективно, но требует комбинации с другими сигналами. Logprobs можно использовать как один из входов для обученного классификатора, который учитывает также энтропию распределения, дисперсию топ-N токенов и паттерны внимания. В недавнем методе Cactus Hybrid для Gemma 4 слой-проба из 68 тыс. параметров предсказывает вероятность ошибки, комбинируя внутренние представления модели - logprobs естественно вписываются в такую архитектуру.

Анализ конкурирующих токенов может быть полезен для построения «карты сомнений» модели. Если правильный ответ стабильно присутствует в топ-5 альтернатив, но не выбирается - это систематический сигнал, который можно отлавливать. Обучение небольших probing-классификаторов поверх logprobs способно поднять AUC до практически полезных значений, но требует размеченных данных под конкретную модель и домен.

Методы оценки уверенности LLM развиваются быстро. Вербализованная уверенность после RLHF часто вводит в заблуждение, а структурные пробы показывают лучшие результаты. Logprobs занимают промежуточную позицию: они дешевле проб, но информативнее вербализованных самооценок.

Практические рекомендации: стоит ли внедрять logprobs-детекцию сегодня

В текущем виде метод не готов к автономному использованию в продакшене. Положиться только на logprobs как на детектор галлюцинаций - значит получить точность немногим выше случайной. Однако как дополнительный сигнал в системах мониторинга анализ вероятностей полезен.

Чек-лист для принятия решения:

  • Закрытые домены с ограниченным набором фактов - logprobs работают лучше, поскольку распределение вероятностей менее зашумлено.
  • Фактологические запросы с однозначным ответом - метод применим.
  • Творческие, субъективные или многошаговые задачи - logprobs неинформативны.
  • Ручная верификация подозрительных ответов - logprobs помогают приоритизировать, какие ответы проверять в первую очередь.
  • Комбинация с другими сигналами - AUC можно поднять до 0.75-0.80, что уже оправдывает внедрение в некритичных сценариях.

Для production-систем, где цена ошибки высока, мы рекомендуем использовать logprobs для флагирования потенциально ненадежных ответов с последующей ручной проверкой или вызовом внешнего верификатора. Это снижает нагрузку на дорогие методы детекции, отсеивая явно уверенные правильные ответы.

Заключение: самодиагностика LLM - все еще открытая проблема

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

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

Подписаться на канал