3,583 papers
arXiv:2610.31662 73 22 окт. 2026 г. FREE

Selective Auditing: адаптивный порог уверенности, который сам решает, какие ответы ИИ отправлять на проверку человеку

КЛЮЧЕВАЯ СУТЬ
Если проверять только сомнительные ответы ИИ, вы никогда не узнаете о его уверенных ошибках. Метод выборочного аудита позволяет держать долю пропущенных ошибок около заданной цели (например, 10%) и при этом читать как можно меньше ответов вручную. Сомнительное проверяется всегда, а из уверенного случайно берут 5%, и найденная там ошибка весит как 20. Это взвешивание по обратной вероятности: одна пойманная ошибка «говорит» о ещё 19 таких же непроверенных. Гарантия держится при любой оценке уверенности, даже кривой, и без дообучения.
Адаптировать под запрос
⚡

TL;DR

Selective auditing (выборочный аудит) — это правило, по которому каждый ответ ИИ либо принимается автоматически, либо уходит на проверку человеку. У каждого ответа есть оценка уверенности от 0 до 1. Её даёт сама модель или отдельный агент-проверяющий. Всё, что ниже порога, проверяется всегда. Всё, что выше, проверяется случайно, с малой вероятностью («выборочная страховка»). Каждая найденная ошибка двигает порог.

Главная проблема: оценке уверенности модели нельзя слепо доверять. Она бывает завышена, и вы не знаете, сколько ошибок прячется среди «уверенных» ответов. Если проверять только неуверенное, ошибки в уверенной зоне вы никогда не увидите. Порог так и останется неправильным. Если проверять всё подряд, вы тратите деньги и время людей.

Авторы решают это так. Чтобы порог был честным, часть уверенных ответов нужно проверять случайно. Найденную там ошибку засчитывают с большим весом: она «представляет» много таких же непроверенных. Благодаря этому доля пропущенных ошибок остаётся около заданной цели (например, 10% от всех ошибок) при любом потоке данных и без предположений о качестве оценок уверенности.

🔬

Схема метода

ВХОД:  α — допустимая доля пропущенных ошибок (напр. 10%)
       γ — вероятность случайной проверки «уверенных» ответов (напр. 5%)
       η — шаг сдвига порога
       τ — стартовый порог (напр. 0,5)

КАЖДЫЙ ОТВЕТ ИИ (по очереди):
ШАГ 1: получить оценку уверенности C (от 0 до 1)
ШАГ 2: C < τ → проверяет человек (всегда)
        C ≥ τ → проверяет человек с вероятностью γ, иначе принимаем без проверки
ШАГ 3: если проверка была и ошибка найдена → сдвинуть порог:
        τ ← τ + η · (1 − π − α) / π
        где π = 1 при проверке «ниже порога», π = γ при случайной проверке
ШАГ 4: если проверки не было → порог не меняется

Это реализуется скриптом или автоматизацией, не одним промптом. Ядро алгоритма (шаги 1–4) занимает около 15 строк кода.

🚀

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

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

Задача: Селлер на Wildberries и Ozon использует ИИ-агента, который отвечает на вопросы покупателей и сортирует обращения: «возврат», «брак», «жалоба». Обращений около 2000 в день. Менеджер не может прочитать всё. Ему нужно, чтобы не более 10% реальных ошибок агента доходило до клиентов непроверенными. При этом читать он хочет как можно меньше.

Промпт 1 — для агента-проверяющего (даёт оценку уверенности):

Ты — строгий контролёр качества службы поддержки маркетплейса.
Тебе дают: обращение покупателя и ответ нашего ИИ-агента.

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

Верни строго JSON:
{"confidence": число от 0 до 1, "reason": "одно предложение"}

0 = ответ точно ошибочный или опасный, 1 = точно корректный.
Не завышай оценку: если сомневаешься — ставь ниже 0,7.

Обращение: {обращение}
Ответ агента: {ответ}

Промпт 2 — для Claude Code или Cursor (собирает сам механизм выбора):

Напиши Python-скрипт «выборочный аудит» для потока ответов ИИ.

Параметры: alpha=0.1, gamma=0.05, eta=0.01, стартовый порог tau=0.5.

Для каждого ответа с оценкой уверенности C из [0,1]:
1. Если C < tau → pi = 1 (проверка обязательна).
   Иначе pi = gamma (проверка случайная, с вероятностью gamma).
