TL;DR
EmeraldMind — фреймворк для проверки экологических заявлений компаний (детекция гринвошинга). Суть: система не просто выносит вердикт "правда/ложь", но работает по принципу "вердикт + обоснование или воздержание". Три возможных ответа: Greenwashing (обман), Not Greenwashing (чисто), или Abstain (недостаточно данных для проверки). Каждый вердикт обязательно сопровождается обоснованием, привязанным к конкретным фактам из документов компании.
Главная находка: модели без принудительного воздержания дают много необоснованных догадок. Когда LLM должна всегда отвечать "да" или "нет", она угадывает даже при отсутствии данных. Это особенно опасно для проверки фактов — высокая точность может скрывать, что половина ответов высосана из пальца. В задачах с репутационными рисками (финансы, медицина, экология) лучше честное "не знаю", чем уверенная неправда. Исследователи показали: система с опцией воздержания проверяет меньше заявлений, но каждый вердикт подкреплён реальными документами.
Метод работает в три этапа: (1) Заземление заявления — извлечь компанию, метрики, цифры из текста заявления, (2) Поиск контекста — найти релевантные факты в документах компании, ограничив поиск только теми типами данных, что упомянуты в заявлении (не весь архив, а точечно), (3) Классификация с обоснованием — вынести вердикт и объяснить его конкретными ссылками на документы, или воздержаться если фактов мало.
Схема метода
ШАГ 1: Заземление заявления
Входы: текстовое заявление
→ Извлечь: компанию, метрики (CO₂, водопотребление...), цифры, годы
→ Выход: структурированные элементы заявления
ШАГ 2: Поиск контекста
Входы: элементы заявления + база документов/данных компании
→ Ограничить поиск типами данных из заявления (если метрика = выбросы CO₂ → искать только эмиссионные данные)
→ Ранжировать по близости к заявлению
→ Выход: топ-N релевантных фактов
ШАГ 3: Классификация с обоснованием
Входы: заявление + найденные факты
→ Сравнить заявление с фактами
→ Если факты противоречат → Greenwashing + обоснование
→ Если факты подтверждают → Not Greenwashing + обоснование
→ Если фактов недостаточно → Abstain + объяснение почему
→ Выход: вердикт + текстовое обоснование
Пример применения
Задача: Вы инвестор, проверяете заявление стартапа перед раундом. Основатель говорит: "Наш продукт снизил отток клиентов на 40% за квартал". У вас есть доступ к метрикам из CRM и презентаций.
Промпт:
Проверь заявление: "Продукт Х снизил отток клиентов на 40% за Q1 2024"
Контекст — данные из CRM и презентаций компании:
[вставить релевантные данные: графики оттока, цифры из отчётов, таймлайны]
Твоя задача:
1. Извлеки из заявления ключевые элементы: продукт, метрику, цифру, период
2. Найди в контексте факты, связанные именно с этими элементами (отток клиентов, Q1 2024)
3. Вынеси вердикт:
- ПОДТВЕРЖДЕНО — если данные соответствуют заявлению
- ОБМАН — если данные противоречат или искажены
- НЕ МОГУ ПРОВЕРИТЬ — если данных недостаточно
Обязательно приведи обоснование: процитируй конкретные факты из контекста и объясни как они связаны с заявлением.
Результат: Модель выдаст один из трёх вердиктов с обоснованием. Если "ПОДТВЕРЖДЕНО" — увидите ссылки на конкретные метрики CRM, расчёт снижения оттока, проверку периода. Если "ОБМАН" — увидите где цифры не сходятся (например, отток снизился на 15%, а не 40%, или это был Q2, а не Q1). Если "НЕ МОГУ ПРОВЕРИТЬ" — модель объяснит чего не хватает (нет данных по Q1, или метрика оттока не отслеживалась в этом периоде).
Почему это работает
Слабость LLM: Модели склонны генерировать уверенные ответы даже при отсутствии данных. Это называется галлюцинация — модель заполняет пробелы правдоподобной выдумкой. В задачах проверки фактов это катастрофа: система выдаёт "заявление верно" просто потому, что оно звучит разумно, а не потому что есть подтверждение.
Сильная сторона LLM: Модели отлично извлекают структуру из текста, сравнивают утверждения с фактами и выявляют противоречия — если им дать конкретные данные. Они также хорошо формулируют цепочки рассуждений, объясняя связь между фактами и выводами.
Как метод использует силу: Принудительное воздержание блокирует галлюцинации. Модель обязана либо привести факты, либо сказать "не знаю" — третьего не дано. Ограничение контекста по типам данных (schema-based retrieval) убирает информационный шум: если заявление про выбросы CO₂, модель ищет только эмиссионные данные, а не весь архив документов. Это снижает риск, что модель зацепится за нерелевантную информацию и сделает ложный вывод.
Рычаги управления:
- Строгость обоснования — можно требовать цитаты со страницами документов (высокая строгость, мало вердиктов) или допустить пересказ (ниже строгость, больше вердиктов)
- Порог воздержания — можно указать "воздерживайся только если ВООБЩЕ нет данных" (больше вердиктов, выше риск ошибки) или "воздерживайся при малейших сомнениях" (меньше вердиктов, выше надёжность)
- Типы данных для поиска — можно явно перечислить где искать (только финансовые отчёты / только технические спеки / всё подряд) в зависимости от заявления
- Структура обоснования — можно требовать формат "Факт → Связь с заявлением → Вывод" для прозрачности или просто параграф объяснения
Шаблон промпта
Проверь заявление: "{заявление}"
Контекст: {источники_данных}
Выполни проверку в три шага:
ШАГ 1 — Извлечение элементов:
Из заявления извлеки: субъект (компания/продукт/человек), метрику (что измеряется), значение (цифра/факт), период/условия.
ШАГ 2 — Поиск фактов:
В контексте найди данные, относящиеся ТОЛЬКО к извлечённым элементам. Игнорируй всё остальное. Если в заявлении метрика X — ищи только факты про метрику X, не Y и не Z.
ШАГ 3 — Вердикт с обоснованием:
Сравни заявление с найденными фактами.
Вынеси один из трёх вердиктов:
**ПОДТВЕРЖДЕНО** — если факты полностью соответствуют заявлению
Обоснование: процитируй конкретные данные из контекста, покажи расчёт/соответствие
**ПРОТИВОРЕЧИЕ** — если факты опровергают заявление или показывают искажение
Обоснование: покажи где именно расхождение (цифры не сходятся / период не тот / метрика другая)
**НЕ МОГУ ПРОВЕРИТЬ** — если в контексте недостаточно данных для проверки
Обоснование: объясни каких именно фактов не хватает
ВАЖНО: Каждый вердикт должен быть подкреплён конкретными ссылками на контекст или объяснением отсутствия данных. Запрещено угадывать.
Пояснения к плейсхолдерам:
{заявление}— текстовое утверждение, которое нужно проверить{источники_данных}— релевантные документы, метрики, отчёты, из которых можно извлечь факты (скопируйте текст из документов, таблицы, графики описанием)
🚀 Быстрый старт — вставь в чат:
Вот шаблон трёхвердиктной проверки фактов. Адаптируй под мою задачу: [опиши что проверяешь и какие данные есть].
Задавай вопросы, чтобы настроить шаблон.
[вставить шаблон выше]
LLM спросит про строгость обоснования (цитаты или пересказ?), порог воздержания (когда говорить "не могу проверить"?), формат источников данных — потому что это влияет на то, как модель будет искать факты и оформлять вердикты. Она возьмёт структуру "заземление → поиск → вердикт" и настроит под ваш контекст.
Почему трёхвердиктная система лучше да/нет
Двухвердиктная система (правда/ложь) вынуждает модель всегда выбирать сторону. Если данных мало или они неоднозначны, модель угадывает. Результат: высокая уверенность в ответе + низкая реальная точность. Исследователи показали: системы без опции воздержания имеют точность 60-70% при покрытии 100% — то есть проверяют всё, но треть ответов ошибочна.
Трёхвердиктная система даёт модели право сказать "не знаю". Это снижает покрытие (проверено меньше заявлений), но повышает точность проверенных (до 85-90%). В задачах с высокими ставками (финансы, медицина, юридические вопросы) лучше честное "недостаточно данных" и запрос на дополнительную информацию, чем уверенный неправильный ответ.
Принудительное обоснование блокирует "интуитивные" вердикты. Модель не может просто сказать "кажется правдой" — она обязана показать КОНкретные факты. Если фактов нет, вердикт невозможен → воздержание. Это превращает проверку фактов из генерации ответа в логический вывод из данных.
Ограничения
⚠️ Зависимость от качества контекста: Система работает только настолько хорошо, насколько полны и точны предоставленные документы. Если в контексте нет нужных данных или они устарели — модель воздержится от вердикта, даже если информация есть в других источниках.
⚠️ Сложность субъективных заявлений: Метод эффективен для проверки количественных фактов (цифры, метрики, даты). Для субъективных утверждений ("наш продукт самый удобный", "мы лидеры рынка") система часто воздерживается, так как критерии оценки размыты.
⚠️ Барьер подготовки контекста: Нужно вручную подобрать и вставить релевантные документы в промпт. Для проверки одного заявления это нормально, для массовой проверки десятков заявлений — трудозатратно. Автоматизация требует векторного поиска (API + база знаний).
⚠️ Длина контекста: Если документов много (например, годовой отчёт на 200 страниц), весь контекст может не поместиться в окно модели. Нужно либо сжимать (риск потери важных деталей), либо выделять только релевантные секции (требует предварительной фильтрации).
Ресурсы
EmeraldMind: A Knowledge Graph-Augmented Framework for Greenwashing Detection — исследование про построение графа знаний из ESG-отчётов и RAG-систему для проверки экологических заявлений компаний. Архимедис, Афинский исследовательский центр + Университет Янины (Греция). Авторы: Georgios Kaoukis, Ioannis Aris Koufopoulos, Eleni Psaroudaki, Danae Pla Karidi, Evaggelia Pitoura, George Papastefanatos, Panayiotis Tsaparas.
