3,583 papers
arXiv:2512.04351 72 3 дек. 2025 г. FREE

RDS (Radial Dispersion Score): простая метрика неуверенности через разброс ответов

КЛЮЧЕВАЯ СУТЬ
Критический баг существующих метрик неуверенности: когда LLM генерирует два противоположных ответа ('да' vs 'нет'), стандартный EigenScore показывает низкую неуверенность — центроид попадает посередине на единичной сфере, дисперсия схлопывается в радиальное измерение, метрика не видит противоречия. RDS решает проблему антиподальных кластеров: вместо квадратов расстояний (L2-норма) использует сумму модулей (L1-норма) — большие расстояния не квадратируются, метрика сохраняет чувствительность к выбросам. Метод позволяет детектировать случаи когда модель одновременно уверена в двух противоположных ответах — самый опасный тип галлюцинаций. Принцип: генеришь 10 вариантов ответа, переводишь в векторы через sentence encoder, измеряешь суммарное расстояние от центра облака — большой разброс = модель исследует несколько гипотез, маленький = уверена в одном ответе.
Адаптировать под запрос

TL;DR

RDS — метрика неуверенности модели, которая измеряет геометрический разброс вариантов ответа в пространстве эмбеддингов. Генеришь 10 вариантов ответа на один вопрос, каждый переводишь в числовой вектор через sentence encoder, вычисляешь центр этого облака точек, затем суммируешь расстояния от каждой точки до центра — большой разброс = высокая неуверенность, маленький = модель уверена.

Существующие методы измерения неуверенности LLM либо слишком сложны (требуют кластеризацию ответов по смыслу — хрупко и чувствительно к настройкам), либо требуют доступ к внутренним состояниям модели (недоступно для API), либо нужна калибровка на отдельном датасете. EigenScore — простая геометрическая альтернатива — сильно недооценивает неуверенность в критическом случае: когда модель генерирует два противоположных по смыслу ответа ("да" vs "нет"), центроид оказывается ровно посередине на единичной сфере, почти вся дисперсия схлопывается в радиальное измерение, остальные направления показывают близкий к нулю разброс, и метрика ошибочно сигналит низкую неуверенность.

RDS использует L1-норму (сумму абсолютных значений координат) вместо L2-нормы (суммы квадратов), что даёт более сильную реакцию на разброс и лучше ловит антиподальные (противоположные) кластеры ответов. Взвешенная версия RDS_w учитывает вероятности генерации каждого ответа — варианты с низкой вероятностью (возможно шумовые) влияют меньше на итоговую оценку. Метод естественно даёт per-sample оценку для каждого отдельного ответа — можно выбрать лучший из N вариантов (best-of-N selection).


🔬

Схема метода

Агрегатная оценка неуверенности (для всей выборки ответов):

ШАГ 1: Сгенерировать N ответов (N=10) на один вопрос через sampling
ШАГ 2: Перевести каждый в эмбеддинг через sentence encoder → N векторов
ШАГ 3: Вычислить центроид (среднюю точку) всех векторов
ШАГ 4: Посчитать L1-расстояние от каждого вектора до центроида → N чисел
ШАГ 5: Суммировать все расстояния → RDS score (чем больше = выше неуверенность)

Per-sample оценка (для каждого отдельного ответа):

Для каждого ответа: L1-расстояние от его эмбеддинга до центроида
→ Ответы близкие к центру = надёжные
→ Ответы далёкие от центра = выбросы, низкая уверенность

⚠️ Требует sentence encoder (модель для перевода текста в векторы) — недоступно в обычном чате, нужен API или код.


🚀

Пример применения принципа

⚠️ Точный метод RDS требует sentence encoder. Но принцип "генерируй много — смотри на разброс" можно применить вручную или через симуляцию в LLM.

Задача: Проверить юридический документ — понять насколько модель уверена в своей интерпретации спорного пункта.

Применение принципа вручную:

  1. Запусти ChatGPT 5 раз (можно в новых чатах) с одним вопросом: "Что означает пункт 3.2 в этом договоре? [текст пункта]"
  2. Сравни ответы:
    • Если все 5 интерпретаций похожи (одна идея разными словами) → модель уверена
    • Если ответы сильно различаются (противоречат друг другу) → модель не уверена, нужна консультация юриста

Промпт для симуляции через LLM:

Вопрос: [твой вопрос]

Сгенерируй 5 разных вариантов ответа, используя sampling (разные формулировки, углы зрения).

Затем оцени:
1. Насколько эти варианты семантически похожи (шкала 0-10, где 0=полностью разные, 10=идентичны)
2. Есть ли среди них противоречащие друг другу
3. Вывод: высокая или низкая уверенность в ответе

