Graph of Thoughts (BG)
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 по този начин позволява в интерактивен режим да се изгражда граф на разсъжденията: след всяка стъпка се взема решение кои нови върхове да се добавят, как да се свържат с предишните, кои клонове да се продължат или съединят. Благодарение на модулността, такъв framework може да се разширява с нови типове „трансформации на мисли" (например специални операции с графа) и да се адаптира към различни модели (авторите успешно изпробвали 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 в контекста на настоящия обзор е именно framework на ниво подсказки, а не модификация на архитектурата на невронната мрежа.
Приложение и резултати
Авторите на 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 вече се е утвърдил като ефективен инструмент за решаване на сложни задачи и вероятно ще се превърне в основа за по-нататъшни иновации в областта на AI-решения, съчетаващи мощта на големите езикови модели с прозрачността и логиката на класическите алгоритми.
Препратки
- Оригинална статия „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]