2. Бросить монетку: H = 1 с вероятностью pi, иначе H = 0.
3. Если H = 1 → вывести ответ в очередь на проверку человеку,
   дождаться результата e (1 = ошибка, 0 = нет ошибки).
   Если H = 0 → принять автоматически, порог не менять.
4. Если H = 1: tau = tau + eta * (1 - pi - alpha) * e / pi.

Сохраняй в CSV: время, C, tau, pi, H, e.
Раз в неделю считай долю пропущенных ошибок и долю проверенных ответов.

Результат: Агент-проверяющий выдаёт оценку уверенности для каждого ответа. Скрипт отправляет менеджеру примерно все сомнительные ответы и небольшую случайную долю «уверенных». Порог со временем подстраивается: если случайные проверки находят ошибки среди «уверенных», порог растёт и проверок становится больше. Если ошибок там нет, проверок становится меньше. Доля пропущенных ошибок держится около 10% по теории алгоритма. Конкретные доли проверок зависят от вашего потока и качества проверяющего.

🧠

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

Слабость: оценка уверенности модели — это текст, который она сгенерировала. Она не гарантирует точность. Модель может уверенно ошибаться. Если проверять только то, где она сомневается, вы не узнаете о её уверенных ошибках. У вас нет обратной связи по этой зоне, и порог невозможно настроить.

Сильная сторона: случайная проверка даёт несмещённую выборку. Если проверять уверенные ответы с вероятностью 5%, найденная ошибка «говорит» о том, что среди остальных 95% непроверенных вероятно есть ещё около 19 таких же. Поэтому ошибку из случайной проверки засчитывают с весом 1/γ. Это называется inverse probability weighting (взвешивание по обратной вероятности).

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

Рычаги управления: - α (допустимая доля пропущенных ошибок). Выше α — меньше проверок, больше риска. Для денег и безопасности ставьте 1–5%, для черновых текстов можно 20%. - γ (случайная проверка). Выше γ — быстрее обучается порог, но дороже. Ниже — дешевле, но порог медленнее реагирует. По теории γ не может быть больше 1−α. - η (шаг порога). Больше — быстрее адаптация, но порог «дёргается». Меньше — стабильнее, но медленнее реагирует на изменения. - Источник оценки. Отдельный агент-проверяющий обычно лучше самооценки: он не «привязан» к своему ответу. - Калибровка (Алгоритм 1 в статье). Можно дополнительно «выправлять» оценки онлайн, чтобы они лучше предсказывали правильность. Это экономит проверки, не ломая гарантию.

📋

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

Метод — это алгоритм, не промпт. Поэтому шаблон — это задание для кодового ассистента (формулы сохранены как в статье):

Напиши скрипт «выборочный аудит» (selective auditing) для потока решений ИИ.

Параметры: alpha={допустимая_доля_пропущенных_ошибок}, gamma={вероятность_случайной_проверки},
eta={шаг_порога}, стартовый порог tau={стартовый_порог}.

Вход для каждого ответа: оценка уверенности C из [0,1] от {источник_оценки}.

Правила:
1. pi = 1, если C < tau; иначе pi = gamma.
2. H ~ Bernoulli(pi): H=1 — отправить на проверку человеком.
3. Если H=1 — получить результат проверки e (1 = ошибка, 0 = верно),
   вызвав {способ_получения_проверки}.
4. Если H=1 — обновить порог: tau = tau + eta * (1 - pi - alpha) * e / pi.
5. Если H=0 — принять автоматически, tau не менять.

Логируй: время, C, tau, pi, H, e.
Раз в {период} считай: долю проверенных ответов и оценку доли пропущенных ошибок
(найденные случайной проверкой ошибки среди непроверенных, взвешенные на 1/gamma).

Что подставлять: - {допустимая_доля_пропущенных_ошибок} — 0,01–0,2 в зависимости от цены ошибки. - {вероятность_случайной_проверки} — 0,03–0,1. Не больше 1 − alpha. - {шаг_порога} — 0,005–0,05. Подберите на пробном потоке. - {источник_оценки} — отдельный агент-проверяющий (лучше) или самооценка модели. - {способ_получения_проверки} — очередь в Telegram, Google Sheets, CRM, форма.

🚀 Быстрый старт — вставь в чат с Claude/ChatGPT/Cursor:

Вот шаблон алгоритма выборочного аудита. Адаптируй под мою задачу: [твоя задача].
Задавай вопросы, чтобы заполнить поля.

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

