Graph of Thoughts (CS)
Graph-of-Thoughts (GoT) — je koncepce v oblasti práce s velkými jazykovými modely (LLM, Large Language Models), která předpokládá reprezentaci procesu uvažování modelu ve formě libovolného grafu vzájemně propojených „myšlenek" (mezikroků řešení)[1]. Tento přístup byl navržen skupinou výzkumníků pod vedením Maceje Besty (Maciej Besta) z ETH Zurich a publikován v roce 2024 na konferenci AAAI[2]. Cílem Graph-of-Thoughts je rozšířit možnosti prompt engineeringu (tvorby dotazů) za hranice stávajících schémat, jako jsou Chain-of-Thought (řetězec myšlenek) a Tree-of-Thoughts (strom myšlenek)[1]. Na rozdíl od nich umožňuje přístup GoT libovolnému fragmentu úvah vygenerovanému modelem (myšlence) odkazovat na jakýkoli jiný, čímž vzniká síť nápadů, nikoli striktně lineární nebo stromová struktura[3]. To, jak tvrdí autoři, přesněji odráží složitý, nelineární charakter lidského myšlení a potenciálně přibližuje mechanismus uvažování LLM fungování lidského mozku (s jeho rekurentními nervovými spojeními)[1][1].
Graph-of-Thoughts je metodou tvorby dotazů (prompting framework), tedy nevyžaduje žádné dodatečné trénování ani dolaďování samotného modelu — místo toho organizuje dialog s LLM zvláštním způsobem a vede model prostřednictvím série kroků-„myšlenek" propojených podle schématu grafu[1]. Taková struktura umožňuje kombinovat a opakovaně využívat různé větve úvah: model může například paralelně uvažovat o několika hypotézách nebo částech úlohy a poté z nich nejzdařilejší sloučit do jediného řešení[1]. V encyklopedickém stylu lze Graph-of-Thoughts definovat jako zobecnění předchozích strategií strukturovaného uvažování s LLM, poskytující maximální flexibilitu při organizaci myšlenkových procesů v rámci jednoho komplexního dotazu[1].
Předpoklady: Chain-of-Thought a Tree-of-Thoughts
Metoda Graph-of-Thoughts vyrostla ze starších přístupů využívajících explicitní strukturu uvažování při práci s jazykovými modely. Základním přístupem je Chain-of-Thought (CoT) – „řetězec myšlenek". V metodě CoT je uživateli navrhováno, aby do dotazu modelu zahrnoval nejen zadání úlohy, ale také mezikroky uvažování vedoucí k odpovědi[1]. Výzkumy ukázaly, že takové podání materiálu výrazně zlepšuje schopnost LLM řešit složité úlohy, například matematické nebo logické hádanky, přičemž parametry samotného modelu se nemění[1]. CoT fakticky pobízí model, aby krok za krokem rozložil složitý problém na jednodušší etapy a napodoboval tak postupný tok myšlenek.
Rozvíjením této myšlenky se stala technika Self-Consistency: místo jednoho řetězce myšlenek je generováno několik nezávislých řetězců, přičemž je poté vybrán nejpřesvědčivější z nich[1]. To umožňuje modelu zvážit různé přístupy k řešení a snižuje riziko chybné odpovědi způsobené sledováním jediné nesprávné linie úvah. Ani množství řetězců CoT však nedává možnost „slučovat nápady": každý řetězec je posuzován izolovaně a model pouze vybírá ten nejlepší, aniž by kombinoval jejich obsah.
Pro překonání tohoto omezení bylo navrženo schéma Tree-of-Thoughts (ToT) – „strom myšlenek"[1]. V ToT je proces uvažování organizován jako strom: v každém bodě může model generovat několik variant rozvoje myšlenky (větvení), poté jsou tato mezilehlá stádia hodnocena a jsou vybrána ta nejslibnější pro další prohlubování[1]. Díky prohledávání stromu (například do šířky — BFS, nebo do hloubky — DFS) a možnosti vracet se k uzlům a rozvíjet jinou větev poskytuje Tree-of-Thoughts jazykovému modelu výkonnější mechanismus pro řešení složitých úloh než lineární CoT[1]. Objevují se nové možnosti, jako je návrat a přehodnocení: pokud jedna větev vede do slepé uličky, lze se vrátit k předchozímu uzlu a vyzkoušet jinou cestu[1]. Tato metoda prokázala svou účinnost při řešení logických a prohledávacích úloh, kde hraje velkou roli procházení variant a plánování.
Strom myšlenek však ukládá i přísná omezení: každá myšlenka (uzel stromu) patří pouze jedné větvi, interakce probíhá pouze mezi rodičovskými a dceřinými uzly a různé větve se nemohou slučovat ani si vyměňovat informace[3]. Jinými slovy, křížové sdílení nápadů (cross-pollination) mezi různými hypotézami v rámci jednoho řešení je obtížné: větve stromu se vyvíjejí nezávisle a spojují se teprve v kořenu, kdy je vybrán nejlepší řetězec úvah[3]. V reálném tvůrčím nebo analytickém myšlení se člověk však často vrací k dříve uvažované myšlence a kombinuje ji s jinou větví úvah. Takové propletení myšlenek přesahuje rámec stromové struktury[1].
Tato pozorování přivedla výzkumníky k myšlence flexibilnější struktury — grafu, kde vazby mezi myšlenkami nejsou omezeny a mohou tvořit složitou síť. Jak je uvedeno v analytickém přehledu z roku 2024, vznik řetězců, stromů a grafů myšlenek odráží zrod nové třídy metod, schopných výrazně posílit možnosti LLM prostřednictvím explicitního strukturování procesu uvažování[4]. Strukturované podněty (prompty) zejména umožnily citelně zlepšit výsledky LLM v mnoha oblastech — od řešení matematických úloh a logických hádanek až po plánování a dokonce tvůrčí psaní[4]. Na tomto obecném pozadí vzniklo schéma Graph-of-Thoughts jako další krok ve vývoji metod strukturovaného promptingu.
Koncepce Graph-of-Thoughts: grafová struktura myšlenek
Graph-of-Thoughts navrhuje reprezentovat průběh plnění úloh jazykovým modelem ve formě libovolného orientovaného grafu. Formálně je graf myšlenek v GoT množina vrcholů (myšlenek) a hran (závislostí mezi myšlenkami)[1]. Vrcholem grafu je jednotlivá myšlenka modelu — pod tímto pojmem se rozumí jakákoli obsahová jednotka závislá na kontextu úlohy: může jít o jednotlivé tvrzení, krok řešení, fragment textu, odstavec, blok kódu apod., který model formuluje v odpovědi na dotaz[1][1]. Hrana mezi vrcholy znamená, že jedna myšlenka byla použita při generování jiné — tj. v podnětu je explicitně uvedeno, že model se má opřít o určitý předchozí výsledek, aby získal nový[1]. Hrany tak zaznamenávají závislosti: na jakých dříve získaných datech závisí aktuální krok uvažování.
Nejdůležitějším rozdílem GoT oproti jednodušším strukturám je možnost agregace a slučování myšlenek. V grafu je přípustné, aby vrchol (nová myšlenka) měl více předchůdců[1]. To odpovídá situaci, kdy se dva nebo více samostatných řetězců uvažování spojí: model obdrží na vstupu hned několik dříve vygenerovaných fragmentů a na jejich základě formuluje syntetizovaný závěr[1]. Při řešení úlohy může model například paralelně uvažovat o dvou hypotézách a poté vytvořit novou myšlenku, která spojuje pozitivní stránky obou hypotéz a odstraňuje jejich nedostatky[1][1]. Takové operace agregace nebyly v rámci stromového schématu možné (kde má každý uzel pouze jednoho rodiče), ale v grafovém schématu se realizují přirozeně[1]. Kromě slučování nápadů umožňuje graf zavádět i zpětné vazby (feedback loops): struktura GoT v zásadě cykly nezakazuje, tj. model může vrátit určitý výsledek do dřívější fáze uvažování k opětovnému zpracování nebo upřesnění[1]. Autoři to spojují s analogií rekurentních spojení v neuronových sítích mozku, kde výstup jedné skupiny neuronů může zpětně působit na předchozí vrstvy a vytvářet uzavřené okruhy uvažování[1].
Praktická realizace Graph-of-Thoughts vyžaduje zvláštní organizaci dialogu s modelem. Výzkumníci vyvinuli modulární architektonický rámec pro GoT[1]. Ten zahrnuje komponenty pro: (1) jemnou kontrolu nad jednotlivými kroky (myšlenkami) — „kontrolér" řídí pořadí a logiku generování myšlenek; (2) dynamické formování podnětů — pro každý krok speciální modul vytváří prompt na základě aktuálního kontextu a vybraných vrcholů grafu (předchůdců); (3) parsování a hodnocení odpovědí modelu — fragmenty přijaté od LLM jsou analyzovány a hodnoceny z hlediska kvality, užitečnosti nebo souladu s kritérii úlohy[5]. Architektura GoT tak umožňuje interaktivně budovat graf úvah: po každém kroku je rozhodnuto, které nové vrcholy přidat, jak je propojit s předchozími, které větve pokračovat nebo spojit. Díky modularitě lze takový framework rozšiřovat o nové typy „transformací myšlenek" (například speciální operace s grafem) a přizpůsobovat jej různým modelům (autoři úspěšně testovali GoT s LLM z rodin GPT-3.5, GPT-4, LLAMA 2 a dalšími)[1]. Důležitou vlastností je, že GoT nevyžaduje změnu parametrů samotného jazykového modelu — veškerá zlepšení jsou dosažena důmyslnější konstrukcí dotazů a zpracováním odpovědí[1]. To znamená, že stávající výkonné LLM lze použít „tak jak jsou" a Graph-of-Thoughts plní roli nadstavby řídící jejich fungování.
Je třeba poznamenat, že termín Graph-of-Thought se objevil také v jiném, nezávislém vývojovém projektu odlišném od přístupu Besty a jeho kolegů. V roce 2023 navrhli Yao Yao a spoluautoři metodu zlepšení reasoning u LLM prostřednictvím dodatečného modulu-enkodéru grafu myšlenek, která vyžadovala doladění modelu[6]. Jejich práce s názvem „Beyond Chain-of-Thought, Effective Graph-of-Thought Reasoning in Language Models" popisuje dvoustupňovou architekturu: nejprve je vygenerován graf vzájemně provázaných mezilehlých tvrzení, poté je transformován speciálním enkodérem a integrován do modelu prostřednictvím mechanismu gated fusion[6]. Tento hybridní přístup s trénováním prokázal určité zvýšení přesnosti na úlohách — například na multimodální sadě otázek ScienceQA vzrostla přesnost z 85,2 % na 87,6 % při použití modelu T5-base[6]. Tento přístup, ačkoli je svým názvem podobný, se však zásadně liší: vyžaduje změnu modelu (fine-tuning) a není schématem prompt engineeringu. Autoři původního přístupu GoT (AAAI 2024) přímo uvádějí, že ve své práci nepracují s modelem Yao et al., protože se zaměřují právě na metody bez aktualizace parametrů LLM[1]. Graph-of-Thoughts je tedy v kontextu tohoto přehledu framework na úrovni podnětů, nikoli modifikace architektury neuronové sítě.
Aplikace a výsledky
Autoři GoT demonstrovali jeho přednosti na řadě úloh, které je obtížné řešit pomocí jediného přímého podnětu (input-output prompting) nebo dokonce pomocí řetězce myšlenek. Charakteristickým rysem takových úloh je, že je lze rozložit na několik částí (dílčích úloh), tyto části řešit odděleně a poté syntetizovat úplnou odpověď z dílčích výsledků[1]. Mezi uvažovanými příklady jsou: třídění neuspořádaného seznamu, počítání klíčových slov v textu (například pro sumarizaci dokumentu), provádění operací nad množinami (sjednocení, průnik seznamů apod.), jakož i slučování textových dokumentů (spojování informací z více zdrojů)[1]. Ve všech těchto případech umožňuje Graph-of-Thoughts přirozeně dekompozici úlohy. Například pro třídění je seznam rozdělen na části, každá část je tříděna samostatně jako nezávislá větev myšlenek a výsledky jsou poté sloučeny (napodobujíce algoritmus jako merge sort); nebo při analýze textů může model paralelně extrahovat informace z různých dokumentů a poté je sjednocovat.
Experimentální výsledky potvrzují účinnost schématu GoT. Podle zprávy Besty a kolegů umožnil graf myšlenek při úloze třídění výrazně zvýšit kvalitu řešení ve srovnání s předchozími přístupy[1]. Přesnost třídění při použití GoT byla o 70 % vyšší než při prostém řetězci myšlenek CoT a o 62 % vyšší než při stromu myšlenek ToT[1]. Metoda zároveň snižuje náklady na výpočetní zdroje: počet dotazů modelu (a tedy tokenizovaný objem dotazů) se snížil o 31 % ve srovnání s Tree-of-Thoughts pro tutéž úlohu[1]. To znamená, že grafová organizace úvah nejenže zlepšila výsledný výsledek, ale učinila řešení také úspornějším — díky promyšlenému kombinování mezilehlých závěrů se vyhnula zbytečným výpočtům. Podobné zisky byly získány i u dalších testovacích úloh, zejména tam, kde je třeba agregovat různorodé informace. Výzkumníci uvádějí, že GoT je nejúčinnější právě pro kompozitní úlohy skládající se z více prvků: „Graph-of-Thoughts se zvláště hodí pro úlohy, které se přirozeně rozkládají na menší dílčí úlohy řešitelné samostatně s následným sloučením výsledků"[1]. V takových případech je graf myšlenek schopen pokrýt všechny aspekty problému a syntetizovat komplexnější řešení než při sledování jediné linie úvah.
Pro hlubší pochopení toho, proč je jeden způsob sestavení podnětu lepší než jiný, byla v práci z roku 2024 navržena speciální metrika — „objem myšlenky" (volume of a thought)[1]. Objem je definován pro každou jednotlivou myšlenku (vrchol grafu) jako počet jiných myšlenek, z nichž lze po orientovaných hranách dosáhnout dané myšlenky (jednoduše řečeno, kolika mezilehlým krokům vděčí za svou informaci)[1]. V Chain-of-Thought se každá myšlenka opírá pouze o jednoho předchůdce, takže její objem je roven 1 (lineární řetězec). Ve stromu myšlenek může být objem větší, stále je však omezen strukturou jednotlivé větve. V grafu však může díky agregaci jednotlivý vrchol akumulovat příspěvky mnoha jiných — jeho „objem" je podstatně vyšší[1]. Je ukázáno, že GoT umožňuje konečným závěrům opírat se o výrazně větší objem předchozích myšlenek a slučovat jejich obsah. Tento fakt odráží hlubší pokrytí prostoru řešení a slouží jako kvantitativní vysvětlení výhod grafového uvažování oproti jednodušším schématům.
Srovnání a význam
Graph-of-Thoughts v současnosti představuje nejobecnější formu strukturovaného promptingu pro LLM. V tabulkách porovnávajících různá schémata (CoT, CoT se self-consistency, ToT a GoT) je zdůrazňováno, že pouze GoT podporuje libovolnou topologii myšlenkového procesu[1]. Zahrnuje možnosti všech předchozích přístupů: může fungovat jako jeden řetězec, jako strom s větvením i jako kombinace více řetězců, pokud to odpovídá řešení úlohy[1]. Hlavní předností je absence přísných omezení vazeb mezi kroky, což teoreticky maximálně rozšiřuje prostor možných strategií uvažování[1].
Je důležité pochopit, že flexibilita GoT přichází za cenu větší složitosti řízení. Realizace grafu myšlenek vyžaduje zewnętrzní algoritmus-orchestrátor, který bude rozhodovat, kdy a které myšlenky generovat, které z nich vybírat nebo kombinovat, kdy proces zastavit a vydat odpověď. U jednoduchého CoT taková rozhodnutí přijímat není třeba — model sám generuje lineární úvahu až do konce. V ToT část řízení spočívá na algoritmu prohledávání stromu (například výběr uzlu k rozvíjení). V GoT je stupeň volnosti vyšší a účinnost metody závisí na kvalitě heuristik hodnotících mezilehlé výsledky a na správné konstrukci podnětů v každém kroku[1]. Graph-of-Thoughts tak lze chápat nejen jako formát dotazu, ale jako strukturu uvažování nakládanou na proces interakce s LLM — jakýsi dynamický plán, podle nějž model řeší úlohu, přičemž uživatel (nebo program-kontrolér) tento proces řídí.
Vznik Graph-of-Thoughts odráží snahu učinit práci velkých jazykových modelů více interpretovatelnou a řiditelnou. Explicitním zadáváním struktury řešení výzkumníci nejen dosahují lepší kvality, ale také získávají možnost analyzovat, jak model dospěl k tomu či onomu závěru. To sbližuje přístupy v NLP s klasickými metodami algoritmického prohledávání a plánování, avšak provádění kroků je nyní svěřeno neuronovému modelu. Řada odborníků považuje strukturované podněty (řetězce, stromy, grafy myšlenek) za perspektivní směr, schopný překonat omezení „černé skříňky" v hlubokých modelech a zvýšit spolehlivost jejich fungování při řešení složitých úloh[4][4].
Metodologie Graph-of-Thoughts se nadále aktivně rozvíjí. Autoři zpřístupnili kód a příklady implementace GoT[1], což umožnilo komunitě experimentovat s novým přístupem. Objevují se také rozšíření: například multimodální verze grafu myšlenek kombinující text s obrazy a dalšími druhy dat[3][3], jakož i pokusy o integraci myšlenek GoT přímo do architektury modelů (jako ve zmíněné práci Yao et al., 2023). V roce 2025 vyšel podrobný přehled-taxonomie metod Chain-of-Thought, Tree-of-Thoughts a Graph-of-Thoughts, systematizující nashromážděné poznatky a popisující teoretické základy těchto přístupů[4][4]. To vše svědčí o velkém zájmu vědecké komunity o strukturované řízení uvažování LLM. Graph-of-Thoughts si již vydobyl pověst účinného nástroje pro řešení složitých úloh a pravděpodobně se stane základem pro další inovace v oblasti řešení AI, kombinujících výkon velkých jazykových modelů s transparentností a logikou klasických algoritmů.
Odkazy
- Původní článek „Graph of Thoughts: Solving Elaborate Problems with Large Language Models" na arXiv
- HTML verze původního článku
- Přehled „Demystifying Chains, Trees, and Graphs of Thoughts" na arXiv
- Článek „Beyond Chain-of-Thought, Effective Graph-of-Thought Reasoning in Language Models" na arXiv
- Multimodal Graph-of-Thoughts — článek Deepgram
- LLMs Graph of Thoughts Framework — článek na Medium
Literatura
- 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.
Poznámky
- ↑ 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]