TL;DR
Исследование показывает, что методы оценки уверенности LLM (confidence estimation) — насколько модель уверена в своём ответе — страдают от проблемы, которую не видят стандартные метрики. Существует пять основных способов получить оценку уверенности: взять вероятности токенов (Prob.), откалибровать их (Platt Scaling), попросить модель оценить свою уверенность (Verbalized Confidence), спросить "это правда или ложь?" (P(True)), или обучить отдельную модель-калибратор (Calib1). Все они измеряются через калибрацию (совпадает ли уверенность с точностью) и дискриминацию (выше ли уверенность для правильных ответов).
Главная находка: хорошая калибрация не означает надежность на практике. Метод может показывать отличное совпадение уверенности и точности, но при этом давать разную оценку уверенности для одного и того же ответа при изменении формулировки промпта — или наоборот, выдавать одинаковую оценку для ответов с разным смыслом. Например, Verbalized Confidence (когда просишь модель: "Оцени свою уверенность от 0 до 1") может дать 0.95 при формулировке "какова твоя уверенность" и 0.05 при "насколько ты уверен" для одного и того же ответа. P(True) часто выдаёт максимальную уверенность 1.0 для любого ответа, даже если модель ошибается. Prob. и PS чувствительны к изменениям, но нестабильны при перефразировании промпта.
Исследователи ввели три новые метрики: Robustness (P-RB) — стабильность уверенности при разных формулировках промпта, Stability (A-STB) — одинаковая уверенность для семантически эквивалентных ответов ("овариум", "яичник", "ovary"), Sensitivity (A-SST) — разная уверенность для ответов с разным смыслом. Тестирование на 9 моделях (GPT-4o, Mistral, Llama, Qwen, OLMo) показало: ни один метод не даёт идеального баланса. Calib1 (отдельная обученная модель) — самый стабильный, но требует обучения. VC и P(True) — самые нестабильные к формулировкам. Prob. — золотая середина для большинства задач.
Почему это важно
Когда работаешь с LLM в важных ситуациях — проверка фактов для статьи, юридическая консультация, бизнес-анализ — хочется понимать: насколько модель уверена в своём ответе. Классический подход: "если модель уверена — вероятно, права". Но это работает только если метод оценки уверенности стабилен и чувствителен.
Стабильность означает: если ты перефразировал промпт или модель дала семантически тот же ответ другими словами — оценка уверенности не должна прыгать. Если ты спросил "Назови столицу Франции" и "Какой город является столицей Франции", а уверенность скакнула с 0.9 до 0.3 — метод сломан.
Чувствительность означает: если модель дала другой ответ (не перефразировку, а смысловое отличие) — уверенность должна измениться. Если метод выдаёт 0.8 и для "Париж", и для "Лион" — он бесполезен.
Калибрация и дискриминация (стандартные метрики) не ловят эти проблемы. Метод может быть отлично откалиброван (уверенность совпадает с точностью в среднем по датасету), но выдавать хаос на конкретных примерах. Или наоборот: выдавать всегда одно и то же значение (например, 0.5) — и быть формально калиброванным, но абсолютно бесполезным.
Пять способов узнать уверенность модели
1. Prob. — вероятности токенов
Модель генерирует текст по токенам, для каждого токена есть вероятность. Prob. берёт эти вероятности, перемножает и нормализует по длине ответа. Чем выше итоговое число — тем увереннее модель в своём выборе слов.
Плюсы: Чувствителен к изменениям в ответе, работает "из коробки", не требует дополнительных запросов.
Минусы: Не очень стабилен к перефразировкам промпта (уверенность может измениться при одинаковом ответе). Работает только если есть доступ к логитам (в ChatGPT/Claude в UI недоступно, нужен API).
2. Platt Scaling (PS) — калибровка вероятностей
Берёт Prob. и пропускает через формулу _c_ = 1/(1 + _e^(a·log(prob) + b)_), где _a_ и _b_ подобраны так, чтобы уверенность лучше совпадала с реальной точностью.
Плюсы: Лучше откалиброван, чем сырые вероятности.
Минусы: Те же проблемы, что у Prob., плюс нужно заранее обучить коэффициенты на данных.
3. Verbalized Confidence (VC) — попросить модель оценить себя
Самый простой способ: после ответа пишешь "Оцени свою уверенность в этом ответе от 0 до 1" — модель выдаёт число.
Плюсы: Работает в обычном чате, не требует API.
Минусы: Крайне нестабилен к формулировкам. Если спросить "какова вероятность" вместо "какова уверенность", число может измениться на 0.5-0.9. Если использовать шкалу 0-100% вместо 0-1 — тоже скачет. Чувствителен к изменениям, но хаотично.
4. P(True) — спросить "это правда?"
После ответа модели пишешь: "Правда ли, что [ответ модели]? Ответь True или False". Берёшь вероятность токена "True" как уверенность.
Плюсы: Стабилен к формулировкам.
Минусы: Слишком консервативен или слишком уверен — часто выдаёт либо 1.0, либо близко к 0. Плохо различает оттенки уверенности. Требует дополнительного запроса.
5. Calib1 — отдельная модель-калибратор
Обучаешь маленькую модель (классификатор), которая смотрит на вопрос и ответ, и предсказывает: правильный ответ или нет. Вероятность "правильно" = уверенность.
Плюсы: Самый стабильный к формулировкам промпта и перефразировкам ответа. Хорошая калибрация и дискриминация.
Минусы: Требует обучения на датасете с правильными ответами. Недоступно в обычном чате.
Пример применения
Задача: Проверяешь бизнес-гипотезу для клиента — запуск доставки фермерских продуктов в Москве. Модель выдала прогноз по спросу: "Потенциальная аудитория 150-200 тысяч человек, средний чек 2500₽". Нужно понять, насколько модель уверена в этой цифре.
Вариант 1 — Verbalized Confidence:
Ты дал прогноз: "Потенциальная аудитория 150-200 тысяч человек, средний чек 2500₽".
Оцени свою уверенность в этом прогнозе по шкале от 0 до 1, где:
- 0 = полностью неуверен, чистое предположение
- 0.5 = средняя уверенность, есть факторы "за" и "против"
- 1 = абсолютно уверен, опираюсь на надёжные данные
Напиши только число.
Результат: Модель выдаст число (например, 0.6). Но если ты перефразируешь "оцени свою уверенность" на "какова вероятность правильности", число может скакнуть до 0.9 или упасть до 0.2 — метод нестабилен.
Вариант 2 — P(True):
Ты дал прогноз: "Потенциальная аудитория доставки фермерских продуктов в Москве — 150-200 тысяч человек, средний чек 2500₽".
Правда ли это утверждение? Ответь True или False.
Результат: Модель скорее всего выдаст "True" с высокой вероятностью (близко к 1.0), даже если прогноз неточен — метод слишком уверенный.
Вариант 3 — комбинированная проверка:
Ты дал прогноз: "Потенциальная аудитория 150-200 тысяч человек, средний чек 2500₽".
1. Оцени уверенность от 0 до 1.
2. Перечисли факторы, которые поддерживают этот прогноз.
3. Перечисли факторы, которые его опровергают.
4. Если бы тебе нужно было поставить на этот прогноз деньги, какую сумму из 100₽ ты бы поставил?
Результат: Модель выдаст несколько индикаторов уверенности — число, аргументы, "ставку". Если числа расходятся (например, уверенность 0.8, но "поставил бы 30₽") — это сигнал о неоднозначности.
Как выбрать метод
Рычаги управления:
- Формулировка запроса уверенности — "уверенность", "вероятность", "certainty" дают разные результаты для VC. Тестируй несколько вариантов.
- Шкала — 0-1, 0-100%, 0-10 влияют на ответ. Для стабильности используй 0-1.
- Контекст проверки — если просишь модель оценить уверенность сразу после ответа (в том же сообщении) или в новом запросе — результат может отличаться.
Когда что использовать:
| Ситуация | Рекомендация | Почему |
|---|---|---|
| Нужна стабильная оценка при разных формулировках | Избегай VC, используй P(True) или Prob. (если есть API) | VC скачет от "уверенность" к "вероятность", P(True) стабилен |
| Нужна чувствительность к изменениям ответа | Используй Prob. или VC | Они реагируют на изменения в ответе, P(True) слишком консервативен |
| Работаешь в обычном чате без API | VC или P(True) | Остальные требуют доступа к логитам |
| Критически важное решение | Комбинируй методы: VC + P(True) + аргументация | Если методы дают разные оценки — копай глубже |
| Массовая проверка через API | Prob. или Calib1 (если обучил) | Быстро, без дополнительных запросов |
Практический совет: Для важных задач не полагайся на один метод. Запроси два-три способа оценки уверенности и сравни. Если модель говорит "уверенность 0.9", но на вопрос "True or False?" отвечает с вероятностью 0.5 — это красный флаг.
Шаблоны промптов
Базовая проверка уверенности (VC)
{твой_вопрос}
После ответа оцени свою уверенность по шкале от 0 до 1, где:
- 0 = полностью неуверен, случайное предположение
- 0.5 = средняя уверенность
- 1 = абсолютно уверен, опираюсь на проверенные данные
Формат ответа:
Ответ: {ответ}
Уверенность: {число от 0 до 1}
Что подставлять: {твой_вопрос} — любой вопрос к модели.
Проверка через P(True)
[Сначала получи ответ модели на твой вопрос]
Правда ли следующее утверждение: "{ответ_модели}"?
Ответь только True или False, без пояснений.
Что подставлять: {ответ_модели} — ответ, который модель дала на первом шаге.
Примечание: В API можешь посмотреть вероятность токена "True" — это и есть уверенность. В обычном чате модель просто скажет True/False, но можешь оценить это как 1/0.
Комбинированная проверка (самый надёжный)
{твой_вопрос}
После ответа выполни самопроверку:
1. Уверенность: Оцени от 0 до 1 насколько ты уверен в этом ответе.
2. Аргументы ЗА: Перечисли 2-3 факта, которые поддерживают твой ответ.
3. Аргументы ПРОТИВ: Перечисли 2-3 фактора, которые могут опровергнуть твой ответ или сделать его неточным.
4. Финальная оценка: Если бы тебе нужно было поставить на правильность этого ответа деньги, какую часть из 100₽ ты бы поставил?
Формат:
Ответ: {ответ}
Уверенность: {0-1}
Аргументы ЗА: {список}
Аргументы ПРОТИВ: {список}
Ставка: {сумма}₽
Что подставлять: {твой_вопрос} — любой вопрос.
Результат: Модель даст несколько независимых индикаторов. Если "Уверенность: 0.9" но "Ставка: 20₽" — модель сама чувствует слабость ответа. Если все индикаторы высокие (0.8+, ставка 80₽+, сильные аргументы ЗА и слабые ПРОТИВ) — можно доверять.
Быстрый старт для сложных случаев
Если не хочешь разбираться в методах, просто скопируй:
Я хочу получить надёжную оценку уверенности для твоего ответа.
Вопрос: {твой_вопрос}
После ответа:
1. Дай числовую оценку уверенности (0-1)
2. Объясни почему такая оценка
3. Ответь True/False на вопрос "Правда ли твой ответ?"
4. Скажи, какую ставку из 100₽ поставил бы на правильность
Если оценки противоречат друг другу — объясни почему.
Модель сама проведёт мульти-метод проверку и покажет где есть расхождения.
Ограничения
⚠️ Доступ к вероятностям: Prob. и PS работают только через API с доступом к логитам. В ChatGPT/Claude UI недоступны.
⚠️ Нестабильность VC: Verbalized Confidence может давать разброс 0.5-0.9 для одного ответа при разных формулировках запроса ("уверенность" vs "вероятность" vs "certainty"). Используй фиксированную формулировку или комбинируй с другими методами.
⚠️ Консервативность P(True): Часто выдаёт крайние значения (близко к 0 или 1), плохо различает нюансы уверенности между 0.3 и 0.7.
⚠️ Калибратор требует обучения: Calib1 — самый стабильный метод, но требует обучения на датасете с правильными/неправильными ответами. Недоступен без программирования.
⚠️ Ограничения GPT-4o judge: Исследование использовало GPT-4o для определения правильности ответов и семантической эквивалентности. В твоих задачах автоматическая проверка может быть неточной (особенно для субъективных вопросов или специфичных доменов).
⚠️ Уверенность ≠ правильность: Модель может быть очень уверена в неправильном ответе. Все методы измеряют внутреннюю оценку модели, не истинную правильность.
Ресурсы
Calibration Is Not Enough: Evaluating Confidence Estimation Under Language Variations Yuxi Xia, Dennis Ulmer, Terra Blevins, Yihong Liu, Hinrich Schütze, Benjamin Roth University of Vienna, University of Amsterdam, Northeastern University, LMU Munich
Связанные концепции: calibration (ECE, Brier score), discrimination (AUROC), Platt Scaling, P(True), linguistic confidence, consistency-based methods
