Graph-of-Thoughts
Graph-of-Thoughts (GoT) — это концепция в области работы с большими языковыми моделями (LLM, Large Language Models), предполагающая представление процесса рассуждения модели в виде произвольного графа взаимосвязанных «мыслей» (промежуточных шагов решения)[1]. Данный подход был предложен группой исследователей под руководством Мацея Бесты (Maciej Besta) из ETH Zurich и опубликован в 2024 году на конференции AAAI[2]. Цель Graph-of-Thoughts – расширить возможности prompt engineering (разработки запросов) за пределы существующих схем, таких как Chain-of-Thought (цепочка мыслей) и Tree-of-Thoughts (дерево мыслей)[1]. В отличие от них, подход GoT позволяет любому сгенерированному моделью фрагменту рассуждений (мысле) ссылаться на любой другой, образуя сеть идей, а не строго линейную или древовидную структуру[3]. Это, как утверждают авторы, более точно отражает сложный, нелинейный характер человеческого мышления и потенциально приближает механизм рассуждений LLM к работе человеческого мозга (с его рекуррентными нейронными связями)[1][1].
Graph-of-Thoughts является методом формирования запросов (prompting framework), то есть не требует дополнительного обучения или донастройки самой модели — вместо этого он организует диалог с LLM особым образом, направляя модель через серию шагов-«мыслей», связанных по схеме графа[1]. Такая структура позволяет комбинировать и переиспользовать разные ветви рассуждений: например, модель может параллельно рассматривать несколько гипотез или частей задачи, а затем объединять наиболее удачные из них в единое решение[1]. В энциклопедическом стиле, Graph-of-Thoughts можно определить как обобщение предыдущих стратегий структурированного рассуждения с LLM, предоставляющее максимальную гибкость в организации мыслительных процессов внутри одного комплексного запроса[1].
Предпосылки: Chain-of-Thought и Tree-of-Thoughts
Метод Graph-of-Thoughts вырос из более ранних подходов, использующих явную структуру рассуждений при работе с языковыми моделями. Базовым подходом является Chain-of-Thought (CoT) – «цепочка мыслей». В методе CoT пользователю предлагается включать в запрос к модели не только условие задачи, но и промежуточные шаги рассуждения, ведущие к ответу[1]. Исследования показали, что такая подача материала значительно улучшает способность LLM решать сложные задачи, например математические или логические головоломки, причём без изменений параметров самой модели[1]. Фактически, CoT побуждает модель пошагово разложить сложную проблему на более простые этапы, имитируя последовательный ход мыслей.
Развитием этой идеи стала техника Self-Consistency: вместо одной цепочки мыслей генерируется несколько независимых цепочек, после чего выбирается наиболее убедительная из них[1]. Это позволяет модели рассмотреть разные подходы к решению и уменьшает риск получить ошибочный ответ из-за следования единственной неверной линии рассуждений. Тем не менее, даже множество цепочек CoT не дают возможности «объединять идеи»: каждая цепочка рассматривается изолированно, и модель лишь выбирает лучшую, не комбинируя их содержимое.
Для преодоления этого ограничения была предложена схема Tree-of-Thoughts (ToT) – «дерево мыслей»[1]. В ToT процесс рассуждения организован как дерево: в каждой точке модель может порождать несколько вариантов развития мысли (ветвления), после чего производится оценка этих промежуточных состояний и отбор наиболее перспективных для дальнейшего углубления[1]. Используя поиск по дереву (например, в ширину — BFS, или в глубину – DFS) и возможность откатываться к узлам и развивать другую ветку, Tree-of-Thoughts даёт языковой модели более мощный механизм решения сложных задач, чем линейный CoT[1]. Появляются новые возможности, такие как откат и пересмотр: если одна ветвь приводит в тупик, можно вернуться к предыдущему узлу и попробовать иной путь[1]. Эта методика доказала свою эффективность в решении логических и поисковых задач, где перебор вариантов и планирование играют большую роль.
Однако дерево мыслей накладывает и жёсткие ограничения: каждая мысль (узел дерева) принадлежит лишь одной ветви, взаимодействие происходит только между родительскими и дочерними узлами, а разные ветви не могут сливаться или обмениваться информацией[3]. Иными словами, перекрёстный обмен идеями (cross-pollination) между разными гипотезами в рамках одного решения затруднён: ветви дерева развиваются независимо и объединяются только в корне, когда выбирается лучшая цепочка рассуждений[3]. В реальном же творческом или аналитическом мышлении человек нередко возвращается к ранее рассмотренной идее и комбинирует её с другой ветвью рассуждений. Такое переплетение мыслей выходит за рамки структуры дерева[1].
Эти наблюдения привели исследователей к мысли о более гибкой структуре – графе, где связи между мыслями не ограничены и могут образовывать сложную сеть. Как отмечается в аналитическом обзоре 2024 года, появление цепочек, деревьев и графов мыслей отражает зарождение нового класса методов, способных значительно усилить возможности LLM за счёт явного структурирования процесса рассуждения[4]. В частности, структурированные подсказки позволили заметно улучшить результаты LLM во многих областях — от решения математических задач и логических головоломок до планирования и даже творческого письма[4]. На этом общем фоне и возникла схема Graph-of-Thoughts как следующий шаг в развитии методов структурированного prompting.
Концепция Graph-of-Thoughts: графовая структура мыслей
Graph-of-Thoughts предлагает представить ход выполнения задач языковой моделью в виде произвольного направленного графа. Формально, граф мыслей в GoT это множество вершин (мыслей) и рёбер (зависимостей между мыслями)[1]. Вершиной графа выступает отдельная мысль модели – под этим термином понимается любая содержательная единица, зависящая от контекста задачи: это может быть отдельное утверждение, шаг решения, фрагмент текста, параграф, блок кода и т.п., сформированный моделью в ответ на запрос[1][1]. Ребро между вершинами означает, что одна мысль использована при порождении другой — т.е. в подсказке явно указано, что модель должна опереться на определённый предыдущий результат, чтобы получить новый[1]. Таким образом, рёбра фиксируют зависимости: от каких ранее полученных данных зависит текущий шаг рассуждения.
Важнейшее отличие GoT от более простых структур — возможность агрегации и слияния мыслей. В графе допускается, что у вершины (новой мысли) может быть несколько предшественников[1]. Это соответствует ситуации, когда две или более отдельные цепочки рассуждений объединяются: модель получает в качестве входа сразу несколько ранее сгенерированных фрагментов и на их основе формирует синтезированный вывод[1]. Например, решая задачу, модель может параллельно рассмотреть две гипотезы, а затем создать новую мысль, которая объединяет положительные стороны обеих гипотез и устраняет их недостатки[1][1]. Такие операции агрегации были невозможны в рамках древовидной схемы (где у каждого узла только один родитель), но естественно реализуются в графовой[1]. Помимо слияния идей, граф позволяет вводить и обратные связи (feedback loops): в принципе, структура GoT не запрещает циклы, то есть модель может вернуть некоторый результат на более раннюю стадию рассуждения для повторной обработки или уточнения[1]. Авторы связывают это с аналогией к рекуррентным связям в нейронных сетях мозга, где выход одной группы нейронов может воздействовать обратно на предыдущие слои, формируя замкнутые контуры размышлений[1].
Практически реализация Graph-of-Thoughts требует особой организации диалога с моделью. Исследователями разработан модульный архитектурный каркас для GoT[1]. В нём выделяются компоненты для: (1) тонкого контроля над отдельными шагами (мыслями) — «контроллер» управляет порядком и логикой генерации мыслей; (2) динамического формирования подсказок – для каждого шага специальный модуль формирует prompt на основе текущего контекста и выбранных вершин графа (предшественников); (3) парсинга и оценки ответов модели — полученные от LLM фрагменты анализируются и оцениваются на качество, полезность либо соответствие критериям задачи[5]. Архитектура GoT тем самым позволяет в интерактивном режиме строить граф рассуждений: после каждого шага принимается решение, какие новые вершины добавить, как связать их с предыдущими, какие ветви продолжить или соединить. Благодаря модульности, такой фреймворк можно расширять новыми типами «трансформаций мыслей» (например, специальными операциями с графом) и адаптировать под различные модели (авторы успешно испытывали GoT с LLM семейств GPT-3.5, GPT-4, LLAMA 2 и др.)[1]. Важное свойство состоит в том, что GoT не требует изменения параметров самой языковой модели — все улучшения достигаются за счёт более разумного построения запросов и обработки ответов[1]. Это означает, что существующие мощные LLM могут быть использованы «как есть», а Graph-of-Thoughts играет роль надстройки, управляющей их работой.
Следует отметить, что термин Graph-of-Thought также появлялся в другой, независимой разработке, отличной от подхода Бесты и коллег. В 2023 году Яо Яо и соавторы предложили методику улучшения reasoning у LLM посредством дополнительного модуля-энкодера графа мыслей, что требовало дообучения модели[6]. Их работа под названием «Beyond Chain-of-Thought, Effective Graph-of-Thought Reasoning in Language Models» описывает двухэтапную архитектуру: сначала генерируется граф взаимосвязанных промежуточных утверждений, затем он преобразуется специальным энкодером и интегрируется в модель через механизм gated fusion[6]. Такой гибридный подход с обучением продемонстрировал некоторое повышение точности на задачах, например, на мультимодальном наборе вопросов ScienceQA точность выросла с 85,2% до 87,6% при использовании модели T5-base[6]. Однако этот подход, хоть и схож по названию, принципиально отличается: он требует изменения модели (fine-tuning) и не является схемой prompt engineering. Авторы оригинального GoT-подхода (AAAI 2024) прямо указывают, что не рассматривают в своей работе ту модель Яо и др., поскольку фокусируются именно на методах без обновления параметров LLM[1]. Таким образом, Graph-of-Thoughts в контексте данного обзора это именно фреймворк на уровне подсказок, а не модификация архитектуры нейросети.
Применение и результаты
Авторы GoT продемонстрировали его преимущества на ряде задач, которые трудно решить с помощью одной прямой подсказки (input-output prompting) или даже с цепочкой мыслей. Характерная особенность таких задач — их можно разложить на несколько частей (подзадач), решить эти части отдельно, а затем синтезировать полный ответ из частичных результатов[1]. В числе рассмотренных примеров: сортировка неупорядоченного списка, подсчёт ключевых слов в тексте (например, для резюмирования документа), выполнение операций над множествами (объединение, пересечение списков и т.д.), а также слияние текстовых документов (объединение информации из нескольких источников)[1]. Во всех этих случаях Graph-of-Thoughts позволяет естественно декомпозировать задачу. Например, для сортировки список разбивается на части, каждая часть сортируется отдельно как независимая ветвь мыслей, после чего результаты объединяются (имитируя алгоритм вроде merge sort); или при анализе текстов модель может параллельно извлекать информацию из разных документов, а затем сводить её воедино.
Экспериментальные результаты подтверждают эффективность GoT-схемы. Согласно отчёту Бесты и коллег, в задаче сортировки граф мыслей позволил существенно повысить качество решения по сравнению с предыдущими подходами[1]. Так, точность сортировки при использовании GoT оказалась на 70% выше, чем при простой цепочке мыслей CoT, и на 62% выше, чем при дереве мыслей ToT[1]. Одновременно метод сокращает затраты вычислительных ресурсов: число обращений к модели (и, соответственно, токенизированный объём запросов) снизилось на 31% по сравнению с Tree-of-Thoughts для той же задачи[1]. Это означает, что графовая организация рассуждений не только улучшила итоговый результат, но и сделала решение более экономичным, избегая избыточных вычислений за счёт грамотного комбинирования промежуточных выводов. Подобные выигрыши были получены и на других тестовых задачах, особенно там, где требуется агрегировать разнородную информацию. Исследователи отмечают, что GoT наиболее эффективен именно для композитных задач, состоящих из нескольких элементов: «Graph-of-Thoughts особенно хорошо подходит для задач, которые естественным образом декомпозируются на более мелкие подзадачи, решаемые отдельно с последующим объединением результатов»[1]. В таких случаях граф мыслей способен охватить все аспекты проблемы и синтезировать решение более полного характера, чем при следовании одной линии рассуждений.
Для более тонкого понимания, почему один способ построения подсказки лучше другого, в работе 2024 года предложена специальная метрика – «объём мысли» (volume of a thought)[1]. Обём определён для каждой отдельной мысли (вершины графа) как число других мыслей, из которых можно по направленным рёбрам достичь данной (проще говоря, скольким промежуточным шагам она обязана своей информацией)[1]. В Chain-of-Thought любая мысль опирается лишь на одного предшественника, поэтому её объём равен 1 (линейная цепочка). В дереве мыслей объём может быть больше, но всё равно ограничен структурой отдельной ветви. В графе же, благодаря агрегированию, отдельная вершина может аккумулировать вклад сразу многих других — её «объём» существенно выше[1]. Показано, что GoT позволяет конечным выводам базироваться на значительно большем объёме предшествующих мыслей, объединяя их содержание. Этот факт отражает более глубокий охват пространства решений и служит количественным объяснением преимуществ графового рассуждения над более простыми схемами.
Сравнение и значение
Graph-of-Thoughts на сегодняшний день представляет наиболее обобщённую форму структурированного prompting-а для LLM. В таблицах сравнения различных схем (CoT, CoT с самосогласованностью, ToT и GoT) подчёркивается, что лишь GoT поддерживает произвольную топологию мыслительного процесса[1]. Он включает в себя возможности всех предыдущих подходов: может работать и как одна цепочка, и как дерево с разветвлениями, и как комбинация множества цепочек, если это подходит для решения задачи[1]. Главное — нет жёстких ограничений на связь между шагами, что теоретически делает пространство возможных стратегий рассуждения максимально широким[1].
Важно понимать, что гибкость GoT приходит ценой большей сложности контроля. Реализация графа мыслей требует внешнего алгоритма-оркестратора, который будет решать, когда и какие мысли генерировать, какие из них отбирать или комбинировать, когда останавливать процесс и выдавать ответ. В простом CoT таких решений принимать не нужно — модель сама генерирует линейное рассуждение до конца. В ToT часть управления ложится на алгоритм поиска по дереву (например, выбор узла для развертывания). В GoT же степень свободы выше, и эффективность метода зависит от качества эвристик, оценивающих промежуточные результаты, и от правильного конструирования подсказок на каждом шаге[1]. Таким образом, Graph-of-Thoughts можно рассматривать не просто как формат запроса, а как структуру рассуждения, накладываемую на процесс взаимодействия с LLM — своего рода динамический план, по которому модель решает задачу, а пользователь (или программа-контроллер) направляет этот процесс.
Появление Graph-of-Thoughts отражает стремление сделать работу больших языковых моделей более интерпретируемой и управляемой. Явно задавая структуру решения, исследователи не только добиваются лучшего качества, но и получают возможность анализировать, как модель пришла к тому или иному выводу. Это сближает подходы в NLP с классическими методами алгоритмического поиска и планирования, но теперь выполнение шагов возложено на нейросетевую модель. Ряд экспертов рассматривает структурированные подсказки (цепочки, деревья, графы мыслей) как перспективное направление, способное преодолеть ограничения «черного ящика» в глубоких моделях и повысить надежность их работы на сложных задачах[4][4].
Методология Graph-of-Thoughts продолжает активно развиваться. Код и примеры для реализации GoT авторы выложили в открытый доступ[1], что позволило сообществу экспериментировать с новым подходом. Появляются и расширения: например, мультимодальные версии графа мыслей, комбинирующие текст с изображениями и другими видами данных[3][3], а также попытки интегрировать идеи GoT непосредственно в архитектуру моделей (как в упомянутой работе Yao et al., 2023). В 2025 году вышел подробный обзор-таксономия методов Chain-of-Thought, Tree-of-Thoughts и Graph-of-Thoughts, систематизирующий накопленные знания и описывающий теоретические основы таких подходов[4][4]. Всё это говорит о большом интересе научного сообщества к структурированному управлению мышлением LLM. Graph-of-Thoughts уже зарекомендовал себя как эффективный инструмент для решения сложных задач и, вероятно, станет основой для дальнейших инноваций в области ИИ-решений, сочетающих мощь больших языковых моделей с прозрачностью и логикой классических алгоритмов.
Ссылки
- Оригинальная статья «Graph of Thoughts: Solving Elaborate Problems with Large Language Models» на arXiv
- HTML версия оригинальной статьи
- Обзор «Demystifying Chains, Trees, and Graphs of Thoughts» на arXiv
- Статья «Beyond Chain-of-Thought, Effective Graph-of-Thought Reasoning in Language Models» на arXiv
- Multimodal Graph-of-Thoughts — статья Deepgram
- LLMs Graph of Thoughts Framework — статья на Medium
Литература
- Besta, M. et al. (2024). Graph of Thoughts: Solving Elaborate Problems with Large Language Models. arXiv:2308.09687.
- Yao, S. et al. (2023). Tree of Thoughts: Deliberate Problem Solving with Large Language Models. arXiv:2305.10601.
- Yao, Y. et al. (2023). Beyond Chain-of-Thought: Effective Graph-of-Thought Reasoning in Language Models. arXiv:2305.16582.
- Wei, J. et al. (2022). Chain of Thought Prompting Elicits Reasoning in Large Language Models. arXiv:2201.11903.
- Wang, X. et al. (2022). Self-Consistency Improves Chain of Thought Reasoning in Language Models. arXiv:2203.11171.
- Wei, J. et al. (2024). Demystifying Chains, Trees, and Graphs of Thoughts. arXiv:2401.14295.
- Huang, S. et al. (2023). Language Is Not All You Need: Aligning Perception with Language Models (Kosmos-1). arXiv:2302.14045.
- Mitra, C. et al. (2024). Compositional Chain-of-Thought Prompting for Large Multimodal Models. In CVPR 2024. PDF.
- Zheng, G. et al. (2023). DDCoT: Duty-Distinct Chain-of-Thought Prompting for Multimodal Reasoning in Language Models. arXiv:2310.16436.
- Mu, J. et al. (2023). Learning to Compress Prompts with Gist Tokens. arXiv:2304.08467.
Примечания
- ↑ 1,00 1,01 1,02 1,03 1,04 1,05 1,06 1,07 1,08 1,09 1,10 1,11 1,12 1,13 1,14 1,15 1,16 1,17 1,18 1,19 1,20 1,21 1,22 1,23 1,24 1,25 1,26 1,27 1,28 1,29 1,30 1,31 1,32 1,33 1,34 1,35 1,36 1,37 1,38 1,39 1,40 1,41 1,42 1,43 Besta, Maciej et al. «Graph of Thoughts: Solving Elaborate Problems with Large Language Models». ar5iv.labs.arxiv.org. [1]
- ↑ Besta, Maciej et al. «Graph of Thoughts: Solving Elaborate Problems with Large Language Models». arXiv. [2]
- ↑ 3,0 3,1 3,2 3,3 3,4 Grygiel, Jacek. «Multimodal Graph-of-Thoughts: How Text, Images, and Graphs Lead to Better Reasoning». Deepgram. [3]
- ↑ 4,0 4,1 4,2 4,3 4,4 4,5 Wei, Jason et al. «Demystifying Chains, Trees, and Graphs of Thoughts». arXiv. [4]
- ↑ Wo, Jacek. «LLMs Graph of Thoughts Framework. Case study». Medium. [5]
- ↑ 6,0 6,1 6,2 Yao, Yuqing et al. «Beyond Chain-of-Thought, Effective Graph-of-Thought Reasoning in Language Models». arXiv. [6]