3,583 papers
arXiv:2512.07246 64 8 дек. 2025 г. FREE

TreeED & ForestED: LLM создаёт структуру проверок вместо прямых ответов

КЛЮЧЕВАЯ СУТЬ
TreeED — метод, где LLM не проверяет данные напрямую, а создаёт дерево решений — пошаговый план проверок для обнаружения ошибок в таблицах. LLM получает описание таблицы, примеры строк и требования к структуре дерева, после чего генерирует схему: какие проверки делать, в каком порядке, куда идти при разных результатах. Дерево включает простые правила (формат, диапазон) и сложные узлы на основе нейросетей (для зависимостей между столбцами).
Адаптировать под запрос

TL;DR

TreeED — метод, где LLM не проверяет данные напрямую, а создаёт дерево решений — пошаговый план проверок для обнаружения ошибок в таблицах. LLM получает описание таблицы, примеры строк и требования к структуре дерева, после чего генерирует схему: какие проверки делать, в каком порядке, куда идти при разных результатах. Дерево включает простые правила (формат, диапазон) и сложные узлы на основе нейросетей (для зависимостей между столбцами).

Проблема прямого подхода: когда LLM сразу отвечает "ошибка" или "норма" для каждой ячейки, решение необъяснимо (почему так решил?) и нестабильно (идентичный промпт даёт разные ответы из-за вероятностной природы LLM). При проверке больших таблиц одиночный детектор плохо улавливает разнообразные распределения ошибок, а стохастичность LLM усугубляет нестабильность результатов.

Решение: TreeED создаёт явную структуру рассуждений — каждая проверка записана как шаг в дереве с условиями перехода. ForestED усиливает робастность: создаёт несколько деревьев на разных подвыборках строк, затем через EM-алгоритм оценивает надёжность каждого дерева и вычисляет консенсусное решение без размеченных данных.


🔬

Схема метода

TreeED (одно дерево):

ШАГ 1: Промпт с контекстом → LLM генерирует скелет дерева решений
   Входные данные: профиль таблицы + примеры строк + спецификация узлов
   Выход: JSON со структурой дерева и путями для примеров

ШАГ 2: Построение дерева → Создание исполняемых узлов
   Rule-узлы: простые проверки (код на Python)
   GNN-узлы: обучаются на размеченных путях для сложных зависимостей
   Leaf-узлы: финальное решение (ошибка/норма)

ШАГ 3: Проверка таблицы → Каждая ячейка проходит от корня до листа
   Результат: матрица ошибок + объяснения (путь в дереве)

ForestED (ансамбль):

ШАГ 1: Сэмплирование → Uncertainty-based отбор подмножеств строк

ШАГ 2: Построение леса → TreeED создаёт дерево для каждого подмножества

ШАГ 3: EM-консенсус → Итерации E-step и M-step до сходимости
   E-step: обновить консенсусные предсказания
   M-step: обновить матрицы надёжности деревьев
   Выход: финальная матрица ошибок

📌

Extractable принципы для чата

⚠️ Важно: Полная реализация TreeED требует Python, GNN и инфраструктуру. Но идею можно адаптировать для работы в чате.

📌

Принцип 1: LLM как архитектор проверок

Вместо "проверь эту ячейку" → "создай план проверок для таблицы".

Применение в чате:

Задача: Проверяешь таблицу заказов клиентов на ошибки.

Промпт:

Вот структура таблицы заказов:
- ID клиента (текст, уникальный)
- Email (текст)
- Возраст (число, 18-100)
- Дата заказа (дата в формате ДД.ММ.ГГГГ)
- Сумма заказа (число, рубли)

Создай пошаговый план проверок для обнаружения ошибок.
Для каждого типа ошибки опиши:
1. Какую проверку делать
2. В каком порядке (простые → сложные)
3. Что проверяется (один столбец или связь между столбцами)

Формат: дерево решений в текстовом виде.

Результат: Модель создаст структурированный план проверок: сначала формат (email содержит @, дата парсится), затем диапазоны (возраст положительный), затем зависимости (один ID клиента = один email). Ты получишь явную схему, которую можно применять вручную или попросить LLM проверить конкретные строки по этой схеме.


📌

Принцип 2: Слои сложности проверок

Разбивай проверку данных на уровни: синтаксис → семантика → взаимосвязи.

Применение в чате:

Задача: Проверить список компаний с ИНН, адресами и оборотом.

Промпт:

Проверь таблицу в три слоя:

СЛОЙ 1 (Синтаксис):
- ИНН: ровно 10 или 12 цифр
- Адрес: не пустой
- Оборот: число > 0

