TL;DR
EulerESG — исследование системы для анализа ESG-отчётов компаний. Система извлекает метрики из многостраничных PDF через двухэтапный процесс: сначала поиск релевантных фрагментов (ключевые слова + семантический поиск), затем LLM классифицирует каждую метрику в одну из трёх категорий — полностью раскрыта, частично раскрыта, не раскрыта.
Проблема ESG-отчётов типична для любых длинных документов: информация размазана по сотням страниц, одни и те же понятия описаны разными словами, много воды и промо-контента. Простой поиск по ключевым словам пропускает релевантные куски из-за синонимов. Семантический поиск находит похожее по смыслу, но может захватить лишнее. LLM без предварительной фильтрации теряется в объёме.
Решение — двухканальный поиск: ключевые слова дают точные совпадения, семантический поиск ловит перефразировки. Результаты объединяются и переранжируются. Топ-5 сегментов идут в LLM, который через структурированный промпт определяет уровень раскрытия информации по каждому критерию.
Схема метода
ЭТАП 1: Сегментирование документа
Разбить PDF на логические куски (абзацы, таблицы) → список сегментов с позициями
ЭТАП 2: Двухканальный поиск (для каждой метрики)
- Канал 1: Поиск по ключевым словам → релевантные сегменты
- Канал 2: Семантический поиск по смыслу → релевантные сегменты
- Объединение и реранжирование → топ-5 сегментов
ЭТАП 3: LLM-классификация
LLM анализирует топ-5 сегментов → классифицирует метрику:
• Полностью раскрыта (есть конкретные данные/политика)
• Частично раскрыта (упоминается, но неполно)
• Не раскрыта (нет релевантной информации)
Этапы 2-3 повторяются для каждой проверяемой метрики. В системе автоматизировано через код, вручную — требует итераций в чате.
Пример применения
Задача: Проверяешь, как конкуренты в твоей нише (digital-агентства) раскрывают ключевые аспекты работы на своих сайтах и в кейсах. Хочешь понять: кто открыто показывает методологию, кто прячется за общими словами, кто вообще не раскрывает процессы.
Промпт:
Проанализируй текст с сайта агентства по трём критериям.
Для каждого критерия определи уровень раскрытия:
КРИТЕРИИ:
1. Процесс работы: этапы, сроки, кто за что отвечает
2. Ценообразование: прозрачность стоимости услуг, что входит
3. Кейсы с метриками: конкретные цифры результатов клиентов
КЛАССИФИКАЦИЯ:
• Полностью раскрыто — есть конкретика (цифры, схемы, примеры)
• Частично раскрыто — есть упоминания, но без деталей
• Не раскрыто — информация отсутствует или слишком общая
ФОРМАТ ОТВЕТА:
Критерий | Статус | Цитата из текста | Комментарий
[Вставь текст со страниц "О нас", "Услуги", "Кейсы"]
Результат:
LLM выдаст таблицу: по каждому критерию покажет статус раскрытия, процитирует релевантные куски текста и объяснит почему присвоен именно этот уровень. Увидишь паттерн: например, агентство подробно описывает процесс (полностью раскрыто), но прячет цены за "индивидуальный расчёт" (частично) и в кейсах пишет "увеличили продажи" без цифр (не раскрыто).
Почему это работает
Слабость LLM: Модель плохо справляется с поиском иголки в стоге сена — если дать ей 100-страничный документ и спросить "есть ли там информация про X?", она может пропустить нужный кусок или зациклиться на первых страницах. Контекстное окно большое, но внимание модели неравномерно — информация из середины документа "видна" хуже, чем из начала и конца.
Сильная сторона LLM: Модель отлично классифицирует и оценивает качество информации, когда уже видит релевантный фрагмент перед собой. Дай ей 2-3 абзаца и чёткие критерии — она точно определит "здесь есть конкретные цифры" или "это общие слова без деталей".
Как метод использует это: Двухэтапная воронка сужает фокус. Сначала отсекаем 95% нерелевантного контента через поиск (ключевые слова + семантика), оставляем только потенциально важные куски. Потом LLM смотрит на эти 5 финалистов и с чистой головой оценивает: есть ли там то, что мы ищем, и насколько полно раскрыто. Поиск делает грубую фильтрацию, LLM — тонкую оценку.
Рычаги управления:
Количество сегментов для анализа (топ-5 в оригинале) → Увеличь до топ-10, если документ сложный и информация размазана — снизится риск пропустить релевантное. Уменьши до топ-3 для экономии токенов на простых задачах.
Критерии классификации → В оригинале три уровня (полностью/частично/не раскрыто). Можешь добавить "противоречиво раскрыто" для случаев, когда в разных местах написано по-разному. Или сделать пятибалльную шкалу вместо трёх категорий.
Инструкции для LLM → Добавь "процитируй конкретный фрагмент", если нужна прозрачность. Или "объясни почему присвоен этот уровень" для понимания логики модели.
Шаблон промпта
Проанализируй текст по списку критериев. Для каждого критерия определи уровень раскрытия информации.
КРИТЕРИИ ДЛЯ ПРОВЕРКИ:
{список_критериев}
УРОВНИ РАСКРЫТИЯ:
• Полностью раскрыто — {описание_что_считать_полным}
• Частично раскрыто — {описание_что_считать_частичным}
• Не раскрыто — {описание_когда_информации_нет}
ФОРМАТ ОТВЕТА:
Для каждого критерия укажи:
- Критерий: [название]
- Статус: [Полностью/Частично/Не раскрыто]
- Цитата: [релевантный фрагмент из текста или "не найдено"]
- Обоснование: [почему присвоен этот статус]
ТЕКСТ ДЛЯ АНАЛИЗА:
{текст_документа}
Плейсхолдеры:
{список_критериев}— что проверяешь (например: "1. Методология работы 2. Ценообразование 3. Результаты с метриками"){описание_уровней}— что считать полным/частичным раскрытием для твоей задачи (в ESG "полностью" = есть цифры, в анализе конкурентов "полностью" = есть конкретные примеры){текст_документа}— весь документ или предварительно отобранные куски (если документ слишком длинный)
Для длинных документов (100+ страниц):
Если документ не влезает в контекстное окно, раздели анализ на итерации:
Шаг 1: Найди все упоминания {критерий_1} в тексте.
Выпиши номера страниц или цитаты, где встречается.
[Подай документ или куски]
Шаг 2: Теперь проанализируй найденные фрагменты.
Определи уровень раскрытия по шкале [Полностью/Частично/Не раскрыто].
[Подай фрагменты из шага 1]
Ограничения
⚠️ Длинные документы: Если документ больше контекстного окна модели, нужно либо предварительно разбить его на куски вручную, либо использовать итеративный подход (сначала поиск, потом анализ найденного). Система EulerESG делает это автоматически через эмбеддинги — в чате придётся управлять вручную.
⚠️ Качество поиска: Без семантического поиска (а в чате его нет из коробки) придётся полагаться на ключевые слова или давать модели большие куски текста. Это увеличивает риск пропустить релевантную информацию, если она описана синонимами.
⚠️ Субъективность критериев: Граница между "частично раскрыто" и "полностью раскрыто" часто размыта. Разные люди могут по-разному оценить один и тот же фрагмент. LLM будет последовательна сама с собой, но её критерии могут не совпасть с твоими — важно давать чёткие определения уровней в промпте.
⚠️ Узкая специфика ESG: Оригинальная система заточена под корпоративные ESG-отчёты с их стандартами (SASB, GRI, TCFD). Для других типов документов (техдокументация, маркетинговые материалы, юридические тексты) нужно адаптировать критерии и определения раскрытия под контекст.
Как исследовали
Команда из университета Нового Южного Уэльса и CSIRO (Австралия) создала полноценную систему с кодом и протестировала её на четырёх крупных компаниях из разных индустрий: BMW (транспорт), Macquarie Group (финансы), P&G (товары широкого потребления), Dell (технологии). Для каждой компании взяли реальный ESG-отчёт и прогнали через систему, сопоставляя результаты с тремя SASB-индустриями — получилось 12 пар компания-индустрия для проверки.
Измеряли точность на уровне метрик: процент случаев, когда система правильно определила статус раскрытия (полностью/частично/не раскрыто) и, если была цифра, корректно её извлекла после нормализации единиц измерения. Сравнивали пять разных LLM: Gemini-2.5-flash, DeepSeek-V3, Claude-Haiku-4.5, GPT-5 и Qwen-3-32b.
Результаты: Все модели показали высокую точность 0.91-0.95 (91-95% метрик извлечены корректно). GPT-5 лидирует с 95%, но работает в 3-4 раза медленнее остальных (1124 секунды против 275-460). Интересно, что для компаний P&G и Macquarie все модели дали практически идеальный результат (точность ~1.0), а основные ошибки сконцентрированы в отчёте BMW — там, видимо, более хаотичная структура данных и непоследовательная терминология.
Инсайт для практики: Gemini и Qwen дают лучший баланс скорость-качество — 94% точности при времени работы в 3-4 раза быстрее GPT-5. Для интерактивного анализа в чате, где важна скорость ответа, они предпочтительнее топовых, но медленных моделей. Это подтверждает общий паттерн: для структурированных задач с чёткими критериями разница между моделями минимальна — промпт-инжиниринг важнее выбора флагманской модели.
Ресурсы
EulerESG: Automating ESG Disclosure Analysis with LLMs — Yi Ding, Xushuo Tang, Zhengyi Yang, Wenqian Zhang, Simin Wu, Yuxin Huang и др. (UNSW Sydney, Data61 CSIRO, Eigenflow AI, Euler AI, UTS Sydney).
Репозиторий с кодом: github.com/UNSW-database/EulerESG
Стандарты ESG, упомянутые в работе: - SASB Standards — отраслевые метрики устойчивого развития - GRI Standards — глобальная инициатива по отчётности - TCFD — раскрытие климатических рисков