Формат:
- Вариант 1: [...]
- Вариант 2: [...]
...
- Оценка похожести: X/10
- Противоречия: да/нет
- Уверенность: высокая/низкая

Результат:

Модель сгенерирует 5 вариантов ответа, сама оценит их разброс и выдаст вердикт о своей уверенности. Если разброс большой (низкая похожесть, есть противоречия) — знак что нужна дополнительная проверка, модель галлюцинирует или работает на границе своих знаний.


🧠

Почему это работает

LLM генерирует текст автоагрессивно — токен за токеном, выбирая следующий из распределения вероятностей. При высокой неуверенности (недостаточно данных, ambiguous вопрос) разные запуски sampling дают семантически разные траектории генерации — модель исследует несколько возможных ответов.

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

L1-норма более чувствительна к выбросам чем L2-норма (квадратичная). В критическом случае антиподальных кластеров (два противоположных ответа типа "да" vs "нет"), центроид оказывается ровно посередине на единичной сфере. EigenScore (сумма квадратов) схлопывается — почти вся дисперсия в радиальном направлении, остальные измерения близки к нулю → недооценка неуверенности. RDS (сумма модулей) сохраняет чувствительность — большие расстояния не квадратируются, метрика остаётся высокой → правильно детектирует высокую неуверенность.

Вероятности генерации (RDS_w) дают дополнительный сигнал: если модель присвоила ответу низкую вероятность, он скорее шумовой — взвешенная версия сдвигает центроид к высоковероятным ответам, усиливая штраф для низковероятных выбросов.

Per-sample scoring работает по принципу self-consistency: ответы близкие к центроidu (к большинству или высоковероятным) — надёжные, далёкие — подозрительные. Это естественно вытекает из геометрии, не требует дополнительных эвристик.


📋

Шаблон промпта

📌

Симуляция принципа RDS через LLM

⚠️ Это не точный RDS (требует sentence encoder), но симуляция принципа "разброс = неуверенность".

Задача: {опиши задачу или задай вопрос}

Шаг 1: Сгенерируй 7 независимых вариантов ответа. Используй разные углы, формулировки, не копируй предыдущие.

Шаг 2: Для каждой пары ответов оцени семантическую близость по шкале 0-1 (0=противоположные, 1=идентичны).

Шаг 3: Вычисли среднюю попарную близость по всем парам.

Шаг 4: Интерпретация:
- Средняя близость > 0.7 → Высокая уверенность (ответы согласуются)
- 0.4 < близость < 0.7 → Средняя уверенность (есть вариативность)
- Близость < 0.4 → Низкая уверенность (ответы противоречат, высокий риск галлюцинаций)

Шаг 5: Выдай финальный ответ:
- Рекомендуемый ответ: [консенсус или вариант с максимальной близостью к остальным]
- Уровень уверенности: [высокая/средняя/низкая]
- Предупреждения: [если низкая уверенность — укажи противоречия]

Плейсхолдеры: - {опиши задачу или задай вопрос} — твой конкретный вопрос или задача


📌

Для ручной проверки (без LLM симуляции)

1. Задай один и тот же вопрос ChatGPT/Claude 5-10 раз (можно в новых чатах или через "regenerate")
2. Выпиши все ответы
3. Оцени глазами:
   - Все похожи (одна идея, разные слова) → Модель уверена ✅
   - Есть 2-3 разных подхода → Средняя уверенность ⚠️
   - Сильно противоречат друг другу → Модель не уверена ❌
4. При низкой уверенности: перепроверь через другие источники, уточни вопрос, добавь контекст

🚀 Быстрый старт — вставь в чат:

Вот техника для проверки твоей уверенности в ответе. Адаптируй под мою задачу: [опиши задачу].

[вставить шаблон выше]

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


⚠️

Ограничения

⚠️ Требует инфраструктуру: Точный метод RDS требует sentence encoder (модель для перевода текста в векторы) — недоступно в обычном чате, нужен API или код. Шаблоны выше — симуляция принципа, не точная имплементация.

⚠️ Взвешенная версия требует вероятности: RDS_w использует token-level probabilities — доступно только в некоторых API (OpenAI, Anthropic предоставляют через logprobs параметр, не в обычном чате).

⚠️ Стоимость: Генерация 10-40 вариантов ответа увеличивает расход токенов в 10-40 раз — используй для критически важных задач (юридические документы, медицинские консультации, финансовые решения), не для рутины.