LLM спросит про цену ошибки (чтобы выбрать alpha), объём потока (чтобы выбрать gamma и eta), откуда берётся оценка уверенности и как человек сообщит результат проверки. Без этих данных параметры придётся подбирать наугад. Она возьмёт структуру из шаблона и напишет готовый скрипт или сценарий для вашей платформы.

⚠️

Ограничения

⚠️ Нужен скрипт или автоматизация: метод не применить одним промптом в чате. Нужно хранить порог, бросать случайные «монетки» и записывать результаты проверок. Это 15–30 строк кода, который можно собрать через LLM, но руками в таблице это неудобно.

⚠️ Нужен поток с регулярными ошибками: гарантия точности зависит от числа ошибок в потоке. Если ошибки редкие (скажем, раз на тысячи решений), строгих гарантий нет. Авторы предлагают отдельное расширение для таких случаев, но оно в доступной части статьи не разобрано.

⚠️ Нужна честная проверка: алгоритм предполагает, что человек-аудитор всегда исправляет ошибку правильно. Если проверяющий сам ошибается, гарантия теряется.

⚠️ Случайная проверка — обязательная часть: если выбросить её «для экономии», порог перестанет адаптироваться. Ошибки в уверенной зоне станут невидимыми.

⚠️ Гарантия касается среднего: контролируется доля ошибок в среднем за период. Отдельный неудачный день или клиент может получить ошибочный ответ. Для критичных случаев (медицина, деньги, безопасность) нужны дополнительные правила.

⚠️ Оптимальный алгоритм (Алгоритм 2) сложнее: он требует AdaHedge и дуальных переменных. Из практики подходит базовый вариант с аддитивным порогом, который авторы сами называют практичным.

🔍

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

Авторы поставили задачу так. ИИ принимает решения по очереди. Для каждого есть оценка уверенности. Нужно решить, проверять ли его человеком, при этом доля пропущенных ошибок не должна превышать заданного α. Всё это в режиме онлайн, без предположений о том, откуда берутся данные. Данные могут даже подстраиваться под алгоритм.

Они разработали семейство алгоритмов с доказательствами (теоремы про контроль ошибок). Базовый вариант — аддитивный порог (Теорема 1). Затем — вариант с онлайн-калибровкой оценок (Алгоритм 1, Теорема 2). Затем — оптимально эффективный алгоритм (Алгоритм 2): он асимптотически проверяет не больше, чем нужно, даже против враждебных данных. Для оптимальности они опирались на теорию онлайн-оптимизации с ограничениями (Mannor et al., 2009).

Авторы подчёркивают отличие от соседней работы (Kiyani et al., 2026). Их метод даёт двустороннюю гарантию: ошибка близка к α, а не просто не выше. И оценка точнее: O(1/T) вместо O(1/√T). Кроме того, метод Kiyani «проверяет чаще, чем нужно». Это показано в сравнении.

Эксперименты — на трёх задачах: фильтрация вредных запросов к LLM, качественная аннотация текстов и разметка данных. Заявлено, что методы держат заданный уровень ошибок на практике и существенно сокращают нагрузку на проверяющих относительно baseline. Конкретных цифр и перечня моделей в доступном фрагменте статьи нет, поэтому масштаб экономии здесь не оценить.

Главный вывод для практики: случайная проверка уверенных ответов — не лишние траты, а источник информации. Без неё порог слепнет.

💡

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

Это наши идеи, они не из статьи.

🔧 Техника: упростить без кода → «минимальная страховка». Если скрипт собрать нельзя, возьмите лишь принцип: проверяйте всё с оценкой ниже фиксированного порога (например, 0,7) и ещё 5% случайных ответов из остальных. Вручную сверяйте раз в неделю: сколько ошибок нашлось среди «уверенных»? Если больше допустимого, поднимите порог. Гарантий уже не будет, но вы увидите слепую зону, которую иначе не заметить.

Экстраполяция: связка «агент-проверяющий + аудит» для кода. Агент пишет изменения в репозитории, второй агент выдаёт оценку риска. В CLAUDE.md или правилах Cursor вы прописываете: «изменения с риском выше 0,8 идут на автоматический мерж, остальные — на ревью, плюс 5% случайных изменений тоже на ревью». Скрипт ведёт порог. Это перенос идеи на разработку, в статье он не проверялся.

🔗

