TL;DR
Multi-Agent Chain-of-Thought — техника, где одна задача решается несколькими LLM-агентами, каждый с разным порядком шагов рассуждения. Например, один агент сначала ищет аспекты → потом мнения → потом категории, другой идёт наоборот: мнения → категории → аспекты. Потом результаты объединяются на основе уверенности модели (token probabilities).
Исследование показало: порядок шагов в Chain-of-Thought критически важен, но зависит от датасета. Нет универсальной последовательности "сначала X, потом Y". Что работает на одних данных — проваливается на других. Причина: LLM по-разному обрабатывают информацию в зависимости от того, какой элемент задачи ищут первым. Если начать с поиска мнений ("delicious"), модель фокусируется на эмоциональных словах. Если с категорий ("Food") — на типах объектов.
Лучший способ объединить результаты — выбрать список с наивысшей средней вероятностью токенов. Это работает лучше, чем мажоритарное голосование. Модель сама "знает" когда уверена: высокие вероятности = точный ответ, низкие = сомневается. Если взять все пары от всех агентов, recall вырастает на 20%, но точность падает — модели генерируют много мусора.
Схема метода
Создание агентов:
Задача: извлечь пары (категория, тональность) из текста
АГЕНТ 1: Аспекты → Мнения → Категории → вывод
АГЕНТ 2: Мнения → Аспекты → Категории → вывод
АГЕНТ 3: Категории → Аспекты → Мнения → вывод
... (всего 6 перестановок)
Каждый агент делает 1 запрос к LLM
Агрегация результатов (выбрать одну):
1. Highest probability list:
Вычислить среднюю вероятность токенов для каждого списка
→ Взять список с max вероятностью
2. Most common list:
Найти самый частый список среди агентов
→ Если нет большинства, взять с max вероятностью
3. Highest probability pairs:
Взять N пар с наивысшими вероятностями из всех агентов
4. Clustered pairs:
Кластеризовать пары по смыслу категорий (k-means)
→ Из каждого кластера взять пару с max вероятностью
5. Most confident agent:
Найти агента с max суммой вероятностей по всему датасету
→ Использовать только его
Пример применения
Задача: Анализ отзывов о ресторане — понять что конкретно понравилось/не понравилось (еда, сервис, атмосфера, цены)
Промпт для Агента 1 (Аспекты → Мнения → Категории):
Дан отзыв:
"Пицца пепперони была божественна, но официанты хамили весь вечер.
Интерьер стильный, правда счёт вышел космический."
Задача: определи пары (категория, тональность)
Шаг 1: Найди конкретные аспекты (о чём говорят):
- пицца пепперони
- официанты
- интерьер
- счёт
Шаг 2: Определи мнение к каждому аспекту:
- пицца → "божественна" (позитив)
- официанты → "хамили" (негатив)
- интерьер → "стильный" (позитив)
- счёт → "космический" (негатив)
Шаг 3: Сопоставь с категориями [Еда, Сервис, Атмосфера, Цены]:
- пицца → Еда
- официанты → Сервис
- интерьер → Атмосфера
- счёт → Цены
Выведи результат как список Python:
[('Еда', 'позитив'), ('Сервис', 'негатив'), ('Атмосфера', 'позитив'), ('Цены', 'негатив')]
Промпт для Агента 2 (Мнения → Категории → Аспекты):
[Тот же отзыв]
Шаг 1: Найди эмоциональные маркеры:
- "божественна" — сильный позитив
- "хамили" — негатив
- "стильный" — позитив
- "космический" [в контексте цены] — негатив
Шаг 2: Определи к какой категории относится каждое мнение:
- "божественна" → скорее про Еду
- "хамили" → про Сервис
- "стильный" → про Атмосферу
- "космический" → про Цены
Шаг 3: Проверь через аспекты:
- Еда: "пицца"
- Сервис: "официанты"
- Атмосфера: "интерьер"
- Цены: "счёт"
[Тот же вывод]
Агрегация (Highest probability list):
Для каждого агента модель выдаст вероятности токенов.
Например:
- Агент 1: средняя вероятность 0.87
- Агент 2: средняя вероятность 0.92 ← выбираем
- Агент 3: средняя вероятность 0.81
...
Итоговый результат = список от Агента 2
Результат: Модель выдаст структурированный список пар (категория, тональность) с указанием какой агент был использован и его уверенности. Если агенты расходятся — можно увидеть спорные моменты (например, "космический счёт" — это негатив про цену или нейтральный факт?). Разброс мнений агентов показывает сложность задачи — высокая дисперсия = неоднозначный случай.
Почему это работает
Слабость LLM: Модель не "держит в голове" все элементы задачи одновременно. Она генерирует текст последовательно, опираясь на уже сгенерированное. Если начать с одного элемента (аспекты), контекст всех следующих шагов строится вокруг него. Начать с другого (мнения) — получишь другой путь рассуждений.
Сильная сторона LLM: Модель умеет оценивать собственную уверенность через вероятности токенов. Высокая вероятность = модель "знает" ответ точно (видела похожие паттерны в обучении). Низкая = сомневается, строит догадки. Это не магия — это математика: softmax по распределению вероятностей всех возможных токенов.
Как метод использует это:
- Запускаем несколько агентов с разными путями → каждый найдёт то, что лучше видит с его стороны
- Агрегируем через вероятности токенов → выбираем путь, где модель наиболее уверена
- Не голосуем большинством, а доверяем математической уверенности модели
Рычаги управления:
- Число агентов: Больше перестановок = выше recall, но дороже. Для быстрых задач хватит 2-3 агентов с разными первыми шагами.
- Метод агрегации: "Highest probability list" экономит токены (1 список), "Highest probability pairs" даёт гибкость (собираешь кастомный список из лучших кусков).
- Порядок CoT: Если знаешь специфику задачи — начни с ключевого элемента. Для отзывов: мнения вперёд (эмоции = сигнал). Для техописаний: аспекты вперёд (факты = основа).
- Threshold вероятности: Можно отсекать пары с вероятностью <0.7 — убрать мусор. Или оставить всё — увидеть спорные кейсы.
Шаблон промпта
Базовый агент (один порядок CoT):
Задача: {описание задачи}
Дан текст:
"{текст для анализа}"
Выполни шаги по порядку:
Шаг 1: {первый элемент - что искать}
[Опиши что нашёл]
Шаг 2: {второй элемент}
[Связь со Шагом 1]
Шаг 3: {третий элемент}
[Финальная связка]
Выведи результат как Python список:
[{формат вывода}]
Без объяснений, только список.
Параметры для адаптации:
{описание задачи}— что делаем: "извлечь категории и тональность", "найти причины и следствия", "выделить проблемы и решения"{элементы 1-3}— порядок рассуждений: что ищем первым, вторым, третьим{формат вывода}— структура данных: список кортежей, JSON, табличка
Пример конфигурации для отзывов:
- Агент A: "Шаг 1: Найди что обсуждают (объекты) → Шаг 2: Найди мнения → Шаг 3: Категоризируй"
- Агент B: "Шаг 1: Найди эмоции (позитив/негатив) → Шаг 2: Определи категории → Шаг 3: Найди конкретные объекты"
- Агент C: "Шаг 1: Раздели по категориям (еда/сервис/...) → Шаг 2: Для каждой найди объекты → Шаг 3: Оцени тональность"
🚀 Быстрый старт — вставь в чат:
Вот шаблон Multi-Agent CoT для анализа. Адаптируй под мою задачу: {твоя задача}.
Создай 3 варианта промпта с разным порядком шагов рассуждения.
Задавай вопросы, чтобы заполнить поля.
[вставить шаблон выше]
LLM спросит: какие элементы нужно извлекать, в каком формате нужен вывод, какие категории использовать. Она возьмёт структуру "Шаг 1-2-3" и создаст несколько агентов с разными порядками — это автоматизирует создание вариаций.
Ограничения
⚠️ Универсальный порядок не найден: Лучший порядок CoT зависит от типа данных. Отзывы о ресторанах ≠ техническая документация. Нужно тестировать на своих задачах.
⚠️ Малые модели генерят мусор: 3B модели выдали в 6 раз больше пар, чем нужно, и часто противоречили сами себе (одна категория = разные тональности). У 70B+ таких проблем почти нет. Если используешь маленькую модель — фильтруй жёстче.
⚠️ Затраты на токены растут: Несколько агентов = несколько запросов. Для 6 агентов: 6× токенов. Если датасет большой — быстро упрёшься в лимиты и кошелёк. Начинай с 2-3 агентов.
⚠️ Агрегация не всегда спасает: "Most common list" (голосование) проигрывает "Highest probability" (уверенность). Но обе техники могут ошибиться, если все агенты неправы. Метод повышает точность, не гарантирует истину.
⚠️ Не для субъективных оценок: Метод работает когда есть чёткие критерии (категории, факты). Для креативных задач ("Придумай слоган") разные CoT дадут разные креативы, и выбрать "лучший" по вероятности — бессмысленно.
Как исследовали
Команда взяла четыре датасета для aspect-sentiment анализа: отзывы о ноутбуках, ресторанах, кроссовках и MAMS (multi-aspect, специально сложный). Тестировали на Llama и Qwen (3B и 70B+ параметров) в zero-shot режиме — без примеров, только промпты.
Логика эксперимента: Создали 6 агентов — все перестановки трёх элементов (Аспект, Мнение, Категория). Каждый агент обрабатывал один и тот же текст, но с разным порядком шагов в CoT. Потом сравнивали F1-score каждого агента и смотрели на вероятности токенов.
Ключевая находка: Порядок CoT действительно влияет, но по-разному на разных данных. На датасете Laptop16 лучше работает "Мнение → Категория → Аспект", на MAMS — "Категория → Аспект → Мнение". Универсального рецепта нет. Это опровергает предыдущие исследования, которые всегда начинали с аспектов.
Почему так получилось? Исследователи вычислили корреляцию Спирмена между средней вероятностью токенов и F1-score. Оказалось: чем выше уверенность модели, тем выше точность (корреляция до 60% на некоторых датасетах). Но на сложном MAMS корреляция слабее — там даже уверенная модель ошибается, потому что задачи действительно неоднозначные.
Что удивило: Агент с самой высокой суммарной уверенностью по датасету не всегда был самым точным. Иногда модель "уверенно ошибается" — высокие вероятности, низкий F1. Это показывает границу применимости token-level uncertainty: она полезна, но не абсолютна.
Bonus-эксперимент: Добавили 10 few-shot примеров в промпты. ChatABSA (baseline) резко вырос: +38% для Llama 3B, +15% для Llama 70B. А вот CoT почти не изменился: +4% для Llama 70B, -3% для Llama 3B. Вывод: примеры помогают, но конфликтуют со сложными CoT — модель теряется между "повторить паттерн примера" и "следовать логике CoT".
Инсайт для практики: Если нет времени на эксперименты с порядком CoT — используй "Highest probability list" при агрегации. Она выиграла почти везде. А высокая дисперсия вероятностей между агентами = красный флаг "сложный кейс, проверь вручную".
Ресурсы
Are You Sure You're Positive? Consolidating Chain-of-Thought Agents with Uncertainty Quantification for Aspect-Category Sentiment Analysis
Filippos Ventirozos, Peter Appleby (Autotrader Research Group, Autotrader UK), Matthew Shardlow (Manchester Metropolitan University)
Опубликовано: 2025