⚠️ Разброс ≠ ошибка: Высокий RDS означает модель исследует несколько гипотез, не обязательно что все неправильные. Может быть несколько корректных ответов на ambiguous вопрос. Используй как сигнал для проверки, не как вердикт.

⚠️ Зависимость от encoder: В исследовании более крупные sentence encoders (all-roberta-large-1024d) показали хуже результат чем компактные (all-miniLM-384d) на длинных reasoning traces — большие модели страдают от representation collapse на синтетических текстах.


🔍

Как исследовали

Команда из Deakin University (Австралия) взяла 4 датасета вопросов (научные QA: SciQ, GPQA; математика: Arithematics, SVAMP) и 4 современных LLM (Falcon3-7B, Gemma2-9B, Llama3.1-8B, Llama3.2-3B). Для каждого вопроса генерировали N=10 ответов через multinomial sampling (temperature=1), переводили в эмбеддинги через sentence encoder (all-MiniLM-L6-v2, 384-мерный), считали RDS и сравнивали с 9 baseline методами (semantic entropy, EigenScore, PRO, self-consistency и др.).

Метрика успеха: Area Under ROC Curve (AUC) — насколько хорошо uncertainty score разделяет правильные и неправильные greedy ответы модели. Правильность определяли через exact match (математика) или ROUGE-L F1 > 0.3 (QA задачи), как в предыдущих работах.

Что удивило: RDS и RDS_w выиграли почти везде — средний AUC 79.7% vs 77.7% у второго места (EigenEmbed). Разрыв особенно большой на математических задачах (+3-5%), где ответы имеют высокую лексическую вариативность (одна цифра/знак отличия → семантически далеко) — именно в таких случаях геометрия эмбеддингов работает лучше чем eigenvector-подходы.

Unexpected insight: Self-Consistency (просто считай сколько раз повторился ответ) силён на математике (топ-3), но проваливается на QA — работает только когда есть exact match, не подходит для свободной формы.

Robustness по N: При увеличении числа сэмплов до N=40 semantic entropy и clustering методы (SE, Deg, SD) деградируют — дополнительные низковероятные сэмплы добавляют шум в кластеризацию. RDS/RDS_w остаются стабильны или даже улучшаются — метод толерантен к шумовым генерациям.

Encoder ablation: Более крупные sentence encoders (768d, 1024d) хуже работали чем компактный 384d на сложных задачах — большие contrastive модели страдают от representation collapse на длинных синтетических reasoning traces, не видели такие тексты при обучении.


💡

Адаптации и экстраполяции

📌

🔧 Техника: Упрощённая проверка через консистентность поколений

Если нет доступа к sentence encoder, но нужно быстро проверить уверенность модели:

Промпт:

Задача: {твой вопрос}

Сгенерируй 3 независимых ответа. После каждого поставь "---".

Затем оцени: насколько эти 3 ответа согласуются друг с другом?
- Если все говорят одно и то же (консенсус) → пометь "✅ Высокая уверенность"
- Если есть расхождения → пометь "⚠️ Проверь дополнительно"
- Если противоречат → пометь "❌ Низкая уверенность, галлюцинации"

Эффект: Быстрая проверка без инфраструктуры. Модель сама играет роль "детектора разброса". Не так точно как RDS, но сигнал better than nothing.


📌

🔧 Техника: Best-of-N через явное ранжирование

Если модель даёт несколько вариантов ответа, используй принцип "близость к центру = надёжность":

Промпт:

У меня есть 5 вариантов ответа на вопрос "{вопрос}":

1. {вариант 1}
2. {вариант 2}
3. {вариант 3}
4. {вариант 4}
5. {вариант 5}

Для каждого варианта вычисли "семантическую близость к консенсусу остальных" (шкала 0-10).

Ранжируй варианты по близости (10=максимально согласуется с большинством, 0=выброс).

Формат:
- Вариант X: близость Y/10
...
- Рекомендация: Вариант [номер] (максимальная близость к консенсусу)

Эффект: Симуляция per-sample RDS scoring. Модель выбирает вариант который "ближе к центру масс" остальных — по принципу RDS это наиболее надёжный ответ.


📌

🔧 Экстраполяция: Комбинация с Chain-of-Thought для прозрачности

Если нужно не только детектировать неуверенность, но и понять ГДЕ модель сомневается:

Промпт:

Задача: {вопрос}

Шаг 1: Сгенерируй 3 варианта решения с рассуждениями (Chain-of-Thought).

Шаг 2: Для каждого варианта:
- Укажи какие факты/предположения использовал
- Оцени свою уверенность в каждом факте (высокая/средняя/низкая)

