TL;DR
Selective Abstraction — техника, при которой LLM заменяет неуверенные детали на более общие (абстрактные) утверждения вместо удаления всего ответа. Метод работает через атомизацию текста: разбивает ответ на атомарные утверждения (atomic claims — короткие самодостаточные фразы, каждая выражает один факт), оценивает уверенность в каждом, генерирует последовательность абстракций от конкретного к общему, выбирает наименее детальную версию с достаточной уверенностью.
LLM в длинных текстах часто уверены в общих фактах, но неуверенны в деталях. Например, модель знает что Илон Маск родился в 1971 году, но не помнит точную дату — 28 июня. Традиционный подход "всё или ничего" выбрасывает всю информацию, даже если только одна деталь сомнительна. Авторы показывают на примере Google Bard: в 2023 году презентация бота провалилась из-за одной неверной детали — "JWST сделал первые снимки экзопланет". Убери слово "первые" — и утверждение верное. Цена ошибки — $100 млрд капитализации Alphabet за день.
Atom-wise SA решает через градацию детализации. Для каждого неуверенного утверждения модель генерирует цепочку от конкретного к общему: "родился 28 июня 1971" → "родился в июне 1971" → "родился в 1971" → "родился в 1970-х". Выбирается самая конкретная версия, в которой модель достаточно уверена. Затем утверждения собираются обратно в связный текст.
Схема метода
ЭТАП 1: Генерация
Модель создаёт первичный ответ на промпт
ЭТАП 2: Атомизация
Разбивка текста на атомарные утверждения (1 факт = 1 утверждение)
ЭТАП 3: Абстракция (в одном промпте с несколькими шагами)
ШАГ 3.1: Оценка уверенности для каждого атома → числовая оценка 0-100
ШАГ 3.2: Генерация последовательности абстракций для неуверенных атомов
→ цепочка от конкретного к общему
ШАГ 3.3: Оценка уверенности для каждой абстракции → числовые оценки
ШАГ 3.4: Выбор наименее абстрактной версии выше порога уверенности
ЭТАП 4: Реконструкция
Сборка финального текста из выбранных утверждений/абстракций
Примечание: Этапы 1-2-4 требуют отдельных запросов. Этап 3 можно выполнить в одном сложном промпте или разбить на отдельные запросы для каждого шага.
Пример применения
Задача: Пишешь контент-карточку про Аркадия Воложа для корпоративного сайта. Нужны биографические факты, но риск ошибки высокий — проверяющий придирается к деталям.
Промпт:
Напиши краткую биографию Аркадия Воложа (основатель Яндекса).
3-4 предложения. Включи: год рождения, где учился, когда основал Яндекс.
После генерации:
1. Разбей текст на отдельные утверждения (каждое — один факт)
2. Для каждого утверждения оцени свою уверенность от 0 до 100
3. Для утверждений с уверенностью ниже 80:
- Создай версии с уменьшающейся детализацией
- Оцени уверенность в каждой версии
- Выбери наименее общую версию с уверенностью ≥80
4. Собери финальный текст из выбранных утверждений
Покажи весь процесс: исходные утверждения, оценки, абстракции, финальный вариант.
Результат:
Модель выдаст пошаговый разбор: - Список атомарных утверждений с оценками уверенности - Для неуверенных фактов — последовательность абстракций (например: "родился 11 февраля 1964" → "родился в феврале 1964" → "родился в 1964") - Финальный текст, где сомнительные детали заменены на более общие формулировки
Вместо рискованного "родился 11 февраля 1964 в Атырау" получишь надёжное "родился в 1964 году в Казахстане".
Почему это работает
Слабость LLM: Модель не различает уровни уверенности внутри одного ответа. Она может быть на 95% уверена что Воложа родился в 1964, на 70% что в феврале, и на 40% что 11 февраля. Но генерирует всё с одинаковой "убедительностью". Традиционный подход — удаление всего утверждения при неуверенности — выбрасывает и надёжную часть.
Сильная сторона LLM: Модель хорошо оценивает относительную уверенность в разных формулировках одного факта. Если прямо спросить: "Насколько ты уверен в точной дате vs только в годе?" — она даст адекватную оценку. Также модель умеет генерировать иерархии обобщений — от конкретного к абстрактному.
Как метод использует силу: SA превращает внутреннюю неопределённость модели в явную градацию детализации. Вместо бинарного выбора "сказать или молчать", модель выбирает уровень детализации под свою уверенность. Это естественно для человеческой коммуникации: когда не помним точно, говорим более общо.
Рычаги управления:
Порог уверенности (80, 85, 90) — чем выше, тем более обобщённый результат. Для критичных задач ставь 90+, для черновиков хватит 70-75.
Глубина абстракции — можно ограничить сколько уровней обобщения генерировать. "Не более 3 уровней" → экономия токенов, но риск что не найдётся уверенная версия.
Формат вывода — можно попросить показывать процесс ("покажи все оценки и абстракции") или только результат ("верни только финальный текст"). Первое полезно для обучения и отладки.
Критерий уверенности — вместо числовой оценки можно использовать вербальные уровни ("высокая/средняя/низкая") или попросить модель объяснить источник неуверенности.
Шаблон промпта
{задача_генерации}
После создания ответа выполни selective abstraction:
ЭТАП 1: Атомизация
Разбей сгенерированный текст на атомарные утверждения.
Каждое утверждение = одно самодостаточное утверждение, выражающее один факт.
ЭТАП 2: Оценка уверенности
Для каждого утверждения оцени свою уверенность от 0 до 100.
ЭТАП 3: Генерация абстракций
Для каждого утверждения с уверенностью < {порог_уверенности}:
- Создай последовательность версий с уменьшающейся детализацией
- Для каждой версии оцени уверенность
- Выбери наименее общую версию с уверенностью ≥ {порог_уверенности}
- Если ни одна версия не достигает порога — пометь как "abstain"
ЭТАП 4: Реконструкция
Собери финальный текст из выбранных версий утверждений.
Сохрани связность и читаемость.
Выведи:
1. Исходные утверждения с оценками уверенности
2. Для изменённых утверждений — последовательность абстракций
3. Финальный текст
Заполнение плейсхолдеров:
- {задача_генерации} — основной промпт для генерации текста
- {порог_уверенности} — число от 0 до 100, обычно 75-85 для баланса, 90+ для критичных задач
🚀 Быстрый старт
Если полный шаблон кажется сложным, вставь в чат:
Вот шаблон Selective Abstraction — техника замены неуверенных деталей на общие утверждения.
Адаптируй под мою задачу: [опиши свою задачу генерации текста].
Задавай вопросы, чтобы заполнить поля и настроить под мой случай.
[вставить шаблон выше]
LLM спросит про: - Какой текст генерировать - Какой порог уверенности использовать - Показывать ли промежуточные шаги или только результат
Она возьмёт многоэтапную структуру из шаблона (атомизация → оценка → абстракция → реконструкция) и адаптирует формулировки под твою задачу. Не нужно разбираться в механике вручную — просто скопируй, вставь описание задачи, получи рабочий промпт.
Ограничения
⚠️ Только для фактуальных утверждений: Метод не работает для субъективных суждений, креативного письма, мнений. Абстракция "Фильм выдающийся" → "Фильм хороший" → "Фильм нормальный" бессмысленна — это не уровни уверенности, а разные оценки.
⚠️ Затратность: Полный pipeline требует 4 этапа с отдельными запросами к модели, что увеличивает время и токены. Для длинного текста (biography из 10 предложений → 30+ атомарных утверждений → генерация и оценка абстракций для каждого) объём растёт кратно.
⚠️ Зависимость от калибровки: Метод опирается на то, что модель честно оценивает свою уверенность. Если модель переоценивает уверенность (hallucinations с высокой самооценкой), абстракции не помогут. LLM плохо калиброваны "из коробки".
⚠️ Не для коротких ответов: В задачах типа "столица Франции" нечего абстрагировать — либо ответ верен, либо нет. Метод раскрывается на длинных текстах с множеством утверждений разной степени уверенности.
⚠️ Потеря нюансов: Абстракция сохраняет надёжность, но теряет детали. "Родился в 1964" вместо "родился 11 февраля 1964" — это компромисс. Для задач где детали критичны, метод не подходит — лучше проверить факт точно, чем обобщать.
Как исследовали
Авторы проверили метод на 6 open-source моделях (gpt-oss-120b, gpt-oss-20b, Qwen3 в разных размерах, Llama 3.3 70B) на двух бенчмарках длинных фактуальных текстов: FactScore (биографии известных людей) и LongFact-Objects (развёрнутые ответы на вопросы по 38 темам от астрономии до computer science).
Risk (риск) измеряли как долю неверных утверждений. Для проверки построили агента на базе gpt-oss-120b, который: 1. Ищет подтверждение каждого утверждения в Wikipedia через API 2. Помечает утверждение как correct (поддержано доказательствами) или incorrect (опровергнуто или не найдено подтверждение)
Валидация на 102 утверждениях против ручной разметки показала F1 = 0.93 — агент надёжен.
Coverage (покрытие) = доля сохранённой информации. Авторы разработали информационно-теоретическую метрику: _информация утверждения = насколько оно сужает множество совместимых сущностей_. Пример: "Тьюринг родился в Лондоне" по Wikidata сужает от 12 млн людей до 20 тыс. → информация = 0.39. "Родился в Англии" → 135 тыс. людей → информация = 0.28 (меньше, более общо). Использовали Wikidata + SPARQL для автоматической оценки.
Risk-Coverage (RC) кривые строили варьируя порог уверенности от 0 до 100. Низкий порог → высокое покрытие, высокий риск. Высокий порог → низкое покрытие, низкий риск. Area Under RC Curve (AURC) — интегральная метрика: чем ниже, тем лучше баланс.
Результаты: Atom-wise SA улучшила AURC на 27.73% по сравнению с простым удалением неуверенных утверждений. Метод сохраняет больше информации при том же уровне риска, либо снижает риск при том же покрытии.
Сравнивали с: - Atom Redaction — удаление неуверенных утверждений (baseline) - Inline Self-Revision — модель редактирует текст целиком, вставляя уточнения типа "возможно", "вероятно" - Verbalized Confidence — модель явно пишет уровень уверенности в тексте
Atom-wise SA превзошла все baseline по метрике AURC, демонстрируя что замена эффективнее удаления.
Ресурсы
When Should LLMs Be Less Specific? Selective Abstraction for Reliable Long-Form Text Generation Авторы: Shani Goren, Ido Galil, Ran El-Yaniv | Technion, NVIDIA
Исследование опирается на: - FactScore (Min et al.) — бенчмарк для оценки фактуальности длинных биографий - SAFE (Wei et al.) — фреймворк fact-checking через поисковые запросы - Wikidata Query Service — для оценки информационного содержания утверждений - SPINACH agent (Babaei et al.) — для перевода natural language в SPARQL запросы
Концептуально связано с: - Selective Prediction (El-Yaniv & Wiener) — классическая работа о выборочных предсказаниях в ML - Hierarchical Selective Classification — идея отступления к более общему классу при неуверенности
