3,583 papers
arXiv:2508.17258 85 24 авг. 2025 г. FREE

Multi-Agent CoT: комбинирование цепочек рассуждений через уверенность модели

КЛЮЧЕВАЯ СУТЬ
Один и тот же промпт даёт разные результаты в зависимости от порядка шагов рассуждения. Начнёшь с поиска эмоций — модель найдёт одно, начнёшь с категорий — совсем другое. Нет универсальной последовательности "сначала X, потом Y". Multi-Agent CoT запускает несколько агентов с разными порядками шагов и выбирает результат по математической уверенности модели (вероятности токенов), а не голосованием. Точность растёт на 15-20% там, где один агент плывёт.
Адаптировать под запрос

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 по распределению вероятностей всех возможных токенов.

Как метод использует это:

  • Запускаем несколько агентов с разными путями → каждый найдёт то, что лучше видит с его стороны
  • Агрегируем через вероятности токенов → выбираем путь, где модель наиболее уверена
  • Не голосуем большинством, а доверяем математической уверенности модели

Рычаги управления:

  1. Число агентов: Больше перестановок = выше recall, но дороже. Для быстрых задач хватит 2-3 агентов с разными первыми шагами.
  2. Метод агрегации: "Highest probability list" экономит токены (1 список), "Highest probability pairs" даёт гибкость (собираешь кастомный список из лучших кусков).
  3. Порядок CoT: Если знаешь специфику задачи — начни с ключевого элемента. Для отзывов: мнения вперёд (эмоции = сигнал). Для техописаний: аспекты вперёд (факты = основа).
  4. 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


📋 Дайджест исследования

Ключевая суть

Один и тот же промпт даёт разные результаты в зависимости от порядка шагов рассуждения. Начнёшь с поиска эмоций — модель найдёт одно, начнёшь с категорий — совсем другое. Нет универсальной последовательности "сначала X, потом Y". Multi-Agent CoT запускает несколько агентов с разными порядками шагов и выбирает результат по математической уверенности модели (вероятности токенов), а не голосованием. Точность растёт на 15-20% там, где один агент плывёт.

Принцип работы

Создаёшь 3-6 агентов с разными порядками рассуждений. Агент 1: "аспекты → мнения → категории". Агент 2: "мнения → категории → аспекты". Агент 3: "категории → аспекты → мнения". Каждый идёт своим путём. Потом смотришь на вероятности токенов каждого списка результатов. Берёшь не самый частый ответ, а тот где модель математически уверена — средняя вероятность токенов максимальная. Высокие вероятности (0.85+) = модель видела такие паттерны в обучении. Низкие (0.4-0.6) = строит догадки.

Почему работает

LLM не держит все элементы задачи в голове одновременно. Она генерирует текст последовательно, опираясь на уже написанное. Если начать с поиска мнений — модель фокусируется на эмоциональных словах. Начать с категорий — переключается на типы объектов. Разные пути дают разные зоны внимания (attention patterns). Агрегация через вероятности токенов работает потому что softmax-распределение показывает где модель "знает" ответ точно. В экспериментах: "наивысшая вероятность" обогнала "мажоритарное голосование" на +8% F1-score. Полнота (recall) выросла на 20%, но точность упала — модели генерируют много мусора при объединении всех пар.

Когда применять

Анализ текстов где нужно извлечь структурированные данные с несколькими связанными элементами → конкретно для отзывов (категория + тональность), техдокументации (проблема + решение), новостей (событие + причина), особенно когда один порядок шагов CoT даёт нестабильные результаты или ты не знаешь какой порядок оптимален для твоих данных. НЕ подходит для креативных задач (генерация слоганов, историй) — там нет "правильного" ответа, выбирать по вероятности бессмысленно.

Мини-рецепт

1. Создай 3 агента с разными порядками шагов: Агент 1 начинает с аспектов, Агент 2 с мнений, Агент 3 с категорий. Каждый делает один запрос к LLM с промптом вида "Шаг 1: найди [элемент] → Шаг 2: определи [элемент] → Шаг 3: сопоставь [элемент]"
2. Получи вероятности токенов: В API запроси logprobs=true или используй параметр для получения вероятностей. Для каждого списка результатов посчитай среднюю вероятность всех токенов
3. Выбери список с максимальной средней вероятностью: Сравни средние вероятности трёх агентов (например 0.87, 0.92, 0.81). Бери результат от агента с 0.92 — это математически самый уверенный путь
4. ОПЦИОНАЛЬНО - фильтруй мусор: Если модель маленькая (3B-7B), отсекай пары с вероятностью <0.7. Большие модели (70B+) генерят меньше шлака

Примеры

[ПЛОХО] : Проанализируй отзыв и найди что понравилось, а что нет
[ХОРОШО] : Три промпта для разных агентов: Агент 1: Шаг 1: Найди конкретные объекты (пицца, официант, интерьер). Шаг 2: Определи мнение к каждому (позитив/негатив). Шаг 3: Сопоставь с категориями [Еда, Сервис, Атмосфера]. Выведи список: [('категория', 'тональность'), ...] Агент 2: Шаг 1: Найди эмоциональные слова (божественна, хамили, стильный). Шаг 2: Определи категорию для каждой эмоции. Шаг 3: Проверь через конкретные объекты. Выведи список. Агент 3: Шаг 1: Раздели текст по категориям [Еда, Сервис, Атмосфера]. Шаг 2: Для каждой категории найди объекты. Шаг 3: Оцени тональность. Выведи список. Потом сравни средние вероятности токенов результатов и выбери самый уверенный.
Источник: Are You Sure You're Positive? Consolidating Chain-of-Thought Agents with Uncertainty Quantification for Aspect-Category Sentiment Analysis
ArXiv ID: 2508.17258 | Сгенерировано: 2026-01-12 01:21

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

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

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