Шаг 3: Сравни 3 варианта:
- Где рассуждения расходятся? 
- Какие факты вызывают споры между вариантами?

Шаг 4: Финальный вывод:
- Консенсусный ответ: [если есть]
- Точки неуверенности: [где расхождения]
- Рекомендация: [что проверить дополнительно]

Эффект: RDS показывает что есть разброс, Chain-of-Thought показывает где и почему. Получаешь не только uncertainty score, но и прозрачность — видишь какие конкретно шаги/факты вызывают разногласия между вариантами.


🔗

Ресурсы

Distance Is All You Need: Radial Dispersion for Uncertainty Estimation in Large Language Models Авторы: Manh Nguyen, Sunil Gupta, Hung Le Applied Artificial Intelligence Initiative, Deakin University, Australia


📋 Дайджест исследования

Ключевая суть

Критический баг существующих метрик неуверенности: когда LLM генерирует два противоположных ответа ('да' vs 'нет'), стандартный EigenScore показывает низкую неуверенность — центроид попадает посередине на единичной сфере, дисперсия схлопывается в радиальное измерение, метрика не видит противоречия. RDS решает проблему антиподальных кластеров: вместо квадратов расстояний (L2-норма) использует сумму модулей (L1-норма) — большие расстояния не квадратируются, метрика сохраняет чувствительность к выбросам. Метод позволяет детектировать случаи когда модель одновременно уверена в двух противоположных ответах — самый опасный тип галлюцинаций. Принцип: генеришь 10 вариантов ответа, переводишь в векторы через sentence encoder, измеряешь суммарное расстояние от центра облака — большой разброс = модель исследует несколько гипотез, маленький = уверена в одном ответе.

Принцип работы

Представь точки на сфере (нормализованные эмбеддинги текстов). Если модель уверена — все 10 точек в одной куче, центроид рядом с ними. Если не уверена — точки разбросаны, центроид болтается посередине, далеко от каждой точки. L1-норма (сумма |x| + |y| + |z|...) острее реагирует на расстояния чем L2 (сумма x² + y² + z²...) — квадраты сглаживают разницу между близкими и далёкими точками, модули сохраняют линейную чувствительность. В критическом случае двух антиподальных кластеров ('согласен' на севере сферы, 'не согласен' на юге) центроид застревает ровно в центре сферы — L2 даёт низкий разброс по угловым направлениям (схлопывается), L1 суммирует полные расстояния от центра до каждой точки и правильно показывает высокую неуверенность. Взвешенная версия учитывает вероятности генерации — варианты с низкой вероятностью (шумовые) тянут центроид слабее.

Почему работает

LLM генерирует текст автоагрессивно — токен за токеном из распределения вероятностей. При высокой неуверенности (ambiguous вопрос, недостаток данных) разные запуски sampling дают семантически разные траектории — модель исследует несколько возможных ответов. В пространстве эмбеддингов семантически близкие тексты образуют плотные кластеры, противоположные по смыслу — на разных концах. L1-норма не сглаживает расстояния квадратированием — сохраняет линейную чувствительность к каждой координате. Когда модель выдаёт 5 'да' и 5 'нет', центроид оказывается посередине на сфере — каждая точка на расстоянии ~1.0 от центра. L2-норма схлопывает это в радиальное измерение (все точки на одинаковом радиусе от центра), угловые направления дают близкий к нулю разброс → метрика врёт что неуверенность низкая. L1-норма суммирует |расстояние по всем осям| — полная дистанция от центра до каждой антиподальной точки попадает в сумму → метрика правильно сигналит высокую неуверенность. Per-sample scoring работает по принципу self-consistency: ответы близкие к центроиду (к большинству) — надёжные, далёкие — подозрительные выбросы.

Когда применять

Критически важные решения где цена ошибки высока → юридические документы (интерпретация спорных пунктов договора), медицинские консультации (диагностика по симптомам), финансовые прогнозы (оценка рисков инвестиций). Особенно когда нужно детектировать противоречивые ответы — модель генерирует и 'рекомендую покупать' и 'советую продавать' одновременно. НЕ подходит для рутинных задач — генерация 10-40 вариантов увеличивает расход токенов в 10-40 раз, используй только когда цена ошибки оправдывает затраты.

Мини-рецепт

⚠️ Точный метод требует sentence encoder (модель для перевода текста в векторы) — недоступно в обычном чате, нужен API или код. Ниже симуляция принципа через LLM:

1. Множественная генерация: Задай один вопрос 7-10 раз (можно через 'regenerate' или в новых чатах). Для ChatGPT/Claude API используй temperature=0.8 и top_p=0.95 для разнообразия ответов.