Ресурсы

  • Reliable AI-Assisted Decisions via Selective Auditing — Isaac Gibbs (University of Toronto), Elise L. Han (Stanford University), Ryan J. Tibshirani (UC Berkeley), Tijana Zrnic (Stanford University).
  • Связанные работы: Kiyani et al. (2026) — простая онлайн-процедура с контролем ошибок, с которой авторы сравнивают метод; Mannor et al. (2009) — теория онлайн-оптимизации с ограничениями; Yu et al. (2026), Sinha & Vaze (2024) — primal-dual методы; Gibbs & Candès (2021) — онлайн conformal prediction.

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

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

Если проверять только сомнительные ответы ИИ, вы никогда не узнаете о его уверенных ошибках. Метод выборочного аудита позволяет держать долю пропущенных ошибок около заданной цели (например, 10%) и при этом читать как можно меньше ответов вручную. Сомнительное проверяется всегда, а из уверенного случайно берут 5%, и найденная там ошибка весит как 20. Это взвешивание по обратной вероятности: одна пойманная ошибка «говорит» о ещё 19 таких же непроверенных. Гарантия держится при любой оценке уверенности, даже кривой, и без дообучения.

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

Процесс простой. Каждый ответ получает оценку уверенности от 0 до 1. Ниже порога — проверка всегда. Выше порога — проверка случайная, с вероятностью 5%. Нашли ошибку среди уверенных — порог резко растёт, и проверок становится больше. Не нашли — порог медленно ползёт вниз, и проверок меньше. Порог не настраивают руками: его двигают сами найденные ошибки. Это как охранник в магазине. Подозрительных досматривает всегда. Плюс каждого двадцатого наугад. Если у «приличных» нашёл украденное, ужесточает правила. Почему ошибка в уверенной зоне двигает порог сильно, а в сомнительной слабо? Среди уверенных ответов вы смотрите на 5% и должны оценить остальные 95%. Там ошибка — сигнал тревоги. В сомнительной зоне вы и так видите всё.

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

Оценка уверенности — это просто текст, который сгенерировала модель. Она может уверенно врать. Если смотреть только на неуверенное, обратной связи по уверенной зоне нет совсем. Порог невозможно настроить. Случайная проверка даёт честную выборку. При вероятности 5% каждая найденная ошибка считается с весом 20. Алгоритму не нужно верить модели на слово: он сам измеряет, сколько ошибок прячется среди уверенных ответов. Прикол: плохая оценка уверенности гарантию не ломает. Проверок просто будет больше. Хорошая оценка — проверок меньше. А отдельный агент-проверяющий обычно точнее самооценки: он не «привязан» к своему ответу.

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

Поддержка клиентов, модерация, сортировка обращений → большие потоки однотипных решений (например, 2000 обращений в день на маркетплейсе), особенно когда ошибки случаются регулярно, а проверка человеком дорогая. НЕ подходит: для редких ошибок (раз на тысячи решений), там строгих гарантий нет. Не подходит и без скрипта: одним промптом в чате это не сделать. Для медицины, денег и безопасности нужны дополнительные правила, потому что гарантия работает «в среднем», а не для каждого клиента.

Мини-рецепт

1. Прикинь цену ошибки: от неё зависит alpha, допустимая доля пропущенных ошибок. Для денег и безопасности ставь 0,01–0,05. Для черновых текстов можно 0,2.
2. Назначь контролёра: отдельный агент ставит каждому ответу оценку уверенности от 0 до 1. Задай роль: <роль>строгий контролёр качества службы поддержки. Добавь: «не завышай оценку, если сомневаешься — ставь ниже 0,7».
3. Заставь Claude Code или Cursor написать скрипт: alpha=0.1, gamma=0.05, eta=0.01, стартовый порог 0.5. Это около 15 строк кода.
4. Подключи очередь проверки: Telegram, Google Таблица или CRM. Человек отвечает «ошибка» или «верно».
5. Прогони пробный поток: подбери eta. Больше шаг — порог быстрее реагирует, но дёргается. Меньше — стабильнее, но медленнее.
6. Не режь случайную проверку «для экономии»: без неё порог перестаёт учиться, а ошибки среди уверенных становятся невидимыми.
7. Раз в неделю смотри два числа: долю проверенных ответов и оценку доли пропущенных ошибок.

Примеры

