Graph of Thoughts (IT)
Graph-of-Thoughts (GoT) — è un concetto nell'ambito dei grandi modelli linguistici (LLM, Large Language Models), che prevede la rappresentazione del processo di ragionamento del modello sotto forma di un grafo arbitrario di «pensieri» interconnessi (passi intermedi della soluzione)[1]. Questo approccio è stato proposto da un gruppo di ricercatori guidati da Maciej Besta (Maciej Besta) dell'ETH Zurich e pubblicato nel 2024 alla conferenza AAAI[2]. L'obiettivo di Graph-of-Thoughts è estendere le capacità del prompt engineering (sviluppo di richieste) oltre gli schemi esistenti, come Chain-of-Thought (catena di pensieri) e Tree-of-Thoughts (albero di pensieri)[1]. A differenza di questi, l'approccio GoT consente a qualsiasi frammento di ragionamento generato dal modello (pensiero) di fare riferimento a qualsiasi altro, formando una rete di idee anziché una struttura strettamente lineare o ad albero[3]. Ciò, come affermano gli autori, riflette in modo più accurato la natura complessa e non lineare del pensiero umano e potenzialmente avvicina il meccanismo di ragionamento degli LLM al funzionamento del cervello umano (con le sue connessioni neurali ricorrenti)[1][1].
Graph-of-Thoughts è un metodo di formulazione delle richieste (prompting framework), ovvero non richiede addestramento aggiuntivo o fine-tuning del modello stesso — al contrario, organizza il dialogo con l'LLM in modo particolare, guidando il modello attraverso una serie di passi-«pensieri» collegati secondo lo schema di un grafo[1]. Tale struttura consente di combinare e riutilizzare diversi rami di ragionamento: ad esempio, il modello può esaminare parallelamente diverse ipotesi o parti di un problema, per poi unire le più riuscite in un'unica soluzione[1]. In stile enciclopedico, Graph-of-Thoughts può essere definito come una generalizzazione delle precedenti strategie di ragionamento strutturato con LLM, che fornisce la massima flessibilità nell'organizzazione dei processi di pensiero all'interno di un'unica richiesta complessa[1].
Presupposti: Chain-of-Thought e Tree-of-Thoughts
Il metodo Graph-of-Thoughts è cresciuto da approcci precedenti che utilizzano una struttura esplicita di ragionamento nel lavoro con i modelli linguistici. L'approccio di base è Chain-of-Thought (CoT) – «catena di pensieri». Nel metodo CoT, all'utente viene proposto di includere nella richiesta al modello non solo la condizione del problema, ma anche i passi intermedi del ragionamento che portano alla risposta[1]. Le ricerche hanno dimostrato che tale modalità di presentazione migliora significativamente la capacità degli LLM di risolvere problemi complessi, come enigmi matematici o logici, senza modificare i parametri del modello stesso[1]. In sostanza, CoT spinge il modello a scomporre passo dopo passo un problema complesso in fasi più semplici, imitando un flusso sequenziale di pensieri.
Uno sviluppo di questa idea è stata la tecnica Self-Consistency: invece di una singola catena di pensieri, vengono generate più catene indipendenti, dopodiché viene selezionata la più convincente[1]. Ciò consente al modello di considerare diversi approcci alla soluzione e riduce il rischio di ottenere una risposta errata a causa del seguire un'unica linea di ragionamento scorretta. Tuttavia, anche più catene CoT non consentono di «combinare idee»: ogni catena viene considerata in modo isolato e il modello si limita a scegliere la migliore, senza combinarne i contenuti.
Per superare questo limite è stato proposto lo schema Tree-of-Thoughts (ToT) – «albero di pensieri»[1]. In ToT il processo di ragionamento è organizzato come un albero: in ogni punto il modello può generare diverse varianti di sviluppo del pensiero (ramificazioni), dopodiché questi stati intermedi vengono valutati e i più promettenti vengono selezionati per un approfondimento ulteriore[1]. Utilizzando la ricerca sull'albero (ad esempio, in ampiezza — BFS, o in profondità — DFS) e la possibilità di tornare ai nodi e sviluppare un altro ramo, Tree-of-Thoughts offre al modello linguistico un meccanismo più potente per risolvere problemi complessi rispetto al CoT lineare[1]. Emergono nuove possibilità, come il backtracking e la revisione: se un ramo porta a un vicolo cieco, è possibile tornare al nodo precedente e tentare un percorso diverso[1]. Questa tecnica ha dimostrato la sua efficacia nella risoluzione di problemi logici e di ricerca, dove l'esplorazione di varianti e la pianificazione svolgono un ruolo importante.
Tuttavia, l'albero di pensieri impone anche rigide limitazioni: ogni pensiero (nodo dell'albero) appartiene a un solo ramo, l'interazione avviene solo tra nodi genitori e figli, e rami diversi non possono fondersi o scambiarsi informazioni[3]. In altre parole, lo scambio incrociato di idee (cross-pollination) tra diverse ipotesi nell'ambito di un'unica soluzione risulta difficoltoso: i rami dell'albero si sviluppano indipendentemente e si uniscono solo alla radice, quando viene scelta la catena di ragionamento migliore[3]. Nel pensiero creativo o analitico reale, invece, l'essere umano spesso torna a un'idea precedentemente esaminata e la combina con un altro ramo del ragionamento. Tale intreccio di pensieri va oltre la struttura ad albero[1].
Queste osservazioni hanno portato i ricercatori all'idea di una struttura più flessibile — un grafo, in cui i collegamenti tra i pensieri non sono limitati e possono formare una rete complessa. Come osservato in una rassegna analitica del 2024, la comparsa di catene, alberi e grafi di pensieri riflette la nascita di una nuova classe di metodi in grado di potenziare significativamente le capacità degli LLM grazie a una strutturazione esplicita del processo di ragionamento[4]. In particolare, i prompt strutturati hanno consentito di migliorare notevolmente i risultati degli LLM in molti ambiti — dalla risoluzione di problemi matematici e logici alla pianificazione e persino alla scrittura creativa[4]. Su questo sfondo generale è emerso lo schema Graph-of-Thoughts come passo successivo nello sviluppo dei metodi di prompting strutturato.
Concetto di Graph-of-Thoughts: struttura a grafo dei pensieri
Graph-of-Thoughts propone di rappresentare il processo di esecuzione dei compiti da parte del modello linguistico sotto forma di un grafo orientato arbitrario. Formalmente, il grafo dei pensieri in GoT è un insieme di vertici (pensieri) e archi (dipendenze tra pensieri)[1]. Il vertice del grafo è un singolo pensiero del modello — con questo termine si intende qualsiasi unità significativa dipendente dal contesto del problema: può trattarsi di una singola affermazione, un passo della soluzione, un frammento di testo, un paragrafo, un blocco di codice e così via, generato dal modello in risposta a una richiesta[1][1]. Un arco tra i vertici indica che un pensiero è stato utilizzato nella generazione di un altro — ovvero nel prompt è indicato esplicitamente che il modello deve fare affidamento su un determinato risultato precedente per ottenere quello nuovo[1]. Gli archi fissano quindi le dipendenze: da quali dati precedentemente ottenuti dipende il passo corrente del ragionamento.
La differenza fondamentale di GoT rispetto alle strutture più semplici è la possibilità di aggregazione e fusione dei pensieri. Nel grafo è ammesso che un vertice (nuovo pensiero) possa avere più predecessori[1]. Questo corrisponde alla situazione in cui due o più catene di ragionamento separate si uniscono: il modello riceve come input più frammenti generati in precedenza e, sulla loro base, formula una conclusione sintetizzata[1]. Ad esempio, risolvendo un problema, il modello può esaminare parallelamente due ipotesi e poi creare un nuovo pensiero che unisce gli aspetti positivi di entrambe le ipotesi eliminandone i difetti[1][1]. Tali operazioni di aggregazione erano impossibili nell'ambito dello schema ad albero (dove ogni nodo ha un solo genitore), ma si realizzano naturalmente in quello a grafo[1]. Oltre alla fusione di idee, il grafo consente di introdurre anche feedback loop (cicli di retroazione): in linea di principio, la struttura GoT non vieta i cicli, ovvero il modello può restituire un certo risultato a una fase precedente del ragionamento per una rielaborazione o un raffinamento[1]. Gli autori collegano ciò all'analogia con le connessioni ricorrenti nelle reti neurali del cervello, dove l'output di un gruppo di neuroni può agire retroattivamente sui livelli precedenti, formando circuiti chiusi di riflessione[1].
L'implementazione pratica di Graph-of-Thoughts richiede una particolare organizzazione del dialogo con il modello. I ricercatori hanno sviluppato un framework architetturale modulare per GoT[1]. In esso si distinguono componenti per: (1) il controllo dettagliato dei singoli passi (pensieri) — un «controller» gestisce l'ordine e la logica di generazione dei pensieri; (2) la formazione dinamica dei prompt — per ogni passo un modulo specifico forma il prompt in base al contesto corrente e ai vertici del grafo selezionati (predecessori); (3) il parsing e la valutazione delle risposte del modello — i frammenti ricevuti dall'LLM vengono analizzati e valutati in termini di qualità, utilità o corrispondenza ai criteri del problema[5]. L'architettura GoT consente così di costruire il grafo dei ragionamenti in modalità interattiva: dopo ogni passo viene presa la decisione su quali nuovi vertici aggiungere, come collegarli ai precedenti, quali rami continuare o unire. Grazie alla modularità, tale framework può essere esteso con nuovi tipi di «trasformazioni di pensieri» (ad esempio, operazioni speciali sul grafo) e adattato a diversi modelli (gli autori hanno sperimentato con successo GoT con LLM delle famiglie GPT-3.5, GPT-4, LLAMA 2 e altri)[1]. Una proprietà importante è che GoT non richiede modifiche ai parametri del modello linguistico stesso — tutti i miglioramenti si ottengono grazie a una costruzione più intelligente delle richieste e all'elaborazione delle risposte[1]. Ciò significa che i potenti LLM esistenti possono essere utilizzati «così come sono», mentre Graph-of-Thoughts svolge il ruolo di un livello superiore che ne gestisce il funzionamento.
Va notato che il termine Graph-of-Thought è apparso anche in un'altra elaborazione indipendente, distinta dall'approccio di Besta e colleghi. Nel 2023, Yao Yao e coautori hanno proposto una tecnica per migliorare il reasoning degli LLM tramite un modulo encoder aggiuntivo del grafo dei pensieri, che richiedeva il fine-tuning del modello[6]. Il loro lavoro intitolato «Beyond Chain-of-Thought, Effective Graph-of-Thought Reasoning in Language Models» descrive un'architettura in due fasi: prima viene generato un grafo di affermazioni intermedie interconnesse, poi viene trasformato da un encoder speciale e integrato nel modello tramite un meccanismo di gated fusion[6]. Questo approccio ibrido con addestramento ha dimostrato un certo miglioramento della precisione nei compiti: ad esempio, nel dataset multimodale ScienceQA la precisione è aumentata dall'85,2% all'87,6% utilizzando il modello T5-base[6]. Tuttavia, questo approccio, pur simile per nome, è fondamentalmente diverso: richiede la modifica del modello (fine-tuning) e non è uno schema di prompt engineering. Gli autori dell'approccio GoT originale (AAAI 2024) indicano esplicitamente che nel loro lavoro non considerano il modello di Yao et al., poiché si concentrano proprio sui metodi senza aggiornamento dei parametri degli LLM[1]. Pertanto, Graph-of-Thoughts nel contesto di questa panoramica è precisamente un framework a livello di prompt, non una modifica dell'architettura della rete neurale.
Applicazione e risultati
Gli autori di GoT ne hanno dimostrato i vantaggi su una serie di compiti difficili da risolvere con un singolo prompt diretto (input-output prompting) o persino con una catena di pensieri. Una caratteristica tipica di tali compiti è che possono essere scomposti in più parti (sottoproblemi), risolti separatamente e poi sintetizzare la risposta completa dai risultati parziali[1]. Tra gli esempi esaminati: ordinamento di un elenco non ordinato, conteggio delle parole chiave in un testo (ad esempio per la sintesi di un documento), esecuzione di operazioni sugli insiemi (unione, intersezione di liste ecc.), nonché fusione di documenti testuali (combinazione di informazioni provenienti da più fonti)[1]. In tutti questi casi Graph-of-Thoughts consente di decomporre il problema in modo naturale. Ad esempio, per l'ordinamento la lista viene suddivisa in parti, ciascuna parte viene ordinata separatamente come ramo indipendente di pensieri, dopodiché i risultati vengono combinati (imitando un algoritmo come il merge sort); oppure, nell'analisi dei testi, il modello può estrarre informazioni in parallelo da documenti diversi e poi consolidarle.
I risultati sperimentali confermano l'efficacia dello schema GoT. Secondo il rapporto di Besta e colleghi, nel compito di ordinamento il grafo dei pensieri ha consentito di migliorare significativamente la qualità della soluzione rispetto agli approcci precedenti[1]. Così, la precisione dell'ordinamento con GoT è risultata superiore del 70% rispetto alla semplice catena di pensieri CoT e superiore del 62% rispetto all'albero di pensieri ToT[1]. Allo stesso tempo, il metodo riduce i costi di risorse computazionali: il numero di accessi al modello (e, di conseguenza, il volume tokenizzato delle richieste) è diminuito del 31% rispetto a Tree-of-Thoughts per lo stesso compito[1]. Ciò significa che l'organizzazione a grafo dei ragionamenti non solo ha migliorato il risultato finale, ma ha anche reso la soluzione più economica, evitando calcoli ridondanti grazie a una combinazione oculata dei risultati intermedi. Guadagni simili sono stati ottenuti anche su altri compiti di test, soprattutto dove è necessario aggregare informazioni eterogenee. I ricercatori osservano che GoT è più efficace proprio per i compiti compositi, composti da più elementi: «Graph-of-Thoughts è particolarmente adatto per compiti che si decompongono naturalmente in sottoproblemi più piccoli, risolvibili separatamente con successiva combinazione dei risultati»[1]. In tali casi il grafo dei pensieri è in grado di abbracciare tutti gli aspetti del problema e sintetizzare una soluzione di carattere più completo rispetto al seguire un'unica linea di ragionamento.
Per una comprensione più approfondita del motivo per cui un modo di costruire il prompt sia migliore di un altro, nel lavoro del 2024 è stata proposta una metrica speciale — il «volume di un pensiero» (volume of a thought)[1]. Il volume è definito per ogni singolo pensiero (vertice del grafo) come il numero di altri pensieri dai quali è possibile raggiungere il dato pensiero seguendo gli archi orientati (in parole semplici, a quanti passi intermedi esso deve le proprie informazioni)[1]. In Chain-of-Thought ogni pensiero si basa su un solo predecessore, quindi il suo volume è uguale a 1 (catena lineare). Nell'albero di pensieri il volume può essere maggiore, ma è comunque limitato dalla struttura del singolo ramo. Nel grafo, invece, grazie all'aggregazione, un singolo vertice può accumulare il contributo di molti altri — il suo «volume» è significativamente più alto[1]. È stato dimostrato che GoT consente alle conclusioni finali di basarsi su un volume notevolmente maggiore di pensieri precedenti, combinandone il contenuto. Questo fatto riflette una copertura più profonda dello spazio delle soluzioni e fornisce una spiegazione quantitativa dei vantaggi del ragionamento a grafo rispetto agli schemi più semplici.
Confronto e significato
Graph-of-Thoughts rappresenta attualmente la forma più generalizzata di prompting strutturato per gli LLM. Nelle tabelle di confronto dei vari schemi (CoT, CoT con Self-Consistency, ToT e GoT) si sottolinea che solo GoT supporta una topologia arbitraria del processo di pensiero[1]. Esso include le capacità di tutti gli approcci precedenti: può funzionare sia come una singola catena, sia come un albero con ramificazioni, sia come una combinazione di più catene, se ciò è adatto alla risoluzione del problema[1]. L'aspetto fondamentale è che non vi sono vincoli rigidi sul collegamento tra i passi, il che rende teoricamente massimamente ampio lo spazio delle possibili strategie di ragionamento[1].
È importante comprendere che la flessibilità di GoT ha un costo in termini di maggiore complessità del controllo. L'implementazione del grafo dei pensieri richiede un algoritmo orchestratore esterno, che decida quando e quali pensieri generare, quali selezionare o combinare, quando interrompere il processo e fornire una risposta. Nel semplice CoT non è necessario prendere tali decisioni — il modello stesso genera un ragionamento lineare fino alla fine. In ToT parte della gestione ricade sull'algoritmo di ricerca sull'albero (ad esempio, la scelta del nodo da espandere). In GoT invece il grado di libertà è maggiore, e l'efficacia del metodo dipende dalla qualità delle euristiche che valutano i risultati intermedi e dalla corretta costruzione dei prompt a ogni passo[1]. Pertanto, Graph-of-Thoughts può essere considerato non solo come un formato di richiesta, ma come una struttura di ragionamento sovrapposta al processo di interazione con l'LLM — una sorta di piano dinamico secondo cui il modello risolve il problema, mentre l'utente (o il programma controller) guida questo processo.
L'emergere di Graph-of-Thoughts riflette il desiderio di rendere il funzionamento dei grandi modelli linguistici più interpretabile e gestibile. Definendo esplicitamente la struttura della soluzione, i ricercatori non solo ottengono una qualità migliore, ma acquisiscono anche la capacità di analizzare come il modello sia pervenuto a una determinata conclusione. Ciò avvicina gli approcci nel NLP ai metodi classici di ricerca algoritmica e pianificazione, ma ora l'esecuzione dei passi è affidata al modello a rete neurale. Alcuni esperti considerano i prompt strutturati (catene, alberi, grafi di pensieri) come una direzione promettente, in grado di superare i limiti della «scatola nera» nei modelli profondi e di aumentare l'affidabilità del loro funzionamento su compiti complessi[4][4].
La metodologia Graph-of-Thoughts continua a svilupparsi attivamente. Il codice e gli esempi per l'implementazione di GoT sono stati resi disponibili pubblicamente dagli autori[1], consentendo alla comunità di sperimentare il nuovo approccio. Stanno emergendo anche estensioni: ad esempio, versioni multimodali del grafo dei pensieri, che combinano testo con immagini e altri tipi di dati[3][3], nonché tentativi di integrare le idee di GoT direttamente nell'architettura dei modelli (come nel citato lavoro di Yao et al., 2023). Nel 2025 è uscita una dettagliata rassegna-tassonomia dei metodi Chain-of-Thought, Tree-of-Thoughts e Graph-of-Thoughts, che sistematizza le conoscenze accumulate e descrive le basi teoriche di tali approcci[4][4]. Tutto ciò testimonia il grande interesse della comunità scientifica per la gestione strutturata del pensiero degli LLM. Graph-of-Thoughts si è già affermato come uno strumento efficace per la risoluzione di problemi complessi e diventerà probabilmente la base per ulteriori innovazioni nel campo delle soluzioni AI, che combinano la potenza dei grandi modelli linguistici con la trasparenza e la logica degli algoritmi classici.
Letteratura
- 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.
Riferimenti
- Articolo originale «Graph of Thoughts: Solving Elaborate Problems with Large Language Models» su arXiv
- Versione HTML dell'articolo originale
- Rassegna «Demystifying Chains, Trees, and Graphs of Thoughts» su arXiv
- Articolo «Beyond Chain-of-Thought, Effective Graph-of-Thought Reasoning in Language Models» su arXiv
- Multimodal Graph-of-Thoughts — articolo di Deepgram
- LLMs Graph of Thoughts Framework — articolo su Medium
Note
- ↑ 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]