TL;DR
Если дать модели длинное обсуждение с ветками ответов (Хабр, Reddit, комментарии в Telegram, чаты поддержки), она неплохо понимает отдельный комментарий, но плохо понимает структуру. Это вопросы вида «кто кому отвечает», «где ветка сменила тему», «чем две ветки отличаются», «как менялась позиция участника». На таких вопросах точность падает с ~60% до ~40% (при четырёх вариантах ответа случайное угадывание даёт 25%). Люди на тех же тредах дают ~72%. Название теста, LongSocialBench, здесь не главное. Важна картина: длинный контекст ≠ понимание дерева.
Боль знакомая. Вы загружаете тред на 70 000 токенов и просите «разберись, как развивался спор». Модель выдаёт гладкий пересказ, а на деле путает, кто кому ответил, смешивает ветки и цепляется за повторяющиеся слова («цена», «поддержка») вместо реального сдвига темы. Причина простая: в голове у модели нет карты дерева. Есть поток текста, где похожие слова встречаются в разных местах.
Что выяснили про обходные пути. Пошаговое рассуждение (Chain-of-Thought) в среднем даёт лишь +2,4 п.п., а у некоторых моделей вредит. Обычный поиск по комментариям (BM25, эмбеддинги) часто ухудшает результат, потому что рвёт связи между ответами. Помогает сохранение структуры (поддеревья) и заранее суженная область. Если дать модели правильный кусок треда, средняя точность растёт с 43,9% до 55,0%, но всё равно остаётся далеко от человека.
Схема метода
Статья не предлагает один метод. Она сравнивает приёмы по отдельности. Ниже порядок, собранный из этих приёмов. Как связку авторы его не проверяли.
ШАГ 1: Сузить область (ветка / цепочка / участник) → список ID комментариев
ШАГ 2: Выписать доказательства из этой области → ID + цитата + кому отвечает
ШАГ 3: Восстановить ход обмена по порядку (если вопрос про сдвиг/динамику) → хронология по ID
ШАГ 4: Отсечь неподдержанные варианты / гипотезы → почему каждый отпал
ШАГ 5: Ответ со ссылками на ID
Всё можно сделать в одном промпте или разнести на два запроса: сначала область, потом ответ.
Пример применения
Задача: Маркетолог сервиса подписок запустил повышение тарифа. Под постом на Хабре набралось 600 комментариев с глубокими ветками. Нужно понять, в какой точке ветка про «цена выросла» сменилась претензиями к поддержке и кто из участников поменял позицию.
Промпт:
Ниже обсуждение под постом «Мы повышаем тариф с 490 до 690 ₽». Формат: [id] (ответ на [parent_id]) автор: текст.
{тред}
Вопрос: в цепочке, начатой комментарием [id 114], найди, где обсуждение впервые
переходит от претензий к цене к претензиям к качеству поддержки.
Повторяющиеся слова («цена», «тариф») не считай признаком сдвига.
Работай так:
1. Выпиши ID комментариев только этой цепочки в порядке ответов.
2. Для каждого комментария в одну строку: о чём он (цена / поддержка / другое).
3. Укажи первый комментарий, где фокус реально сменился. Назови ID и процитируй фразу.
4. Назови альтернативные точки, которые могли бы показаться сдвигом, и почему они не подходят.
5. Отдельно: кто из участников цепочки изменил позицию? Дай ID до и после.
Если для вывода не хватает данных в тексте, так и скажи.
Результат: Модель выдаст список ID цепочки, разметку тем по комментариям и конкретную точку сдвига с цитатой. Затем идёт разбор отвергнутых кандидатов и отдельный блок по участникам. Каждый вывод привязан к ID, так что его можно быстро проверить глазами.
Почему это работает
Слабость. Модель читает тред как длинный текст. Дерево ответов в нём лежит только в виде ID и отступов, и модель должна восстанавливать его сама. Повторяющиеся слова сбивают поиск: «цена» есть везде, а нужен момент, где меняется роль высказывания. Поэтому вопросы про структуру (C3, C6) проваливаются сильнее всего.
Сильная сторона. Модель хорошо понимает смысл отдельного комментария и пары «реплика → ответ». Это видно по тому, что на локальных вопросах точность выше, а CoT помогает именно здесь. Если свести задачу к «разметь каждый комментарий в выбранной цепочке», она попадает в сильную зону.
Как метод это использует. Явное сужение области и выписывание доказательств по ID заменяют «карту в голове» записанной картой. Отсечение вариантов заставляет проверить кандидатов, а не хвататься за первый похожий.
Рычаги: - Область (одна ветка вместо всего треда) → точнее, но вы должны знать, где искать. - Требование ID и цитат → легче проверять и меньше выдумок. - Шаг «альтернативные точки» → защита от ложных сдвигов; убирайте для простых вопросов. - Выбор модели: CoT и другие приёмы сильно зависят от неё, так что проверьте на 10–20 своих примерах.
Шаблон промпта
Точные формулировки авторов лежат в приложении D.2, и в тексте статьи их нет. Шаблон ниже собран по описанным в статье типам: перечисление доказательств, отслеживание по времени, исключение вариантов.
Ниже обсуждение. Формат строки: [{id}] (ответ на [{parent_id}]) {автор}: {текст}
{тред}
{вопрос о структуре: сдвиг темы / сравнение веток / траектория участника / роль комментария}
Область анализа: {ветка / цепочка от id / участник / «определи сам и назови»}.
Повторяющиеся слова ({ключевые_слова}) сами по себе ничего не доказывают.
1. Scope: выпиши ID комментариев, относящихся к области.
2. Evidence: для каждого значимого комментария — ID, кому отвечает, суть одной строкой.
3. Timeline: восстанови, как менялась позиция/тема по порядку ответов.
4. Elimination: перечисли альтернативные ответы и почему они не поддержаны текстом.
5. Answer: итоговый вывод + ID и цитаты как доказательства.
Если данных в треде недостаточно, скажи об этом.
Подставляйте тред в формате «ID + кому отвечает», сам вопрос и область. Если не знаете область, напишите «определи сам и назови».
🚀 Быстрый старт — вставь в чат:
Вот шаблон разбора ветвистого обсуждения. Адаптируй под мою задачу: {твоя задача}.
Задавай вопросы, чтобы заполнить поля.
[вставить шаблон выше]
LLM спросит, откуда тред и в каком он формате, какой вопрос вас интересует и какую область брать. Это нужно, потому что метод держится на явных ID и области. Без них шаги «область» и «доказательства» не на что опереть.
Ограничения
⚠️ Модели всё равно ошибаются: лучший результат (Claude Opus 4.7 с исключением вариантов) ~63% против ~72% у людей. Для решений с последствиями проверяйте ответ по ID вручную.
⚠️ CoT не универсален: в среднем помогает слабо, у части моделей вредит (у Qwen3-32B точность падает заметно). Нельзя просто добавить «думай по шагам» и ждать улучшения. Тестируйте на своей модели.
⚠️ Плоский поиск по комментариям вредит: если резать тред на куски по похожести (классический RAG), теряются связи «кто кому ответил». Сильнее всего это бьёт по вопросам про общую структуру.
⚠️ Даже с идеальной областью проблема остаётся: с эталонной областью средняя точность 55%, не 72%. Дело не только в поиске нужного места, но и в интерпретации.
⚠️ Рамки исследования: треды на английском, до ~119K токенов, вопросы с четырьмя вариантами. Перенос на русские треды, открытые вопросы и более длинные контексты не проверяли. Предложенный порядок шагов в статье не тестировался как единая связка. В присланном тексте результаты по поиску обрываются на полуслове.
Как исследовали
Команда собрала 94 полных обсуждения с Hacker News, Stack Exchange и Reddit r/ChangeMyView, в среднем по ~73K токенов. Двадцать человек написали 1 462 вопроса с четырьмя вариантами, ответом и указанием комментариев-доказательств. Вопросы разбиты на шесть умений: от смысла одного комментария до сравнения веток и траектории участника. Каждый вопрос проверил второй человек, спорные разбирал третий. Первично совпали 91% ответов. Чтобы тест нельзя было пройти по подсказкам, формулировки балансировали, а ответы искали в интернете на утечки.
Дальше прогнали 18 моделей в 29 режимах: простой полный контекст, разные виды рассуждений (CoT, перечисление доказательств, отслеживание по времени, исключение вариантов, самопроверка), несколько видов поиска и диагностические режимы. Диагностики были такие: только варианты без треда, перемешанный тред, эталонная область.
Выводы: - Структура ломает модели. На локальных вопросах ~60%, на структурных ~40%. - Рассуждение лечит только локальное. CoT поднимает среднее с 46,0% до 48,4% и почти не трогает вопросы про общую структуру и динамику. - Эффект приёмов зависит от модели. У GLM-5 CoT даёт +15,5 п.п., у Qwen3-32B минус 9,2. - Указание правильного места помогает, но не решает проблему. Среднее выросло с 43,9% до 55,0%.
Для практики отсюда следует: не верьте длинному контексту на слово, дробите задачу на проверяемые шаги и не режьте тред на плоские куски.
Адаптации и экстраполяции
🔧 Техника: убрать «только ответ» → увидеть, где модель путается
Если вы просите модель выдать только букву или вывод, ошибка в структуре остаётся скрытой. Попросите вывести шаги 1–3 (область, доказательства, хронологию) до ответа. Неверная цепочка ID сразу видна.
Экстраполяция: двухпроходная схема «область → ответ» (в статье это диагностика infer-scope, результат в присланном тексте не виден; здесь только идея):
Запрос 1: Вот тред. Вопрос: {вопрос}. Не отвечай. Назови только ветку/цепочку (ID комментариев), где искать ответ, и объясни выбор в 2 строках.
Запрос 2: Вот только эти комментарии с их родителями: {вставленный кусок}. Теперь ответь на вопрос по шагам: доказательства → хронология → исключение вариантов → ответ с ID.
Вы вручную проверяете область между запросами, то есть сами закрываете самое слабое звено.
Ресурсы
- LongSocialBench: Do Long-Context LLMs Understand Online Discussion Threads?
- Данные: huggingface.co/datasets/xinyiliu-research/LongSocialBench
- Авторы: Xinyi Liu, Dilek Hakkani-Tür, Tarek F. Abdelzaher (University of Illinois Urbana-Champaign), Rinat Khaziev (Semantic Code Lab)
- Упомянутые опоры: LoCoMo, LongMemEval, ConvoSumm, ChangeMyView (Tan et al., 2016)