[ПЛОХО] : Проверяй вручную только те ответы агента, где уверенность ниже 0,7
[ХОРОШО] : Напиши Python-скрипт «выборочный аудит». Параметры: alpha=0.1, gamma=0.05, eta=0.01, стартовый порог tau=0.5. Для каждого ответа с уверенностью C: если C < tau, то pi=1, иначе pi=gamma. Брось монетку: проверка с вероятностью pi. Если проверка была, дождись результата e (1 = ошибка, 0 = верно) и обнови порог: tau = tau + eta (1 - pi - alpha) e / pi. Если проверки не было, порог не меняй. Сохраняй в CSV: время, C, tau, pi, проверка, e. Разница: в плохом варианте порог мёртвый, а ошибки среди «уверенных» ответов никто не увидит. В хорошем 5% уверенных ответов случайно уходят человеку, и порог подстраивается под реальную долю ошибок.
Источник: ReliableAI-Assisted Decisions via Selective Auditing
ArXiv ID: 2610.31662 | Сгенерировано: 2026-10-26 15:20

Проблемы LLM

ПроблемаСутьКак обойти
Модель уверенно ошибается, и проверка «только сомнительного» этого не покажетПросишь модель оценить уверенность числом. Проверяешь людьми только ответы с низкой оценкой. Оценка бывает завышена. Ошибки в «уверенной» зоне остаются невидимыми. Обратной связи по этой зоне нет, поэтому порог не исправить. Это касается любого потока ответов: поддержка, классификация, разметка, извлечение данныхПроверяй не только сомнительное. Выбирай небольшую случайную долю «уверенных» ответов (3–10%) и проверяй её тоже. Так у тебя появляется честная выборка из зоны, которой ты доверяешь. Подробности в разделе «Методы»

Методы

МетодСуть
Выборочный аудит с самонастраивающимся порогом: меньше проверок при контролируемом рискеЧто делать. Каждому ответу даёшь оценку уверенности C от 0 до 1. Задай порог τ (старт, например, 0,5). Если C < τ, ответ проверяет человек всегда. Если C ≥ τ, проверка идёт случайно, с малой вероятностью γ (например, 5%). Остальное принимается без проверки. Как двигать порог. Проверка нашла ошибку? Тогда τ ← τ + η · (1 − π − α) / π. Здесь π = 1 для ответов ниже порога и π = γ для случайной проверки. α — допустимая доля пропущенных ошибок (например, 10%). η — шаг порога. Без проверки порог не меняется. Почему работает. Ошибка, найденная случайной проверкой «уверенных» ответов, сильно двигает порог вверх. Значит, проверок становится больше. Если ошибок там нет, порог медленно падает и проверок становится меньше. Метод сам находит, где прячутся ошибки. Он не требует точной оценки уверенности. Плохая оценка просто даёт больше проверок. Настройка. α: 1–5% для денег и безопасности, до 20% для черновиков. γ не больше 1 − α. Большой η даёт быструю, но нервную адаптацию. Малый η даёт стабильную, но медленную. Оценку уверенности лучше брать у отдельного агента-проверяющего: он не привязан к чужому ответу. Когда да: большой поток однотипных решений, ошибки регулярны, проверка человеком дорога. Когда нет: ошибки редкие (раз на тысячи), аудитор сам ошибается, нужна гарантия для каждого отдельного случая. Нужен скрипт. Одним запросом в чате это не сделать. Попроси Claude или Cursor написать ~15 строк кода с логом: время, C, τ, π, проверено ли, найдена ли ошибка
📖 Простыми словами

ReliableAI-Assisted Decisions via Selective Auditing

arXiv: 2610.31662

Нейросети обожают врать с каменным лицом. Их оценка уверенности от 0 до 1 — это не объективный факт, а обычный сгенерированный текст, в котором модель может уверенно нести полнейшую чушь. Если отправлять человеку на проверку только те задачи, где ИИ открыто сомневается, ты получишь слепую зону размером с дом: факапы с пометкой «уверен на 100%» будут тоннами утекать прямо в продакшн.

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

Метод selective auditing разруливает эту проблему в два шага. Всё, что упало ниже порога уверенности, система железно сливает на проверку живому человеку. А вот задачи из условно надёжной зоны проверяются случайно через выборочную страховку с маленькой вероятностью. Нашли ошибку там, где модель била себя пяткой в грудь — алгоритм тут же сдвигает порог, принуждая ИИ чаще звать человека.

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

Короче: никогда не верь ИИ на слово, особенно когда он строит из себя эксперта. Только случайный аудит уверенных ответов даёт честную калибровку, без которой порог фильтрации бесполезен. Настрой скрытую проверку надежных результатов, иначе будешь долго гадать, почему клиенты в ярости, пока логи рапортуют о стопроцентном успехе.

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

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

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