СЛОЙ 2 (Семантика):
- ИНН: контрольная сумма корректна
- Адрес: город существует в России
- Оборот: в разумных пределах для отрасли

СЛОЙ 3 (Взаимосвязи):
- Один ИНН = одна компания (нет дублей с разными названиями)
- Оборот соответствует размеру компании по числу сотрудников

Для каждой строки покажи на каком слое найдена ошибка.

[вставить таблицу]

Результат: Модель последовательно применит проверки, сообщая где именно (на каком слое) обнаружена проблема. Это даёт объяснимость — видно не просто "ошибка", а "синтаксическая ошибка в ИНН" vs "семантическая несостыковка оборота и размера".


📌

Принцип 3: Множественные независимые проверки + консенсус

Попроси LLM проверить данные несколькими "независимыми способами", затем сравни результаты.

Применение в чате:

Задача: Проверить достоверность данных о сделках.

Промпт (первый чат):

Проверь таблицу сделок на ошибки, фокусируясь на ФОРМАЛЬНЫХ правилах:
- Даты корректны
- Суммы положительные
- ID уникальны

[вставить таблицу]

Промпт (второй чат):

Проверь таблицу сделок на ошибки, фокусируясь на БИЗНЕС-ЛОГИКЕ:
- Сумма сделки соответствует типу клиента
- Даты последовательны (заказ → оплата → доставка)
- Менеджер существует в штате

[вставить таблицу]

Промпт (третий чат — агрегация):

Вот две независимые проверки одной таблицы:

ПРОВЕРКА 1 (формальная): [результаты]
ПРОВЕРКА 2 (бизнес-логика): [результаты]

Создай консенсусный список ошибок:
- Если обе проверки нашли ошибку → точно ошибка
- Если только одна → требует ручной проверки

Результат: Получишь более робастный результат — снижается влияние случайной вариативности LLM. Если две независимые проверки согласны, уверенность выше.


🔬

Почему оригинальный метод работает

Слабость LLM: Прямой ответ "ошибка/норма" для каждой ячейки непрозрачен (непонятно почему) и стохастичен (разные запуски → разные результаты). При масштабе одиночная модель не покрывает все типы ошибок стабильно.

Сильная сторона LLM: Отлично создаёт структурированные планы и рассуждает пошагово, если дать явную схему. Моделирование зависимостей через графы (GNN) эффективно для сложных кросс-атрибутных ошибок (один ID → один email), которые простые правила не поймают.

Как метод использует сильную сторону: TreeED переносит фокус с "ответь на вопрос" на "спроектируй систему проверок". LLM создаёт дерево — явную карту рассуждений, где каждый шаг записан. Простые ошибки ловят rule-узлы (executable код), сложные зависимости — обученные GNN-узлы. Путь от корня до листа = объяснение решения. ForestED добавляет робастность: несколько деревьев на разных данных "голосуют", их надёжность оценивается через EM-алгоритм (итеративное уточнение консенсуса без ground-truth разметки).

Рычаги (если адаптировать в чат):

  • Глубина дерева — меньше уровней для простых таблиц (быстрее, дешевле токены)
  • Типы узлов — убери GNN-логику, оставь только rule-узлы для лёгких случаев
  • Число примеров — больше примеров строк → точнее дерево, но дороже
  • Число деревьев в лесу — 3-5 деревьев для консенсуса vs 1 дерево (скорость vs робастность)

⚠️

Ограничения

⚠️ Требует инфраструктуру: Полная реализация TreeED/ForestED требует Python, обучение GNN-узлов, API-вызовы LLM для построения деревьев. Это не работает напрямую в чате — нужен код.

⚠️ GNN для сложных зависимостей: Если ошибки связаны с функциональными зависимостями (FD) между столбцами или графовыми структурами данных, без обученных GNN-моделей не обойтись. Чистые текстовые проверки в чате не заменят.

⚠️ Масштаб таблиц: Метод тестировался на таблицах с тысячами строк. В чате ChatGPT/Claude ограничение контекста не позволит загрузить большую таблицу целиком — нужна порционная обработка или API.

⚠️ EM-алгоритм: Консенсус через Expectation-Maximization (итерации E-step/M-step) требует программной реализации — вручную в чате не сделать.


🔗

Ресурсы

Ensembling LLM-Induced Decision Trees for Explainable and Robust Error Detection

GitHub: https://github.com/T-Lab/ForestED

Авторы: Mengqi Wang, Jianwei Wang, Qing Liu, Xiwei Xu, Zhenchang Xing, Liming Zhu, Wenjie Zhang (UNSW Sydney, Data61 CSIRO)


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

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

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