2. Оценка разброса вручную: Выпиши все ответы, оцени глазами — все похожи (одна идея разными словами) → модель уверена ✅. Есть 2-3 разных подхода → средняя уверенность ⚠️. Сильно противоречат → модель не уверена ❌.

3. Или через LLM-симуляцию: Дай промпт Сгенерируй 7 независимых вариантов ответа на [вопрос]. Затем оцени попарную семантическую близость (0-1) между всеми парами, вычисли среднюю. Если средняя > 0.7 — высокая уверенность, 0.4-0.7 — средняя, < 0.4 — низкая (риск галлюцинаций).

4. Интерпретация: Низкая уверенность = перепроверь через другие источники, добавь контекст в промпт, уточни вопрос. Используй как сигнал для проверки, не как вердикт — высокий разброс может означать что на вопрос есть несколько корректных ответов.

Примеры

[ПЛОХО] : Посоветуй стоит ли инвестировать в компанию X на основе их финотчёта — модель выдаст один ответ, не проверишь противоречия. Если модель внутренне колебалась между 'покупать' и 'продавать', ты не узнаешь.
[ХОРОШО] : Задача: оценить инвестиционную привлекательность компании X по финотчёту. Сгенерируй 7 независимых вариантов рекомендации (покупать/держать/продавать) с обоснованием. Для каждой пары оцени насколько выводы согласуются (0=противоречат, 1=идентичны). Вычисли среднюю согласованность. Если < 0.5 — укажи какие факторы вызывают противоречие, это сигнал что нужен deeper analysis — модель сгенерирует варианты, сама оценит разброс, если детектирует противоречия (часть говорит 'покупать', часть 'продавать') — выдаст предупреждение о высокой неуверенности.
Источник: Distance Is All You Need: Radial Dispersion for Uncertainty Estimation in Large Language Models
ArXiv ID: 2512.04351 | Сгенерировано: 2026-01-09 00:28
📖 Простыми словами

RDS (Radial Dispersion Score): простая метрика неуверенности через разброс ответов

arXiv: 2512.04351

Нейросети не знают, что они врут, они просто подбирают слова по вероятности. Когда модель уверена, она долбит в одну точку, но если знаний не хватает, её начинает «разносить» по разным вариантам. Метод RDS (Radial Dispersion) ловит этот момент через чистую геометрию. Мы заставляем модель ответить на один вопрос десять раз и смотрим, насколько далеко эти ответы разлетелись друг от друга в пространстве смыслов. Если все десять вариантов крутятся вокруг одной мысли — модель уверена. Если их раскидало по разным углам — она явно галлюцинирует или сомневается.

Это как спросить дорогу у прохожего, который не уверен в маршруте. Один раз он скажет «идите прямо», второй — «кажется, направо», а в третий вообще предложит сесть на автобус. Формально он каждый раз дает четкий ответ, но если наложить эти советы друг на друга, получится каша. Геометрический разброс в этом случае — это расстояние между «прямо» и «на автобусе». Чем шире этот разрыв, тем меньше стоит доверять такому советчику.

Технически это работает через эмбеддинги — перевод текста в набор координат. Мы берем пачку ответов, превращаем их в точки в пространстве и находим центр облака. Дальше простая арифметика: считаем сумму расстояний от каждой точки до этого центра. Если точки сбились в плотную кучу, RDS будет низким, и ответу можно верить. Если же точки разлетелись, как дробь из дробовика, значит, модель просто тыкает пальцем в небо, и перед нами высокая неуверенность.

Авторы тестировали это на текстах, но принцип универсален для любой генерации. Неважно, пишет ли нейронка код, ставит ли диагноз или пересказывает статью — если при повторных попытках её «шатает» по смыслу, значит, база знаний пуста. Семантические траектории в пространстве векторов показывают реальную уверенность лучше, чем любые внутренние логиты или вероятности токенов, которые часто врут.

Короче, хватит верить модели на слово — нужно смотреть на кучность стрельбы. Если ответы разлетаются в разные стороны, значит, модель просто генерирует белый шум, пытаясь угадать правильный путь. RDS превращает абстрактную «неуверенность» в конкретное число, по которому можно сразу понять: перед тобой экспертный ответ или уверенный бред сивой кобылы. Кто не научится мерить этот разброс, тот так и будет кормить пользователей галлюцинациями.

Работа с исследованием

Адаптируйте исследование под ваши задачи или создайте готовый промпт на основе техник из исследования.

0 / 2000
~0.5-2 N-токенов ~10-30с
~0.3-1 N-токенов ~5-15с