TL;DR
Voting Ensembles — техника, при которой модель отвечает на вопрос несколько раз независимо, после чего выбирается ответ по принципу голосования. Если достаточное число ответов совпадает (достигнут порог голосования k), это считается консенсусом. Если консенсуса нет — система выдаёт "нет уверенного ответа" вместо галлюцинации.
Модели часто дают разные ответы на один вопрос из-за обманчивости вопроса (deceptiveness δ) — когда неправильный ответ кажется правдоподобным, и растерянности (bewilderment η) — когда вопрос заставляет гадать. Исследователи показали: чем строже порог согласия (k приближается к n), тем меньше ответов, но выше доверие к ним. При мягком пороге (k=1, просто большинство) — максимум ответов, но ниже надёжность.
Метод работает так: вместо одного запроса делаете 5-50 независимых. Считаете частоту каждого ответа. Если доминирующий ответ превышает порог (например, 80% согласия при n=50, k=40) — принимаете его. Если нет — честно признаёте неопределённость. На арифметике trust вырос с 61% до 88%, на клинических данных — с 70% до 93%, при потере всего 20-30% coverage (доли вопросов с ответом).
Схема метода
НЕЗАВИСИМЫЕ ЗАПРОСЫ:
Одинаковый вопрос → Модель (попытка 1) → Ответ A
→ Модель (попытка 2) → Ответ A
→ Модель (попытка 3) → Ответ B
...
→ Модель (попытка n) → Ответ A
ПОДСЧЁТ И РЕШЕНИЕ:
Частота A: 35 из 50
Частота B: 10 из 50
Прочие: 5 из 50
Если k=40 (80% порог) → Ответ A НЕ достиг порога → "Нет консенсуса"
Если k=25 (50% порог) → Ответ A достиг порога → Финальный ответ: A
Все шаги можно выполнить вручную в чате или попросить модель симулировать множественные попытки.
Пример применения
Задача: Вы юрист и проверяете, может ли клиент расторгнуть договор досрочно без штрафа по конкретной статье ГК РФ. Ошибка дорого стоит — неверный совет приведёт к иску.
Промпт:
Вопрос: Может ли арендатор расторгнуть договор аренды нежилого помещения досрочно
без штрафа, если арендодатель не устранил протечку крыши в течение 2 месяцев
после письменного уведомления?
Дай мне 10 независимых юридических мнений. Каждое мнение — это отдельное рассуждение,
как будто ты разный юрист. Не копируй предыдущие ответы. После каждого мнения укажи:
- Вывод: ДА / НЕТ / НЕЯСНО
- Ссылка на статьи ГК РФ
В конце посчитай:
- Сколько раз ответ "ДА"
- Сколько раз ответ "НЕТ"
- Сколько раз ответ "НЕЯСНО"
Если 8 из 10 или больше сходятся на одном выводе — это консенсусный ответ.
Если меньше — признай, что вопрос неоднозначный.
Результат:
Модель выдаст 10 блоков рассуждений с конкретными статьями ГК РФ. В конце — подсчёт: например, 9 из 10 мнений сошлись на "ДА, можно расторгнуть по ст. 619 и 620 ГК РФ". Это высокая уверенность — можете использовать. Если разброс 5-3-2 (ДА-НЕТ-НЕЯСНО) — нет консенсуса, нужна консультация с живым юристом или дополнительные документы.
Почему это работает
LLM генерирует текст вероятностно — на один вопрос может быть много вариантов продолжения. Если вопрос обманчивый (неправильный ответ выглядит убедительно) или сбивает с толку (много плюс-минус правдоподобных вариантов), модель в разных попытках даст разные ответы.
При этом модель хорошо умеет генерировать множество независимых вариантов и находить доминирующие паттерны. Voting ensembles используют эту способность: если правильный ответ очевиден для модели — он появится в большинстве попыток. Если модель не уверена — ответы разбросаны, и система честно скажет "нет консенсуса" вместо уверенной галлюцинации.
Рычаги управления:
- Число попыток (n): Больше попыток → точнее оценка разброса. Для простых вопросов достаточно 5-10, для критических — 20-50.
- Порог согласия (k/n):
- Мягкий порог (k=1, простое большинство) → максимум coverage, риск галлюцинаций остаётся
- Средний порог (k=0.6n, 60% согласия) → баланс coverage и trust
- Жёсткий порог (k=0.8n, 80%+ согласия) → мало ответов, но почти нет галлюцинаций
- Температура модели: Выше температура → больше вариативность ответов → легче отличить "уверенные" вопросы (консенсус при любой температуре) от "неуверенных" (разброс растёт).
Шаблон промпта
Вопрос: {твой_вопрос}
Дай мне {n} независимых ответов на этот вопрос. Каждый ответ — это отдельное рассуждение,
как будто ты каждый раз заново думаешь над вопросом. Не копируй предыдущие ответы.
Формат каждого ответа:
Попытка X: [твой ответ]
В конце посчитай частоту каждого уникального ответа.
Если {k} или больше ответов совпадают — это консенсусный ответ, выдай его как финальный.
Если ни один ответ не набрал {k} голосов — признай, что вопрос неоднозначный и консенсуса нет.
Финальный ответ: [...]
Уверенность: Высокая / Нет консенсуса
Подстановка:
{твой_вопрос}— твой вопрос{n}— число попыток (5-50, для критических вопросов больше){k}— порог согласия (для высокого trust используй 0.8n, для баланса — 0.6n)
🚀 Быстрый старт — вставь в чат:
Вот техника Voting Ensembles для повышения надёжности ответов.
Адаптируй шаблон под мою задачу: [опиши свою задачу — например, "проверить корректность
медицинского диагноза", "выбрать между двумя бизнес-стратегиями", "решить сложную
математическую задачу"].
Задавай вопросы, чтобы настроить:
- Сколько попыток нужно (n)?
- Какой порог согласия (k)?
- Нужно ли объяснение в каждой попытке или только финальный ответ?
[вставить шаблон выше]
LLM спросит какой уровень критичности у задачи (чтобы выбрать n и k) и в каком формате удобнее получить ответы — потому что для разных задач оптимальны разные комбинации: юридический анализ требует строгого порога (k=0.8n) и подробных объяснений, а математическая задача может обойтись k=0.5n и краткими ответами. Модель возьмёт паттерн голосования из шаблона и адаптирует под твою задачу.
Ограничения
⚠️ Токены: n попыток = в n раз больше токенов. Для n=50 критический вопрос съест много бюджета. Используй высокий n только для вопросов, где цена ошибки высока.
⚠️ Время: Множественные запросы занимают время. Если нужен мгновенный ответ — метод не подходит.
⚠️ Не решает фундаментальное незнание: Если модель не знает факт (cutoff date, специфическая информация вне обучения), все попытки дадут галлюцинацию. Voting Ensembles помогает обнаружить неуверенность, но не добавляет знания. Для неизвестных фактов используй web search.
⚠️ Системные ошибки: Если все модели обучены на одних данных с одной ошибкой — консенсус будет на неправильном ответе. Метод помогает против случайных галлюцинаций, но не против систематических bias.
Как исследовали
Команда построила теоретический фреймворк для вопросов с дискретными ответами. Каждый вопрос характеризуется двумя параметрами: δ (насколько вопрос обманчивый — есть ли привлекательный неправильный ответ) и η (насколько вопрос сбивает с толку — много ли случайных вариантов). Из этой модели вывели три теоремы:
- Accuracy максимизируется при k=1 — самый мягкий порог всегда даёт максимум правильных ответов
- Yield (охват) тоже максимален при k=1 — понятно, ведь при k=1 почти всегда есть консенсус
- Для больших ансамблей (n→∞) итоговая accuracy стремится к 100% если δ<0.5, к 0% если δ>0.5, к 50% если δ=0.5
Это значит: если правильный ответ хоть чуть популярнее неправильного у модели — в пределе получим правильный ответ. Если неправильный популярнее — все попытки сойдутся на нём.
Теорию проверили на Llama3-70B-instruct и Llama3-8B-instruct:
- Синтетические арифметические задачи (умножение многозначных чисел, выражения с несколькими операциями)
- Реальные клинические данные (500 эхокардиограмм — извлечение фракции выброса, степени стеноза, регургитации)
Результаты подтвердили теорию: для арифметики при увеличении k с 1 до 40 (из n=50) trust вырос с 61% до 88% на умножении, с 48% до 65% на сложных выражениях. Для клинических данных — с 70% до 93% на митральной регургитации. При этом yield (охват) закономерно упал — с 90%+ до 60-70%, потому что жёсткий порог отсеивает вопросы без явного консенсуса.
Удивительное: метод работает даже с chain-of-thought промптингом. Изначально боялись, что CoT добавит детерминизма и убьёт вариативность, но нет — CoT поднял базовую accuracy (модель решает более сложные задачи), а voting ensembles поверх CoT всё равно дали прирост trust.
Инсайт для практики: если нужна максимальная coverage (все вопросы с ответом) — используй k=1 (простое большинство). Если нужна максимальная надёжность и готов пожертвовать coverage — поднимай k до 0.7-0.9 от n. Золотая середина — k≈0.6n: большинство вопросов получат ответ, но галлюцинации отсеются.
Ресурсы
Increasing LLM Response Trustworthiness Using Voting Ensembles
Shir Goldfinger (University of Pennsylvania), Aparna Nair-Kanneganti (Harvard University), Trevor J. Chan (University of Pennsylvania), Emily Mackay, Brian Anthony (MIT), Alison Pouch (University of Pennsylvania)
